1
Qt 3.3 introduces many new features as well as many improvements over
2
the 3.2.x series. For more details, see the online documentation which
3
is included in this distribution. The documentation is also available
4
at http://qt.nokia.com/doc/
5
6
The Qt version 3.3 series is binary compatible with the 3.2.x series.
7
Applications compiled for 3.2 will continue to run with 3.3.
8
9
****************************************************************************
10
*			    General					   *
11
****************************************************************************
12
13
Qt library
14
----------
15
16
Qt 3.3 is .NET enabled. This release shows how to use classes
17
developed with Qt in a .NET environment. It includes an analysis of
18
the different interoperability infrastructures provided by the .NET
19
framework. An example demonstrates how to use both a manual approach
20
with Microsoft's managed extensions to the C++ language, and also
21
automated solutions based on COM and the ActiveQt framework to reuse
22
native Qt classes and widgets in .NET projects. To learn more about Qt
23
and .NET read the "Using Qt objects in Microsoft .NET" walkthrough
24
found in the ActiveQt framework documentation.
25
26
Qt 3.3 now supports IPv6 in addition to IPv4. New functions have been
27
added for IPv6 support to QSocketDevice, QHostAddress and QDNns.
28
29
Qt now includes a new tool class called QLocale. This class converts
30
between numbers and their string representations in various languages.
31
QLocale supports the concept of a default locale which allows a locale
32
to be set globally for the entire application.
33
34
Support for new 64bit platforms and compilers has been added for Qt
35
3.3.  Qt now supports Itanium on both Linux (Intel C++ compiler) and
36
Windows (MSVC and Intel C++ Compiler). Qt 3.3 now also officially
37
supports FreeBSD.
38
39
Qt 3.3 also supports precompiled headers for Windows, Mac OS X and
40
X11. To use precompiled headers when compiling your Qt application
41
simply add PRECOMPILED_HEADER and then specify the header file to 
42
precompile in your .pro file. To learn more about precompiled headers
43
see the "Using Precompiled Headers" chapter in the qmake User Guide.
44
45
Two new database drivers have been added to the SQL module, InterBase
46
and SQLite. This makes it possible to write database applications that
47
do not require a database server. SQLite is provided in the Qt 3.3
48
distribution and can be enabled with either -qt-sql-sqlite or
49
-plugin-sql-sqlite. The InterBase plugin also works with Firebird, the
50
open source version of InterBase.
51
52
QWidget has a new function setWindowState() which is used to make a
53
widget maximized, minimized, etc. This allows individual settings for
54
the minimized/maximized/fullscreen properties.
55
56
Support for semi-transparent top-level widgets on Mac OS X and Windows
57
2000/XP has also been added.
58
59
A new example, qregexptester, has been added that makes it easy to
60
test QRegExps on sample strings.
61
62
Qt 3.3 includes in addition to this, numerous bug fixes and
63
improvements. Special thanks goes to KDE for their reports and
64
suggestions.
65
66
67
Qt/Embedded
68
-----------
69
70
Added support for SNAP graphics drivers from SciTech Software. This
71
gives access to accelerated drivers for more than 150 graphics
72
chipsets.
73
74
75
Qt/Mac
76
------
77
78
QAccessible support has been introduced (implemented in terms of Apple's
79
Universal Access API).
80
81
Added support for Xcode project files in qmake.
82
83
Added Tablet support for Mac OS X.
84
85
Numerous visual improvements.
86
87
88
Qt/X11
89
------
90
91
Added support for Xft2 client side fonts on X servers without the
92
RENDER extension.
93
94
Added a new configure option (-dlopen-opengl) which will remove the
95
OpenGL and Xmu library dependencies in the Qt library. The functions
96
used by Qt in those libraries are resolved manually using dlopen()
97
when this option is used.
98
99
Improved support for the Extended Window Manager Hints.
100
101
102
Qt/Windows
103
----------
104
105
Added support for Windows Server 2003 (Win64/Itanium).
106
107
108
Qt Motif Extension
109
------------------
110
111
Clipboard operations now work between Qt and Motif widgets in the same
112
application. Click-to-focus works with Motif widgets that are children
113
of a QMotifWidget.
114
115
116
ActiveQt Extension
117
------------------
118
119
Two new functions, QAxFactory::startServer() and
120
QAxFactory::stopServer(), can be used to start and stop an
121
out-of-process ActiveQt server at runtime. The new functions
122
QAxFactory::serverDirPath() and QAxFactory::serverFilePath() return
123
the location of the COM server binary. Server binaries no longer
124
need to implement a main() entry point function. A default
125
implementation is used for out-of-process servers. IClassFactory2
126
is supported for the development of licensed components, and
127
QAxFactory supports the creation of non-visual COM objects. Class
128
specific information can be provided directly in the C++ class
129
declaration using the Q_CLASSINFO macro to control how objects and
130
controls are registered and exposed. New helper classes and macros
131
are avialable to make it even easier to expose object classes (see the
132
QAxServer documentation for details).
133
134
COM objects developed with ActiveQt are now supported in a wider range
135
of clients, including Microsoft Office applications and .NET. Examples
136
that demonstrate how to use the Qt objects from the examples in .NET
137
languages like C# are included. QStringList is supported as a type,
138
and QRect, QSize and QPoint are now supported datatypes for control
139
properties and as reference parameters. Saving the controls to a
140
storage or stream now includes the version number of the QDataStream
141
used for the serialization (note that this might break existing
142
storages).
143
144
The QAxContainer library is now static even for shared configurations
145
of Qt. This simplifies deployment and allows using both QAxServer and
146
QAxContainer in one project, i.e. an OLE automatable application that
147
uses COM objects itself. The semantics of QAxBase::setControl() have
148
been extended to allow creating of COM objects on remote machines via
149
DCOM, to create controls requiring a license key and to connect to
150
already running objects. The implementation of QAxBase::dynamicCall()
151
has been improved to support passing of parameter values directly in
152
the function string. Three new classes, QAxScript, QAxScriptManager
153
and QAxScriptEngine, can be used to script COM objects from within Qt
154
applications using Windows Script Host.
155
156
SAFEARRAY(BSTR) parameters are supported as QStringList. Calling COM
157
object methods with out-parameters of type short, char and float is 
158
now supported (the parameters are of type int& and double& in the Qt 
159
wrapper), and QVariants used for out-parameters don't have to be 
160
initialized to the expected type. Calling QByteArray functions in 
161
out-of-process controls no longer returns an error code. The control's 
162
client side is set to zero when the container releases the control.
163
164
165
Qt Designer
166
-----------
167
168
Qt Designer, Qt's visual GUI builder, has received some speed
169
optimizations, along with minor improvements to the menu editor.
170
171
172
Qt Assistant
173
------------
174
175
Qt Assistant now saves the states of the tab bars between runs. This
176
enables users to start browsing where they ended their previous
177
assistant session.
178
179
Shortcuts for Find Next (F3) and Find Previous (Shift+F3) have been
180
implemented.
181
182
183
Compilers
184
---------
185
186
Qt 3.3 adds support for two new compilers. The Intel C++ compiler is
187
supported on Windows, Linux and FreeBSD. GNU gcc is supported on
188
Windows using MinGW.
189
190
Qt 3.3 no longer officially supports the Sun WorkShop 5.0 compiler or the
191
SGI MIPSpro o32 mode.
192
193
194
****************************************************************************
195
*			   Library					   *
196
****************************************************************************
197
198
- QAction
199
	Added a setDisabled() slot similar to QWidget::setDisabled.
