Merge branch 4.7 into qt-4.8-from-4.7
[qt:qt-ios-plaszma.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  - QDateTime: Fix generation of ISO8601 strings to include proper timezone information [QTBUG-18290]
86
87 QtGui
88 -----
89
90  - QApplication: Add a queryKeyboardModifiers() method.
91  - QTabBar: reduced minimumSizeHint if ElideMode is set.
92  - QComboBox: Fixed a color propagation issue with the lineedit. [QTBUG-5950]
93  - QGraphicsLayout: Made setInstantInvalidatePropagation() public
94  - Deprecate qGenericMatrixFromMatrix4x4 and qGenericMatrixToMatrix4x4
95  - QListView diverse optimisations [QTBUG-11438]
96  - QTreeWidget/QListWidget: use localeAwareCompare for string comparisons [QTBUG-10839]
97  - PNG image I/O: Much improved support for text annotations, including iTXt fields.
98  - QRawFont and QGlyphRun are introduced for low-level text rendering. [QTBUG-18252]
99  - QFont: hintingPreference() is introduced to control hinting in font rendering and
100    subpixel positioning of glyphs for Windows, Mac OS X and X11/raster. [QTBUG-10615]
101  - Subpixel positioned text layout is supported in raster and OpenGL paint engines.
102  - QFont: styleName() is added to allow selecting fonts with irregular style names
103    like UltraLight. [QTBUG-19366]
104  - Visual text cursor movement behavior is added to QTextEdit and QLineEdit controls,
105    which can be used as an optional mode for bi-directional text editing. [QTBUG-13859]
106  - Fixed several bidi reordering bugs.
107  - Make HTML exported from QTextDocument containing empty lines more compliant.
108  - Include font pixel size when exporting HTML from QTextDocument.
109  - QPainter: Added a fast stroking algorithm for thin (< 1px wide) aliased and antialiased
110    lines, giving a huge improvement in drawing speed for certain cases
111  - Fixed a rare race condition when showing toplevel windows on X11
112  - QWindowsStyle: fix bug in eventFilter on KeyPressed event with alt pressed, that
113    caused unnecessary update events
114  - Accessibility: Fix potential crash in QDockWidget.
115  - Accessibility: Fix crash when asking for relations of child accessibles.
116  - Accessibility: More consistency in reporting names (especially when widget is invisible).
117  - Accessibility: Make focus handling more consistent.
118  - Accessibility: Send updates when text changes.
119  - Accessibility: Add IAccessible2 events.
120  - Accessibility: Fix crash when accessing ItemViews during initialization.
121  - Accessibility: Make QTabWidget child hierarchy consistent.
122  - Accessibility: Report correct window title and application name.
123  - Accessibility: Return text attributes for QTextEdit.
124  - Accessibility: Make accessibility work on Windows with alien widgets
125  - Accessibility: Several enablers for accessible graphicsview and Qt Quick applications.
126  - Fixed loading BMP files with version 4 and 5 headers, ignoring extra data.
127  - QTextCursor optimization
128  - QUndoGroup, QUndoStack: Allow using not only prefixes for undo command text [QTBUG-14442]
129  - QUndoView: Allow different text for undo actions and items
130  - QCommonStyle:¬†Fix overrides from the proxy style [QTBUG-20849]
131
132 QtNetwork
133 ---------
134
135  - SSL: Switch default version to TLS 1.0
136  - SSL: enable Server Name Indication (SNI) by default
137  - QSslCertificate: report fraudulent certificates as invalid ("Comodogate") [QTBUG-18338]
138  - QSslCertificate: display non-ASCII names from subject and issuerInfo (MR-922)
139  - QSslCertificate: loat root certificates on demand on Unix (excluding Mac) [QTBUG-14016]
140  - QNetworkCookie: retain quotes in value attribute [QTBUG-17746]
141  - QNetworkCookie: allow spaces in unquoted values [QTBUG-18876]
142  - HTTP API: add support for HTTP multipart messages [QTBUG-6222]
143  - HTTP cache: do not load resources from cache that must be revalidated [QTBUG-18983]
144  - HTTP cache: change file organization (MR-2505)
145  - SOCKS5: write errors are propagated to the outer socket [QTBUG-18713]
146  - Cookies: Commas are no longer used to support multiple cookies in a single Set-Cookie header [QTBUG-21456]
147  - QNetworkReply: errorString() returns translated messages now [QTBUG-18382]
148
149  QtOpenGL
150  --------
151  - Removed dependency of OpenGL Utility Library (GLU)
152  - Added QGLFunctions, which provides cross-platform access to the
153    OpenGL/ES 2.0 API.
154  - Including <QtOpenGL> will not work in combination with GLEW, as
155    QGLFunctions will undefine GLEW's defines.
156  - Optimize behavior of QGLTextureCache
157  - Support subpixel antialiasing when possible.
158  - [QTBUG-13450] Fixed path drawing on FBOs without stencil buffer.
159  - Reading from the FrameBuffer with Qt now correctly gives an image
160    marked as premultiplied.
161
162 QtScript
163 --------
164  - Deprecated qScriptValueFromQMetaObject, qScriptValueToValue, qScriptValueFromValue
165
166 QtDBus
167 ------
168  - Added a method that returns the local machine ID
169
170 QtWebKit
171 --------
172  - Update QtWebKit to 2.2.0
173    http://trac.webkit.org/wiki/QtWebKitRelease22
174
175 QtSql
176 -----
177  - Update sqlite to 3.7.7.1
178
179 QtSvg
180 -----
181  - [QTBUG-16216] Fixed infinite loop when loading some SVGs with CSS style.
182
183 QtDBus
184 ------
185  - Make QDBusServer work [QTBUG-186]
186  - QDBusConnection: Add methods disconnectFromPeer and connectToPeer
187  - Make the DBus timeout configurable in QDBusAbstractInterface.
188
189 QtTest
190 ------
191  - Added -random and -seed options to tests, making the test cases within
192    a test execute in arbitrary order.
193
194 ****************************************************************************
195 *                          Database Drivers                                *
196 ****************************************************************************
197
198
199 ****************************************************************************
200 *                      Platform Specific Changes                           *
201 ****************************************************************************
202
203 Qt for Linux/X11
204 ----------------
205  - Now takes font hinting settings from GConf by default if running in
206    GNOME desktop.
207  - Various fixes to FontConfig font matching code to make it consistent
208    with other X11 programs. [QTBUG-2148, QTBUG-19947, QTBUG-14269]
209  - Added experimental support for armCC
210  - Experimental support for associating Wayland clients with PID or a token,
211    to facilitate window management.
212
213 Qt for Windows
214 --------------
215  - DirectWrite experimental text shaping engine is added with subpixel
216    positioning support. [QTBUG-12678]
217  - QElapsedTimer: use QueryPerformanceCounter if available.
218  - MSVC runtime is bound to the runtime you're building with. This makes
219    deployment on Windows easier. (QTBUG-8215)
220  - QLocalSocket::isValid() has been fixed. (QTBUG-18204)
221
222 Qt for Mac OS X
223 ---------------
224  - raster graphics system is now made as the default paint engine for
225    Mac OS X. [QTBUG-12615]
226  - HarfBuzz can now be used as an optional text layout engine on Mac OS X.
227    [QTBUG-17728]
228
229 Qt for Embedded Linux
230 ---------------------
231  - Added support for QNX 6.5 with multi-process support, and much improved mouse,
232    keyboard and screen drivers.
233  - Improved support for INTEGRITY RTOS
234  - Allow hard-coding the temp path in mkspecs (QT_UNIX_TEMP_PATH_OVERRIDE define)
235  - Added support for opening LinuxInput devices exclusively (via ioctl EVIOCGRAB)
236  - Added eglnullws QScreen driver for use with OpenGL ES EGL null window system (NullWS).
237
238 Qt for Symbian
239 --------------
240  - File APIs now have backends using native API rather than unix.
241    This improves performance and stability.
242  - Socket APIs now have a backend using native API rather than unix. [QTBUG-7274]
243    This improves stability and enables IPv6.
244  - IPv6 connectivity is now supported.
245  - Multiple instances of QNetworkAccessManager in the same process with a
246    different QNetworkConfiguration now work. This allows http requests to
247    be made via a specific network. For example to mobile operator websites
248    only accessible via the cellular network, or to websites inside a firewall
249  - System proxy settings now work correctly when using service networks [QTBUG-18618]
250  - Prevent horizontal lines appearing under entered characters when predictive text is off
251  - Checked state is not shown on highlighted itemview item when using QS60Style [QTBUG-19668]
252  - Icon is not shown correctly in a menu item in all cases when using QS60Style [QTBUG-19330]
253  - Remove S60 3rd edition support from QS60Style [QTBUG-18615]
254  - Prevent softkeys from coming to foreground when taskswitcher is opened [QTBUG-19225]
255  - Improve robustness of QS60Style when creating native theme bitmaps [QTBUG-21119]
256  - Make spinboxes and lineedits slightly taller in QS60Style
257  - Default graphics memory quota for Symbian applications support [QT-4963]
258  - Improved support for shadow builds in Symbian [QTBUG-10432]
259  - Fixed panic when global QSettings instance needs flusing at app exit [QTBUG-21421]
260  - Detect app caption and pkg name translations by id attribute [QT-5247]
261  - Fixed center aligned layouts for Symbian [QTBUG-14704]
262  - Fixed Symbian system date format parsing [QT-5237]
263  - Skip softkeys update if application is not on foreground in Symbian [QTBUG-19225]
264  - Removed S60 version plugins [QTBUG-18614]
265  - Improved DEFINES crossplatform compatibility in Symbian builds [QTBUG-19232]
266  - Fixed loss of focus and activation when hiding a child widget [QTBUG-19196]
267  - Fixed softkeys in case a dialog with softkeys that have icons is closed [QTBUG-19154]
268  - Update softkeys after orientation switch [QTBUG-19150]
269  - Implemented support for enable_backup CONFIG value [QTBUG-17214]
270  - Improved logic to find default certificates in createpackage script [QTBUG-18684]
271  - Changed createpackage and patch_capabilties scripts use tmp dir [QTBUG-11394]
272  - Added ".make.cache" to the files to be cleaned for symbian-abld [QTBUG-15733]
273  - Fixed emulator deployment for items with "!:" drive [QTBUG-18134]
274  - Removed broken "deploy.path" support from Symbian [QTBUG-14426]
275  - Strip echo suppression character "@" from commands in symbian-sbsv2 [QTBUG-4767]
276  - Don't leave from QNotifyChangeEvent::RunL() in QFileSystemWatcher [QT-4660]
277  - Fixed QProcess::waitForFinished WaitForRequest handling in Symbian [QT-4659]
278  - Changed DEPLOYMENT keyword to accept both .sources and .files [QTBUG-3216]
279  - Removed static vs dynamic library autodetection from qmake in Symbian [QTBUG-13498]
280  - QtConcurrent is now working both with RVCT 2.2 and GCCE 4.4.1 on Symbian, but not with WINSCW,
281 the compiler of Symbian emulator (and there is no plan to support it). [QTBUG-5182] [QTBUG-9070]
282
283 Qt for Windows CE
284 -----------------
285
286
287 ****************************************************************************
288 *                      Compiler Specific Changes                           *
289 ****************************************************************************
290 - Sun Studio 12
291     * Fixed build issues in the OpenGL module on Solaris with CC 5.9. [QTBUG-19641]
292
293 - Microsoft Visual C++
294     * Fixed build issues with STLport. [QTBUG-18374]
295
296 ****************************************************************************
297 *                          Tools                                           *
298 ****************************************************************************
299
300 - Build System
301
302 - Assistant
303
304 - Designer
305     * [QTBUG-18631] Enabled the use of promoted QWidgets in the buddy editor.
306     * [QTBUG-18120] Fixed saving of the Z-order.
307     * [QTBUG-13683] Fixed saving of QGridLayout and QFormLayout
308       by QFormBuilder.
309     * [QTBUG-10890] Added a filter to the rich text editor dialog.
310       that simplifies the HTML markup generated.
311     * [QTBUG-7777] Added support for QIcon::fromTheme.
312     * [QTBUG-7169] Fixed QtUiTools to be built with the correct
313       lib-infix.
314     * [QTBUG-3120] Added support for alignment of box layout items.
315
316 - Linguist
317   - Linguist GUI
318
319   - lupdate
320
321   - lrelease
322
323
324 - rcc
325
326
327 - moc
328
329
330 - uic
331
332
333 - uic3
334
335
336 - qmake
337     * Look for external Qt modules in $QMAKEPATH
338     * MinGW: fix DEF_FILE for shadow builds. (QTBUG-11643)
339     * Implemented "aux" template that allows making use of the INSTALLS variable
340       without building anything. Needed for projects with QML entry point.
341     * MSVC now link with /DYNAMICBASE /NXCOMPAT in order to increase security.
342     * Fix the language settings in generated Windows resource files. (QTBUG-12249)
343     * Write and install pkg-config files for MinGW
344     * Make PKGCONFIG referencing missing packages fatal; add packagesExist() for
345       a-priori checks. (QTBUG-11418)
346     * Make moc use DEFINES from pkg-config. (QTBUG-19922)
347     * Parsing nested quotes works a bit differently now
348     * Added -unset <prop> option
349     * Made the Hurd mkspec useful
350     * Visual Studio project generator
351       - Support x64 Qt builds. (QTBUG-17911)
352       - QMAKE_PROJECT_NAME qmake variable introduced to set the project's name.
353       - Support PCHs with other extensions than ".h". (QTBUG-16639)
354       - Fix setting PCH options manually via the MSVC compiler flags. (QTBUG-15594)
355       - Set the output directory correctly. (QTBUG-16490)
356       - Fix handling of DEFINES from .prl files. (QTBUG-16024)
357
358 - configure
359     * The endianness for Windows is always set to little endian.
360     * [QTBUG-5710] Configure now complains on missing perl on windows
361     * Removed obsolete -qt-gif option
362     * Allow setting LD, RANLIB, OBJDUMP, and STRIP.
363     * Allow selecting imageformats to be built as plugin vs. internal.
364
365 - qtconfig
366   * removed Qt3support dependency
367
368
369 - qt3to4
370
371 - qmlplugindump
372     * New tool to generate text descriptions of the QML components defined
373       in plugins loaded by a QML module.
374
375 - syncqt
376     * Fix to allow $QTDIR to contain any valid pathname characters.
377
378 - qdoc3
379     * Add support for documenting QML using module identifiers.
380     * Change the format of qdocconf files.
381
382 ****************************************************************************
383 *                          Plugins                                         *
384 ****************************************************************************
385
386
387 ****************************************************************************
388 *                   Important Behavior Changes                             *
389 ****************************************************************************
390