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:
5 http://qt.nokia.com/doc/4.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.
10 Some of the changes listed in this file include issue tracking numbers
11 corresponding to tasks in the Task Tracker:
13 http://qt.nokia.com/developer/task-tracker
15 Each of these identifiers can be entered in the task tracker to obtain more
16 information about a particular change.
18 ****************************************************************************
20 ****************************************************************************
23 * The minimum required version of the D-Bus reference library is
27 ****************************************************************************
29 ****************************************************************************
31 * [245219] Added QXmlQuery::setFocus(const QString &focus);
35 * Added QVariant::toFloat() and QVariant::toReal()
36 * Added QVariant(float) constructor
38 ****************************************************************************
39 * Platform Specific Changes *
40 ****************************************************************************
42 - Significant external contribution from Milan Burda for planned removal
43 of (non-unicode) Windows 9x/ME support.
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.
52 - [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links
53 thanks to Konstantin Ritt (merge request 1217).
55 - The reading code of QLocalSocket on Windows has been rewritten to improve
58 ****************************************************************************
59 * Important Behavior Changes *
60 ****************************************************************************
62 - The experimental Direct3D paint engine has been removed. The reason for
63 this is that Nokia focuses on OpenGL for desktop hardware accelerated
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.
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.
81 - Graphics View has undergone heavy optimization work, and as a result of
82 this work, the following behavior changes were introduced.
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.
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.
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.
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).
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
108 - QUrl's parser is more strict when for hostnames in URLs. QUrl now
109 enforces STD 3 rules:
111 * each individual hostname section (between dots) must be at most
112 63 ASCII characters in length;
114 * only letters, digits, and the hyphen character are allowed in the
115 ASCII range; letters outside the ASCII range follow the normal
118 That means QUrl no longer accepts some URLs that were invalid
119 before, but weren't interpreted as such.
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.
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.
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
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.
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.