Qt 4.7 introduces many new features and improvements as well as bugfixes+ −
over the 4.6.x series. For more details, refer to the online documentation+ −
included in this distribution. The documentation is also available online:+ −
+ −
http://qt.nokia.com/doc/4.7+ −
+ −
The Qt version 4.7 series is binary compatible with the 4.6.x series.+ −
Applications compiled for 4.6 will continue to run with 4.7.+ −
+ −
Some of the changes listed in this file include issue tracking numbers+ −
corresponding to tasks in the Qt Bug Tracker:+ −
+ −
http://bugreports.qt.nokia.com/+ −
+ −
Each of these identifiers can be entered in the bug tracker to obtain more+ −
information about a particular change.+ −
+ −
****************************************************************************+ −
* General *+ −
****************************************************************************+ −
+ −
General Improvements+ −
--------------------+ −
+ −
- Documentation and Examples+ −
+ −
- Support for the GL_EXT_geometry_shader4, aka Geometry Shaders, was added+ −
to QGLShaderProgram.+ −
+ −
New features+ −
------------+ −
+ −
- QNetworkSession, QNetworkConfiguration, QNetworkConfigurationManager+ −
* New bearer management classes added.+ −
+ −
- QStaticText class was added to support high-performance output of + −
seldomly altered text. + −
+ −
Third party components+ −
----------------------+ −
+ −
- Updated libpng to version 1.4.0+ −
+ −
- Updated libjpeg to version 8+ −
+ −
- Updated libtiff to version 3.9.2+ −
+ −
+ −
****************************************************************************+ −
* Library *+ −
****************************************************************************+ −
+ −
QtCore+ −
------+ −
+ −
- QString+ −
* Added QString(const QChar *) constructor.+ −
NOTE: This is source-incompatible for the bogus QString(0) case.+ −
* Removed internal but exported qt_winQString2MB() and qt_winMB2QString()+ −
* Added setRawData() function (also revived the one in QByteArray)+ −
* Various performance improvements+ −
- QList+ −
* Added reserve() function+ −
* Various performance improvements+ −
- QMetaType+ −
* Significantly improved performance of the type() function+ −
* [QTBUG-8235] Support QEasingCurve as a built in metatype.+ −
* Added possibility to register several name for the same type with+ −
qRegisterMetaType<>() (ie. for typedef)+ −
- QState+ −
* [QTBUG-7741] Added a function to get the out-going transitions+ −
- QXmlStreamReader+ −
* [QTBUG-9196] fixed crash when parsing+ −
- QTimer+ −
* singleShot with 0 timeout will now avoid allocating objects+ −
- QAbstractAnimation+ −
* [QTBUG-10654] Avoids animation with loopCount == 0 to change state+ −
to running and stopped.+ −
- QVarLenghtArray+ −
* Added some API to be more consistant with other containers+ −
+ −
QtGui+ −
-----+ −
+ −
- QAbstractItemView+ −
* Fixed a bug that would cause keyboard searches not to behave+ −
properly when used within 400 milliseconds of midnight.+ −
+ −
- QComboBox+ −
* [QTBUG-8796] Made ForegroundRole work for all styles.+ −
+ −
- QCommandLinkButton+ −
* [QTBUG-5995] Fixed text and icon alignment issues.+ −
+ −
- QPrinter+ −
* Obsoleted the slightly confusing setNumCopies() and numCopies()+ −
functions, and replaced them with setCopyCount(), copyCount() and+ −
supportsMultipleCopies().+ −
+ −
- QPrintDialog/QPrinter+ −
* Added support for printing the current page.+ −
+ −
- QCommonStyle+ −
* Fixed a bug that led to missing text pixels in QTabBar when using+ −
small font sizes. (QTBUG-7137)+ −
+ −
- QGraphicsEffect+ −
* Fixed rendering bugs when scrolling graphics items with drop+ −
shadows.+ −
+ −
- QGraphicsItem+ −
* [QTBUG-8112] itemChange() is now called when transformation+ −
properties change (setRotation, setScale, setTransformOriginPoint).+ −
* [QTBUG-9024] Improved performance when calling update() on items that+ −
are clipped by an ancestor (QGraphicsItem::ItemClipsChildrenToShape).+ −
* [QTBUG-7703], [QTBUG-8378] Fixed scrolling issues+ −
* [QTBUG-12112] Fixed focusItem() returning incorrect value.+ −
+ −
- QGraphicsTextItem+ −
* [QTBUG-7333] Fixed keyboard shortcuts not being triggered when the+ −
the item has focus and something else has the same shortcut sequence.+ −
* [QTBUG-10574] Fixed crash when flag "QGraphicsItem::ItemIgnoresTransformations"+ −
is set.+ −
+ −
- QGraphicsView+ −
* [QTBUG-7438] Fixed viewport cursor getting reset when releasing+ −
the mouse.+ −
* [QTBUG-10338] Fixed drawing artifacts due to rounding errors.+ −
+ −
- QGraphicsWidget+ −
* [QTBUG-12056] Fixed a crash occuring when adding a QGraphicsWidget+ −
to a scene after removing and deleting another QGraphicsWidget.+ −
+ −
- QImage+ −
* [QTBUG-9640] Prevented unneccessary copy in QImage::setAlphaChannel().+ −
* [QTBUG-7982] Added QImage::bitPlaneCount().+ −
* [QTBUG-9072] Fixed alpha check for 1-bit-per-pixel images.+ −
+ −
- QLineEdit+ −
* [QTBUG-9823] Placeholder text is now correctly aligned with text.+ −
+ −
- QPicture+ −
* [QTBUG-4974] Printing QPictures containing text to a high resolution+ −
QPrinter would in many cases cause incorrect character spacing.+ −
+ −
- QPainter+ −
* Added QPainter::drawPixmapFragments(), which makes it possible to draw+ −
pixmaps, or sub-rectangles of pixmaps, at various positions with+ −
different scale, opacity and rotation.+ −
* [QTBUG-10018] Fixed image drawing inconsistencies when drawing+ −
1x1 source rects with rotating / shear / perspective transforms.+ −
* Optimized various blending and rendering operations for ARM+ −
processors with a NEON vector unit.+ −
* Fixed some performance issues when drawing sub-pixmaps of large+ −
pixmaps and falling back to raster in the X11 paint engine.+ −
* [QTBUG-7596] Safeguard ourselves against corrupt registry values for+ −
ClearType gamma on Windows.+ −
* [QTBUG-9218] Fixed flattening of largely scaled, thin, dashed beziers.+ −
* [QTBUG-9437] Fixed crash in the raster paint engine when drawing largely+ −
scaled images.+ −
+ −
- QPainterPath+ −
* [QTBUG-3778] Fixed bug in painter path polygon intersection code.+ −
* [QTBUG-7396] Optimized painter path intersections for when at+ −
least one of the paths is a rectangle by special casing.+ −
* [QTBUG-8035] Got rid of bezier intersection code in the boolean+ −
operators (intersect, subtract, unite) to prevent numerical+ −
stability issues.+ −
* [QTBUG-11291] Fixed infinite recursion when drawing very large painter+ −
paths.+ −
+ −
- QPixmap+ −
* [QTBUG-4149] Fixed QPixmap::grabWidget() on widgets that have not yet+ −
been shown.+ −
+ −
- QPlastiqueStyle+ −
* [QTBUG-6516] Respect AlternateBase role for list views.+ −
+ −
- QRegion+ −
* [QTBUG-7699] Fixed crash caused by large x-coordinates.+ −
+ −
- QSplitter+ −
* [QTBUG-9335] Improve support for 1-pixel splitters by using a + −
larger drag area.+ −
+ −
- QTextDocumentWriter+ −
* Fixed tab-stops and table padding in ODF export.+ −
+ −
- QTextLayout+ −
* [QTBUG-11427] Fix possible crash in QTextLayout for glyphless + −
items.+ −
* [QTBUG-8864] Fix regression in right alignment of text with + −
negative right bearing.+ −
+ −
- QTransform+ −
* [QTBUG-8557] Fixed bug in QTransform::type() potentially occuring+ −
after using operator/ or operator* or their overloads.+ −
+ −
QtOpenGL+ −
--------+ −
- Improve performance of text by adding special cased fragment shader.+ −
+ −
- Made width and height of glyph cache power-of-two for performance + −
improvements on some hardware.+ −
+ −
- [QTBUG-9706] Improved appearance of text antialiasing.+ −
+ −
- QTreeView+ −
* Optimized+ −
+ −
QtNetwork+ −
---------+ −
- QHostInfo: Added a small 60 second DNS cache+ −
- QNetworkAccessManager+ −
* Performance improvements for file:// and http://+ −
* Crash fixes+ −
* Improvements on HTTP pipelining+ −
* Fix problem with canReadLine()+ −
* Fix problem with HTTP 100 reply+ −
* Some new attributes for QNetworkRequest+ −
* [QTBUG-8206] add method to send custom requests+ −
* [QTBUG-9618] [MR 2372] send secure cookies only over secure connections+ −
* [QTBUG-7713] Fix bug related to re-sending request+ −
* [QTBUG-7673] Fix issue with some webservers+ −
* [QTBUG-11029] do not accept cookies with non-alpha-numerical domain+ −
- Sockets+ −
* Better support for derived QTcpServer+ −
* [QTBUG-7054] Fix error handling with waitFor*() for socket engine+ −
* [QTBUG-7316, QTBUG-7317] Also handle unknown errors from socket engine+ −
- SSL+ −
* [QTBUG-2515] Do not make OpenSSL prompt for a password+ −
* [QTBUG-6504, QTBUG-8924, QTBUG-5645] Fix memleak+ −
* [QTBUG-9973] QSslCertificate: support large serial numbers+ −
* [QTBUG-8833] make QSslSocket::systemCaCertificates() use system certs+ −
* [QT-3567] QSslSocket: improve error handling (fixes Secunia Advisory SA40389)+ −
* [QBTUG-4455, MR 731] Fix handling of SSL certificates with wildcard domain names+ −
+ −
QtScript+ −
--------+ −
- Updated src/3rdparty/javascriptcore to a more recent version+ −
- Significantly improved performance of the Qt/C++<-->JavaScript bridge+ −
- QScriptValueIterator: Significantly improved performance+ −
- [QTBUG-3637] Added a wrap option for excluding slots from a QObject binding+ −
- [QTBUG-6238] Added a function for reporting additional memory cost+ −
- [QTBUG-6908] Significantly improved performance of qsTr()+ −
+ −
QtSvg+ −
-----+ −
- QSvgRenderer+ −
* [QTBUG-8264] Fixed rounded rectangles when 'rx' or 'ry' is zero.+ −
* [QTBUG-10022] Fixed assert failure when loading an invalid SVG.+ −
+ −
QtXmlPatterns+ −
-------------+ −
+ −
- [QTBUG-8920] fixed crash with anonymous types in XsdSchemaChecker+ −
- [QTBUG-8394] include/import/redefine schemas only once+ −
- QXmlSchema: fix crash with referencing elements+ −
- [QBTUG-6485] QXmlSchema: allow usage of xsd:all+ −
+ −
Qt Plugins+ −
----------+ −
+ −
- Jpeg image IO plugin+ −
* Fixed failure to store certain QImage formats as jpeg (QTBUG-7780)+ −
* Optimized smoothscaling+ −
* Optimized to avoid data copy when reading from memory device (QTBUG-9095)+ −
+ −
- SVG image IO plugin+ −
* Added support for svgz format (QTBUG-8227)+ −
* Fixed canRead() so that it can be used also for non-sequential+ −
devices. (QTBUG-9053)+ −
* Added support for clipping and scaling and backgroundcolor+ −
* Optimized to avoid data copy when reading from memory device (QTBUG-9095)+ −
+ −
****************************************************************************+ −
* Database Drivers *+ −
****************************************************************************+ −
- Sqlite+ −
* [QTBUG-11904] Pointer aliasing problem in sqlite+ −
- OCI+ −
* [QTBUG-10919] Unable to insert unicode chars with codepoint > 255 + −
in nvarchar2 column on oracle+ −
* [QTBUG-8210] Oracle - DATE in db with a year greater or equal to 2800 + −
returns an invalid date+ −
+ −
****************************************************************************+ −
* Platform Specific Changes *+ −
****************************************************************************+ −
+ −
Qt for Linux/X11+ −
----------------+ −
- QGtkStyle+ −
* Fixed rtl issues with sliders (QTBUG-8986)+ −
* Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)+ −
* Fixed crash when creating QGtkStyle before QApplication. (QTBUG-10758)+ −
+ −
- QFontDatabase+ −
* [QTBUG-4428] Fixed regression when using bitmap fonts on some + −
Linux systems.+ −
+ −
- QFontEngine+ −
* [QTBUG-9442] Avoid possible square root of negative number in + −
FreeType font engine.+ −
+ −
- QFontMetrics+ −
* [QTBUG-10448] Fix crash when using fonts in non-gui QApplication.+ −
+ −
+ −
Qt for Windows+ −
--------------+ −
- Popup windows now implicitly activate when shown. (QTBUG-7386)+ −
- QComboBox [QTBUG-7552] Fix an issue where only "..." would be shown for+ −
QComboBox with certain DPI settings.+ −
- Fixed a problem where menus exec'ed on system tray icons did not + −
disappear. (QTBUG-7386)+ −
- Improved look and feel for QWizard on Windows 7 and Vista. (QTBUG-9873), + −
(QTBUG-11974) and (QTBUG-6120) + −
- QLocalSocket+ −
* Pipe handle leak fixed, when closing a QLocalSocket that still has+ −
unwritten data. (QTBUG-7815)+ −
* Fixed closing state for local sockets with unwritten data. (QTBUG-9681)+ −
* Improved performance of writing to QLocalSocket.+ −
+ −
+ −
Qt for Mac OS X+ −
---------------+ −
- QMacStyle+ −
* Removed frame around statusbar items. (QTBUG-3574)+ −
* More native appearance of item view headers and frames. (QTBUG-10047)+ −
* Increased spacing between tree view items. (QTBUG-10190)+ −
* Removed frame around status bar items. (QTBUG-3574)+ −
+ −
- QFontEngine + −
* Enable fractional metrics for the font engine on Mac in all + −
stages of text layout.+ −
* [QTBUG-5529] Enable design metrics for correct character spacing + −
in ATSUI font engine. (Mac/Carbon)+ −
+ −
- QTextDocument+ −
* [QTBUG-8791] Fix misalignment of fixed width fonts between + −
format changes on Cocoa.+ −
+ −
- QTextLayout+ −
* [QTBUG-9879] Fix off-by-one in vertical position for elided and + −
non-elided text.+ −
+ −
Qt for Embedded Linux+ −
---------------------+ −
+ −
* Add support for WA_TranslucentBackground (QTBUG-5739)+ −
* Add support for QFont::NoAntialias (QTBUG-5936)+ −
+ −
Qt for Windows CE+ −
-----------------+ −
+ −
- Core changes+ −
* Fixed menu handling on Windows mobile. (QTBUG-8754)+ −
* Fixed a crash when receiving a certain type of WM_SETTINGSCHANGE+ −
message. (QTBUG-7943)+ −
+ −
- QWindowsMobileStyle+ −
* Huge performance penalty for QTabWidget fixed for+ −
Windows mobile 6.5. (QTBUG-8419)+ −
* QTabBar scroll button size has been fixed. (QTBUG-8757)+ −
* Detection of Windows mobile 6.5 fixed. (QTBUG-8418)+ −
+ −
Qt for Symbian+ −
--------------+ −
+ −
- QSplashScreen+ −
* [QTBUG-11129] Fixed a hanging bug in QSplashScreen on 3.1 devices.+ −
+ −
+ −
+ −
****************************************************************************+ −
* Compiler Specific Changes *+ −
****************************************************************************+ −
+ −
+ −
****************************************************************************+ −
* Tools *+ −
****************************************************************************+ −
+ −
- Build System+ −
+ −
- [QT-3540] Fixed Symbian resources not honoring TARGET with a path.+ −
- "configure -fast" on Windows now also works for other make tools than+ −
nmake. (QTBUG-8562)+ −
- [QTBUG-11351] Fixed memory restrictions not being passed on to elf2e32.+ −
- [QTBUG-11385] Removed the need to specify -arch symbian when compiling+ −
for Symbian on Linux.+ −
- [QTBUG-11396] "configure -qtlibinfix" now works when compiling for+ −
Symbian on Linux.+ −
- [QTBUG-11670] Fixed a bug which caused "make runonphone" to look for+ −
package in the wrong place.+ −
- [QTBUG-11727] Fixed a bug which made builds outside of the Qt tree fail+ −
to compile.+ −
- [QTBUG-11927] "configure -silent" now works with the+ −
symbian/linux-armcc and symbian/linux-gcce mkspecs.+ −
+ −
- Assistant+ −
+ −
+ −
- Designer+ −
- [QTBUG-9351] Fixed a bug that caused modified headerview-properties+ −
of item views to be duplicated in the UI-file.+ −
- [QTBUG-8347] Fixed a layout problem caused by embedded images in the rich+ −
text of a QLabel.+ −
- [QTBUG-8041], [QTBUG-8213] Fixed a crash related to undo while moving+ −
widgets by arrow keys.+ −
- [QTBUG-7822] Added support for the 'windowOpacity'-property.+ −
- [QTBUG-7764] Fixed the emission of the propertyChanged()-signal of+ −
QDesignerPropertyEditorInterface.+ −
- [QTBUG-5492] Made widgetbox-filter match on class names, too.+ −
+ −
- Linguist+ −
* The GNU gettext PO format support has been improved+ −
+ −
- rcc+ −
+ −
+ −
- moc+ −
* Fixed several parsing bugs. Including changes in the normalized signature.+ −
+ −
- uic+ −
+ −
- uic3+ −
+ −
- [QTBUG-9207] Fixed export of image files of type XPM, added+ −
compatibility option -limit-xpm-linelength.+ −
+ −
- qmake+ −
* Removed remainder of tmake compatibility+ −
* Removed remainder of mac9 mode+ −
* Removed MSVC6 generator+ −
* Removed makespecs for MSVC.NET and MSVC2002+ −
* Deprecated -win32/-unix/-macx options, following various cleanups+ −
relating to platform support. Cross-building makespecs should now+ −
specify a TARGET_PLATFORM.+ −
* Started to warn about use of various constructs:+ −
- non-lowercased replace $$function() calls+ −
- deprecated variables+ −
- unescaped backslashes.+ −
NOTE: You should use UNIX path separators where possible. qmake+ −
will warn about unnecessary Windows path separators in the future.+ −
* Removed expansion of qmake- & environment variables in some unexpected+ −
cases (double expansions, command line options, etc.)+ −
* Removed splitting at semicolons of literal values which were assigned+ −
directly to INCLUDEPATH and DEPENDPATH+ −
* Removed UNIX-specific exporting of all qmake variables to the environment+ −
of subprocesses invoked via system(). You should put specific assignments+ −
into the invoked shell command instead.+ −
* Started to short-cut evaluation inside if() tests, consistently with+ −
evaluation outside if().+ −
* Added possibility to request project recursion from within a PRO file+ −
+ −
+ −
- configure+ −
+ −
+ −
- qtconfig+ −
+ −
+ −
- qt3to4+ −
+ −
+ −
****************************************************************************+ −
* Plugins *+ −
****************************************************************************+ −
+ −
+ −
****************************************************************************+ −
* Important Behavior Changes *+ −
****************************************************************************+ −
+ −
QtScript: Changes due to updating src/3rdparty/javascriptcore:+ −
- It is no longer possible to delete an undeletable property from C+++ −
using QScriptValue::setProperty().+ −
- The QScriptEngineAgent::positionChange() callback will always report+ −
a column number of 1.+ −
- QScriptValueIterator will include the "length" property when iterating+ −
over Array objects.+ −
+ −
QtCore:+ −
- QChar no longer carries the Q_PACKED tag on ARM. This flag was+ −
used to allow proper alignment of QChar on 2 bytes on older ARM+ −
ABIs, but it also allowed for unaligned access. Qt never generates+ −
or uses unaligned access and the new EABI aligns as expected, so+ −
the flag was removed.+ −
- QTextBoundaryFinder is now consistent with ICU when it comes to+ −
line breaking, reporting the index of the boundary at which the line+ −
break should occur rather than the index of the character.+ −
+ −
QtGui:+ −
- QWidget::setLayoutDirection no longer affects the text layout+ −
direction (Qt::LeftToRight or Qt::RightToLeft) of QTextEdit, QLineEdit+ −
and widgets based on them. The default text layout direction+ −
(Qt::LayoutDirectionAuto) is now detected from keyboard layout and+ −
language of the text (conforms to Unicode standards). To+ −
programmatically force the text direction of a QTextEdit, you can+ −
change the defaultTextOption of the QTextDocument associated with that+ −
widget with a new QTextOption of different textDirection property. For+ −
QLineEdit, the only way so far is sending a Qt::Key_Direction_L/R+ −
keyboard event to that widget.+ −
+ −
QtNetwork:+ −
- Qt does no longer provide its own CA bundle, but uses system APIs for+ −
retrieving the default system certificates.+ −