Qt 4.4.1 is a bug-fix release. It maintains both forward and backward compatibility (source and binary) with Qt 4.4.0. The Qt version 4.4 series is binary compatible with the 4.3.x series. The Qt for Embedded Linux version 4.4 series is binary compatible with the Qtopia Core 4.3.x series. Applications compiled for 4.0, 4.1, 4.2, and 4.3 will continue to run with 4.4. Some of the changes listed in this file include issue tracking numbers corresponding to tasks in the Task Tracker: http://qt.nokia.com/developer/task-tracker Each of these identifiers can be entered in the task tracker to obtain more information about a particular change. **************************************************************************** * General * **************************************************************************** General Improvements -------------------- - Documentation and Examples * [202630] Fixed a problem in the network/http example: it couldn't download anything if the URL had a space. Third party components ---------------------- - Updated Qt's libpng version to 1.2.29. **************************************************************************** * Library * **************************************************************************** - QAbstractItemView * [199822] Fixed issue with broken extended selections. - QButtonGroup * [209485] Prevented a crash caused by removing a button from its button group while inside a slot triggered by the button's clicked() signal. - QDirModel * [213519] Fix crashes when drag'n'dropping files into a subdirectory - QFtp * [189374] Fixed a bug that would cause QFtp to fail to parse dates if the application was being run on some locales, like fr_FR. - QGraphicsProxyWidget * [208773] Input methods now work properly for embedded widgets. * [207644] Fixed a bug where the painter was restored incorrectly. - QGraphicsScene * [209125] QGraphicsScene::style() and QGraphicsWidget::style() fixes. * [202774] [207076] Focus and activation fixes for embedded widgets. * [212950] The scene no longer removes focus from the focus item if a mouse press propagates to the scene (and then to the view). This was a behavior regression to QWidget. - QString * [205093] Printing QString after using replace()followed by truncate(-1) crashes * [209078] Problem in QString::resize - QGraphicsView * [209154] Mouse replay regressions since 4.3 have been fixed. - QObject * Fixed a regression from 4.3 to 4.4 in QObject::receivers() where the function would return >0 even after disconnection all signals. - QScriptEngine * [208489] Made the instanceof operator work when used with QMetaObject wrappers created by newQMetaObject(). * [206188] Fixed a bug that caused scripts to hang when using "continue;" inside a switch-case block. * [205473] Fixed a bug that caused slots to be called even when argument conversion failed. - QSslSocket * [212177] QSslSocket::peerVerifyError() supports all errors now. * [212022] Fixed a bug that would cause no default CA certificates to be present in static Qt builds. * [212412] Fixed a bug that could cause a deadlock in waitForReadyRead() in encrypted mode. - QtWebKit * Ensured that relative URLs are converted to absolute URLs. * Ensured that the cursor is changed into a resize cursor when hovering over and dragging the resizeable frame borders. * [206999] Fixed a problem which would make an empty URL being passed to QWebPluginFactory::create() * [208215] Fixed a bug that prevents linkClicked signal to be emitted when opening a local HTML file. * [208342] Ensured that the cursor is updated after a web frame or page has finished loading. * [210920] Fixed showing/hiding of the Web Inspector. * [207050] Fixed input of characters into form elements using AltGr on Windows. * Fixed a crash related to XML HTTP requests. * Fixed QWebPage::acceptNavigationRequest not being called when opening new Windows. * Fixed emission of linkClicked() signal when clicking on target=_blank links. * Fixed painting artifacts when scrolling embedded widgets. * Fixed logic errors in QWebHitTestResult::isNull() and QWebHistory::forward(). * Fixed encoding of [ and ] in the host part of URLs * Fixed a crash related to QWebPage::unsupportedContent. * Fixed a memory leak on application shutdown. * Fixed painting errors when scrolling embedded widgets. * Fixed support for custom cursors set on a QWebView. * Fixed various build problems on Mac OS X, Windows and Solaris * Fixed crash with CSS text transformations. * Fixed infinite recursion when converting DOM objects with cyclic references to QVariants. - QVariant * [201918] QVariant convert to QDateTime warnings - QWidget * Fixed a regression when setting masks for splashscreens on Mac OS X Tiger. * [210544] Fixed a regression where Qt::WA_PaintOnScreen widgets were painted on top of overlapping siblings. * [211796] Fixed a crash occurring when calling render() from a resize event. * [210960] Fixed a regression where an invisible top-level widget was resized when calling render(). * [210822] Fixed a bug causing QGLWidgets to not behave correctly when setting window title. * [208413] Fixed issues when creating a child widget of Qt::WA_PaintOnScreen widgets. - QWidgetAction * [207433] Fix enabling and disabling toolbar containings actions widget. - QWorkspace * [206368] Fixed a crash occurring when deleting a QWorkspaceChild. - QPainter * [186327] Fixed inconsistent outline and fill drawing for drawPolygon in raster paint engine, where the fill would be visible outside the outlines or there would be missing pixels between outline and fill. * [208530] Fixed some drawing issues with projective transform related to near-plane clipping. * [209095] Fixed infinite loop that could occur on certain architectures on rare occasions when drawing outlines. * [208090] Fixed issue with outline drawing where subsequent points on a path or polygon are equal according to qFuzzyCompare, but treated as different, causing stroke artifacts. * [206785] Fixed potential pixmap drawing artifacts when drawing stretched pixmaps at non-integer coordinates. * Fixed potential rect/line drawing issue when drawing on non-integer offsets in raster paint engine. * [209462] Fixed regression when redirecting widgets to another paint device. - QPainterPath * [209056] Fixes potential assert in the boolean operations (difference, intersect, and union). - QRasterPaintEngine * [208644] Fixed a crash in qt_intersect_spans. - QApplication * [213116] Fixd a regression on Mac OS X where you could not access the menu bar after minimizing a window with no click through. - QColor * [193671] Fixed a problem with QColor::setNamedColor() not returning the correct alpha value for the "transparent" color. - QMacStyle * [212037] Adjusted the size of text in an editable combo box on Mac OS X Panther. * [216905] Fix a regression when drawing table headers on Mac OS X Panther. - QMainWindow * [210216] Calling setCentralWidget, setMenuBar, setMenuWidget or setStatusBar several times could cause a crash. * [206870] Fixed a bug causing dual screen layouts to not restore correctly. - QMdiArea * [202657] Fixed focus issue when navigating between window with focus on the DockWidget * [211302] Fixed a bug where the activation order was not respected when tiling and cascading. - QOpengGLPaintEngine * [208419] Fixed wrong clipping of widgets. - QDockWidget * [179989] Maximum size is now taken into account by the dock widget. - QCommonStyle * [204016] Fixed west tab positions. - QCryptographicHash * [206712] Fixed a bug that would make QCryptographicHash return invalid results if you called result() before the last addData() call. - QTcpSocket * [208948] Fixed a bug that would cause QTcpSocket and QSslSocket not to flush all of their buffers if the socket disconnects and reconnects. * [182669/192445] Fixed a bug that would cause QTcpSocket to stop emitting readyRead() if a previous waitForReadyRead() timed out. - QDataStream * [211301] Fixed an issue where Qt 2 and Qt 3 applications might crash or hang when run under KDE 4. - QDateTime * [137698] Fixed a bug that caused QDateTime to perform weird 1-hour jumps when dealing with dates in Daylight Savings Time. - QSslCertificate * [185067/186087] Fixed a bug that would cause QSslCertificate parsing of certificate timestamps to be off by a few hours (timezone issue). - QFile * [192752] Fixed a bug that would make QFile leak file descriptors if QFile::handle() was called. - QFileDialog * [208383] Crash when a proxy model is set and multiple files are selected. * [165503] DirectoryEntered not emitted when go-to-parent button is clicked. - QFileInfo * [212291] Fixed a bug that would cause QFileInfo to return empty group or owner names for files under MacOS X and maybe some other Unix platforms. - QFuture * [214874] Fixed possible deadlock when using nested calls to QtConcurrent::run(). - QGLContext * [210427] In 4.4.0 we removed the automatic mipmap generation for textures bound with QGLContext::bindTexture(). This change has been reverted for compatibility reasons. * [214078] Fixed a problem that caused OpenGL textures to always be downscaled to 64x64 in size on Intel graphics hardware. This caused, among other things, the Qt Demo to look utterly broken on these systems. - QOpenGLPaintEngine * [191777] Set default values for GL_PACK_*/GL_UNPACK_* values with glPixelStore() when QPainter::begin() is called. * [201167] Don't assume the GL error state is cleared when QPainter::begin() is called. Clear the state explicitly before we make internal state checks. * [204578] Fixed a problem where the GL error state was set on some system because an extension enum was used unprotected. - QHostInfo * [213187] Made QHostInfo not issue IPv6 name lookups if the machine does not have any IPv6 addresses configured (Unix change only). - QHttp * [213220] Fixed a bug that could make QHttp open unencrypted connections if HTTPS mode was requested but SSL support was not present in Qt. * [193738] Fixed a bug that would make QHttp continue reading the HTTP server's response and emit a readyRead() signal even if abort() had already been called. - QNetworkAccessManager * When a http 302 location url is not an encoded url try QUrl's human readable parsing for more compatibility with websites. - QPainter * [211403] Fixed handling of negative target rect offsets and negative source offsets in QPainter::drawPixmap()/drawImage(). - QPixmap * [202903] Fix an infinite recursion in QPixmap::fromImage() that occured when converting mono images. * [206174] Reverse the order of the tests done in QPixmap::hasAlpha() in order to speed it up. * [210275] Fixed a crash in QPixmap::resize(). - QSharedMemory * Compile fix on QNX when QT_NO_SHAREDMEMORY was defined - QStyleSheetStyle * [179629] Fixed SpinBox with gradient background. * [188305] Respect the max-with property for more elements (such as QTabBar::tab) * [189951] Fixed the align: property for QTabBar * [194149] Fixed the background:transparent property * [198926] Fixed the background:none property on some component of the scrollbar * [206238] Fixed inconsistency with rules without selector applied to widget. They now always applies to all childs * [207420] Fixed the ~= attribute selector. * [207819] Fixed few performences issues. * [208001] Fixed crash crash with QMenu[title=...] in the stylesheet. - QHeaderView * [207869] Fixed possible division by zero. - QTableView * [207270] Painting errors in reverse mode and when there was spans. * [210608] Fixed regression in the handling of spanning cells. - QTableWidget * [213118] Fixed a bug where moving the first or the last row triggered an assert. - QTreeView * [213737] Fixed regression where ctrl+a would select all items regardless of the selection mode. * [202355] Fixed issue where items inserted in a view with all header sections hidden did not show themselves properly later. * [211296] When a column is hidden QItemSelectionModel::selectedRows and QItemSelectionModel::selectedColumns returns the wrong values. - QTreeWidget * [305084] Fixed duplicate items that may appears when programaticaly expanding items. * [209590] itemSelectionChanged was being emited before item selection was updated - Q3DragObject * [203288] Fixed regression against Qt 3 so that the drag() function now correctly uses MoveAction (and not CopyAction) as the default action. - Q3TextBrowser * [197836] Fix assert when zooming out. - QTextDocument * [204965] Fix html export to use indent as textIndent - QTextBrowser * [192803] Fix loading of files from resources with a resource prefix. - QTextEdit * [211617] Fixed crash when moving the first paragraph by drag and Drop - QTextTable * [194229] Fix removing of a row with merged cells causing a crash. * [194253] Fix calling removeColumn on a Column with selectedCell causing an assert. * Fix assert on selecting the whole table after an insert/remove of column. * [175676] Fix calling of resize() making updates in layouting fail. - QSpinBox * [213137] Fixed thousand-delimiters to not show for value = INT_MIN. - QScrollArea * [210567] Fixed issues when scrolling a native widget. - QScrollBar * [209492] Fixed a bug causing the scroll bar actions to be invoked twice. - QToolbBarLayout * [207946] Prevented a crash caused by assuming that the parent widget always exists. - QThreadPool * Fixed issues with thread termination during dll unloading on windows. QThreadPool:: waitForDone() now completely stops all threads, on all platforms. In addition, the QCoreApplication destructor now calls waitForDone() to make sure all threads are stopped before the Qt dlls are unloaded. - QNetworkReply * [207283] Fixed support for HTTP 101 responses. * Fixed parsing of cookies with special timezone specifiers. - QWebHistory * Fixed a bug where calling forward() would go backwards and not forwards. - QFontMetrics * [212485] Fixed boundingRect() returning the proper size when there is a tab. - QItemDelegate * [206762] Fixed painting when using a QBrush() for the text. - QtXmlPatterns * [207584] When using the same QXmlQuery for a new query then evaluateTo() can return false even if the query is valid. * [214180] Fixed fn:replace fails when inside function. * Fixed crash when unary operator has empty sequence as operand. * Fixed that axis preceding or descendant-or-self when combined with function last() on a custom node model crashes. * Fixed that xml:id is not whitespace normalized. * Fixed that QXmlFormatter produces no output on single top-level text nodes. * Fixed infinite loop triggered by fn:matches(). * Fixed crash when compiling one of the FunctX queries. - VideoPlayer * [210170] Fixed an issue that prevented VideoPlayer::play to start when called with an argument. - Accessibility * [199241] Fix an issue where the screen reader would read the content of a password line edit. The screen reader will now only read it if its Normal. - QLocalSocket * [210886] Fixed a bug that would cause QLocalSocket to overrun its buffers on very long socket names. **************************************************************************** * Database Drivers * **************************************************************************** **************************************************************************** * Platform Specific Changes * **************************************************************************** X11 --- * [208354] Fixed a crash in Qt's XIM implementation when exiting applications after using the skim input method. * [207800] Fixed a regression from 4.3 to 4.4 where putting a QX11EmbedContainer into a QWidgetStack would case the container stay visible permanently. * [207423] In QDesktopWidget, workaround a change in behavior in newer X.Org X servers where Xinerama would always be used even when using a multi-screen setup. * [206139] Fixed a bug where Qt could incorrectly recurse into the Xlib error handler (causing Xlib to assert). * [207057] Fixed a regression from 4.3 to 4.4 where QX11EmbedContainer would sometimes destroy the embedded client's window. * [209057] Fixed a Q3Process which triggered a "Do not delete object" warning. * QPrintDialog crashed on unix in some cases. * [214103] Fixed a regression with string to double conversion becoming locale-aware in QTextStream. * [210922] Fix crash in input methods when toggling the InputMethodEnabled attribute. * [210831] Fixed a problem where preview pages in the QPrintPreviewDialog would not appear or be drawn correctly on X servers without Xrender support. * [206165],[213457] Fixed bugs which show the wrong cursor on some widget. * Fixed bug regarding the usage of encoded URLs in Phonon Windows ------- * [207888] Fixed a regression from 4.3 which caused crashes in Assistant and Designer when an accessibility client is running (this includes applications that query for accessibility features, like Notepad++). * Several fixes related to crashes and hangs when the user has an accessibility client running in the background. * [208782] Fixed a problem with non-cosmetic lines with widths < 2 not being printed correctly with certain printer drivers. * [208859] Fixed a problem with strokes not being printed correctly. Both the stroke offsets and thinkness of the stroke were sometimes printed incorrectly. * [206473] Entering UNC paths is slow in the Qt file dialog. * [309241] Trying to stream mp3 content with phonon would cause a crash. * [210115] Fixed a problem causing "mailto" links not to work when the mail application path contains unexpanded environment variables. * [203012] Fixed a problem where "WriteOnly named pipes" failed to open using QFile. * [205685] Fixed the handling of TranslateAccelerator for windows key messages. * Add support for (not) embedding manifests in plugins, on Windows. * [211893] Fixed a crash related to using QtDotNetStyle. Mac OS X -------- * Fix a regression where inserting widgets into native menus would cause the program to crash. * [209785] Fixed a regression from 4.3 to 4.4 in DeferredDelete event handling. * The "debuglibraries" binary package now includes dSYM bundles, which makes it possible to debug with them. * [207371] The CoreGraphics paint engine ignored the transform set on a QBrush with QBrush::setTransform(). * Fixed insertation of 'space' char in QLineEdit when EISU key is being held down * Fixed fullscreen widget not regaining full focus after a dialog has been shown * Fixed bug regarding the usage of encoded URLs in Phonon * [212719] Fixed a bug that could cause text drawn into a QImage to be clipped incorrectly. * [216563] Fixed a case where failing to get the display's colorspace would result in many widget being painted all black. * [216544, 213316] Fixed several accessibility-related crashes. * [210401] Fixed memory leak in QWidget::setWindowIcon(). * [211195] Fixed problem that caused crashes with the Mac binary package when entering long licensee names during the installation. Qt for Embedded Linux --------------------- - QWSEmbedWidget * Fixed propagation of the Qt::WindowStaysOnTopHint window property. - QDirectPainter * [209068] Fixed region coordinates for QDirectPainter when used on a rotated screen. - DirectFB screen driver * Fixed window placements of windows with initial top-left coordinate (0,0). * Improved deallocation of resources when an application exits unexpectedly. * Fixed bug in QPixmap::rotate(). * Fixed QPixmap::fromImage() with an image of format QImage::Format_Indexed8 when compiling with QT_NO_DIRECTFB_PALETTE. * Fixed small memory leak in QPainter::drawImage() - LinuxFB screen driver * Added a workaround screen driver when the kernel fails to report the length of the color components. * Improved performance of the non-accelerated screen cursor. * Disable the console cursor in graphics mode. - Tslib mouse driver * [200995] Fixed crash when initialization fails. * [207117] Improved filtering during calibration. - Ahi screen driver * Fixed link issue. * Fixed QScreen::setMode(). * Improved support for different screen modes. Qt for Windows CE ----------------- * Support for Visual Studio 2008 added * Improved QRegion to perform faster **************************************************************************** * Compiler Specific Changes * **************************************************************************** - [212852] Fixed GCC 4.3 compiler warnings. **************************************************************************** * Tools * **************************************************************************** - Build System * [209866, 213084] Fix compilation errors in QtWebKit when using GCC 3.4 with precompiled headers. Precompiled header support is documented as experimental in the GCC 3.4 documentation, and as such, precompiled header support is disabled by default with this compiler. * [212330] Correct Makefile generation for src/corelib, which would sometimes include multiple qatomic.o targets. * [210016] Fix a build failure on 64-bit Linux when using the linux-*-32 mkspecs. * [206966] Fixed compilation errors on Linux when building for the MIPS architecture. * [212132] Workaround compiler crash bug for Linux on SPARC64. This is a generalization of a similar change done for Solaris in the 4.3 series. * [211326, 211703] Fixed compilation errors when using the Intel C++ Compiler for Linux on IA-64 (Itanium) hardware. * [171222] Ignore duplicate -L options - Assistant * [212875] Don't sort the entries in the contents view according to the help files names. * [212444] Use the default help collection when registering or unregistering help files without having a collection file specified. * [210704] Make sure the sql-plugin is correctly used when building Qt statically. * [208834] When highlighting a find result, ensure that the active highlighting color is used. * Introduced the -assistant-webkit configure flag to make use of WebKit as html renderer in Qt Assistant. - Designer * [213481] Fixed crash that occurs when encountering an invalid .ui file. * [211422] Fixed a crash resulting from a conflict between the newly added support for QScrollArea and custom widgets derived from QScrollArea. * [209995] Fixed a bug in the property editor that caused it not to select values in spin boxes on editing. * [205448] Fixed a bug related to drag and drop and Windows accessibility. * [205899] Removed the windowModality property for non-form children to prevent it from locking up the form preview. * [212077] Fixed retranslateUi call in case of combo box items * [210866] Dynamic properties of type QByteArray are not converted anymore to type QString when reloading the form * [207187] Designer's property editor has better colors in case of inverted color scheme * [202257] The geometry of the resource dialog is saved in settings * [211677] Remove a crash in case of reloading resources - Linguist - lupdate * [209122] Fixed same-text heuristic missing existing plurals * [212465] Standardize on the default context being empty, not "@default" - lrelease - rcc - moc * [189996] Fixed a bug that caused inline slots with throw() declarations to be parsed incorrectly. * [192552] Fixed a bug that caused "< ::" to be parsed incorrectly (e.g. "QList< ::Foo>"). * [199427] Fixed the code generator so that it generates normal spaces everywhere, no tabs. * [204730] Fixed a skipt token after Q_PRIVATE_SLOT - uic * [205439] Added a warning that is printed when encountering non-obvious Qt3 dependencies (qPixmapFromMimeSource). - uic3 * [205834] Process non-ASCII filenames correctly. - qmake - configure * Fixed auto-detection of the XKB library on old Unix systems * Fixed auto-detection of getaddrinfo on old Unix systems **************************************************************************** * Plugins * **************************************************************************** **************************************************************************** * Important Behavior Changes * **************************************************************************** Unix ---- * [203063] Changed the behaviour of qFatal and Q_ASSERT to always produce a SIGABRT signal in all build modes of Qt. (Previous versions called the exit function if Qt was built in release mode)