Further fixes to file size handling on Windows with fd and FILE*
[qt-netbsd.git] / dist / changes-4.0.1
blobf08aac6e437d76da3c373fc028964d3f3826c7a9
1 ****************************************************************************
2 *                          Important Notices                               *
3 ****************************************************************************
5 Meta-Object System
6 ------------------
8 Qt 4.0.0 introduced a change to the way type names outside the current
9 scope were handled in signals and slots declarations and connections
10 which differed from the behavior in Qt 3.x.
12 Unfortunately, this could lead to signal-slot connections that were
13 potentially type-unsafe. Therefore, in Qt 4.0.1 type names must be fully
14 qualified in signal-slot declarations and connections.
16 For example, in Qt 4.0.0, it was possible to write:
18     connect(socket, SIGNAL(error(SocketError)), ...);
20 In Qt 4.0.1, the above connection must be made in the following way:
22     connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), ...);
25 Library
26 -------
28 Support for SGI Altix has been added for both gcc and Intel icc.
31 QX11EmbedContainer and QX11EmbedWidget are now exported classes.
33 This change only affects developers using Qt/X11 with gcc >= 4.0 and
34 symbol visibility enabled. Applications built against Qt 4.0.1 that
35 use these classes cannot be linked against Qt 4.0.0.
38 ****************************************************************************
39 *                                Changes                                   *
40 ****************************************************************************
42 Qt Designer
43 -----------
45 Fixed crash in designer when using fonts in custom widgets that
46 don't have a point size set but use a pixel size instead.
48 Fixed initial positions of the form windows in the MDI mode.
50 Ensured that the object inspector is updated when a page is added
51 to a widget stack.
53 Ensured that the SDK is installed and the library symbols are
54 exported.
56 Fixed crash when breaking a layout after deleting all widgets within.
58 Fixed handling of nested action groups.
60 Fixed mouse handling to match user expectations on different
61 platforms.
63 Don't change system setting for double click interval.
65 Disabled the richtext editor for the "statusTip" property.
67 Improved widget handling, loading and saving for QFrame, QTabWidget,
68 and Q3GroupBox.
70 Added a platform-neutral mechanism for saving key sequences.
72 Used Qt's list of supported image formats rather than an incomplete
73 static list.
75 Provided a way for plugins to access to the layout of container
76 widgets.
78 Added support for editable byte arrays.
81 Qt Linguist
82 -----------
84 Made lupdate handle cases where the compiler converts strings using
85 a different codec to that used by lupdate.
87 Fixed bug in lupdate and lrelease's .pro file parser.
89 Fixed lupdate's octal sequence handling.
91 Fixed duplicate context when two contexts have the same hash value.
94 Qt 3 to 4 Porting Tool
95 ----------------------
97 Fixed connnect statement that did not work with the new stricter moc.
99 Fixed incorrect porting of enum values in switch statements.
101 Fixed header file name replacements in include directives.
104 Meta Object Compiler (moc)
105 --------------------------
107 Fixed VC6 compilation of moc generated code with namespaced
108 superclasses.
110 Fixed parsing of functions that throw exceptions.
112 Fixed compilation of moc generated code with VC6 when inheriting
113 from classes inside namespaces.
115 Improved the efficiency of signals with default arguments.
118 Qt Assistant
119 ------------
121 Fixed the document list for full text search indexing.
123 Fixed case sensitive completion in the find dialog combobox.
125 Re-enabled the "add content file" option.
127 Removed the "General" tab in the settings dialog.
129 Fixed registry key handling and deletion of cache files.
131 Made it possible to read titles in the tabs in assistant.
133 Updated the QAssistantClient documentation.
135 Added the QtAssistantClient headers to the other library headers
136 for installation.
138 Fixed full text search for phrases.
141 General Fixes
142 -------------
144 - Dialogs
145         Removed hard-coded margin and spacing values from built-in
146         dialogs.
148 - QAbstractItemModel
149         Fixed crash caused by removing an item with expanded children.
150         Added some more see also links and defined QModelIndexList.
152 - QAbstractItemView
153         Fixed rendering and selection issues with MultiSelection
154         mode.
155         Improved handling of persistent editors.
156         Improved performance of item insertion.
157         Improved signal handling and emission.
159 - QAbstractSlider
160         Ensured that no changes occur if the orientation doesn't
161         change in a call to setOrientation().
162         Introduced better keyboard control for sliders.
163         Fixed sliderPressed() and sliderReleased() signal emissions.
165 - QAbstractSocket
166         Fixed race condition in connectToHost().
167         Made bytesAvailable() return the unget buffer size as well
168         as the size of any pending data.
169         Made NetworkLayerProtocol non-internal.
171 - QAbstractSpinBox
172         Fixed problems with locale and the "." and "," separators.
173         Improved handling of extra whitespace at the beginning and
174         end of user input.
176 - QApplication
177         Made closeAllWindows() respect windows that reject the close
178         event.
179         Fixed crash caused by calling QApplication::setStyle()
180         before a qApp was created.
181         Improved handling of the last open window for most cases.
182         Improved event handling.
184 - QBezier
185         Used a new algorithm for offsetting curves.
186         Improved performance by using a more sophisticated
187         algorithm and by making QBezier a POD type.
189 - QBrush
190         Improved radial gradient rendering.
192 - QColorDialog
193         Process the return key correctly.
195 - QComboBox
196         Fixed behaviour of setMaxItems() to enable new items to be
197         inserted within the range allowed.
199 - QCommonStyle
200         Ensured that mnemonics are always shown for buttons.
201         Fixed position of right corner widget when used on its own.
203 - QDateTimeEdit
204         Improved the range of input allowed for numbers.
206 - QDial
207         Fixed valueChanged() signal emission.
209 - QDialog
210         Fixed Lower QSizeGrip in QDialog instead of raising it.
212 - QDir
213         Fixed relative path handling on Windows.
214         Reverted empty string matching behavior to match Qt 3's
215         behavior.
216         Restored API compatibility with Qt 3.
218 - QDirModel
219         Fixed accidental deletion of directories in read-only mode.
221 - QDockWidget
222         Ensured that the size of a floating dock widget is the same
223         regardless of how it was floated.
224         Reintroduced double-clicking behavior to float a dock
225         widget.
226         Fixed incorrect moving behavior for floating widgets.
227         Ensured that dock widgets display a close icon only if they
228         can be closed.
230 - QDockWidgetLayout
231         See QMainWindow.
233 - QDomNodeList
234         Fixed handling of out-of-range items.
236 - QDoubleSpinBox
237         Improved decimals handling and rounding behavior in
238         QDoubleSpinBox.
240 - QFile
241         Fixed problems with carriage return and line feed handling
242         in readLine().
243         Ensured that pos() returns the correct value if the file
244         shrinks.
246 - QFileDialog
247         Fixed incorrect behavior where the dialog would go to the
248         root directory if the user tried to enter a non-existent
249         directory.
250         Fixed sorting by type behavior.
252 - QFontDatabase
253         Fixed loading of special fonts.
254         Fixed sample characters for Chinese scripts.
256 - QFontDialog
257         Switched the locations of the OK and Cancel buttons.
258         Made items in the font dialog read-only.
259         Improved handling of the OK and Cancel buttons when the
260         dialog is in reverse layout mode.
262 - QGifHandler
263         Reintroduced GIF plugin support.
265 - QGridLayout
266         Improved default size handling.
268 - QHeaderView
269         Fixed section hiding behavior.
270         Fixed Out of bounds error and improper calculation of last
271         column.
272         Improved mouse handling and widget updating.
273         Fixed crashes caused by moving or removing sections, or by
274         updating the current section.
275         Improved signal behavior for resized or removed sections.
277 - QHttp
278         Fixed proxy authentication.
279         Fixed broken behavior when scheduling many requests to
280         different hosts.
281         Fixed socket object ownership issues with setSocket() that
282         could lead to a crash.
284 - QImage
285         Fixed smooth scaling for image formats other than RGB and
286         ARGB32.
288 - QImageReader
289         Fixed the default implementation of imageCount() to return a
290         valid number of images.
292 - QInputDialog
293         Switched the locations of the OK and Cancel buttons.
295 - QIODevice
296         Fixed problems with carriage return and line feed handling
297         in readLine().
298         Made bytesAvailable() return the unget buffer size as well
299         as the size of any pending data.
300         Fixed error handling when reading lines with QFile.
301         Fixed seek() behavior with regard to the unget buffer.
303 - QItemDelegate
304         Improved layout handling, redrawing, signal emission,
305         and mouse click behavior.
307 - QKeySequence
308         Fixed accidental HTML escaping of ampersands.
310 - QLayout
311         Print out object names in warnings.
313 - QLineEdit
314         Enabled textChanged() signal emission when using input
315         methods.
316         Improved return key press handling for users of the
317         returnPressed() signal.
318         Fixed context menu action handling.
319         Fixed editingFinished() signal emission behavior.
320         Fixed Ctrl-K and Ctrl-U behavior to cut text rather than
321         just deleting it.
322         Fixed line edit selection behavior to maintain any current
323         selection when the widget receives the keyboard focus.
325 - QListView
326         Improved handling of hidden rows.
327         Fixed rendering when used in reverse mode.
329 - QListWidget
330         Fixed the size policy for laying out items in the list.
331         Improved sorting performance.
332         Fixed persistent index handling when sorting.
334 - QMainWindow
335         Fixed problems with multiple connections from QMainWindow
336         signals to QToolBar slots.
337         Fixed dock widget handling (adding a widget to all dock
338         areas) and incorrect dock area splitting behavior that
339         could lead to crashes in QMainWindow.
340         Made QMainWindow's status bar have an "Ignored" horizontal
341         size policy.
343 - QMetaObject
344         Fixed meta objects that reported far too many enums.
345         Fixed the behavior of sender() to return the correct value
346         during queued activation.
348 - QMetaType
349         Fixed whitespace handling in template specialization.
350         Fixed missing qt_metatype_id implementation for <void *>.
351         Added more support for compilation with QT_NO_DATASTREAM.
353 - QMenu
354         Fixed keyboard navigation when mouse navigation is also
355         being used.
356         Fixed menu bar merging behavior.
358 - QMenuBar
359         Fixed Alt key navigation.
361 - QObject
362         Fixed incorrect exception handling.
364 - QPaintEngine
365         Suppressed warnings when drawing "empty" text.
366         Fixed rendering of Underline, Overline, and StrikeOut for
367         text drawn using outlines.
369 - QPainter
370         Improved handling of clip regions when restore() is called.
371         Improved text drawing performance.
373 - QPaintDevice
374         Allowed construction of QImage before QApplication.
376 - QPainterPath
377         Improved performance and rendering accuracy.
379 - QPen
380         Fixed missing detach in setWidth().
382 - QPixmap
383         Improved drawing speed and mask handling.
385 - QPlastiqueStyle
386         Improved visual feedback for scrollbar page buttons and
387         slider handle.
388         Improved Plastique style on non-XRender-enabled displays.
390 - QProcess
391         Fixed endless loop of signal being emitted if model dialog
392         is used in slot.
393         Made bytesAvailable() return the unget buffer size as well
394         as the size of any pending data.
396 - QProxyModel
397         Improved signal handling for propagated signals.
399 - QResource
400         Fixed Latin-1 string handling.
401         Fixed unloading of resources.
403 - QScrollArea
404         Fixed widget resizing so that widgets that are smaller than
405         the viewport remain visible.
407 - QSettings
408         Made it possible to store QImage/QPixmap settings.
409         Fixed race conditions in QSettings with INI files.
410         Improved handling of non-terminated strings in INI files.
412 - QSizeGrip
413         Made the Qt 3-style constructor public.
415 - QSpinBox
416         Fixed problems with out-of-range integers and doubles.
418 - QSqlQueryModel
419         Fixed integration between QSqlTableModel and MS Access.
420         Fixed signal emissions for tables with only one row.
422 - QSqlTableModel
423         Fixed problems with multiple record insertion.
425 - QStatusBar
426         Fixed status bar height without size grip.
428 - QTabBar
429         Fixed handling of the current page index when adding the
430         first page to QTabWidget.
431         Improved tab bar icon handling to enable icons to be updated
432         without redrawing the entire tab bar.
434 - QTableView
435         Improved text cursor handling and support for keyboard
436         modifiers.
437         Fixed problems with disappearing headers.
438         Disallowed selection of hidden rows and columns.
439         Fixed crashes involving empty models and tables with headers
440         but no rows or columns.
442 - QTableWidget
443         Improved sorting and signal emission behavior.
445 - QTabWidget
446         Fixed handling of the current widget to keep the tab bar
447         updated.
449 - QTextBrowser
450         Removed temporary visible text selection when activating
451         anchors with Shift-click.
453 - QTextCursor
454         Fixed selection behavior for words at the beginning of lines.
455         Fixed incorrect use of character formats when calling
456         insertFragment().
457         Fixed incorrect text insertion where line feeds and carriage
458         returns would not be transformed into Unicode block
459         separators.
461 - QTextDocument
462         Added support for page breaking.
463         Added support for relative font sizes.
464         Added support for <hr /> tags.
465         Fixed clipboard handling and drag and drop of text frames.
466         Fixed handling of closing HTML </center> tags.
467         Fixed crash (failing assertion) on import of nested empty
468         HTML tables.
469         Fixed data corruption in fromPlainText().
470         Corrected the handling of image tags inside anchors.
471         Fixed introduction of empty spaces or lines before and after
472         tables.
473         Fixed misrendering of some nested HTML tables with variable
474         sized columns.
475         Fixed crash in table drawing due to out-of-bounds access.
476         Added support for the pageCountChanged() signal.
477         Improved performance and size of PostScript images when
478         printing high resolution or scaled images.
480 - QTextEdit
481         Improved layout and selection handling.
482         Added configuration support for non-blinking cursors.
483         Improved keyboard handling.
484         Improved text insertion handling.
486 - QTextFormat
487         Added support for horizontal rules.
488         Improved font handling.
490 - QTextLayout
491         Allow line breaking at tabs.
492         Improved reporting of line widths for lines ending with a
493         QChar::LineSeparator.
494         Fixed reporting of the minimum width for layouts that have
495         NoWrap/ManualWrap as their wrap policy.
497 - QTextStream
498         Fixed locking behavior when reading from stdin.
499         Fixed seek() behavior.
500         Improved Latin-1 string handling.
502 - QTextTable
503         Improved performance and selection handling.
505 - QToolBar
506         Fixed toolbar resizing behavior to handle icon size changes.
508 - QTreeView
509         Improved handling of hidden rows, columns, and child items.
510         Fixed repainting issues with newly inserted child items
511         and selections.
512         Improved scrolling behavior.
513         Fixed crashes involving column handling and empty views.
514         Fixed sorting indicator behavior.
516 - QTreeWidget
517         Improved item insertion performance.
518         Fixed clone() and operator=() for QTreeWidgetItem.
519         Fixed crash when removing or deleting items with children.
520         Improved sorting performance.
521         Fixed sorting indicator behavior.
522         Fixed persistent index handling when sorting.
524 - QUrl
525         Improved the performance of removeDots().
527 - QWidget
528         Fixed problems with adding an action multiple times.
530 - QXmlInputSource
531         Improved heuristics for determining character encodings.
533 - Q3FileDialog
534         Fixed file selection handling.
537 Platform-Specific Issues
538 ------------------------
540 Windows:
542 - QApplication
543         Fixed Block modeless elements of client when ActiveX opens a
544         modal dialog
545         Enabled tablet support.
546         Improved event handling for popup widgets.
548 - QAxWidget
549         Support a document site only if the COM object allows proper
550         initialization with a storage.
552 - QFileDialog
553         Updated to use the latest native Windows dialogs.
555 - QProcess
556         Fixed behavior of forwarded read channels.
558 - QSettings
559         Fixed behavior of childKeys() with respect to the default
560         key.
562 - QWindowsStyle
563         Fixed menu item size.
564         Improved drawing of default push buttons.
565         Fixed rendering of sliders to correctly differentiate
566         between those in enabled and disabled states.
568 - QWindowsXPStyle
569         Fixed menu frame rendering.
570         Reduced the space allocate to menu items.
573 X11:
575 - QApplication
576         Fixed incorrect initialization of screen and resolution.
577         Improved mouse button handling.
578         Fixed handling of withdrawn windows.
580 - QBitmap
581         Fixed bitmap brush textures to ensure that they use the
582         correct color with XRender.
584 - QFont
585         Fixed handle() to return useful values.
587 - QFontDatabase
588         Fixed fonts for some writing systems not being loaded on X11
590 - QPaintEngine
591         Fixed multi-screen support.
592         Improved performance and rendering accuracy.
593         Fixed dot-dash patterns when drawing with large pen widths.
594         Improved text rendering on exported displays.
596 - QWidget
597         Implemented support for window opacity.
598         Added support for widgets with 32 bit sizes.
599         Improved support for different active and inactive background
600         brushes.
601         Fixed window icons on X servers that have truecolor and
602         pseudocolor visuals with different depths.
603         Fixed text rendering on exported displays.
605 - QXIMInputContext
606         Fixed crash in XIM code with newer x.org libraries.
607         Fixed support for switching input method styles.
609 - QX11Embed
610         Exported QX11Embed (see the Important Changes section
611         above).
612         Improved handling of non-XEmbed clients.
613         Improved geometry and focus handling.
616 UNIX:
618 - QPageSetupDialog
619         Reduced the size of the dialog.
621 - QPrintDialog
622         Fixed initialization of color and grayscale radio buttons.
624 - QProcess
625         Fixed incorrect notification of process termination on
626         Linux kernels up to and including the 2.4 series.
627         Made QProcess emit an error() when failing to launch a
628         program.
631 Mac OS X:
633 - QApplication
634         Fixed widgetAt() to handle transparent widgets.
635         Handle keyboard events in the active window if no focus
636         window is available.
637         Changed wheel mouse scrolling speed to match that of
638         other applications.
640 - QComboBox
641         Fixed rendering of combobox frames.
643 - QDnD
644         Fixed URL handling.
646 - QClipboard
647         Fixed Junk at end of pasted text on Qt/Mac.
649 - QCursor
650         Fixed incorrect pixmap handling.
652 - QFileDialog
653         Fixed sheet modality issues to prevent the dialog from being
654         hidden behind other windows.
656 - QFont
657         Default to using the Geneva font.
658         Enable kerning and fix Arabic text handling.
660 - QLibraryInfo
661         Fixed location of qt.conf in Mac OS X bundles.
663 - QMacStyle
664         Improvements to rendering accuracy of comboboxes, tab bars,
665         workspace windows, tool buttons, and push buttons.
666         Fixed incorrect drawing of scrollbars with "inverted
667         appearance".
668         Fixed font-related crash for applications configured to
669         use the standard desktop settings.
671 - QMenu
672         Improved menu bar handling on navigation dialogs.
674 - QMenuBar
675         Improved menu bar hiding/wrapping behavior.
677 - QPaintDevice
678         Removed byte order assumptions.
680 - QPaintEngine
681         Improved brush handling, clipping, masking, and tiling
682         operations.
684 - QPixmap
685         Improvements to pixmap copying and conversion, masking, and
686         alpha channel handling.
687         Removed byte order assumptions.
689 - QPrintEngine
690         Made color printing the default behavior.
692 - QSettings
693         Sync the application's setting on construction of a
694         QSettings object.
696 - QSysInfo
697         Included enum values for Mac OS X codenames in the
698         MacVersion version enum.
700 - QWidget
701         Improved mouse event handling.
702         Improved interoperability between modal widgets.
705 Tools
706 -----
708 - uic3
709         Fixed class name handling when used in "-convert" mode.
710         Fixed vertical space issues with .ui files converted from
711         Qt 3 to Qt 4.
712         Improved support for Qt3Support widgets.
713         Improved support for deprecated enums.
714         Added a generator for dependencies in Qt 3 .ui files.
716 - rcc
717         Added better error reporting.
719 - uic
720         Added code generation for tab attributes.
721         Fixed text codec handling.
722         Used UTF-8 as the default enconding in .ui files.
723         Fixed code generation for QWizard.
726 Documentation
727 -------------
729 Porting:
731 Removed QMovie from the list of implicitly shared classes that were
732 previously explicitly shared.
734 Added .ui porting document to the 4.0.1 documentation.
736 Added sections about QHBox, QVBox, and QGrid to the porting guide.
738 Added QImageIO and QMovie to the porting guide.
740 Added QRegExp and some QDir functions to the porting guide.
742 Added QObject::objectTrees() to the porting guide.
744 Added QPopupMenu to the porting guide.
747 General:
749 Fix documentation of amortized container behavior.
751 Added information about using specific compilers to build Qt.
753 Removed QtMotif documentation because it is now part of Qt Solutions.
755 Clarify parent-child relationship within QThreads.
757 Documented potential file name clashes when using precompiled headers.
759 Added a Windows XP gallery.
761 Added pages to contain lists of classes for each Commercial Edition.
763 Reintroduced the QAssistantClient documentation as part of the
764 QtAssistant module.
766 Added missing Qt Designer API documentation.
768 - QApplication
769         Documented correct use of QApplication::setStyle().
771 - QComboBox
772         Made removeItem() and setRootModelIndex() visible in the
773         documentation.
775 - QMetaObject
776         Added missing documentation for QGenericArgument and
777         QGenericReturnArgument, making them visible in the
778         documentation, but not recommended for casual use.
780 - QPainter
781         Make QPainter::setRedirected() visible and fix its
782         description.
784 - QSqlDatabase
785         Document what happens when passing an existing connection
786         name to addDatabase().