1 2Qt 3.2 introduces new features as well as many improvements over the 33.1.x series. This file gives an overview of the main changes since 4version 3.1.2. For more details, see the online documentation which 5is included in this distribution. The documentation is also available 6at http://qt.nokia.com/doc/ 7 8The Qt version 3.2 series is binary compatible with the 3.1.x series. 9Applications compiled for 3.1 will continue to run with 3.2. 10 11**************************************************************************** 12* General * 13**************************************************************************** 14 15Qt library 16---------- 17 18New classes have been added to the Qt Library including a 19class to add splash screens to applications (QSplashScreen), a toolbox 20widget that provides a column of tabbed widgets (QToolBox), and a 21class to manage per-thread data storage (QThreadStorage). 22 23The SQL module received a fair bit of attention this time. The most 24notable improvements include a native IBM DB2 driver, complete support 25for stored procedures including the possibility to access 26out-parameters, and native support for 64 bit fields without having to 27convert to or from strings. We also added support for setting 28connection parameters. This way you can, for example, conveniently 29open an SSL connection to a MySQL or PostgreSQL database. If you need 30even more customization, e.g. for an Oracle database, you can set up 31the connection yourself and instantiate a Qt driver object on top of 32it. An extended SQL cursor class has been added that makes it more 33convenient to display result sets from general SQL queries 34(QSqlSelectCursor). QSqlDatabase::tables() is now capable to return 35tables, views and/or system tables. In addition, you can add custom 36database drivers without compiling them as plugins 37(see QSqlDatabase::registerSqlDriver()). 38 39QLineEdit, the one-line text editor, now supports validation input 40masks. The feature complements the previous QValidator concept and 41allows e.g. restriction of input to the IP address format (mask 42"990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0"). 43 44Qt's unicode code support has been extended. Most notably, full 45support for Indic scripts has been added, covering writing systems 46such as Devanagari, Tamil and Bengali. The group of right to left 47writing systems has been extended with support for Syriac. Both 48improvements are available on both Windows with Uniscribe installed, 49and on Unix/X11 when using XFT with OpenType fonts. 50 51All tool classes that support STL-like iterators with begin() and 52end(), contain two extra functions constBegin() and constEnd(). The 53const versions always return const iterators, and thus can be a little 54bit faster with Qt's implicitly shared containers. 55 56QPainter's complex drawText() function has been highly 57optimized. Despite its support for complex unicode scripts, it now 58performs better than its less unicode-capable counterpart in Qt 2.3. 59 60QPixmap now supports pixmaps with alpha channel (semi transparency) on 61all Windows versions except Windows 95 and Windows NT 4.0. 62 63The print dialog now supports "selection" as a print range as well as 64the possibility to enable/disable all different printer options 65individually. 66 67On Windows, the Qt installation includes a toolbar for Visual Studio.NET 68that provides an integration of the Qt tools (ie. Qt Designer) with the 69IDE. 70 71Many classes were improved; see the detailed overview that follows. 72 73Qt Motif Extension 74------------------ 75 76Dialog handling has matured and has been extended since the 77extension's introduction in Qt 3.1. The documentation and code 78examples have been improved, including a walkthrough that covers the 79complete migration of a real-world Motif example to Qt. The process 80contains four intermediate steps where the application utilizes both 81toolkits. 82 83ActiveQt Extension 84------------------ 85 86Type handling has been extended on both the container and the server 87side. The new supported types are byte arrays and 64bit integers. The 88QAxServer module supports aggregation, as well as QObject subclasses as 89return and parameter types of slots, and allows error reporting through 90COM exceptions. 91The Designer integration has been extended to support property dialogs 92implemented by the control server. 93Controls developed with ActiveQt support aggregation, which makes it 94possible to use them in containers that require this form of containment to 95be supported. ActiveQt also supports masked controls in containers that 96support this for window'ed controls. 97 98Qt Designer 99----------- 100 101The popup menu editor has been rewritten. The new editor provides the 102the ability to add, edit and remove menus and menu items directly in 103the menubar and in the popup menu. Navigation and editing can be done 104using either the mouse or the keyboard. 105 106The property editor now allows editing of properties with or'd values 107(sets). 108 109Designer also supports the new QToolBox widget in a similar fashion to 110QTabWidget, etc. 111 112Qt Assistant 113------------ 114 115Profiles have been introduced to allow applications to extend the use 116of Qt Assistant as a help system. Profiles describe the documentation 117to use so that only application specific documentation will be 118referenced in an end user installation. Profiles also allow some 119customization of the look in Qt Assistant. For detailed information, 120see the helpdemo example in $QTDIR/examples/helpdemo. 121 122Profiles replace the content files and categories system. The 123following command line options are removed since they no longer serve 124any purpose: addContentFile, removeContentFile, category, and 125disableFirstRun. 126 127Qt Assistant has multiple tabs for browsing, therefore enabling 128multiple pages to be browsed without opening a new window. 129 130It is possible to specify a default home page. 131 132It is possible to specify a PDF reader so that urls to PDF files can 133be opened from Qt Assistant. 134 135Compilers 136--------- 137 138Note: Qt 3.2 is the last version to officially support IRIX MIPSpro 139o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided 140for 3.2 which needs to be run for these compilers. 141 142Miscellaneous 143------------- 144 145Users of the 3.2.0 beta releases please note: The QWidgetContainerPlugin 146interfaces was removed from the final release due to some serious issues. 147 148**************************************************************************** 149* Library * 150**************************************************************************** 151 152- QAction / QActionGroup 153 Simplified constructors so that it is no longer necessary to 154 specify texts for buttons and menu items separately. 155 For action groups, we fixed the enable/disable behavior. If 156 an action inside an action group is explicitly disabled, it is 157 no longer implicitly enabled together with the group. 158 This is identical to enabling/disabling widgets and their 159 children. 160 161- QApplication 162 Added the aboutQt() slot for convenience. 163 164- QAssistantClient 165 Added the new function, setArguments(), that invokes Qt 166 Assistant in different modes. 167 168- QAxBase 169 Added the new function, asVariant(), that passes a COM 170 object through dynamicCall(). 171 172- QAxBindable 173 Added the new function, reportError(), that sends error 174 information to the ActiveX client. 175 176- QColor 177 Added the new static function, colorNames(), that retrieves a 178 list of all color names known to Qt. 179 180- QDeepCopy 181 Now also supports QDir, QFileInfo, and QStringList. 182 183- QDom 184 Now has long and ulong support for setAttribute() and 185 setAttributeNS(). 186 187- QFont 188 Added the new properties: stretch and overline. Added the new 189 function, resolve(), that copies unspecified attributes from 190 one font to another. 191 192- QFontDataBase 193 Added a new overload for families() that restricts the 194 returned list to fonts supporting a specific QFont::Script, 195 e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic. 196 197- QFontInfo / QFontMetrics 198 Added new constructors that force the info and metrics objects 199 to use a given QFont::Script. 200 201- QGLWidget 202 Added a new constructor that takes a QGLContext 203 parameter. Makes the undocumented setContext() obsolete. 204 205- QHeader 206 Added getters for the sort indicator (sortIndicatorSection() 207 and sortIndicatorOrder() ). 208 209- QImage 210 Added a new overload for save() that writes to a given 211 QIODevice*. 212 213- QListView 214 Added tristate support to check list items 215 (QCheckListItem::setTristate()). Added the new function, 216 setSelectionAnchor(), to set the list view's selection anchor 217 explicitly. 218 219- QLineEdit 220 Added input masks: setInputMask(), inputMask(), and 221 hasAcceptableInput(). Added new function selectionStart() 222 which returns the index of the first selected character in the 223 line edit. 224 225- QMacStyle 226 Added customizable focus rectangle policy. 227 228- QMessageBox 229 Added the new static function, question(), that complements 230 the existing information(), warning() and fatal() functions. 231 232- QMotifDialog [Qt Motif Extension] 233 Now has two distinct modes of operation: 1) it allows a Motif 234 dialog to have a Qt parent, and 2) it allows a Qt dialog to have 235 a Motif parent. 236 237- QMYSQLDriver 238 Better support for MySQL/embedded. 239 240- QPixmapCache 241 Added the new function, remove(), to explicitly remove a 242 pixmap from the cache. 243 244- QPrinter 245 Added the new functions: setPrintRange(), printRange(), 246 setOptionEnabled(), and optionEnabled(). For Windows only, 247 added the new function, setWinPageSize(), that allows setting 248 DEVMODE.dmPaperSize directly. 249 250- QPtrList 251 Added STL-like iterators with begin(), end(), and erase(). 252 253- QScrollBar 254 Maintains a user defined size policy when the direction 255 changes. 256 257- QSplashScreen [new] 258 This new widget class provides a splash screen to be shown 259 during application startup. 260 261- QSplitter 262 Added the new properties: opaqueResize, childrenCollapsible, 263 and handleWidth. 264 265- QSqlError 266 Added a couple of convenience functions: text(), which returns 267 the concatenated database and driver texts. showMessage(), 268 which will pop up a QMessageBox with the text that text() 269 returns. 270 271- QSqlQuery 272 Added overloads for the bindValue() call which makes it 273 possible to specifiy what role a bound value should have: In, 274 Out or InOut. 275 276- QSqlSelectCursor [new] 277 This new QSqlCursor subclass provides browsing of general SQL 278 SELECT statements. 279 280- QSqlDatabase 281 Added overloaded tables() call which can return tables, views 282 and/or system tables. 283 284- QPSQLDriver 285 Calling tables() with no arguments will only return table names, 286 instead of table and view names as in Qt 3.1. 287 The new tables() call in QSqlDatabase can be used to get 288 table and/or view names. 289 290- QString 291 Added 64 bit support. Added the new functions: multiArg(), 292 reserve(), capacity(), squeeze(). Added case insensitive 293 overloads for startsWith() and endsWidth(). 294 295- QStringList 296 Added the new function gres(). 297 298- QStyle 299 Added support for toolbox, header, MDI frame, table grid line 300 color, line edit password character, and message box question. 301 302- QSyntaxHighlighter 303 Added the new function, currentParagraph(). 304 305- QTabWidget 306 Added support for custom widgets to be placed beside 307 the tab bar: setCornerWidget() and cornerWidget(). 308 309- QTextEdit 310 In Log mode, added the new functions: setMaxLogLines() and 311 maxLogLines(). Implemented insertAt() for LogText mode. 312 313- QThreadStorage [new] 314 This new tool class provides per-thread data storage, also 315 referred to as thread local storage or TLS. 316 317- QToolBox [new] 318 This new widget class provides a column of tabbed widgets, one 319 above the other, with the current page displayed below the 320 current tab. 321 322- QVariant 323 Added support for LongLong and ULongLong. 324 325- QWidget 326 Added a new widget flag, WNoAutoErase, that combines the now 327 obsolete WResizeNoErase and WRepaintNoErase flags. 328