Qt 4.2.3 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 architecture detection on UltraSPARC-T1 systems. * Fixed compilation on embedded architectures when qreal is not double. * Compile on OpenBSD. - Documentation * Completed documentation for "Implementing Atomic Operations", which is useful for people porting Qt to a new hardware architecture. - Translations * Added a new unofficial Portuguese translation courtesy of Helder Correia. - Qt Linguist * Made the columns in the phrasebook resizeable. - lupdate * Fixed bug in the .pro parser of lupdate. It should accept backslashes. * Fixed a severe slowdown in lupdate. (~400x speedup.) * Fixed traversal of subdirectories. - moc * Don't create trigraphs in the generated code for C++ casts. - uic * Fixed a bug that generated excessive margins for Q3GroupBox. Third party components ---------------------- - libpng * Security fix: Avoid null dereferences. **************************************************************************** * Library * **************************************************************************** General improvements -------------------- - Graphics View * Calling QGraphicsScene::update() without arguments now correctly updates the entire scene. * Changing the background brush in QGraphicsScene now correctly updates the entire scene * Fixed a crash in QGraphicsScene due to stale pointers in the BSP tree. * QGraphicsScene::createItemGroup() now allows you to create an empty group (previously caused an assert in debug mode). * Fixed rendering bugs with QGraphicsPixmapItem::offset(). * Adding an item to a QGraphicsScene now always implicitly causes an update. * Fixed a crash caused by deleting a QGraphicsScene that is being viewed by a QGraphicsView. * Items with zero width or height (e.g., a horizontal or vertical line with a zero-width cosmetic pen) are now rendered correctly. * Fixed a crash in QGraphicsScene::destroyItemGroup(), and when removing items from a group. - Item views * Fixed data loss in QTreeWidget, QTableWidget and QListWidget that occurred when performing a drag and drop copy operation on items containing data in custom roles. * Fixed signal emission bugs in QSqlQueryModel and QSqlTableModel that caused the view to contain invalid items when used with a QSortFilterProxyModel. * Fixed a bug in word-wrapped text that could cause all new-line characters, and the last line in string containing at least one newline character, to be removed. * Fixed bug in QListView where the last item of a batch was not always displayed. - QAction * Fixed a possible crash when using alternate shortcuts on a QAction. - QByteArray * Fixed a crash in toUpper(). - QCleanlooksStyle * Indeterminate progress bars are now correctly animated. - QComboBox * Fixed broken case sensitive completion. * Changing the font on a QComboBox now changes the font on the popup as well. - Q3TextEdit * Fixed regression where some shortcuts didn't work on Mac OS X. - Q3Canvas * Fixed potential memory overrun when determining a clipping chunk. - Q3Socket * Fixed unexpected remote disconnection bugs (also QTcpSocket). - QFile * Performance enhancements in QFile::copy(). * Allow reading past the previous end of the file if the file grows. * Reliably allow QFile::readLine() and QFile::readAll() to be used to read from stdin on all platforms. - QFileDialog * Fixed crash that could occur when the filter began with ';;'. * Fixed assertion caused by calling setFilters() with an empty list. * Fixed problem with file entries not being laid out correctly. - QGridLayout * Fixed bug in handling of fixed size spacers spanning multiple rows/columns - QLayout * Fixed bug caused by setting minimumSize() and SizePolicy::Fixed on a widget that implements minimumSizeHint() but not sizeHint(). - QLineEdit * Fixed crash caused by moving the cursor over a QChar::LineSeparator in the text. - QPainter * Fixed bug in QPainter::drawPoints() when using the raster paint engine which caused some points to be missing. * Removed memory leak in raster paint engine when drawing complex polygons/paths. - QProcess * Fixed a crash that could occur when calling QProcess::waitForFinished() from inside a slot connected to a signal emitted by QProcess. * Fixed a race condition on Windows where QProcess::bytesToWrite() would return a short byte count. - QTextDocument * Fixed find() with backward searches. * Match CSS style selector case insensitively. * Fixed HTML import for tables with missing cells and rowspan/colspan attributes. - QSortFilterProxyModel * Fixed a crash caused by calling filterChanged(). * Fixed a crash caused by removing items from the source model. * Fixed a bug that could cause a model to enter an invalid state when filtering items in a hierarchy, causing items in a QTreeView to erroneously be collapsed. * Fixed a bug that could cause invalid items to be added when inserting new items to the source model. - QSyntaxHighlighter * Fixed failing assertion that could occur when installing a syntax highlighter before the document has created a layout. - QPluginLoader * Fixed compilation of Q_EXPORT_PLUGIN when used with templates. - QTcpSocket * Fixed a bug where QTcpSocket would time out when connecting to a closed service on Windows. * Fixed a race condition when calling waitFor...() functions with a very short timeout value. * Fixed unexpected remote disconnect problems on Windows. * Improved the reliability of the waitFor...() functions with SOCKS5 proxy support. - QTextLayout * Fixed rendering of surrogate pairs and cursor navigation with them. - QTextEdit * Fixed crash in QTextEdit::setExtraSelection() that could occur when used with null cursors. * Fixed scrollbar bug which could cause the bottom of the text to be unreachable. - QTextStream * Fixed QTextStream::readLine() so it can be used reliably with stdin on all platforms, and updated the documentation to reflect this. - QMacStyle * Ensured that tab bars are drawn correctly regardless of the font used. - QMenuBar * Properly marked the "text heuristic matching" strings for translation. - QMenu * Fixed incorrect scrolling on large menus on Mac OS X. - QPlastiqueStyle * Ensured that indeterminate progress bars are now always animated and fixed a rendering bug. - QPrinter * Fixed a bug on X11 that caused the printer to generate too many copies. * Fixed a bug in the PostScript driver that could cause invalid PostScript to be generated. - QSqlRelationalTableModel * Ensured that the internal cache is cleared after QSqlRelationalTableModel::submitAll() is called. - QSqlDriver * Ensured that QSqlDriver::formatValue() doesn't cut off characters from field names. - QTextTable * Removed false assertion when deleting the first row or column in a table. * Fixed crash when splitting cells in the rightmost column of a table. * Fixed issue where QTextTable::splitCells() would shift cells further down in the table. * Fixed crash in QTextTable::mergeCells() caused by merging an already merged cell. - QToolTip * Fixed QToolTip sizes when used with HTML tags like
. - QUdpSocket * Fixed a busy-wait causing the event loop to spin when writing a datagram to an unbound port. * QUdpSocket now reliably emits readyRead() in connected mode. - QUrl * Fixed a crash that would occur as a result of calling errorString() on an empty URL. - SQL plugins * Prevent crashes in QSqlQuery after reopening a closed ODBC connection. * Prevent crash when retrieving binary data from ODBC. * The Interbase driver now returns a valid handle through QSqlDriver::handle(). - QMutex * Fixed race condition in QMutex::tryLock() that would prevent all other threads from acquiring the mutex - QList * Fixed crash when modifying a QList that must be detached from a separate thread - QWidget * Fixed case where a modal dialog could be stacked below its parent window when the dialog was shown first * Fixed an erroneous hideEvent() from being sent immediately after window creation * Fixed problem with missing text in QWidget::whatsThis(). - QWindowsStyle * Fixed a crash that could occur when deleting a QProgressBar after its style was changed. - QVariant * Fixed assertion caused by streaming in a variant containing a float. - QAbstractItemView * Fixed focus problem with cell widgets. - QTableView * Fixed problem with context menus clearing the selections. - QHeaderView * Fixed assertion that could occur when removing all sections when some sections had been moved. * Fixed a bug that could prevent the user from resizing the last visible section if the "real" last section was invisible. - QListView * Fixed crash when calling reset. - QTableWidget * Fixed painting problem that could occur when rows were swapped. - QTreeView * Fixed a crash that could appear when removing all the children of an item. **************************************************************************** * Platform Specific Changes * **************************************************************************** X11 --- * Fixed detection of Type1 symbol fonts. * Fixed crash on exit in QSystemTrayIcon when QApplication is used as the parent. * Fixed animation GUI effects on tooltips, menus, and comboboxes. * Fixed crashes in threaded programs when Qt uses the Glib main loop. * Fixed bug where an empty LANG environment variable could prevent input of non-ASCII chars in Qt widgets. * Fixed leak of initial style created by QApplication after calling QApplication::setStyle(). * Fixed erroneous event delivery to a widget that has been destroyed. * Prevent shortcuts for keypad arrow keys from being activated when Num Lock is on. * Fixed bug which caused incorrect drawing of subrectangles of bitmaps. * Fixed bug in rendering of the Bengali script. Windows ------- * Fixed compilation with -no-stl. * Fixed compilation with Windows SDK for Vista. * Fixed an issue that could cause missing text when Cleartype was used. * Fixed the hot-spot locations for OpenHandCursor and CloseHandCursor. * Fixed infinite warning loop about adopted threads in applications with many threads. * Fixed assertion caused by hiding a child widget whose window has not yet been created. * Fixed QWindowsXPStyle so that it is possible to draw a QStyle::CE_DockWidgetTitle without having an actual instance of QDockWidget. * Fixed crash when drawing text with large font sizes. * Fixed support for the Khmer language. * Fixed incorrect reporting of frameGeometry() after a window is closed. * Fixed crash when handling spurious WM_CHAR from Remote Desktop Client. * Fixed crash in JPEG plugin while loading. * Fixed crash in QFileDialog::getExistingDirectory() when specifying a parent that has not been shown yet. Mac OS X -------- * Fixed regression where dragging/copying Unicode text in Qt to another application would only export the non-Unicode version. * Fixed regression where releasing the mouse button would send two mouse releas events to a widget. * Fixed regression where the drop action would be reset after a native "DragLeave" event was received. * Wrapping a (non-Qt) window's content view and resizing before showing the window for the first time now works correctly. * Ensured that the content view is always created before we QWidgets are added to a window - this allows better integration with Cocoa apps. * Fixed regression where text/uri-list was inadvertently disabled for clipboards. * Fixed regression where setting the brushed metal style on a message box would show the label in a non-metallic style. * Fixed the open source binary package to have the correct definitions for development. Qtopia Core ----------- * Fixed a data corruption bug in QDataStream on ARM processors where reading and writing doubles/qreals would be incompatible with streams on other platforms. Note: corrupt data streams generated with previous versions of Qtopia Core on ARM platforms cannot be read with this version. * Fixed a possible buffer overflow in the VNC driver. * Fixed a memory leak in the windowing system. * Fixed painting errors occuring with use of QT::WA_PaintOnScreen on certain screen configurations. * Improved performance when using a 16-bit brush as the background on a 16-bit screen. * Improved performance of 16-bit semi-transparent solid fills. * Fixed crash that could occur when saving a 16-bit image in BMP or PPM formats. * Fixed bug where window icons would not be shown in Plastique style. * Fixed bug in QWSServer::setMaxWindowRect() on rotated displays. * Fixed crash with normalized Unicode characters and QPF fonts. * Ensured that QWidget::minimumSize() does not become larger than the screen size.