0
|
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 |
|