Qt 4.3.1 is a bug-fix release. It maintains both forward and backward compatibility (source and binary) with Qt 4.3.0. The Qt version 4.3 series is binary compatible with the 4.2.x, 4.1.x and 4.0.x series. Applications compiled for Qt 4.0, 4.1 or 4.2 will continue to run with Qt 4.3. **************************************************************************** * General * **************************************************************************** General Improvements -------------------- - Translations * Updated the German translation to provide complete coverage of Qt. - QDBusView * Added icons for Mac OS X and Windows. - Intel C++ Compiler for Linux * Added support for version 10 of the compiler. See the Compiler Notes documentation for known problems and work-arounds for this compiler. * Added linux-icc-32 mkspec, for building with the 32-bit compiler on 64-bit hosts. Third party components ---------------------- - FreeType * Security fix (CVE-2007-2754): Integer overflow in the TT_Load_Simple_Glyph function in freetype 2.3.4 and earlier allows remote authenticated users to execute arbitrary code via crafted BDF fonts. - SQLite * File descriptors are not inherited during spawn() anymore. Build System ------------ * Fixed native builds on ARM architectures. **************************************************************************** * Library * **************************************************************************** General Improvements -------------------- - QAbstractItemView * [166605] Fixed regression causing keyboard modifiers to have no effect during drag and drop operations. * [169233] Fixed bug that would prevent text from being selected in double spin box editors. * [168917] Text would sometimes not be selected in the editor. - QAbstractItemModel * [166714] Fixed regression causing persistent indexes to not be correctly updated. - QAbstractPrintDialog * [163000] Fixed bug on Unix where the PrintSelection option would not be enabled unless PrintPageRange was also enabled. - QApplication * [166677] Windows only: Fixed an issue with alert() where windows would keep flashing after being activated by the user. * [168974] Fixed problems with compilation that could occur when QT3_SUPPORT and QT_NO_CURSOR were defined. - QComboBox * [165130] Mac OS X only: Fixed bug that caused an editable combo box to cut off list entries. - QDesktopServices * [165817] Fixed misleading documentation of QDesktopServices::setUrlHandler(). - QDialog * [166900, 166514] Fixed bug where a dialog could remain visible after hide() had been called. - QFile * [167217] Fixed regression that prevented the sequential bit from being reset when reopening a file. - QFileDialog: * [164947] Mac OS X only: Ensure that the parent of a native sheet dialog is activated before a sheet is shown. - QFSFileEngine: * [163406] Ensured that QFile::readLine() works on all platforms when QFile is opened on file descriptor 0. - QGLWidget * [162085] X11 only: Fixed usage of QGLWidget on multiple X11 screens. * [164707] X11 only: Fixed the transparent overlay color usage to make it possible to draw with a solid black color. Qt::transparent is now always returned as the transparent color in an overlay. * [162143] Fixed a crash that could occur when calling renderPixmap() with extremely large sizes. It now gracefully fails instead. - QGraphicsItem * [163430] Improved precision of QGraphicsItem::ItemIsMovable move operations, and fixed move support for QGraphicsItem::ItemIgnoresTransformations. - QGraphicsItemAnimation * [164585] Fixed setTimeLine(0) to properly remove the existing timeline, and also ensured that setting the same timeline twice works fine. - QGraphicsScene * [163555] Flat items (items whose bounding rect width or height is 0) no longer cause a full viewport update when they are updated. - QGraphicsView * [160828] Fixed bug in QGraphicsScene/View::render() which could cause nothing to be rendered for QPicture target devices. * [163919] Scroll bar ranges are no longer reset to (0,0) when the scroll bars are disabled (Qt::ScrollBarAlwaysOff). * [163537] Scroll bar ranges are now correct also for styles with a viewport frame only around the viewport itself (e.g., Motif and Mac OS X style). * [158245] Calling setScene(0) now recalculates the scroll bar ranges. * [170619, 157400] Fixed rendering bugs that could occur when using a semi-transparent foreground or background brush. * [170619, 168885] Fixed a bug that would cause the rubber band to appear after invoking a context menu. - QHostInfo * [168233] Ensured that all pending look-ups are terminated on application exit to avoid a delayed application shutdown while waiting for the look-ups to complete. * [167487] Fixed support for Unix platforms that allow IPv6 look-ups through getaddrinfo(), but that don't support IPv6 sockets. - QImage * [163727] Fixed artifacts in scaled images that could occur when using Qt::FastTransformation. * [169908] Fixed a crash that could occur when reading 4-bit uncompressed BMP images. - QLocale * [167534] Fixed bug that would cause QLocale::toString() to return garbage if passed an invalid time or date. - QMainWindow * [166004, 167651] Made the unified toolbar handle layout requests. * Mac OS X only: Don't move the window's title bar when clicking on the toolbar button. * [164105] Made the unified toolbar handle showMaximized(). * [162555] Move OpenGL contexts when the toolbar button is pressed and we are using the unified toolbar. * [169063] Fixed a crash that could occur when setting a new menu bar and the old one contained corner widgets. - QMdiArea * [162573] Improved switching between maximized subwindows (less flickering). * [162046, 164264] Improved activation behavior. * [170770] Fixed inconsistent behavior with scroll bars when a subwindow is maximized. * [169873] Fixed incorrect positions of tiled subwindows. - QMdiSubWindow * [168129] Improved the way a default window icon is selected. * [169859] Improved menu bar buttons for maximized subwindows. * Improved support for size grips. * [169543] Windows only (XP style): Fixed a problem where the frame width was 1 pixel wider than it should have been. * [168829] Fixed incorrect margins of maximized subwindows inside QMainWindow. - QMenu * [166652] Fixed a regression where context menus could not be triggered with the right mouse button. * [161789] Fixed a bug that prevented tear-off handles from being activated when they were dragged down from the menu bar item. - QMenuBar * [168892] Fixed bug that made the extension always appear when adding a separator to a menu bar. * [166181] Fixed bug that caused extensions to be misplaced. * [166242] Fixed bug that could cause menus to be collapsed. - QMessageBox * Ensured that the default button isn't lost when the modality of the message box is changed. - QMacStyle * Ensured that items with State_Focus actually get the focus ring drawn. - QNetworkProxy * [170549] Fixed a regression from 4.2.3 in the default constructor; if used before any other proxy settings were applied, it would fail to initialize the proxy handlers, effectively disabling support for SOCKS5 and HTTP proxies. - QOpenGLPaintEngine * [166087] Fixed a memory leak caused by not releasing GL program handles if they failed to compile. * [166054] Ensured that push and pop operations are performed on the texture matrix stack and the client state attributes when begin() and end() are called. * [161021] Fixed rendering of points with cosmetic pens with widths greater than 0. - QPainter * [158815] Fixed rendering artifacts for extended composition modes with semi-transparent or anti-aliased drawing. * [163744] Fixed aliased ellipse drawing artifacts (horizontal lines) in raster engine. * [166623] Fixed bug where gradients with ObjectBoundingMode would be drawn at an incorrect offset. * [167497] Fixed color bleeding artifacts at the edges when drawing images/pixmaps with SmoothPixmapTransform on X11. * [168621] Fixed bug which would cause projective transformations to be incorrectly applied for non-top-level widgets. * [168623] Fixed drawing of gradients with projective transformations. * [167891] Fixed an assert in QBezier::shifted() that occured when drawing certain paths. - QPlastiqueStyle * [167145] Fixed a regression with combo and spin box text margins. - QPrintDialog X11 only: * [142701] Fixed an assert which could occur on a system with CUPS setup, but no printers available. * [165957] Added support to allow printers to be chosen from the NPRINTER and NGPRINTER enviroment variables. Ensured that CUPS command line options are not used when not using CUPS. * [158807] Fixed page ordering when printing to a CUPS printer or to PDF files. * [155129] Fixed Landscape printing with CUPS version < 1.2. Windows only: * [166054] Fixed a crash which could occur when trying to use a QPrintDialog to configure a printer set to use QPrinter::PostScriptFormat as output format. * [162729] Fixed an assert that could occur when entering an invalid page range. - QPrintEngine * [166499] Windows only: Fixed a bug that could cause printing from a QTextEdit to produce incorrect wrong results under certain circumstances. * [161915] Mac OS X only: Drawing vertical lines with a dot pattern now work correctly on OS X 10.3.9. - QProcess * [161944] QProcess::setReadChannel() no longer affects the contents of the stderr / stdout / unget buffers. QProcess::readAllStandardError() and QProcess::readAllStandardOutput() no longer clear any unget data or buffered data. - QPixmap * [167841] Fixed bug where filling a QPixmap with an alpha color would fail to detach the pixmap, causing copies of the pixmap to be changed as well. * [157166] X11 only: Fixed problem with disappearing icons on 8-bit TrueColor displays. * [161307] Mac OS X only: Drawing bitmaps on pixmaps now works correctly. - QRasterPaintEngine * [166710] Fixed bug that prevented Qt::OpaqueMode from being taken into account under certain circumstances when QPainter::fillRect() was called. * [159538] Fixed drawing of a monochrome image into another monochrome image. * [166000] Fixed compilation of mmxext optimizations. * [156925] Fixed performance bug in 3DNow! optimizations. - QRegion * [167445] Removed potential assert in QRegion::operator^ on Unix. - QScriptEngine * [165899] Fixed bug where calling an overloaded slot from a script would pick the wrong overload when the argument is a QObject. * [166903] Fixed crash when evaluating a call to a script function that ends with an if-statement with a true-part that ends with a return statement (and has no else-part). - QScrollArea * [167838] Use micro focus rectangle (if "active") instead of the entire widget in ensureWidgetVisible(). - QSortFilterProxyModel * [167273] Fixed regression that caused QSortFilterProxyModel to assert when changing data in a QSqlTableModel source model with the OnFieldChange edit strategy. - QSqlQueryModel * [166880] Fixed a bug where setQuery() could cause a crash by calling hasFeature() on the wrong driver instance. - QSqlRelationalTableModel * [140782] Fixed a bug which caused insertRecord() to fail when record() returns a record containing duplicate field names. - QSslCertificate * [168116] Don't crash when passing 0 to QSslCertificate::fromDevice(); issue a warning instead. This fix also removes warnings about uninitialized symbols when accessing the static functions in QSslCertificate before creating a QSslSocket. - QSslSocket * [164356] Fixed a crash that could occur when passing a string to setCiphers(). * [166633] Fixed a memory leak that would occur with each established connection. * [165962] Fixed support for wildcard certificates. * [167593] Fixed a bug that caused QSslSocket::protocol() to be ignored and set to the default of SSLv3 under certain circumstances. * [167380] Fixed a crash when assigning a null key for SSL servers. * [169571] Fixed a crash that could occur after disconnecting from a remote address. - QTcpSocket * [169183] Removed a qWarning() when reading from a closed socket (regression from 4.2.3). - QTemporaryFile * [167565] Fixed a regression from 4.2.3; size() would always return 0. - QTextEdit * [161577] Fixed regression causing Shift-Backspace to be ignored. * [165833] Fixed floating point overflow causing incorrect page heights for text documents. * [167377] Fixed performance regression when appending a lot of text in NoWrap line break mode when there is a horizontal scroll bar. * [163446] Fixed excessive emission of selectionChanged() signals when moving the cursor. * [167701] Fixed QTextEdit::setLineWrapMode to not change the wordWrapMode property when called with NoWrap. - QTextDocument * [160631] Fixed missing HTML export of page break policies. * [163258] Fixed bug that prevented text table borders from being drawn in QLabels and tool tips. * [166670] Fixed layout bug that caused the right margin property of paragraphs inside table cells to be ignored. * [168406] Fixed rendering bug which would cause incorrect background fills for paragraphs with a left margin set. - QTextLayout * [166083] Fixed incorrect line breaking when breaking at a tab character. * [165861] Fixed support for QTextOption::NoWrap. - QLabel * [162515] Fixed bug that prevented QLabel's alignment from being applied properly to rich text. - QUrl * Fixed a bug in QUrl::clear() which left some internal data uncleared. - QWidget * [165177] Fixed crash that could occur when deleting a focus widget from a window with a non-null parent. * [165654] Fixed issue with incorrect repainting that could occur when deleting an opaque child widget. - QWindowsVistaStyle * [162730] Fixed the use of an incorrect font for item views on Windows Vista. * [157324] Improved the native appearance of indeterminate progress bars. * [170012] Fixed a bug which prevented the busy mode of a progress bar from working when both its range and value were set to zero. - QWindowsXPStyle * [132695] Fixed a crash issue that could occur after multiple system theme changes. - QWizard * [159684] AeroStyle: Fixed bug that caused the minimum height to be set too low. * [161670] AeroStyle: Fixed a problem that caused title bar buttons to remaining glowing after the mouse had left the window. * [161678] AeroStyle: Fixed a problem with incorrect vertical center alignment of wizard buttons. - Q3Header * [167283] Fixed regression in painting of the header. - Q3ListViewItem * [165853] Fixed background coloring of a cell. - Q3Socket * [163563] Fixed regression in canReadLine(); it now properly searches all internal buffers. - Q3Table * [168497] Fixed incorrect updates when using setUpdatesEnabled(). - Q3Wizard * [168195] Fixed bug that could cause the wrong page to be shown when reopening a wizard. **************************************************************************** * Database Drivers * **************************************************************************** - Interbase driver * [149761] Added support for compiling Firebird 2.0 on 64-bit platforms. * [165423] Fixed a regression causing an assert when calling a stored procedure without out-parameters. * [166238] Fixed a bug that caused only the first segment of multi- segmented BLOBs to be retrieved in some cases. - ODBC driver * [167167] Fixed a regression that caused a crash when checking DBMS general information when connecting to a database. - SQLite driver * Use new sqlite3_prepare16_v2 instead of sqlite3_prepare16 when possible. * [167665] Fixed a regression that caused field names to be escaped multiple times when selecting from views. **************************************************************************** * Examples * **************************************************************************** - Secure Socket Client * New example, showing how to use QSslSocket to communicate over an encrypted (SSL) connection. - Accelerated Screen Driver * Ensured that the example does not crash if it is unable to get a pointer to the frame buffer. **************************************************************************** * Platform Specific Changes * **************************************************************************** X11 --- * [163862] Fixed a bug where QClipboard would escape all non-ASCII characters that were copied from GTK+ applications. * [165182] Fixed building with the Intel C++ Compiler for Linux on IA-64 (Itanium) (missing functions in qatomic_ia64.h) * [163861] Fixed building on AIX 5.3 where the _POSIX_MONOTONIC_CLOCK macro was accidentally redefined. * [166650] Fixed a regression from 4.2.3 where calling QWidget::move() in a reimplementation of QWidget::showEvent() did not work. * [166097] QWidget::show() no longer overwrites the _NET_WM_STATE property. Instead, QWidget now merges any existing _NET_WM_STATE property together with its own state. * Fixed the QAtomic implementation on the Alpha, which previously caused all applications to hang on start-up. * [165229] Changed the linux-lsb-g++ specification to avoid linking with libGLU (which is not part of the LSB specification). * [155083, 146833] Ensure that all font substitutions from fontconfig are obeyed by using a strong binding for QFont's family with fontconfig. Windows ------- * [169105] Fixed a regression where calling resize() on a minimized window did not work. * [169376] Fixed a race condition that would cause a crash when stopping timers in a thread. * [165440] Fixed a crash that could occur when using Google's Pinyin input method with Qt. Mac OS X -------- * QMake's Xcode generator is now more robust when determining which version of Xcode projects it should generate. It also uses launch services to determine Xcode's location as well. * Small changes to be more Leopard compatible * [167020] Ensured that the translations are really included in the binary package. * [164530] Ensured that the DPI for fonts don't change when the resolution changes. * [165530] Fixed a bug that caused Q_DECLARE_METATYPE() in a precompiled header to interfere with the Objective-C 'id' keyword. * [165659] Fixed bold/italic font rendering for some fonts. Qtopia Core ----------- * Fixed support for bitmap fonts. * [164297] Fixed a potential crash in accelerated paint engines. * [160970] Fixed support for 1-bit black and white screens. * [164783] Fixed bug in 4-bit grayscale support which resulted in pink colors under certain circumstances. * [164955] Fixed painting error when using QWidget::move(). * [166368] Fixed bug in QWidget::setFixedSize() when using multiple screens. * [165686] Fixed bug in QPixmap::grabWindow() when using multiple screens. * [130925] Fixed use of QWSWindowSurface::move() when acceleration is available. * [143865] Implemented QWSCalibratedMouseHandler::getCalibration() properly to fill all return values. * [161820] Fixed incorrect detection of glib libraries when cross- compiling. * [152914] Improved the framebuffer test example. * [171454] Fixed painting errors when zooming in QVFb. **************************************************************************** * Important Behavior Changes **************************************************************************** - QScrollArea * [167838] Use micro focus rectangle (if "active") instead of the entire widget in ensureWidgetVisible().