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