Fix macplist autotest
[qt-netbsd.git] / dist / changes-4.2.2
blob25131a1a775b08d24d11dbd6d1c86136a9cc4c07
1 Qt 4.2.2 is a bug-fix release. It maintains both forward and backward
2 compatibility (source and binary) with Qt 4.2.0.
4 The Qt version 4.2 series is binary compatible with the 4.1.x and 4.0.x
5 series. Applications compiled for 4.0 or 4.1 will continue to run with 4.2.
7 ****************************************************************************
8 *                           General                                        *
9 ****************************************************************************
11 General Improvements
12 --------------------
14 - Configuration/Compilation
16   * Fixed issues with unresolved zlib symbols on aix-g++ resulting from a
17     missing "-lz" in gui/Makefile.
19   * Fixed compilation when an unsupported version of MySQL is auto-detected
20     by the configure script.
22   * Fixed QtDBus linking errors when compiling with the Intel C++ Compiler
23     for Linux.
25   * Fixed compilation when using Q_ARG and Q_RETURN_ARG macros with template
26     types.
28   * Make Qt compile with QT_NO_TOOLTIP and QT_NO_STATUSBAR
30 - Documentation
32   * Added new overviews and substantially improved Qtopia Core-specific
33     documentation.
35 - Demos / Examples
37   * Fixed crash in the Settings Editor example resulting from entering
38     certain input to a QTreeWidget using QLineEdit as an inline editor.
40   * Fixed crash in the Ported Canvas example that occurred when creating a
41     new canvas from one that was shrunk to its minimum size.
43 - I/O
45   * Fixed divide by zero when loading malformed BMP files.
47 - Qt Assistant
49   * Fixed a bug that prevented the view from scrolling to anchors within
50     pages.
52 - Qt Designer
54   * Fixed crash that could occur when pasting a QGridLayout into a
55     QTabWidget.
57   * Fixed the signals & slots connection editor to automatically scroll to 
58     the correct items.
60   * Fixed blocking behavior that would occur when previewing modal forms.
62   * Made OK the default button in the "Promote to Custom Widget" dialog.
64   * Ensured that main window forms that include size grips are repainted
65     correctly when they are resized.
67   * Fixed bug in Form Settings dialog - it wasn't possible to reset the
68     "Pixmap Function" field.
70 - Qt Linguist
72   * Fixed bug where lupdate would leave out the namespace part of the context.
73   
74   * Fixed bug in lupdate where the paths of the generated ts files was not 
75     relative to the pro file.
77   * Fixed bug in lupdate that caused strings that contained \r\n were not 
78     translated.
80   * Improved the user interface with some minor layout changes.
82   * Improved handling of forms without layouts.
84   * Fixed crash caused by navigating to the previous node when the current
85     node was the first and topmost node.
87   * Fixed bug in the preview translation feature where forms that did not
88     have any layout got a height of 0.
90   * Fixed bug where "Search and Translate" did not trigger a repaint on the
91     items that got translated, leading people to believe that 
92     "Search and Translate" did not work.
94   * Fixed a layout problem with the "Search and Translate" dialog.
96 - qmake
98   * Fixed crash that could occur when using the LIB_PATH variable if a .libs
99     directory is located on one of the paths held by the variable.
101   * Improved generation of Xcode projects to avoid problems with qmake
102     project files that contain certain Qt-dependent declarations.
104   * Improved support for Objective C sources in the Xcode project generator
105     to ensure that they are added to the project's target.
108 Third party components
109 ----------------------
111 - libpng
113   * Security fix (CVE-2006-5793): The sPLT chunk handling code
114     uses a sizeof operator on the wrong data type, which allows
115     context-dependent attackers to cause a denial of service (crash)
116     via malformed sPLT chunks that trigger an out-of-bounds read.
118   * Security fix: Avoid profile larger than iCCP chunk.
119     One might crash a decoder by putting a larger profile inside the
120     iCCP profile than is actually expected.
122   * Security fix: Avoid null dereference.
124   * Disabled MMX assembler code for Intel-Mac platforms to work
125     around a compiler bug.
128 ****************************************************************************
129 *                          Library                                         *
130 ****************************************************************************
132 General improvements
133 --------------------
135 - Accessibility
137   * Fixed a potential assert when navigating menus while assistive tools are
138     running.
140   * Fixed a crash when getting accessibility information from an item view
141     without a model.
143   * Fixed item view accessibility bug where QAccessibleInterface::text()
144     would return an empty string for child indexes larger
145     than one.
147 - Item views
149   * Fixed QHeaderView and QTableView overflow issues when the length
150     of all the rows or columns went over the maximum allowed integer value.
152   * When reset is emitted by a QAbstractItemModel, QHeaderView will now
153     always update the header count().
155   * Fixed incorrect scrolling in QHeaderView when items are hidden.
157   * Fixed bug where QHeaderView would disappear if the sections were moved
158     and the model was reset.
160   * QDataWidgetMapper::mappedWidgetAt() now always returns the right
161     mapped index for a widget no matter in which order they were inserted
163   * Fixed crash due to incorrect update of persistent model indexes in
164     QSortFilterProxyModel::layoutChanged().
166   * Fixed bug that could cause QSortFilterProxyModel::removeRows() and
167     QSortFilterProxyModel::removeColumns() to remove the wrong source model
168     items.
170   * Fixed bug in QSortFilterProxyModel that caused stale proxy mappings to
171     remain when source model items were removed and later reinserted,
172     resulting in an incorrect proxy model.
174   * Fixed bug in QSortFilterProxyModel that caused items to not appear
175     in a QTreeView when adding children to a formerly childless source item.
177   * Fixed painting bug for spanning cells in QTableView when the item
178     background is transparent.
180   * Fixed regression in QListWidget and QTreeWidget that caused persistent
181     indexes to not be updated when sorting items.
183   * Enter key can now be used to start item editing when the edit trigger
184     is AnyKeyPressed.
186   * Fixed regression where QAbstractItemView::setRootIndex() wasn't
187     always updating the view, causing possibly painting errors.
189   * Fixed regression that caused incorrect propagation of Enter key press
190     from a QAbstractItemView in editing mode.
192   * Date and time editors are now initialized correctly with the current
193     date and time.
195   * QTableView tab focus handling has been improved. Although tab key
196     navigation is enabled by default, you can tab out of a view if the
197     model is either missing or unable to handle the key (e.g., an empty
198     model).
200   * Fixed bug in QItemDelegate that would scale decoration pixmaps.
202   * Fixed buge that would not let the column delegate create the editor
203     for an edited item.
205   * Fixed bug where the QTableCornerButton would ignore the view
206     selectionMode.
208   * Fixed compatibility issue with QTreeWidgetItem serialization
209     between Qt 4.2.x and Qt 4.(0/1).x.
211   * Made sure the QTableWidget::cellEntered() signal is emitted
212     correctly.
214   * Made sure that commitData() uses the row/column delegate
215     when these are set.
217   * Fixed incorrect QTableView scrollbar ranges when rows were hidden.
219   * Fixed QItemDelegate to let text be bottom aligned.
221 - Graphics View
223   * The background cache in QGraphicsView is now properly initialized to
224     the full viewport.
226   * Fixed incorrect cursor updates when moving between items.
228   * QGraphicsItem::setMatrix() now properly clears the original item before
229     repainting.
231   * QGraphicsEllipseItem is now only drawn as a full ellipse at angles that
232     are multiples of 360 degrees (..., -720, -360, 360, 720, ...).
234   * Fixed a crash when selecting one selectable item, then moving another
235     movable item.
237   * Fixed a crash during item construction caused by a pure virtual function
238     call in QGraphicsItem.
240   * Fixed mouse grabber book-keeping problems in QGraphicsScene which fell out
241     of sync when opening modal dialogs or popups from within a mouse event
242     handlers.
244   * QGraphicsScene now forwards unhandled events to QObject, allowing the use
245     of timers in QGraphicsScene subclasses.
247 - Meta-Object Compiler (moc)
249   * Split long string literals in the generated code to work around
250     limitations in MSVC.
252   * Fixed crash on *BSD that could occur on invalid input.
254 - Painting
256   * Improved numerical stability in the path stroker, fixing a crash when
257     stroking paths containing curve segments whose control points are
258     approximately on the same line.
260   * Fixed raster paint engine memory corruption in QBitmap when source buffer
261     was smaller than the destination buffer.
263   * Avoid rounding errors when drawing parts of a pixmap using the Quartz 2D
264     engine.
266   * Added caching of QGradient's color table for the raster paint engine.
267     This means that if a gradient with the same stops and colors is used
268     again, it will be quickly fetched from the cache, avoiding the
269     expensive calculations of the color lookup table.
271   * Fixed a crash on Windows and with QImage caused by specifying
272     Qt::CustomDashLine without an actual pattern.
274   * Fixed a bug in the raster paint engine which would occasionally cause
275     pixel errors when drawing polygons.
277   * Fixed memory corruption in the OpenGL paint engine when drawing complex
278     polygons with a cosmetic pen.
280   * Fixed rendering of transformed brushes when drawing linear gradients
281     with the OpenGL paint engine where the transformations used were not
282     angle-preserving.
284   * Improved handling of OpenGL errors.
286   * Fixed bug in the raster paint engine where extra lines would be drawn
287     when drawing a path partially outside the viewport using a dashed pen.
289   * Fixed an assert in QImage that was triggered when reading PNG files
290     with certain palettes.
292   * Fixed an issue where stroking and drawing aliased QPainterPaths with a
293     non-cosmetic pen would produce incorrect results.
295   * Fixed an issue where text was cut off when drawn onto a QImage.
297   * Fixed an issue where text would be drawn onto a QPicture with an
298     incorrect position.
300   * Fixed an issue where enabling/disabling clipping when drawing into a
301     QImage did not have any effect.
303   * Fixed bug in QImage::createHeuristicMask where the color table was not 
304     initialized properly.
306 - Qt Resource Compiler (rcc)
308   * Improved handling of relative paths in .qrc files.
310 - Style Sheets
312   * Made general performance improvements.
314   * Fixed crash that could occur when a widget with a style sheet was
315     reparented into a widget with no style sheet.
317   * Ensured that a widget's custom palette is not overwritten when not styled
318     using a style sheet.
320   * Added support to allow colors to be specified with alpha components.
322   * Added support for group box styling.
324   * Removed broken support for automatic image scaling.
326 - SQL plugins
328   * Fixed incorrect translation of error strings in the Oracle plugin.
329   
330   * Made sure PQfreemem is called to free allocated buffers in PostgreSQL.
332   * Fixed regression from Qt 4.1.4 behavior that prevented tables in schemas
333     from working correctly in the SQL data models.
335   * Prevented possible trailing garbage for TEXT fields in the MySQL plugin.
337 - Text handling
339   * Fixed a bug in the Bidi algorithm.
341 - QAbstractItemView
343   * Made commitData() more robust by ignoring cases in which no valid index
344     is associated with the editor.
346   * Ensured that the itemEntered() signal is emitted consistently on all
347     platforms.
349 - QBrush
351   * Ensured that transformations are correctly copied when brushes are copied.
353 - QCalendarWidget
355   * Fixed setting the text format, correcting repainting and date resetting
356     issues.
358 - QComboBox
360   * Fixed wrong scroll arrows for the popup menu.
362 - QCompleter
364   * Fixed issue where the highlighted() signal was emitted twice if
365     setModel() was called twice.
367   * Made completers usable inside dialogs.
369 - QDataStream
371   * Fixed streaming of qreal on (embedded) platforms where qreal values are
372     not equivalent to double values; i.e., sizeof(qreal) != sizeof(double).
374 - QDateTime/QDateTimeEdit
376   * Fixed a bug that allowed you to type in larger numbers than 12 in 12-hour
377     fields.
379   * Fixed a bug that occurred when QDate::shortMonthName() was longer than
380     3 characters.
382   * Improved the handling of left-to-right languages.
384 - QDialogButtonBox
386   * QDialogButtonBox now sets the default button to the first button with
387     the Accept role if no other button has explicitly been set as the
388     default when it is shown. This is to stop a regression where using the
389     autoDefault property with the Mac and Cleanlooks styles would set the
390     Cancel button as the default.
392 - QDir
394   * Fixed an assert in QDir::entryList() when reading file entries with
395     names containing invalid Unicode encodings.
397 - QFileDialog
398   * Fixed bug that showed a non-existing folder for every space the user typed 
399     after a dot (.) in the lineedit.
401 - QFileSystemWatcher
403   * Fixed compilation on Linux/HPPA.
405 - QFSFileEngine
407   * Fixed broken UNC path support.
409 - QIODevice
411   * Fixed a data corruption bug when reading large blocks from devices
412     opened in Text mode.
414   * Fixed seeking to positions larger than the maximum allowed integer value.
416 - QLineEdit
418   * Fixed scrolling in line edits with custom paddings.
420   * Fixed crash on Linux when the text contains QChar::LineSeparator.
422 - QListView/QListWidget
424   * Fixed bug with cursor navigation in cases where a grid size has been
425     set.
427   * Ensured that the drop indicator is not shown in icon view mode to avoid
428     painting artifacts.
430 - QLocale
432   * Fixed crash on Mac OS X and Windows caused when one of the separator
433     strings was an empty string.
435   * Fixed double to string conversion bug on embedded architectures.
437 - QMainWindow
439   * Fixed bug allowing non-floatable dock widgets to be floated when the
440     DockWidgetMoveable option is set.
442   * Fixed several bugs in laying out docked QDockWidgets which have
443     minimumSize() and/or maximumSize() set.
445   * Improved saving and restoring of the state of main windows and their dock
446     widgets when using saveState() and restoreState().
448   * Fixed handling of dock widgets that are non-closable to the user so that
449     they can be programmatically closed.
451   * Fixed regression from Qt 4.1.4 behavior to ensure that palette changes
452     to main windows are also propagated to their children.
454 - QMenuBar
456   * Improved event handling to avoid sending events when a menu bar has no
457     parent widget.
459 - QObject
461   * Fixed memory leak when calling QObject::moveToThread(0).
463 - QPainter
465   * Fixed reentrancy issue that would otherwise lead to crashes if more than
466     one QImage is deleted at the same time (from different threads).
468 - QPalette
470   * Improved handling of the palette obtained from QApplication::palette()
471     in cases where QApplication::setStyle() has been called before a
472     QApplication instance has been constructed (as recommended by the
473     documentation).
475 - QPluginLoader
477   * Fixed a potential crash that could occur when calling staticInstances()
478     from a global destructor.
480 - QProgressBar
482   * Document that drawing of text in vertical progress bars is style-dependent.
484 - QSqlRelationalTableModel
486   * Ensured that the internal cache is correctly cleared when reverting
487     inserted rows.
489 - QSvg
491   * Improved parser robustness and parsing speed.
493 - QTextCodec
495   * Fixed race-condition in QTextCodec::codecForLocale().
497   * Fixed potential off-by-one string handling bug.
499 - QTextDocument
501   * Fixed support for pixel font sizes in imported HTML.
503 - QTextOption
505   * Ensured that the textDirection property is respected.
507 - QTextStream
509   * Ensured that readLine() no longer treats "\r\n" as being two lines if
510     called after QTextStream::pos().
512 - QToolButton
514   * Fixed an issue where tool button popup menus were positioned incorrectly
515     on multi-screen setups.
517 - QTreeView/QTreeWidget
519   * Fixed possible assert when painting if there were layouts pending.
521   * Fixed possible segfault when a model emits layoutChanged().
523   * Fixed erroneous expanding/collapsing of items when the user
524     double-clicked in the checkbox area of an item.
526   * Fixed a crash in setRowHidden() caused by hiding then un-hiding items
527     in a hierarchy.
529   * Fixed setSortingEnabled() which could could cause incorrect painting.
531 - QVariant
533   * Fixed behavior where conversion of invalid variants to integers would be
534     incorrectly reported as successful.
536   * Fixed a crash in the compatibility function QVariant::asByteArray()
537     when called on a null variant.
539 - QWidget
541   * Made setWindowTitle() work on hidden widgets that are never shown.
542     (Fixing a bug in QtSingleApplication on Windows.)
544   * Made QWidget::restoreGeometry() restore windows to the correct screen
545     on multi-screen systems.
547   * Fixed a bug where the stacking order of widgets would get out of sync
548     and cause entire widgets, or parts of them, not to be updated properly.
550   * Fixed QWidget::setParent() to not recreate the native window ID of
551     all child widgets when reparenting the parent to top-level.
553   * Fixed incorrect resize handling of dock widgets that are resized to the
554     extent of the screen or to their maximum defined sizes.
556 - QWorkspace
558   * Fixed memory corruption that caused crashes inside Visual Studio.
560 - QMessageBox
562   * Made QMessageBox::setText() adjust the size of the text area
563     when setting a new text. 
565 - QXmlInputSource
567   * Ensured that QXmlInputSource does not read in the whole document at once,
568     enabling arbitrarily large files to be parsed with QXmlSimpleReader.
570 - Qt3 support
572   * Fixed QPainter::xForm() and QPainter::xFormDev().
574   * Fixed crash in Q3IconView when selecting several items without releasing
575     the left mouse button, then clicking the right mouse button.
577   * Fixed incorrect behavior of setLabel() to replace labels rather than
578     inserting more of them.
580   * Ensured that Q3IconView is included in the Desktop Light package.
582   * Fixed regression of a feature in Qt 4.1.4 by reintroducing support for
583     Q3Accel.
585 - QDBus
587   * Fixed getting and setting of invalid properties
588     so the don't cause errors in in libdbus-1.
590   * Fixed bug where QtDBus could generate invalid XML in some cases.
592   * Fixed bug where QtDBus can sometimes generate names that break
593     the standard.
595   * Fixed crash in QtDBus when connecting a signal to a slot with
596     less parameters.
599 ****************************************************************************
600 *                      Platform Specific Changes                           *
601 ****************************************************************************
606   * Fixed positioning of text with stacking diacritics.
608   * Added fixes for Indic text rendering.
610   * Fixed rendering of Greek and other latin scripts with XLFD fonts.
612   * Fixed encoding detection of XLFD fonts.
614   * Fixed crash in QX11EmbedContainer.
616   * Ensured that QPrinter doesn't generate PDF when printing to raw CUPS
617     printers.
619   * Improved behavior of QPrintDialog so that, if CUPS is not installed or
620     reports that no printers are available, it falls back to the printers
621     set up for lpr/lprng.
623   * Fixed paper size selection when printing with CUPS.
625   * Suppressed/avoided the generation of floating point exceptions in the
626     X11 paint engine.
628   * Fixed an endianess issue when drawing QImages.
630   * Fixed X errors when scaling/copying null pixmaps.
632   * Fixed an issue where bitmap/XLFD fonts where drawn garbled.
634   * Fixed X error when resizing to its minimum size.
636   * Fixed widgets painted all black if the system palette contains X11
637     color names.
639   * Fixed loading plugins built in debug mode and linked against the
640     default (release) build.
642   * Fixed input of non-ascii chars in Qt widgets when application was
643     run with empty LANG environment variable.
645   * Fixed QApplication::hasPendingEvents() returning true even if no
646     events were pending when using the Glib event dispatcher.
648   * Fixed rare event loop dead-lock when posting many custom events to
649     a receiver in another thread.
651 - QPlastiqueStyle
653   * Disabled checked radio buttons and checkboxes are now rendered correctly.
656 Windows
657 -------
659   * Fixed drawing of the 0xad character with symbol fonts.
661   * Fixed stacking order of dialogs when a child is created before its
662     parent.
664   * Fixed printing to PDF when no printers are installed.
666   * Fixed "print to file" dialog only showing once after it has been canceled.
668   * Fixed name clashes in enum values when running dumpcpp (ActiveQt).
670   * Fixed a lock-up in QNetworkInterface for machines with multiple network
671     interfaces.
673   * Fixed a lock-up in QAbstractSocket::waitForReadyRead() when 0 was passed
674     as a timeout value.
676   * Fixed "Invalid HANDLE" exception when a non-Qt thread that owns Qt
677     objects terminates.
679   * Fixed potential crash when calling QCoreApplication::applicationFilePath().
681   * Fixed compilation problem with precompiled headers in qt3support. PCH is
682     now disabled for qt3support.
684   * Fixed issues with low-level keyboard handling for certain (international)
685     keyboard layouts where input of accented characters would only work
686     inconsistently.
688   * Fixed bug in QWidget::setGeometry() caused by incorrectly taking the
689     geometry of the window decoration into account.
691   * Made it possible to load files in a Japanese environment.
693   * Improved the appearance of dock widgets on Windows XP.
695   * Fixed the appearance of the window menu when triggered with Alt-Space.
697 - QAxServer
699   * Ensured that characters that some IStorage implementations don't support
700     are removed from stream names.
702   * Fixed regression that prevented ActiveQt controls from being activated
703     once they had been closed.
705 - QSettings
707   * Fixed potential deadlocks that could occur when saving settings,
708     particularly if an error occurs while settings are being written.
710 Mac OS X
711 --------
713   * Fixed a regression that made it impossible to drag images from non-Qt
714     application to Qt applications.
716   * Fixed an issue with flickering/disappearing widgets when the
717     Qt::WA_MacMetalStyle attribute is set.
719   * Updated the documentation to clarify QActionWidget behavior with regard
720     to adding a QActionWidget to a menu in the menu bar and using the same
721     menu as a popup.
723   * Ensured that the correct QList<QUrl> is returned when dragging Finder
724     items to Qt applications.
726   * Documented how to debug with debug frameworks.
728   * Fixed text selection in the PDF generator.
730   * Fixed a bug where the cursor would not switch to the arrow cursor over
731     child widgets with that cursor set.
733   * Fixed incorrect handling of FramelessWindow modal dialogs to ensure that
734     they do not have title bars and cannot be moved.
736   * Fixed a crash that could occur when enabling "Accessibility for assistive
737     devices" in System Preferences while a Qt application was running.
739   * Fixed a painting error where a one-pixel border at the bottom-right
740     corner of widgets wasn't being (re)painted correctly.
742   * Fixed an item view scrolling bug where cell widgets were scrolled
743     incorrectly.
745   * Made handling of popup behavior depend on the window type to ensure that
746     they are raised above other windows correctly.
748   * Fixed crashes caused by incorrect pointer handling for contexts.
750   * Ensured that the resize cursor shape is shown when the mouse cursor is
751     positioned over the edges of floating dock widgets.
753   * Fixed issue that caused menus to be opened behind widgets with the
754     WindowStaysOnTopHint hint set.
755     
756   * Fixed handling of the QAssistantClient class for framework builds.
758 - QMacStyle
760   * Fixed a crash that occurred when an invalid rectangle was given for an
761     inactive button.
762       
763           * Improved performance when rendering vertical gradients.
764         
765 - QSystemTrayIcon
767   * Ensured that the enable state of actions are properly handled and that
768     aboutToShow() is emitted when appropriate.
771 - Qtopia Core
773   * Fixed delivery of mouse events to overlapping popups.
775   * VNC: Fixed use of the VNC driver with the Multi driver.
777   * Fixed cursor state when switching between different screens.
779   * Improved performance when using an accelerated mouse cursor.
781   * Optimized linear gradient drawing using fixed point math for use on
782     platforms without floating point hardware.
784   * QCustomRasterPaintDevice::metric(): Fixed default values of PdmWidth and
785     PdmHeight.
787   * Fixed bug in QWidget::setMask().
789   * Fixed incorrect line edit editing behavior where the contents would be
790     cleared even for read-only line edits in certain situations.
792   * Fixed calibration of rotated screens in the Mouse Calibration example.
794   * Fixed setMode() in the LinuxFb, VNC and Transformed screen drivers.
796   * Fixed crash when using QWSCalibratedMouseHandler with filter size < 3.
798   * Fixed QScreen::alloc() for non-default color maps.
800   * Fixed a bug preventing a QWSEmbedWidget from being displayed if the
801     remote widget was hidden before it was embedded.
803   * Fixed screen area reservation when using the QDirectPainter class.
805   * Fixed compilation of the MySQL driver when using the minimum
806     configuration.
808   * Fixed left-to-right positioning for menu items in XP style.
810 - QVFb
812   * Fixed crash that could occur when switching between certain skins.
814   * Fixed crash that could occur when recording.
816   * Enabled saving of animations in locations other than in /tmp.
818 - QWhatsThis
820   * Fixed the unintentional double shadow effect for "What's This?" help.
823 ****************************************************************************
824 *                             QTestLib                                     *
825 ****************************************************************************
827    * Added missing documentation for the QVERIFY2 macro.