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
|
Qt 4.6 introduces many new features and improvements as well as bugfixes
over the 4.5.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.6
The Qt version 4.6 series is binary compatible with the 4.5.x series.
Applications compiled for 4.5 will continue to run with 4.6.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Task Tracker:
http://qt.nokia.com/developer/task-tracker
Each of these identifiers can be entered in the task tracker to obtain more
information about a particular change.
****************************************************************************
* General *
****************************************************************************
- QtDBus
* The minimum required version of the D-Bus reference library is
now 0.93.
****************************************************************************
* Library *
****************************************************************************
* [245219] Added QXmlQuery::setFocus(const QString &focus);
- QGraphicsBlurEffect
* Since the 4.6 beta Qt::RenderHint has been moved to
QGraphicsBlurEffect::BlurHint.
- QVariant
* Many optimisations
* Added QVariant::toFloat() and QVariant::toReal()
* Added QVariant(float) constructor
- Qt::escape
* now escape the double quote (")
****************************************************************************
* Platform Specific Changes *
****************************************************************************
- Significant external contribution from Milan Burda for planned removal
of (non-unicode) Windows 9x/ME support.
- QRegion is no longer a GDI object by default. This means it is no
longer subject to gui-thread only nor does it potentially impact
the 10.000 GDI object limit per process. By explicitly calling
.handle() a GDI object will be created and memory managed by
QRegion. The native handle is for reading out only. Any GDI calls
made on the HRGN handle will not affect the QRegion.
- [259221] QFileInfo::symLinkTarget() now supports NTFS symbolic links
thanks to Konstantin Ritt (merge request 1217).
- The reading code of QLocalSocket on Windows has been rewritten to improve
reading performance.
- On Windows CE the link time code geration has been disabled by default to
be consistent with win32-msvc200x.
****************************************************************************
* DirectFB *
****************************************************************************
- When running Qt/DirectFB the DirectFB window id of a top level QWidget can
be queried using property("_q_DirectFBWindowID")
- Allow setting the background color of the primary layer in DirectFB with
connect options. QWS_DISPLAY=directfb:bgcolor=red or
QWS_DISPLAY=directfb:bgcolor=\#aabbccdd
- Add support for rendering mouse cursor using a top level window when cursor
support is not working in IDirectFBDisplayLayer. Define
QT_DIRECTFB_WINDOW_AS_CURSOR to enable.
- Add experimental support for optimized locking/unlocking of surfaces. Enable
by defining QT_DIRECTFB_SUBSURFACE.
- Fix a bug to conceptually allow using QDirectFBScreen as a subscreen of a
proxy screen. Don't make QDirectFBScreen::instance() assume that
QScreen::instance() is a QDirectFBScreen.
- Optimize move/resize operations with DirectFB. With a properly configured
DirectFB these operations are handled for us and we don't need to force a
repaint of the window.
- Support top level window opacity in DirectFB
- Fix a bug when loading RGB32 images that would lead to rendering issues.
- Fix a bug when painting with invalid pens/brushes.
- Fix a bug that would show up when QWidget::scroll is called.
- Implement support for loading pixmaps using IDirectFBImageProvider.
- Disable color table support by default. This seems to work incorrectly on
most boards and loading these images will generally require an image
conversion anyway.
- Fix a bug regarding QGraphicsProxyWidgets
- Fix a crash when resizing windows
- Compile with versions < 1.0. We still recommend using newer versions.
- Considerable code cleanup
- Various optimizations regarding painting, loading of images and creation of
surfaces.
- Allow forcibly falling back to raster engine for painting operations by
exporting QT_DIRECTFB_FORCE_RASTER=1
- Reenable support for RGB32 primary surface.
****************************************************************************
* Important Behavior Changes *
****************************************************************************
- The experimental Direct3D paint engine has been removed. The reason for
this is that Nokia focuses on OpenGL for desktop hardware accelerated
rendering.
- The default engine used to draw onto OpenGL buffers has changed in
Qt 4.6. The QPaintEngine::OpenGL2 engine is now used as the default
engine. This *may* cause compatibility problems for applications
that use a mix of QPainter and native OpenGL calls to draw into a GL
buffer. Use the QGL::setPreferredPaintEngine() function to enforce
usage of the old GL paint engine.
- When mixing OpenGL and QPainter calls you need to surround your
custom OpenGL calls with QPainter::beginNativePainting() and
QPainter::endNativePainting().
This is to ensure that the paint engine flushes any pending drawing and sets
up the GL modelview/projection matrices properly before you can issue custom
OpenGL calls, and to let the paint engine synchronize to the painter state
before resuming regular QPainter based drawing.
- Graphics View has undergone heavy optimization work, and as a result of
this work, the following behavior changes were introduced.
a) QStyleOptionGraphicsItem::exposedRect now contains the item's bounding
rectangle, and QStyleOptionGraphicsItem::matrix is uninitialized by
default. You can enable an exact exposed rectangle and a correct matrix
by enabling the flag QGraphicsItem::ItemUsesExtendedStyleOptions.
b) QStyleOptionGraphicsItem::levelOfDetails is obsoleted and its value is
always initialized to 1. Instead you can call
QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &)
to determine the level of detail.
c) QGraphicsView no longer calls QGraphicsView::drawItems(), and in turn
QGraphicsScene::drawItems(), by default. You can get the old behavior
back by enabling QGraphicsView::IndirectPainting.
d) QGraphicsItem no longer calls itemChange() for position and
transformation changes. If you want to receive notifications for changes
to the item's position and transformation, you can set the flag
QGraphicsItem::ItemSendsGeometryChanges (which is enabled by default by
QGraphicsWidget and QGraphicsProxyWidget).
- QDesktopWidget on X11 no longer emits the resized(int) signal when screens
are added or removed. This was not done on other platforms. Use the
screenCountChanged signal instead
- QUrl's parser is more strict when for hostnames in URLs. QUrl now
enforces STD 3 rules:
* each individual hostname section (between dots) must be at most
63 ASCII characters in length;
* only letters, digits, and the hyphen character are allowed in the
ASCII range; letters outside the ASCII range follow the normal
IDN rules
That means QUrl no longer accepts some URLs that were invalid
before, but weren't interpreted as such.
- The Unix configure-time check for STL is stricter now in Qt
4.6.0. This means some legacy STL implementations may fail to pass
the test and, therefore, Qt will automatically disable STL support.
This is a binary-compatible change: existing code will continue to
work without being recompiled. However, it affects the source code,
since some STL-compatibility API will not be enabled.
Platforms affected by this change:
* solaris-cc-* with the default (Cstd) C++ STL library
recommendation: use -library=stlport4
See Sun Studio's documentation for the effects of this option
- QVariant has now a new implicit constructor that takes a float. This
means that code that assigned a float to a variant would create a
variant with userType QMetaType::Float, instead of QVariant::Double.
- QDataStream will now read and write all floating point numbers with the
same precision, regardless of whether it's streamed into or out from a
float or double. This is to maintain compatibility across platforms with
a different default precision for qreal. The default is 64-bit precision
for all floating point numbers, and this can be changed using the new
function setFloatingPointPrecision(). Set Qt_4_5 as the version of the
QDataStream to get the behavior of previous versions.
|