200
	Added an activate() slot which activates the action and
201
	executes all connected slots.
202
	QActions::menuText() escapes ampersand characters ('&') when
203
	using the value of the text property.
204
205
- QButtonGroup
206
	Added QButtonGroup::selectedId property to allow mapping with
207
	SQL property sets.
208
209
- QCursor
210
	Added new enum value Qt::BusyCursor.
211
	X11 only: Added QCursor constructor taking a X11 cursor handle.
212
213
- QDom
214
	The QDom classes are now reentrant.
215
216
- QEvent
217
	Added new event type WindowStateChange, obsoleting ShowNormal,
218
	ShowMinimized, ShowMaximized and ShowFullScreen.
219
220
- QHeader
221
	The sizeChange() signal is emitted when the section sizes are
222
	adjusted by double clicking.
223
224
- QHostAddress
225
	Added new constructor for IPv6 and new functions
226
	isIPv6Address() and toIPv6Address(). Obsoleted the functions
227
	isIp4Addr() and ip4Addr(), replacing them with isIPv4Address()
228
	and toIPv4Address().
229
230
- QIconView
231
	Improved keyboard search to behave like QListView.
232
233
- QListView
234
	Improved alignment for text in QListViewItems. Right aligned
235
	text now has the ellipsis on the left.
236
	Keyboard search now uses the sort column as the column to
237
	start searching in.
238
	Improved branch drawing.
239
240
- QLocale [new]
241
	This new tool class converts between numbers and their string
242
	representations in various languages.
243
244
- QMacStyle
245
	Allow disabling of size constraints.
246
247
- QMovie
248
	Added JNG support.
249
250
- QPixmap
251
	Support full alpha-maps for paletted (8-bit) images.
252
	Support 16-bit grayscale PNG images with transparency.
253
254
- QPushButton
255
	A push button with both an iconset and text left-aligns the
256
	text.
257
258
- QSocketDevice
259
	Added setProtocol() and protocol() for IPv6 support.
260
261
- QSound
262
	Windows: Support loop related APIs.
263
264
- QSplashScreen
265
	Less intrusive stay-on-top policy.
266
267
- QSql
268
	Support for InterBase and SQLite.
269
270
- QStatusBar
271
	Draw messages with the foreground() color of the palette,
272
	rather than with the text() color.
273
274
- QString
275
	Added support for %lc and %ls to sprintf(). %lc takes a
276
	Unicode character of type ushort, %ls takes a zero-terminated
277
	array of Unicode characters of type ushort (i.e. const
278
	ushort*). Also added support for precision (e.g. "%.5s").
279
	Changed arg() to support "%L1" for localized conversions.
280
	Windows only: QString::local8Bit() now returns an empty
281
	QCString when called on a null QString to unify behavior
282
	with the other platforms.
283
284
- QStyle
285
	Add a new primitive element: PE_RubberBand.
286
	Added PM_MenuBarItemSpacing and PM_ToolBarItemSpacing pixel metrics.
287
288
- QTextDrag
289
	decode() now autodetects the encoding of text/html content.
290
291
- QTextEdit
292
	Reduced memory consumption by 20 bytes per line.
293
	Added a getter for the currently set QSyntaxHighlighter.
294
295
- QTextBrowser
296
	Qt now automatically detects the charset of HTML files set
297
	with setSource().
298
	
299
- QVariant
300
	Comparison between variants where one of the variants is a
301
	numeric value will compare on the numeric value. Type casting
302
	between different variants is more consistent.
303
304
- QWidget
305
	Added setWindowOpacity() and windowOpacity() to support
306
	transparent top-level widgets on Windows and Mac.
307
	Added windowState() and setWindowState() to allow individual
308
	setting of the minimized/maximized/fullscreen properties.
309
310
- QWindowsStyle
311
	Qt supports toggling of the accelerator underlines using the
312
	Alt-key on Windows 98, 2000 and later. On other platforms this
313
	change has no effect.