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