1 Qt 4.7 introduces many new features and improvements as well as bugfixes
2 over the 4.6.x series. For more details, refer to the online documentation
3 included in this distribution. The documentation is also available online:
5 http://qt.nokia.com/doc/4.7
7 The Qt version 4.7 series is binary compatible with the 4.6.x series.
8 Applications compiled for 4.6 will continue to run with 4.7.
10 Some of the changes listed in this file include issue tracking numbers
11 corresponding to tasks in the Qt Bug Tracker:
13 http://bugreports.qt.nokia.com/
15 Each of these identifiers can be entered in the bug tracker to obtain more
16 information about a particular change.
18 ****************************************************************************
20 ****************************************************************************
25 - Documentation and Examples
27 - Support for the GL_EXT_geometry_shader4, aka Geometry Shaders, was added
33 - QNetworkSession, QNetworkConfiguration, QNetworkConfigurationManager
34 * New bearer management classes added.
36 - QStaticText class was added to support high-performance output of
37 seldomly altered text.
39 Third party components
40 ----------------------
42 - Updated libpng to version 1.4.0
44 - Updated libjpeg to version 8
46 - Updated libtiff to version 3.9.2
49 ****************************************************************************
51 ****************************************************************************
57 * Added QString(const QChar *) constructor.
58 NOTE: This is source-incompatible for the bogus QString(0) case.
59 * Removed internal but exported qt_winQString2MB() and qt_winMB2QString()
60 * Added setRawData() function (also revived the one in QByteArray)
61 * Various performance improvements
63 * Added reserve() function
64 * Various performance improvements
66 * Significantly improved performance of the type() function
67 * [QTBUG-8235] Support QEasingCurve as a built in metatype.
68 * Added possibility to register several name for the same type with
69 qRegisterMetaType<>() (ie. for typedef)
71 * [QTBUG-7741] Added a function to get the out-going transitions
73 * [QTBUG-9196] fixed crash when parsing
75 * singleShot with 0 timeout will now avoid allocating objects
77 * [QTBUG-10654] Avoids animation with loopCount == 0 to change state
78 to running and stopped.
80 * Added some API to be more consistant with other containers
86 * Fixed a bug that would cause keyboard searches not to behave
87 properly when used within 400 milliseconds of midnight.
90 * [QTBUG-8796] Made ForegroundRole work for all styles.
93 * [QTBUG-5995] Fixed text and icon alignment issues.
96 * Obsoleted the slightly confusing setNumCopies() and numCopies()
97 functions, and replaced them with setCopyCount(), copyCount() and
98 supportsMultipleCopies().
100 - QPrintDialog/QPrinter
101 * Added support for printing the current page.
104 * Fixed a bug that led to missing text pixels in QTabBar when using
105 small font sizes. (QTBUG-7137)
108 * Fixed rendering bugs when scrolling graphics items with drop
112 * [QTBUG-8112] itemChange() is now called when transformation
113 properties change (setRotation, setScale, setTransformOriginPoint).
114 * [QTBUG-9024] Improved performance when calling update() on items that
115 are clipped by an ancestor (QGraphicsItem::ItemClipsChildrenToShape).
116 * [QTBUG-7703], [QTBUG-8378] Fixed scrolling issues
117 * [QTBUG-12112] Fixed focusItem() returning incorrect value.
120 * [QTBUG-7333] Fixed keyboard shortcuts not being triggered when the
121 the item has focus and something else has the same shortcut sequence.
122 * [QTBUG-10574] Fixed crash when flag "QGraphicsItem::ItemIgnoresTransformations"
126 * [QTBUG-7438] Fixed viewport cursor getting reset when releasing
128 * [QTBUG-10338] Fixed drawing artifacts due to rounding errors.
131 * [QTBUG-12056] Fixed a crash occuring when adding a QGraphicsWidget
132 to a scene after removing and deleting another QGraphicsWidget.
135 * [QTBUG-9640] Prevented unneccessary copy in QImage::setAlphaChannel().
136 * [QTBUG-7982] Added QImage::bitPlaneCount().
137 * [QTBUG-9072] Fixed alpha check for 1-bit-per-pixel images.
140 * [QTBUG-9823] Placeholder text is now correctly aligned with text.
143 * [QTBUG-4974] Printing QPictures containing text to a high resolution
144 QPrinter would in many cases cause incorrect character spacing.
147 * Added QPainter::drawPixmapFragments(), which makes it possible to draw
148 pixmaps, or sub-rectangles of pixmaps, at various positions with
149 different scale, opacity and rotation.
150 * [QTBUG-10018] Fixed image drawing inconsistencies when drawing
151 1x1 source rects with rotating / shear / perspective transforms.
152 * Optimized various blending and rendering operations for ARM
153 processors with a NEON vector unit.
154 * Fixed some performance issues when drawing sub-pixmaps of large
155 pixmaps and falling back to raster in the X11 paint engine.
156 * [QTBUG-7596] Safeguard ourselves against corrupt registry values for
157 ClearType gamma on Windows.
158 * [QTBUG-9218] Fixed flattening of largely scaled, thin, dashed beziers.
159 * [QTBUG-9437] Fixed crash in the raster paint engine when drawing largely
163 * [QTBUG-3778] Fixed bug in painter path polygon intersection code.
164 * [QTBUG-7396] Optimized painter path intersections for when at
165 least one of the paths is a rectangle by special casing.
166 * [QTBUG-8035] Got rid of bezier intersection code in the boolean
167 operators (intersect, subtract, unite) to prevent numerical
169 * [QTBUG-11291] Fixed infinite recursion when drawing very large painter
173 * [QTBUG-4149] Fixed QPixmap::grabWidget() on widgets that have not yet
177 * [QTBUG-6516] Respect AlternateBase role for list views.
180 * [QTBUG-7699] Fixed crash caused by large x-coordinates.
183 * [QTBUG-9335] Improve support for 1-pixel splitters by using a
186 - QTextDocumentWriter
187 * Fixed tab-stops and table padding in ODF export.
190 * [QTBUG-11427] Fix possible crash in QTextLayout for glyphless
192 * [QTBUG-8864] Fix regression in right alignment of text with
193 negative right bearing.
196 * [QTBUG-8557] Fixed bug in QTransform::type() potentially occuring
197 after using operator/ or operator* or their overloads.
201 - Improve performance of text by adding special cased fragment shader.
203 - Made width and height of glyph cache power-of-two for performance
204 improvements on some hardware.
206 - [QTBUG-9706] Improved appearance of text antialiasing.
213 - QHostInfo: Added a small 60 second DNS cache
214 - QNetworkAccessManager
215 * Performance improvements for file:// and http://
217 * Improvements on HTTP pipelining
218 * Fix problem with canReadLine()
219 * Fix problem with HTTP 100 reply
220 * Some new attributes for QNetworkRequest
221 * [QTBUG-8206] add method to send custom requests
222 * [QTBUG-9618] [MR 2372] send secure cookies only over secure connections
223 * [QTBUG-7713] Fix bug related to re-sending request
224 * [QTBUG-7673] Fix issue with some webservers
225 * [QTBUG-11029] do not accept cookies with non-alpha-numerical domain
227 * Better support for derived QTcpServer
228 * [QTBUG-7054] Fix error handling with waitFor*() for socket engine
229 * [QTBUG-7316, QTBUG-7317] Also handle unknown errors from socket engine
231 * [QTBUG-2515] Do not make OpenSSL prompt for a password
232 * [QTBUG-6504, QTBUG-8924, QTBUG-5645] Fix memleak
233 * [QTBUG-9973] QSslCertificate: support large serial numbers
234 * [QTBUG-8833] make QSslSocket::systemCaCertificates() use system certs
235 * [QT-3567] QSslSocket: improve error handling (fixes Secunia Advisory SA40389)
236 * [QBTUG-4455, MR 731] Fix handling of SSL certificates with wildcard domain names
240 - Updated src/3rdparty/javascriptcore to a more recent version
241 - Significantly improved performance of the Qt/C++<-->JavaScript bridge
242 - QScriptValueIterator: Significantly improved performance
243 - [QTBUG-3637] Added a wrap option for excluding slots from a QObject binding
244 - [QTBUG-6238] Added a function for reporting additional memory cost
245 - [QTBUG-6908] Significantly improved performance of qsTr()
250 * [QTBUG-8264] Fixed rounded rectangles when 'rx' or 'ry' is zero.
251 * [QTBUG-10022] Fixed assert failure when loading an invalid SVG.
256 - [QTBUG-8920] fixed crash with anonymous types in XsdSchemaChecker
257 - [QTBUG-8394] include/import/redefine schemas only once
258 - QXmlSchema: fix crash with referencing elements
259 - [QBTUG-6485] QXmlSchema: allow usage of xsd:all
264 - Jpeg image IO plugin
265 * Fixed failure to store certain QImage formats as jpeg (QTBUG-7780)
266 * Optimized smoothscaling
267 * Optimized to avoid data copy when reading from memory device (QTBUG-9095)
269 - SVG image IO plugin
270 * Added support for svgz format (QTBUG-8227)
271 * Fixed canRead() so that it can be used also for non-sequential
272 devices. (QTBUG-9053)
273 * Added support for clipping and scaling and backgroundcolor
274 * Optimized to avoid data copy when reading from memory device (QTBUG-9095)
276 ****************************************************************************
278 ****************************************************************************
280 * [QTBUG-11904] Pointer aliasing problem in sqlite
282 * [QTBUG-10919] Unable to insert unicode chars with codepoint > 255
283 in nvarchar2 column on oracle
284 * [QTBUG-8210] Oracle - DATE in db with a year greater or equal to 2800
285 returns an invalid date
287 ****************************************************************************
288 * Platform Specific Changes *
289 ****************************************************************************
294 * Fixed rtl issues with sliders (QTBUG-8986)
295 * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
296 * Fixed crash when creating QGtkStyle before QApplication. (QTBUG-10758)
299 * [QTBUG-4428] Fixed regression when using bitmap fonts on some
303 * [QTBUG-9442] Avoid possible square root of negative number in
304 FreeType font engine.
307 * [QTBUG-10448] Fix crash when using fonts in non-gui QApplication.
312 - Popup windows now implicitly activate when shown. (QTBUG-7386)
313 - QComboBox [QTBUG-7552] Fix an issue where only "..." would be shown for
314 QComboBox with certain DPI settings.
315 - Fixed a problem where menus exec'ed on system tray icons did not
316 disappear. (QTBUG-7386)
317 - Improved look and feel for QWizard on Windows 7 and Vista. (QTBUG-9873),
318 (QTBUG-11974) and (QTBUG-6120)
320 * Pipe handle leak fixed, when closing a QLocalSocket that still has
321 unwritten data. (QTBUG-7815)
322 * Fixed closing state for local sockets with unwritten data. (QTBUG-9681)
323 * Improved performance of writing to QLocalSocket.
329 * Removed frame around statusbar items. (QTBUG-3574)
330 * More native appearance of item view headers and frames. (QTBUG-10047)
331 * Increased spacing between tree view items. (QTBUG-10190)
332 * Removed frame around status bar items. (QTBUG-3574)
335 * Enable fractional metrics for the font engine on Mac in all
336 stages of text layout.
337 * [QTBUG-5529] Enable design metrics for correct character spacing
338 in ATSUI font engine. (Mac/Carbon)
341 * [QTBUG-8791] Fix misalignment of fixed width fonts between
342 format changes on Cocoa.
345 * [QTBUG-9879] Fix off-by-one in vertical position for elided and
348 Qt for Embedded Linux
349 ---------------------
351 * Add support for WA_TranslucentBackground (QTBUG-5739)
352 * Add support for QFont::NoAntialias (QTBUG-5936)
358 * Fixed menu handling on Windows mobile. (QTBUG-8754)
359 * Fixed a crash when receiving a certain type of WM_SETTINGSCHANGE
360 message. (QTBUG-7943)
362 - QWindowsMobileStyle
363 * Huge performance penalty for QTabWidget fixed for
364 Windows mobile 6.5. (QTBUG-8419)
365 * QTabBar scroll button size has been fixed. (QTBUG-8757)
366 * Detection of Windows mobile 6.5 fixed. (QTBUG-8418)
372 * [QTBUG-11129] Fixed a hanging bug in QSplashScreen on 3.1 devices.
374 - QS60Main... classes
375 * The future compatibility of QS60MainAppUi, QS60MainDocument and
376 QS60MainApplication are improved by removing the need for any
377 sub-class to link to Avkon functions that may not exist in future.
380 ****************************************************************************
381 * Compiler Specific Changes *
382 ****************************************************************************
385 ****************************************************************************
387 ****************************************************************************
391 - [QT-3540] Fixed Symbian resources not honoring TARGET with a path.
392 - "configure -fast" on Windows now also works for other make tools than
394 - [QTBUG-11351] Fixed memory restrictions not being passed on to elf2e32.
395 - [QTBUG-11385] Removed the need to specify -arch symbian when compiling
396 for Symbian on Linux.
397 - [QTBUG-11396] "configure -qtlibinfix" now works when compiling for
399 - [QTBUG-11670] Fixed a bug which caused "make runonphone" to look for
400 package in the wrong place.
401 - [QTBUG-11727] Fixed a bug which made builds outside of the Qt tree fail
403 - [QTBUG-11927] "configure -silent" now works with the
404 symbian/linux-armcc and symbian/linux-gcce mkspecs.
410 - [QTBUG-9351] Fixed a bug that caused modified headerview-properties
411 of item views to be duplicated in the UI-file.
412 - [QTBUG-8347] Fixed a layout problem caused by embedded images in the rich
414 - [QTBUG-8041], [QTBUG-8213] Fixed a crash related to undo while moving
415 widgets by arrow keys.
416 - [QTBUG-7822] Added support for the 'windowOpacity'-property.
417 - [QTBUG-7764] Fixed the emission of the propertyChanged()-signal of
418 QDesignerPropertyEditorInterface.
419 - [QTBUG-5492] Made widgetbox-filter match on class names, too.
422 * The GNU gettext PO format support has been improved
428 * Fixed several parsing bugs. Including changes in the normalized signature.
434 - [QTBUG-9207] Fixed export of image files of type XPM, added
435 compatibility option -limit-xpm-linelength.
438 * Removed remainder of tmake compatibility
439 * Removed remainder of mac9 mode
440 * Removed MSVC6 generator
441 * Removed makespecs for MSVC.NET and MSVC2002
442 * Deprecated -win32/-unix/-macx options, following various cleanups
443 relating to platform support. Cross-building makespecs should now
444 specify a TARGET_PLATFORM.
445 * Started to warn about use of various constructs:
446 - non-lowercased replace $$function() calls
447 - deprecated variables
448 - unescaped backslashes.
449 NOTE: You should use UNIX path separators where possible. qmake
450 will warn about unnecessary Windows path separators in the future.
451 * Removed expansion of qmake- & environment variables in some unexpected
452 cases (double expansions, command line options, etc.)
453 * Removed splitting at semicolons of literal values which were assigned
454 directly to INCLUDEPATH and DEPENDPATH
455 * Removed UNIX-specific exporting of all qmake variables to the environment
456 of subprocesses invoked via system(). You should put specific assignments
457 into the invoked shell command instead.
458 * Started to short-cut evaluation inside if() tests, consistently with
459 evaluation outside if().
460 * Added possibility to request project recursion from within a PRO file
472 ****************************************************************************
474 ****************************************************************************
477 ****************************************************************************
478 * Important Behavior Changes *
479 ****************************************************************************
481 QtScript: Changes due to updating src/3rdparty/javascriptcore:
482 - It is no longer possible to delete an undeletable property from C++
483 using QScriptValue::setProperty().
484 - The QScriptEngineAgent::positionChange() callback will always report
485 a column number of 1.
486 - QScriptValueIterator will include the "length" property when iterating
490 - QChar no longer carries the Q_PACKED tag on ARM. This flag was
491 used to allow proper alignment of QChar on 2 bytes on older ARM
492 ABIs, but it also allowed for unaligned access. Qt never generates
493 or uses unaligned access and the new EABI aligns as expected, so
494 the flag was removed.
495 - QTextBoundaryFinder is now consistent with ICU when it comes to
496 line breaking, reporting the index of the boundary at which the line
497 break should occur rather than the index of the character.
500 - QWidget::setLayoutDirection no longer affects the text layout
501 direction (Qt::LeftToRight or Qt::RightToLeft) of QTextEdit, QLineEdit
502 and widgets based on them. The default text layout direction
503 (Qt::LayoutDirectionAuto) is now detected from keyboard layout and
504 language of the text (conforms to Unicode standards). To
505 programmatically force the text direction of a QTextEdit, you can
506 change the defaultTextOption of the QTextDocument associated with that
507 widget with a new QTextOption of different textDirection property. For
508 QLineEdit, the only way so far is sending a Qt::Key_Direction_L/R
509 keyboard event to that widget.
512 - Qt does no longer provide its own CA bundle, but uses system APIs for
513 retrieving the default system certificates.