diff -r 000000000000 -r 1918ee327afb dist/changes-4.2.2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dist/changes-4.2.2 Mon Jan 11 14:00:40 2010 +0000 @@ -0,0 +1,827 @@ +Qt 4.2.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 4.2.0. + +The Qt version 4.2 series is binary compatible with the 4.1.x and 4.0.x +series. Applications compiled for 4.0 or 4.1 will continue to run with 4.2. + +**************************************************************************** +* General * +**************************************************************************** + +General Improvements +-------------------- + +- Configuration/Compilation + + * Fixed issues with unresolved zlib symbols on aix-g++ resulting from a + missing "-lz" in gui/Makefile. + + * Fixed compilation when an unsupported version of MySQL is auto-detected + by the configure script. + + * Fixed QtDBus linking errors when compiling with the Intel C++ Compiler + for Linux. + + * Fixed compilation when using Q_ARG and Q_RETURN_ARG macros with template + types. + + * Make Qt compile with QT_NO_TOOLTIP and QT_NO_STATUSBAR + +- Documentation + + * Added new overviews and substantially improved Qtopia Core-specific + documentation. + +- Demos / Examples + + * Fixed crash in the Settings Editor example resulting from entering + certain input to a QTreeWidget using QLineEdit as an inline editor. + + * Fixed crash in the Ported Canvas example that occurred when creating a + new canvas from one that was shrunk to its minimum size. + +- I/O + + * Fixed divide by zero when loading malformed BMP files. + +- Qt Assistant + + * Fixed a bug that prevented the view from scrolling to anchors within + pages. + +- Qt Designer + + * Fixed crash that could occur when pasting a QGridLayout into a + QTabWidget. + + * Fixed the signals & slots connection editor to automatically scroll to + the correct items. + + * Fixed blocking behavior that would occur when previewing modal forms. + + * Made OK the default button in the "Promote to Custom Widget" dialog. + + * Ensured that main window forms that include size grips are repainted + correctly when they are resized. + + * Fixed bug in Form Settings dialog - it wasn't possible to reset the + "Pixmap Function" field. + +- Qt Linguist + + * Fixed bug where lupdate would leave out the namespace part of the context. + + * Fixed bug in lupdate where the paths of the generated ts files was not + relative to the pro file. + + * Fixed bug in lupdate that caused strings that contained \r\n were not + translated. + + * Improved the user interface with some minor layout changes. + + * Improved handling of forms without layouts. + + * Fixed crash caused by navigating to the previous node when the current + node was the first and topmost node. + + * Fixed bug in the preview translation feature where forms that did not + have any layout got a height of 0. + + * Fixed bug where "Search and Translate" did not trigger a repaint on the + items that got translated, leading people to believe that + "Search and Translate" did not work. + + * Fixed a layout problem with the "Search and Translate" dialog. + +- qmake + + * Fixed crash that could occur when using the LIB_PATH variable if a .libs + directory is located on one of the paths held by the variable. + + * Improved generation of Xcode projects to avoid problems with qmake + project files that contain certain Qt-dependent declarations. + + * Improved support for Objective C sources in the Xcode project generator + to ensure that they are added to the project's target. + + +Third party components +---------------------- + +- libpng + + * Security fix (CVE-2006-5793): The sPLT chunk handling code + uses a sizeof operator on the wrong data type, which allows + context-dependent attackers to cause a denial of service (crash) + via malformed sPLT chunks that trigger an out-of-bounds read. + + * Security fix: Avoid profile larger than iCCP chunk. + One might crash a decoder by putting a larger profile inside the + iCCP profile than is actually expected. + + * Security fix: Avoid null dereference. + + * Disabled MMX assembler code for Intel-Mac platforms to work + around a compiler bug. + + +**************************************************************************** +* Library * +**************************************************************************** + +General improvements +-------------------- + +- Accessibility + + * Fixed a potential assert when navigating menus while assistive tools are + running. + + * Fixed a crash when getting accessibility information from an item view + without a model. + + * Fixed item view accessibility bug where QAccessibleInterface::text() + would return an empty string for child indexes larger + than one. + +- Item views + + * Fixed QHeaderView and QTableView overflow issues when the length + of all the rows or columns went over the maximum allowed integer value. + + * When reset is emitted by a QAbstractItemModel, QHeaderView will now + always update the header count(). + + * Fixed incorrect scrolling in QHeaderView when items are hidden. + + * Fixed bug where QHeaderView would disappear if the sections were moved + and the model was reset. + + * QDataWidgetMapper::mappedWidgetAt() now always returns the right + mapped index for a widget no matter in which order they were inserted + + * Fixed crash due to incorrect update of persistent model indexes in + QSortFilterProxyModel::layoutChanged(). + + * Fixed bug that could cause QSortFilterProxyModel::removeRows() and + QSortFilterProxyModel::removeColumns() to remove the wrong source model + items. + + * Fixed bug in QSortFilterProxyModel that caused stale proxy mappings to + remain when source model items were removed and later reinserted, + resulting in an incorrect proxy model. + + * Fixed bug in QSortFilterProxyModel that caused items to not appear + in a QTreeView when adding children to a formerly childless source item. + + * Fixed painting bug for spanning cells in QTableView when the item + background is transparent. + + * Fixed regression in QListWidget and QTreeWidget that caused persistent + indexes to not be updated when sorting items. + + * Enter key can now be used to start item editing when the edit trigger + is AnyKeyPressed. + + * Fixed regression where QAbstractItemView::setRootIndex() wasn't + always updating the view, causing possibly painting errors. + + * Fixed regression that caused incorrect propagation of Enter key press + from a QAbstractItemView in editing mode. + + * Date and time editors are now initialized correctly with the current + date and time. + + * QTableView tab focus handling has been improved. Although tab key + navigation is enabled by default, you can tab out of a view if the + model is either missing or unable to handle the key (e.g., an empty + model). + + * Fixed bug in QItemDelegate that would scale decoration pixmaps. + + * Fixed buge that would not let the column delegate create the editor + for an edited item. + + * Fixed bug where the QTableCornerButton would ignore the view + selectionMode. + + * Fixed compatibility issue with QTreeWidgetItem serialization + between Qt 4.2.x and Qt 4.(0/1).x. + + * Made sure the QTableWidget::cellEntered() signal is emitted + correctly. + + * Made sure that commitData() uses the row/column delegate + when these are set. + + * Fixed incorrect QTableView scrollbar ranges when rows were hidden. + + * Fixed QItemDelegate to let text be bottom aligned. + +- Graphics View + + * The background cache in QGraphicsView is now properly initialized to + the full viewport. + + * Fixed incorrect cursor updates when moving between items. + + * QGraphicsItem::setMatrix() now properly clears the original item before + repainting. + + * QGraphicsEllipseItem is now only drawn as a full ellipse at angles that + are multiples of 360 degrees (..., -720, -360, 360, 720, ...). + + * Fixed a crash when selecting one selectable item, then moving another + movable item. + + * Fixed a crash during item construction caused by a pure virtual function + call in QGraphicsItem. + + * Fixed mouse grabber book-keeping problems in QGraphicsScene which fell out + of sync when opening modal dialogs or popups from within a mouse event + handlers. + + * QGraphicsScene now forwards unhandled events to QObject, allowing the use + of timers in QGraphicsScene subclasses. + +- Meta-Object Compiler (moc) + + * Split long string literals in the generated code to work around + limitations in MSVC. + + * Fixed crash on *BSD that could occur on invalid input. + +- Painting + + * Improved numerical stability in the path stroker, fixing a crash when + stroking paths containing curve segments whose control points are + approximately on the same line. + + * Fixed raster paint engine memory corruption in QBitmap when source buffer + was smaller than the destination buffer. + + * Avoid rounding errors when drawing parts of a pixmap using the Quartz 2D + engine. + + * Added caching of QGradient's color table for the raster paint engine. + This means that if a gradient with the same stops and colors is used + again, it will be quickly fetched from the cache, avoiding the + expensive calculations of the color lookup table. + + * Fixed a crash on Windows and with QImage caused by specifying + Qt::CustomDashLine without an actual pattern. + + * Fixed a bug in the raster paint engine which would occasionally cause + pixel errors when drawing polygons. + + * Fixed memory corruption in the OpenGL paint engine when drawing complex + polygons with a cosmetic pen. + + * Fixed rendering of transformed brushes when drawing linear gradients + with the OpenGL paint engine where the transformations used were not + angle-preserving. + + * Improved handling of OpenGL errors. + + * Fixed bug in the raster paint engine where extra lines would be drawn + when drawing a path partially outside the viewport using a dashed pen. + + * Fixed an assert in QImage that was triggered when reading PNG files + with certain palettes. + + * Fixed an issue where stroking and drawing aliased QPainterPaths with a + non-cosmetic pen would produce incorrect results. + + * Fixed an issue where text was cut off when drawn onto a QImage. + + * Fixed an issue where text would be drawn onto a QPicture with an + incorrect position. + + * Fixed an issue where enabling/disabling clipping when drawing into a + QImage did not have any effect. + + * Fixed bug in QImage::createHeuristicMask where the color table was not + initialized properly. + +- Qt Resource Compiler (rcc) + + * Improved handling of relative paths in .qrc files. + +- Style Sheets + + * Made general performance improvements. + + * Fixed crash that could occur when a widget with a style sheet was + reparented into a widget with no style sheet. + + * Ensured that a widget's custom palette is not overwritten when not styled + using a style sheet. + + * Added support to allow colors to be specified with alpha components. + + * Added support for group box styling. + + * Removed broken support for automatic image scaling. + +- SQL plugins + + * Fixed incorrect translation of error strings in the Oracle plugin. + + * Made sure PQfreemem is called to free allocated buffers in PostgreSQL. + + * Fixed regression from Qt 4.1.4 behavior that prevented tables in schemas + from working correctly in the SQL data models. + + * Prevented possible trailing garbage for TEXT fields in the MySQL plugin. + +- Text handling + + * Fixed a bug in the Bidi algorithm. + +- QAbstractItemView + + * Made commitData() more robust by ignoring cases in which no valid index + is associated with the editor. + + * Ensured that the itemEntered() signal is emitted consistently on all + platforms. + +- QBrush + + * Ensured that transformations are correctly copied when brushes are copied. + +- QCalendarWidget + + * Fixed setting the text format, correcting repainting and date resetting + issues. + +- QComboBox + + * Fixed wrong scroll arrows for the popup menu. + +- QCompleter + + * Fixed issue where the highlighted() signal was emitted twice if + setModel() was called twice. + + * Made completers usable inside dialogs. + +- QDataStream + + * Fixed streaming of qreal on (embedded) platforms where qreal values are + not equivalent to double values; i.e., sizeof(qreal) != sizeof(double). + +- QDateTime/QDateTimeEdit + + * Fixed a bug that allowed you to type in larger numbers than 12 in 12-hour + fields. + + * Fixed a bug that occurred when QDate::shortMonthName() was longer than + 3 characters. + + * Improved the handling of left-to-right languages. + +- QDialogButtonBox + + * QDialogButtonBox now sets the default button to the first button with + the Accept role if no other button has explicitly been set as the + default when it is shown. This is to stop a regression where using the + autoDefault property with the Mac and Cleanlooks styles would set the + Cancel button as the default. + +- QDir + + * Fixed an assert in QDir::entryList() when reading file entries with + names containing invalid Unicode encodings. + +- QFileDialog + * Fixed bug that showed a non-existing folder for every space the user typed + after a dot (.) in the lineedit. + +- QFileSystemWatcher + + * Fixed compilation on Linux/HPPA. + +- QFSFileEngine + + * Fixed broken UNC path support. + +- QIODevice + + * Fixed a data corruption bug when reading large blocks from devices + opened in Text mode. + + * Fixed seeking to positions larger than the maximum allowed integer value. + +- QLineEdit + + * Fixed scrolling in line edits with custom paddings. + + * Fixed crash on Linux when the text contains QChar::LineSeparator. + +- QListView/QListWidget + + * Fixed bug with cursor navigation in cases where a grid size has been + set. + + * Ensured that the drop indicator is not shown in icon view mode to avoid + painting artifacts. + +- QLocale + + * Fixed crash on Mac OS X and Windows caused when one of the separator + strings was an empty string. + + * Fixed double to string conversion bug on embedded architectures. + +- QMainWindow + + * Fixed bug allowing non-floatable dock widgets to be floated when the + DockWidgetMoveable option is set. + + * Fixed several bugs in laying out docked QDockWidgets which have + minimumSize() and/or maximumSize() set. + + * Improved saving and restoring of the state of main windows and their dock + widgets when using saveState() and restoreState(). + + * Fixed handling of dock widgets that are non-closable to the user so that + they can be programmatically closed. + + * Fixed regression from Qt 4.1.4 behavior to ensure that palette changes + to main windows are also propagated to their children. + +- QMenuBar + + * Improved event handling to avoid sending events when a menu bar has no + parent widget. + +- QObject + + * Fixed memory leak when calling QObject::moveToThread(0). + +- QPainter + + * Fixed reentrancy issue that would otherwise lead to crashes if more than + one QImage is deleted at the same time (from different threads). + +- QPalette + + * Improved handling of the palette obtained from QApplication::palette() + in cases where QApplication::setStyle() has been called before a + QApplication instance has been constructed (as recommended by the + documentation). + +- QPluginLoader + + * Fixed a potential crash that could occur when calling staticInstances() + from a global destructor. + +- QProgressBar + + * Document that drawing of text in vertical progress bars is style-dependent. + +- QSqlRelationalTableModel + + * Ensured that the internal cache is correctly cleared when reverting + inserted rows. + +- QSvg + + * Improved parser robustness and parsing speed. + +- QTextCodec + + * Fixed race-condition in QTextCodec::codecForLocale(). + + * Fixed potential off-by-one string handling bug. + +- QTextDocument + + * Fixed support for pixel font sizes in imported HTML. + +- QTextOption + + * Ensured that the textDirection property is respected. + +- QTextStream + + * Ensured that readLine() no longer treats "\r\n" as being two lines if + called after QTextStream::pos(). + +- QToolButton + + * Fixed an issue where tool button popup menus were positioned incorrectly + on multi-screen setups. + +- QTreeView/QTreeWidget + + * Fixed possible assert when painting if there were layouts pending. + + * Fixed possible segfault when a model emits layoutChanged(). + + * Fixed erroneous expanding/collapsing of items when the user + double-clicked in the checkbox area of an item. + + * Fixed a crash in setRowHidden() caused by hiding then un-hiding items + in a hierarchy. + + * Fixed setSortingEnabled() which could could cause incorrect painting. + +- QVariant + + * Fixed behavior where conversion of invalid variants to integers would be + incorrectly reported as successful. + + * Fixed a crash in the compatibility function QVariant::asByteArray() + when called on a null variant. + +- QWidget + + * Made setWindowTitle() work on hidden widgets that are never shown. + (Fixing a bug in QtSingleApplication on Windows.) + + * Made QWidget::restoreGeometry() restore windows to the correct screen + on multi-screen systems. + + * Fixed a bug where the stacking order of widgets would get out of sync + and cause entire widgets, or parts of them, not to be updated properly. + + * Fixed QWidget::setParent() to not recreate the native window ID of + all child widgets when reparenting the parent to top-level. + + * Fixed incorrect resize handling of dock widgets that are resized to the + extent of the screen or to their maximum defined sizes. + +- QWorkspace + + * Fixed memory corruption that caused crashes inside Visual Studio. + +- QMessageBox + + * Made QMessageBox::setText() adjust the size of the text area + when setting a new text. + +- QXmlInputSource + + * Ensured that QXmlInputSource does not read in the whole document at once, + enabling arbitrarily large files to be parsed with QXmlSimpleReader. + +- Qt3 support + + * Fixed QPainter::xForm() and QPainter::xFormDev(). + + * Fixed crash in Q3IconView when selecting several items without releasing + the left mouse button, then clicking the right mouse button. + + * Fixed incorrect behavior of setLabel() to replace labels rather than + inserting more of them. + + * Ensured that Q3IconView is included in the Desktop Light package. + + * Fixed regression of a feature in Qt 4.1.4 by reintroducing support for + Q3Accel. + +- QDBus + + * Fixed getting and setting of invalid properties + so the don't cause errors in in libdbus-1. + + * Fixed bug where QtDBus could generate invalid XML in some cases. + + * Fixed bug where QtDBus can sometimes generate names that break + the standard. + + * Fixed crash in QtDBus when connecting a signal to a slot with + less parameters. + + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + +X11 +--- + + * Fixed positioning of text with stacking diacritics. + + * Added fixes for Indic text rendering. + + * Fixed rendering of Greek and other latin scripts with XLFD fonts. + + * Fixed encoding detection of XLFD fonts. + + * Fixed crash in QX11EmbedContainer. + + * Ensured that QPrinter doesn't generate PDF when printing to raw CUPS + printers. + + * Improved behavior of QPrintDialog so that, if CUPS is not installed or + reports that no printers are available, it falls back to the printers + set up for lpr/lprng. + + * Fixed paper size selection when printing with CUPS. + + * Suppressed/avoided the generation of floating point exceptions in the + X11 paint engine. + + * Fixed an endianess issue when drawing QImages. + + * Fixed X errors when scaling/copying null pixmaps. + + * Fixed an issue where bitmap/XLFD fonts where drawn garbled. + + * Fixed X error when resizing to its minimum size. + + * Fixed widgets painted all black if the system palette contains X11 + color names. + + * Fixed loading plugins built in debug mode and linked against the + default (release) build. + + * Fixed input of non-ascii chars in Qt widgets when application was + run with empty LANG environment variable. + + * Fixed QApplication::hasPendingEvents() returning true even if no + events were pending when using the Glib event dispatcher. + + * Fixed rare event loop dead-lock when posting many custom events to + a receiver in another thread. + +- QPlastiqueStyle + + * Disabled checked radio buttons and checkboxes are now rendered correctly. + + +Windows +------- + + * Fixed drawing of the 0xad character with symbol fonts. + + * Fixed stacking order of dialogs when a child is created before its + parent. + + * Fixed printing to PDF when no printers are installed. + + * Fixed "print to file" dialog only showing once after it has been canceled. + + * Fixed name clashes in enum values when running dumpcpp (ActiveQt). + + * Fixed a lock-up in QNetworkInterface for machines with multiple network + interfaces. + + * Fixed a lock-up in QAbstractSocket::waitForReadyRead() when 0 was passed + as a timeout value. + + * Fixed "Invalid HANDLE" exception when a non-Qt thread that owns Qt + objects terminates. + + * Fixed potential crash when calling QCoreApplication::applicationFilePath(). + + * Fixed compilation problem with precompiled headers in qt3support. PCH is + now disabled for qt3support. + + * Fixed issues with low-level keyboard handling for certain (international) + keyboard layouts where input of accented characters would only work + inconsistently. + + * Fixed bug in QWidget::setGeometry() caused by incorrectly taking the + geometry of the window decoration into account. + + * Made it possible to load files in a Japanese environment. + + * Improved the appearance of dock widgets on Windows XP. + + * Fixed the appearance of the window menu when triggered with Alt-Space. + +- QAxServer + + * Ensured that characters that some IStorage implementations don't support + are removed from stream names. + + * Fixed regression that prevented ActiveQt controls from being activated + once they had been closed. + +- QSettings + + * Fixed potential deadlocks that could occur when saving settings, + particularly if an error occurs while settings are being written. + +Mac OS X +-------- + + * Fixed a regression that made it impossible to drag images from non-Qt + application to Qt applications. + + * Fixed an issue with flickering/disappearing widgets when the + Qt::WA_MacMetalStyle attribute is set. + + * Updated the documentation to clarify QActionWidget behavior with regard + to adding a QActionWidget to a menu in the menu bar and using the same + menu as a popup. + + * Ensured that the correct QList is returned when dragging Finder + items to Qt applications. + + * Documented how to debug with debug frameworks. + + * Fixed text selection in the PDF generator. + + * Fixed a bug where the cursor would not switch to the arrow cursor over + child widgets with that cursor set. + + * Fixed incorrect handling of FramelessWindow modal dialogs to ensure that + they do not have title bars and cannot be moved. + + * Fixed a crash that could occur when enabling "Accessibility for assistive + devices" in System Preferences while a Qt application was running. + + * Fixed a painting error where a one-pixel border at the bottom-right + corner of widgets wasn't being (re)painted correctly. + + * Fixed an item view scrolling bug where cell widgets were scrolled + incorrectly. + + * Made handling of popup behavior depend on the window type to ensure that + they are raised above other windows correctly. + + * Fixed crashes caused by incorrect pointer handling for contexts. + + * Ensured that the resize cursor shape is shown when the mouse cursor is + positioned over the edges of floating dock widgets. + + * Fixed issue that caused menus to be opened behind widgets with the + WindowStaysOnTopHint hint set. + + * Fixed handling of the QAssistantClient class for framework builds. + +- QMacStyle + + * Fixed a crash that occurred when an invalid rectangle was given for an + inactive button. + + * Improved performance when rendering vertical gradients. + +- QSystemTrayIcon + + * Ensured that the enable state of actions are properly handled and that + aboutToShow() is emitted when appropriate. + + +- Qtopia Core + + * Fixed delivery of mouse events to overlapping popups. + + * VNC: Fixed use of the VNC driver with the Multi driver. + + * Fixed cursor state when switching between different screens. + + * Improved performance when using an accelerated mouse cursor. + + * Optimized linear gradient drawing using fixed point math for use on + platforms without floating point hardware. + + * QCustomRasterPaintDevice::metric(): Fixed default values of PdmWidth and + PdmHeight. + + * Fixed bug in QWidget::setMask(). + + * Fixed incorrect line edit editing behavior where the contents would be + cleared even for read-only line edits in certain situations. + + * Fixed calibration of rotated screens in the Mouse Calibration example. + + * Fixed setMode() in the LinuxFb, VNC and Transformed screen drivers. + + * Fixed crash when using QWSCalibratedMouseHandler with filter size < 3. + + * Fixed QScreen::alloc() for non-default color maps. + + * Fixed a bug preventing a QWSEmbedWidget from being displayed if the + remote widget was hidden before it was embedded. + + * Fixed screen area reservation when using the QDirectPainter class. + + * Fixed compilation of the MySQL driver when using the minimum + configuration. + + * Fixed left-to-right positioning for menu items in XP style. + +- QVFb + + * Fixed crash that could occur when switching between certain skins. + + * Fixed crash that could occur when recording. + + * Enabled saving of animations in locations other than in /tmp. + +- QWhatsThis + + * Fixed the unintentional double shadow effect for "What's This?" help. + + +**************************************************************************** +* QTestLib * +**************************************************************************** + + * Added missing documentation for the QVERIFY2 macro.