Don't check for null if never happens, but test it if it may...
[qt-netbsd.git] / dist / changes-4.6.0
blobca984ac2f037873afffd2ad50dd447a44befc357
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 ****************************************************************************
19 *                           General                                        *
20 ****************************************************************************
24 ****************************************************************************
25 *                          Library                                         *
26 ****************************************************************************
28     * [245219] Added QXmlQuery::setFocus(const QString &focus);
30  - QVariant
31     * Many optimisations
32     * Added QVariant::toFloat() and QVariant::toReal()
33     * Added QVariant(float) constructor
35 ****************************************************************************
36 *                      Platform Specific Changes                           *
37 ****************************************************************************
39  - Significant external contribution from Milan Burda for planned removal
40    of (non-unicode) Windows 9x/ME support.
42  - QRegion is no longer a GDI object by default. This means it is no
43    longer subject to gui-thread only nor does it potentially impact
44    the 10.000 GDI object limit per process. By explicitly calling
45    .handle() a GDI object will be created and memory managed by
46    QRegion. The native handle is for reading out only. Any GDI calls
47    made on the HRGN handle will not affect the QRegion.
49 ****************************************************************************
50 * Important Behavior Changes *
51 ****************************************************************************
53  - The experimental Direct3D paint engine has been removed. The reason for
54    this is that Nokia focuses on OpenGL for desktop hardware accelerated
55    rendering.
57  - When mixing OpenGL and QPainter calls you need to surround your custom
58    OpenGL calls with QPainter::beginNativePainting() and
59    QPainter::endNativePainting().
60    This is to ensure that the paint engine flushes any pending drawing and sets
61    up the GL modelview/projection matrices properly before you can issue custom
62    OpenGL calls, and to let the paint engine synchronize to the painter state
63    before resuming regular QPainter based drawing.
65  - Graphics View has undergone heavy optimization work, and as a result of
66    this work, the following behavior changes were introduced.
68    a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding
69       rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by
70       default. You can enable an exact exposed rectangle and a correct matrix
71       by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions.
73    b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is
74       always initialized to 1. Instead you can call
75       QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &)
76       to determine the level of detail.
78    c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn
79       QGraphicsScene::drawItems(), by default. You can get the old behavior
80       back by enabling QGraphicsView::IndirectPainting.
82    d) QGraphicsItem no longer calls itemChange() for position and
83       transformation changes. If you want to receive notifications for changes
84       to the item's position and transformation, you can set the flag
85       QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by
86       QGraphicsWidget and QGraphicsProxyWidget).
88  - QDesktopWidget on X11 no longer emits the resized(int) signal when screens
89    are added or removed. This was not done on other platforms. Use the
90    screenCountChanged signal instead
92  - QUrl's parser is more strict when for hostnames in URLs. QUrl now
93    enforces STD 3 rules:
95     * each individual hostname section (between dots) must be at most
96       63 ASCII characters in length;
98     * only letters, digits, and the hyphen character are allowed in the
99       ASCII range; letters outside the ASCII range follow the normal
100       IDN rules
102    That means QUrl no longer accepts some URLs that were invalid
103    before, but weren't interpreted as such.
105  - The Unix configure-time check for STL is stricter now in Qt
106    4.6.0. This means some legacy STL implementations may fail to pass
107    the test and, therefore, Qt will automatically disable STL support.
109    This is a binary-compatible change: existing code will continue to
110    work without being recompiled. However, it affects the source code,
111    since some STL-compatibility API will not be enabled.
113    Platforms affected by this change:
114      * solaris-cc-* with the default (Cstd) C++ STL library
115        recommendation: use -library=stlport4
116        See Sun Studio's documentation for the effects of this option
118  - QVariant has now a new implicit constructor that takes a float. This
119    means that code that assigned a float to a variant would create a
120    variant with userType QMetaType::Float, instead of QVariant::Double.