Merge remote-tracking branch 'mainline/4.8'
[qt:qt.git] / dist / changes-4.8.0
1 Qt 4.8 introduces many new features and improvements as well as bugfixes
2 over the 4.7.x series. For more details, refer to the online documentation
3 included in this distribution. The documentation is also available online:
4
5   http://qt.nokia.com/doc/4.8
6
7 The Qt version 4.8 series is binary compatible with the 4.7.x series.
8 Applications compiled for 4.7 will continue to run with 4.8.
9
10 Some of the changes listed in this file include issue tracking numbers
11 corresponding to tasks in the Qt Bug Tracker:
12
13   http://bugreports.qt.nokia.com/
14
15 Each of these identifiers can be entered in the bug tracker to obtain more
16 information about a particular change.
17
18 ****************************************************************************
19 *                           General                                        *
20 ****************************************************************************
21
22 Qt Platform Abstraction
23 -----------------------
24
25 Qt 4.8 adds a new platform: QPA (also known as Lighthouse). QPA is a replacement
26 for Qt for Embedded Linux (QWS), making it much easier to port Qt to new platforms.
27
28 General Improvements
29 --------------------
30
31 -
32
33 Third party components
34 ----------------------
35
36  - Updated libpng to version 1.5.4
37  - Updated libjpeg to version 8c
38  - Updated zlib to version 1.2.5
39
40
41 ****************************************************************************
42 *                          Library                                         *
43 ****************************************************************************
44
45 QtCore
46 ------
47  - Removed support for QT_NO_THREAD define for QHostInfo.
48  - Optimized plugin loading on ELF platforms.
49    Print failure reason at runtime with QT_DEBUG_PLUGINS=1 in environment.
50  - QMutexLocker: improved performence of the non contended case by inlining some function
51  - QThreadStorage: Added possibility to store object by value instead of by pointer [QTBUG-15033]
52  - QThread: fixed few race conditions [QTBUG-17257, QTBUG-15030]
53  - QtConcurrent: Entry points were re-written and interfaces changed. This work was
54 done in order to add support for QtConcurrent on Symbian, but ultimately it was noted
55 that the changes lead to a leaner API and the change applies to all platforms.
56  - QtConcurrent: added support for c++0x lambda in few functions
57  - QObject: Improved performence of the signal activation
58  - QObject: added ways to connect signals using QMetaMethod
59  - QObject: added senderSignalIndex method to discover the signal that invoked a slot
60  - QObject: deprecated qFindChild and qFindChildren
61  - QObject: optimize constructions and destruction of objects
62  - QObject: Qt::BlockingQueuedConnection can handle the return value [QTBUG-10440]
63  - QList/QVector/QStringList: added C++0x initilizer lists constructors.
64  - QList: optimizations
65  - QVarLenghtArray: added method for consistency with QVector
66  - QStringBuilder: added support for QByteArray
67  - qSwap now uses std::swap, specialized std::swap for our container to work better with stl algoritms
68  - Added member-swap function to containers and implicitly shared (including GUI) classes
69  - QVariant: deprecated global function qVariantSetValue, qVariantValue, qVariantCanConvert, qVariantFromValue
70  - QUrl: add method for retrieving effective top level domain [QTBUG-13601] (MR-1205)
71  - optimised performance of QFileInfo, QDir, QDirIterator, these classes now share metadata and access the filesystem less
72  - QFile: new open() overloads allow control over whether QFile should close an adopted file handle or not
73  - Fix QProcess emitting two started signals on X11 [QTBUG-7039]
74  - QLocale: added locale dependent to{Upper,Lower} string conversions
75  - QUuid: Optimize QUuid::toString() and relevant, circa 20 times faster than before on the test machine. [QTBUG-19418]
76  - QUuid: Add QUuid::toByteArray() and relevant, same behavior with QUuid::toString(). [QTBUG-19419]
77  - QUuid: Add QUuid::toRfc4122() and fromRfc4122(), provide interfaces by following the RFC-4122 [QTBUG-19420]
78  - QTextStream, QDataStream and QXmlStreamWriter: added write error reporting [QTBUG-376]
79  - QProcessEnvironment: added keys() and insert(const QProcessEnvironment &)
80  - QProcessEnvironment: preserve variable name case on Windows
81  - QProcessEnvironment: made systemEnvironment() encoding-safe
82  - QProcessEnvironment: major optimizations, especially on Unix
83  - Add branch prediction macros Q_LIKELY and Q_UNLIKELY
84  - QSettings: don't assume XDG_CONFIG_HOME is latin1-encoded
85
86 QtGui
87 -----
88
89  - QApplication: Add a queryKeyboardModifiers() method.
90  - QTabBar: reduced minimumSizeHint if ElideMode is set.
91  - QComboBox: Fixed a color propagation issue with the lineedit. [QTBUG-5950]
92  - QGraphicsLayout: Made setInstantInvalidatePropagation() public
93  - Deprecate qGenericMatrixFromMatrix4x4 and qGenericMatrixToMatrix4x4
94  - QListView diverse optimisations [QTBUG-11438]
95  - QTreeWidget/QListWidget: use localeAwareCompare for string comparisons [QTBUG-10839]
96  - PNG image I/O: Much improved support for text annotations, including iTXt fields.
97  - QRawFont and QGlyphRun are introduced for low-level text rendering. [QTBUG-18252]
98  - QFont: hintingPreference() is introduced to control hinting in font rendering and
99    subpixel positioning of glyphs for Windows, Mac OS X and X11/raster. [QTBUG-10615]
100  - Subpixel positioned text layout is supported in raster and OpenGL paint engines.
101  - QFont: styleName() is added to allow selecting fonts with irregular style names
102    like UltraLight. [QTBUG-19366]
103  - Visual text cursor movement behavior is added to QTextEdit and QLineEdit controls,
104    which can be used as an optional mode for bi-directional text editing. [QTBUG-13859]
105  - Fixed several bidi reordering bugs.
106  - Make HTML exported from QTextDocument containing empty lines more compliant.
107  - Include font pixel size when exporting HTML from QTextDocument.
108  - QPainter: Added a fast stroking algorithm for thin (< 1px wide) aliased and antialiased
109    lines, giving a huge improvement in drawing speed for certain cases
110  - Fixed a rare race condition when showing toplevel windows on X11
111  - QWindowsStyle: fix bug in eventFilter on KeyPressed event with alt pressed, that
112    caused unnecessary update events
113  - Accessibility: Fix potential crash in QDockWidget.
114  - Accessibility: Fix crash when asking for relations of child accessibles.
115  - Accessibility: More consistency in reporting names (especially when widget is invisible).
116  - Accessibility: Make focus handling more consistent.
117  - Accessibility: Send updates when text changes.
118  - Accessibility: Add IAccessible2 events.
119  - Accessibility: Fix crash when accessing ItemViews during initialization.
120  - Accessibility: Make QTabWidget child hierarchy consistent.
121  - Accessibility: Report correct window title and application name.
122  - Accessibility: Return text attributes for QTextEdit.
123  - Accessibility: Make accessibility work on Windows with alien widgets
124  - Accessibility: Several enablers for accessible graphicsview and Qt Quick applications.
125  - Fixed loading BMP files with version 4 and 5 headers, ignoring extra data.
126  - QTextCursor optimization
127  - QUndoGroup, QUndoStack: Allow using not only prefixes for undo command text [QTBUG-14442]
128  - QUndoView: Allow different text for undo actions and items
129  - QCommonStyle:¬†Fix overrides from the proxy style [QTBUG-20849]
130
131 QtNetwork
132 ---------
133
134  - SSL: Switch default version to TLS 1.0
135  - SSL: enable Server Name Indication (SNI) by default
136  - QSslCertificate: report fraudulent certificates as invalid ("Comodogate") [QTBUG-18338]
137  - QSslCertificate: display non-ASCII names from subject and issuerInfo (MR-922)
138  - QSslCertificate: loat root certificates on demand on Unix (excluding Mac) [QTBUG-14016]
139  - QNetworkCookie: retain quotes in value attribute [QTBUG-17746]
140  - QNetworkCookie: allow spaces in unquoted values [QTBUG-18876]
141  - HTTP API: add support for HTTP multipart messages [QTBUG-6222]
142  - HTTP cache: do not load resources from cache that must be revalidated [QTBUG-18983]
143  - HTTP cache: change file organization (MR-2505)
144  - SOCKS5: write errors are propagated to the outer socket [QTBUG-18713]
145  - QNetworkReply: errorString() returns translated messages now [QTBUG-18382]
146
147  QtOpenGL
148  --------
149  - Removed dependency of OpenGL Utility Library (GLU)
150  - Added QGLFunctions, which provides cross-platform access to the
151    OpenGL/ES 2.0 API.
152  - Including <QtOpenGL> will not work in combination with GLEW, as
153    QGLFunctions will undefine GLEW's defines.
154  - Optimize behavior of QGLTextureCache
155  - Support subpixel antialiasing when possible.
156  - [QTBUG-13450] Fixed path drawing on FBOs without stencil buffer.
157  - Reading from the FrameBuffer with Qt now correctly gives an image
158    marked as premultiplied.
159
160 QtScript
161 --------
162  - Deprecated qScriptValueFromQMetaObject, qScriptValueToValue, qScriptValueFromValue
163
164 QtDBus
165 ------
166  - Added a method that returns the local machine ID
167
168 QtWebKit
169 --------
170  - Update QtWebKit to 2.2.0
171    http://trac.webkit.org/wiki/QtWebKitRelease22
172
173 QtSql
174 -----
175  - Update sqlite to 3.7.7.1
176
177 QtSvg
178 -----
179  - [QTBUG-16216] Fixed infinite loop when loading some SVGs with CSS style.
180
181 QtDBus
182 ------
183  - Make QDBusServer work [QTBUG-186]
184  - QDBusConnection: Add methods disconnectFromPeer and connectToPeer
185  - Make the DBus timeout configurable in QDBusAbstractInterface.
186
187 ****************************************************************************
188 *                          Database Drivers                                *
189 ****************************************************************************
190
191
192 ****************************************************************************
193 *                      Platform Specific Changes                           *
194 ****************************************************************************
195
196 Qt for Linux/X11
197 ----------------
198  - Now takes font hinting settings from GConf by default if running in
199    GNOME desktop.
200  - Various fixes to FontConfig font matching code to make it consistent
201    with other X11 programs. [QTBUG-2148, QTBUG-19947, QTBUG-14269]
202  - Added experimental support for armCC
203  - Experimental support for associating Wayland clients with PID or a token,
204    to facilitate window management.
205
206 Qt for Windows
207 --------------
208  - DirectWrite experimental text shaping engine is added with subpixel
209    positioning support. [QTBUG-12678]
210  - QElapsedTimer: use QueryPerformanceCounter if available.
211  - MSVC runtime is bound to the runtime you're building with. This makes
212    deployment on Windows easier. (QTBUG-8215)
213  - QLocalSocket::isValid() has been fixed. (QTBUG-18204)
214
215 Qt for Mac OS X
216 ---------------
217  - Alien widgets is now used by default for Qt/Cocoa on Mac OS X. 
218  - Qt/Cocoa on Mac OS X has now full support for the raster paint engine.
219  - QApplication has now implemented macEventFilter for Qt/Cocoa
220  - HarfBuzz can now be used as an optional text layout engine on Mac OS X.
221    [QTBUG-17728]
222  - Qt shows some love to OS X Lion (10.7).
223
224 Qt for Embedded Linux
225 ---------------------
226  - Added support for QNX 6.5 with multi-process support, and much improved mouse,
227    keyboard and screen drivers.
228  - Improved support for INTEGRITY RTOS
229  - Allow hard-coding the temp path in mkspecs (QT_UNIX_TEMP_PATH_OVERRIDE define)
230  - Added support for opening LinuxInput devices exclusively (via ioctl EVIOCGRAB)
231  - Added eglnullws QScreen driver for use with OpenGL ES EGL null window system (NullWS).
232
233 Qt for Symbian
234 --------------
235  - File APIs now have backends using native API rather than unix.
236    This improves performance and stability.
237  - Socket APIs now have a backend using native API rather than unix. [QTBUG-7274]
238    This improves stability and enables IPv6.
239  - IPv6 connectivity is now supported.
240  - Multiple instances of QNetworkAccessManager in the same process with a
241    different QNetworkConfiguration now work. This allows http requests to
242    be made via a specific network. For example to mobile operator websites
243    only accessible via the cellular network, or to websites inside a firewall
244  - System proxy settings now work correctly when using service networks [QTBUG-18618]
245  - Prevent horizontal lines appearing under entered characters when predictive text is off
246  - Checked state is not shown on highlighted itemview item when using QS60Style [QTBUG-19668]
247  - Icon is not shown correctly in a menu item in all cases when using QS60Style [QTBUG-19330]
248  - Remove S60 3rd edition support from QS60Style [QTBUG-18615]
249  - Prevent softkeys from coming to foreground when taskswitcher is opened [QTBUG-19225]
250  - Improve robustness of QS60Style when creating native theme bitmaps [QTBUG-21119]
251  - Make spinboxes and lineedits slightly taller in QS60Style
252  - Default graphics memory quota for Symbian applications support [QT-4963]
253  - Improved support for shadow builds in Symbian [QTBUG-10432]
254  - Fixed panic when global QSettings instance needs flusing at app exit [QTBUG-21421]
255  - Detect app caption and pkg name translations by id attribute [QT-5247]
256  - Fixed center aligned layouts for Symbian [QTBUG-14704]
257  - Fixed Symbian system date format parsing [QT-5237]
258  - Skip softkeys update if application is not on foreground in Symbian [QTBUG-19225]
259  - Removed S60 version plugins [QTBUG-18614]
260  - Improved DEFINES crossplatform compatibility in Symbian builds [QTBUG-19232]
261  - Fixed loss of focus and activation when hiding a child widget [QTBUG-19196]
262  - Fixed softkeys in case a dialog with softkeys that have icons is closed [QTBUG-19154]
263  - Update softkeys after orientation switch [QTBUG-19150]
264  - Implemented support for enable_backup CONFIG value [QTBUG-17214]
265  - Improved logic to find default certificates in createpackage script [QTBUG-18684]
266  - Changed createpackage and patch_capabilties scripts use tmp dir [QTBUG-11394]
267  - Added ".make.cache" to the files to be cleaned for symbian-abld [QTBUG-15733]
268  - Fixed emulator deployment for items with "!:" drive [QTBUG-18134]
269  - Removed broken "deploy.path" support from Symbian [QTBUG-14426]
270  - Strip echo suppression character "@" from commands in symbian-sbsv2 [QTBUG-4767]
271  - Don't leave from QNotifyChangeEvent::RunL() in QFileSystemWatcher [QT-4660]
272  - Fixed QProcess::waitForFinished WaitForRequest handling in Symbian [QT-4659]
273  - Changed DEPLOYMENT keyword to accept both .sources and .files [QTBUG-3216]
274  - Removed static vs dynamic library autodetection from qmake in Symbian [QTBUG-13498]
275  - QtConcurrent is now working both with RVCT 2.2 and GCCE 4.4.1 on Symbian, but not with WINSCW,
276 the compiler of Symbian emulator (and there is no plan to support it). [QTBUG-5182] [QTBUG-9070]
277
278 Qt for Windows CE
279 -----------------
280
281
282 ****************************************************************************
283 *                      Compiler Specific Changes                           *
284 ****************************************************************************
285 - Sun Studio 12
286     * Fixed build issues in the OpenGL module on Solaris with CC 5.9. [QTBUG-19641]
287
288 - Microsoft Visual C++
289     * Fixed build issues with STLport. [QTBUG-18374]
290
291 ****************************************************************************
292 *                          Tools                                           *
293 ****************************************************************************
294
295 - Build System
296
297 - Assistant
298
299 - Designer
300     * [QTBUG-18631] Enabled the use of promoted QWidgets in the buddy editor.
301     * [QTBUG-18120] Fixed saving of the Z-order.
302     * [QTBUG-13683] Fixed saving of QGridLayout and QFormLayout
303       by QFormBuilder.
304     * [QTBUG-10890] Added a filter to the rich text editor dialog.
305       that simplifies the HTML markup generated.
306     * [QTBUG-7777] Added support for QIcon::fromTheme.
307     * [QTBUG-7169] Fixed QtUiTools to be built with the correct
308       lib-infix.
309     * [QTBUG-3120] Added support for alignment of box layout items.
310
311 - Linguist
312   - Linguist GUI
313
314   - lupdate
315
316   - lrelease
317
318
319 - rcc
320
321
322 - moc
323
324
325 - uic
326
327
328 - uic3
329
330
331 - qmake
332     * Look for external Qt modules in $QMAKEPATH
333     * MinGW: fix DEF_FILE for shadow builds. (QTBUG-11643)
334     * Implemented "aux" template that allows making use of the INSTALLS variable
335       without building anything. Needed for projects with QML entry point.
336     * MSVC now link with /DYNAMICBASE /NXCOMPAT in order to increase security.
337     * Fix the language settings in generated Windows resource files. (QTBUG-12249)
338     * Write and install pkg-config files for MinGW
339     * Make PKGCONFIG referencing missing packages fatal; add packagesExist() for
340       a-priori checks. (QTBUG-11418)
341     * Make moc use DEFINES from pkg-config. (QTBUG-19922)
342     * Parsing nested quotes works a bit differently now
343     * Added -unset <prop> option
344     * Made the Hurd mkspec useful
345     * Visual Studio project generator
346       - Support x64 Qt builds. (QTBUG-17911)
347       - QMAKE_PROJECT_NAME qmake variable introduced to set the project's name.
348       - Support PCHs with other extensions than ".h". (QTBUG-16639)
349       - Fix setting PCH options manually via the MSVC compiler flags. (QTBUG-15594)
350       - Set the output directory correctly. (QTBUG-16490)
351       - Fix handling of DEFINES from .prl files. (QTBUG-16024)
352
353 - configure
354     * The endianness for Windows is always set to little endian.
355     * [QTBUG-5710] Configure now complains on missing perl on windows
356     * Removed obsolete -qt-gif option
357     * Allow setting LD, RANLIB, OBJDUMP, and STRIP.
358     * Allow selecting imageformats to be built as plugin vs. internal.
359
360 - qtconfig
361   * removed Qt3support dependency
362
363
364 - qt3to4
365
366 - qmlplugindump
367     * New tool to generate text descriptions of the QML components defined
368       in plugins loaded by a QML module.
369
370 - syncqt
371     * Fix to allow $QTDIR to contain any valid pathname characters.
372
373 ****************************************************************************
374 *                          Plugins                                         *
375 ****************************************************************************
376
377
378 ****************************************************************************
379 *                   Important Behavior Changes                             *
380 ****************************************************************************
381