| 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. |
| |
| - QS60Main... classes |
| * The future compatibility of QS60MainAppUi, QS60MainDocument and |
| QS60MainApplication are improved by removing the need for any |
| sub-class to link to Avkon functions that may not exist in future. |
| |
| |
| **************************************************************************** |
| * 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. |