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