|
1 Qt 4.6 introduces many new features and improvements as well as bugfixes |
|
2 over the 4.5.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.6 |
|
6 |
|
7 The Qt version 4.6 series is binary compatible with the 4.5.x series. |
|
8 Applications compiled for 4.5 will continue to run with 4.6. |
|
9 |
|
10 Some of the changes listed in this file include issue tracking numbers |
|
11 corresponding to tasks in the Task Tracker: |
|
12 |
|
13 http://qt.nokia.com/developer/task-tracker |
|
14 |
|
15 Each of these identifiers can be entered in the task tracker to obtain more |
|
16 information about a particular change. |
|
17 |
|
18 **************************************************************************** |
|
19 * General * |
|
20 **************************************************************************** |
|
21 |
|
22 - QtDBus |
|
23 * The minimum required version of the D-Bus reference library is |
|
24 now 0.93. |
|
25 |
|
26 |
|
27 **************************************************************************** |
|
28 * Library * |
|
29 **************************************************************************** |
|
30 |
|
31 * [245219] Added QXmlQuery::setFocus(const QString &focus); |
|
32 |
|
33 - QVariant |
|
34 * Many optimisations |
|
35 * Added QVariant::toFloat() and QVariant::toReal() |
|
36 * Added QVariant(float) constructor |
|
37 |
|
38 **************************************************************************** |
|
39 * Platform Specific Changes * |
|
40 **************************************************************************** |
|
41 |
|
42 - Significant external contribution from Milan Burda for planned removal |
|
43 of (non-unicode) Windows 9x/ME support. |
|
44 |
|
45 - QRegion is no longer a GDI object by default. This means it is no |
|
46 longer subject to gui-thread only nor does it potentially impact |
|
47 the 10.000 GDI object limit per process. By explicitly calling |
|
48 .handle() a GDI object will be created and memory managed by |
|
49 QRegion. The native handle is for reading out only. Any GDI calls |
|
50 made on the HRGN handle will not affect the QRegion. |
|
51 |
|
52 - [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links |
|
53 thanks to Konstantin Ritt (merge request 1217). |
|
54 |
|
55 - The reading code of QLocalSocket on Windows has been rewritten to improve |
|
56 reading performance. |
|
57 |
|
58 **************************************************************************** |
|
59 * Important Behavior Changes * |
|
60 **************************************************************************** |
|
61 |
|
62 - The experimental Direct3D paint engine has been removed. The reason for |
|
63 this is that Nokia focuses on OpenGL for desktop hardware accelerated |
|
64 rendering. |
|
65 |
|
66 - The default engine used to draw onto OpenGL buffers has changed in |
|
67 Qt 4.6. The QPaintEngine::OpenGL2 engine is now used as the default |
|
68 engine. This *may* cause compatibility problems for applications |
|
69 that use a mix of QPainter and native OpenGL calls to draw into a GL |
|
70 buffer. Use the QGL::setPreferredPaintEngine() function to enforce |
|
71 usage of the old GL paint engine. |
|
72 |
|
73 - When mixing OpenGL and QPainter calls you need to surround your |
|
74 custom OpenGL calls with QPainter::beginNativePainting() and |
|
75 QPainter::endNativePainting(). |
|
76 This is to ensure that the paint engine flushes any pending drawing and sets |
|
77 up the GL modelview/projection matrices properly before you can issue custom |
|
78 OpenGL calls, and to let the paint engine synchronize to the painter state |
|
79 before resuming regular QPainter based drawing. |
|
80 |
|
81 - Graphics View has undergone heavy optimization work, and as a result of |
|
82 this work, the following behavior changes were introduced. |
|
83 |
|
84 a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding |
|
85 rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by |
|
86 default. You can enable an exact exposed rectangle and a correct matrix |
|
87 by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions. |
|
88 |
|
89 b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is |
|
90 always initialized to 1. Instead you can call |
|
91 QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &) |
|
92 to determine the level of detail. |
|
93 |
|
94 c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn |
|
95 QGraphicsScene::drawItems(), by default. You can get the old behavior |
|
96 back by enabling QGraphicsView::IndirectPainting. |
|
97 |
|
98 d) QGraphicsItem no longer calls itemChange() for position and |
|
99 transformation changes. If you want to receive notifications for changes |
|
100 to the item's position and transformation, you can set the flag |
|
101 QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by |
|
102 QGraphicsWidget and QGraphicsProxyWidget). |
|
103 |
|
104 - QDesktopWidget on X11 no longer emits the resized(int) signal when screens |
|
105 are added or removed. This was not done on other platforms. Use the |
|
106 screenCountChanged signal instead |
|
107 |
|
108 - QUrl's parser is more strict when for hostnames in URLs. QUrl now |
|
109 enforces STD 3 rules: |
|
110 |
|
111 * each individual hostname section (between dots) must be at most |
|
112 63 ASCII characters in length; |
|
113 |
|
114 * only letters, digits, and the hyphen character are allowed in the |
|
115 ASCII range; letters outside the ASCII range follow the normal |
|
116 IDN rules |
|
117 |
|
118 That means QUrl no longer accepts some URLs that were invalid |
|
119 before, but weren't interpreted as such. |
|
120 |
|
121 - The Unix configure-time check for STL is stricter now in Qt |
|
122 4.6.0. This means some legacy STL implementations may fail to pass |
|
123 the test and, therefore, Qt will automatically disable STL support. |
|
124 |
|
125 This is a binary-compatible change: existing code will continue to |
|
126 work without being recompiled. However, it affects the source code, |
|
127 since some STL-compatibility API will not be enabled. |
|
128 |
|
129 Platforms affected by this change: |
|
130 * solaris-cc-* with the default (Cstd) C++ STL library |
|
131 recommendation: use -library=stlport4 |
|
132 See Sun Studio's documentation for the effects of this option |
|
133 |
|
134 - QVariant has now a new implicit constructor that takes a float. This |
|
135 means that code that assigned a float to a variant would create a |
|
136 variant with userType QMetaType::Float, instead of QVariant::Double. |
|
137 |
|
138 - QDataStream will now read and write all floating point numbers with the |
|
139 same precision, regardless of whether it's streamed into or out from a |
|
140 float or double. This is to maintain compatibility across platforms with |
|
141 a different default precision for qreal. The default is 64-bit precision |
|
142 for all floating point numbers, and this can be changed using the new |
|
143 function setFloatingPointPrecision(). Set Qt_4_5 as the version of the |
|
144 QDataStream to get the behavior of previous versions. |
|
145 |