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 15 16Qt library 17---------- 18 19New classes have been added to the Qt Library including a 20class to add splash screens to applications (QSplashScreen), a toolbox 21widget that provides a column of tabbed widgets (QToolBox), and a 22class to manage per-thread data storage (QThreadStorage). 23 24The SQL module received a fair bit of attention this time. The most 25notable improvements include a native IBM DB2 driver, complete support 26for stored procedures including the possibility to access 27out-parameters, and native support for 64 bit fields without having to 28convert to or from strings. We also added support for setting 29connection parameters. This way you can, for example, conveniently 30open an SSL connection to a MySQL or PostgreSQL database. If you need 31even more customization, e.g. for an Oracle database, you can set up 32the connection yourself and instantiate a Qt driver object on top of 33it. An extended SQL cursor class has been added that makes it more 34convenient to display result sets from general SQL queries 35(QSqlSelectCursor). In addition, you can add custom database drivers 36without compiling them as plugins (see 37QSqlDatabase::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. 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 67Many classes were improved; see the detailed overview that follows. 68 69Qt Motif Extension 70------------------ 71 72Dialog handling has matured and has been extended since the 73extension's introduction in Qt 3.1. The documentation and code 74examples have been improved, including a walkthrough that covers the 75complete migration of a real-world Motif example to Qt. The process 76contains four intermediate steps where the application utilizes both 77toolkits. 78 79ActiveQt Extension 80------------------ 81 82Type handling has been extended on both the container and the server 83side. The new supported types are byte arrays and 64bit integers. The 84QAxServer module supports QObject subclasses as return and parameter 85types of slots, and allows error reporting through COM exceptions. 86The Designer integration has been extended to support property dialogs 87implemented by the control server. 88 89Qt Designer 90----------- 91 92The popup menu editor has been rewritten. The new editor provides the 93the ability to add, edit and remove menus and menu items directly in 94the menubar and in the popup menu. Navigation and editing can be done 95using either the mouse or the keyboard. 96 97The new QWidgetContainerPlugin class provides support for complex 98custom container widgets in Designer, such as the custom tab widget, 99etc. 100 101The property editor now allows editing of properties with or'd values 102(sets). 103 104Designer also supports the new QToolBox widget in a similar fashion to 105QTabWidget, etc. 106 107Qt Assistant 108------------ 109 110Profiles have been introduced to allow applications to extend the use 111of Qt Assistant as a help system. Profiles describe the documentation 112to use so that only application specific documentation will be 113referenced in an end user installation. Profiles also allow some 114customization of the look in Qt Assistant. For detailed information, 115see the helpdemo example in $QTDIR/examples/helpdemo. 116 117Profiles replace the content files and categories system. The 118following command line options are removed since they no longer serve 119any purpose: addContentFile, removeContentFile, category, and 120disableFirstRun. 121 122Qt Assistant has multiple tabs for browsing, therefore enabling 123multiple pages to be browsed without opening a new window. 124 125It is possible to specify a default home page. 126 127It is possible to specify a PDF reader so that urls to PDF files can 128be opened from Qt Assistant. 129 130**************************************************************************** 131* Library * 132**************************************************************************** 133 134- QAction / QActionGroup 135 Simplified constructors so that it is no longer necessary to 136 specify texts for buttons and menu items separately. 137 For action groups, we fixed the enable/disable behavior. If 138 an action inside an action group is explicitly disabled, it is 139 no longer implicitly enabled together with the group. 140 This is identical to enabling/disabling widgets and their 141 children. 142 143- QApplication 144 Added the aboutQt() slot for convenience. 145 146- QAssistantClient 147 Added the new function, setArguments(), that invokes Qt 148 Assistant in different modes. 149 150- QAxBase 151 Added the new function, asVariant(), that passes a COM 152 object through dynamicCall(). 153 154- QAxBindable 155 Added the new function, reportError(), that sends error 156 information to the ActiveX client. 157 158- QColor 159 Added the new static function, colorNames(), that retrieves a 160 list of all color names known to Qt. 161 162- QDeepCopy 163 Now also supports QDir, QFileInfo, and QStringList. 164 165- QDom 166 Now has long and ulong support for setAttribute() and 167 setAttributeNS(). 168 169- QFont 170 Added the new properties: stretch and overline. Added the new 171 function, resolve(), that copies unspecified attributes from 172 one font to another. 173 174- QFontDataBase 175 Added a new overload for families() that restricts the 176 returned list to fonts supporting a specific QFont::Script, 177 e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic. 178 179- QFontInfo / QFontMetrics 180 Added new constructors that force the info and metrics objects 181 to use a given QFont::Script. 182 183- QGLWidget 184 Added a new constructor that takes a QGLContext 185 parameter. Makes the undocumented setContext() obsolete. 186 187- QHeader 188 Added getters for the sort indicator (sortIndicatorSection() 189 and sortIndicatorOrder() ). 190 191- QImage 192 Added a new overload for save() that writes to a given 193 QIODevice*. 194 195- QListView 196 Added tristate support to check list items 197 (QCheckListItem::setTristate()). Added the new function, 198 setSelectionAnchor(), to set the list view's selection anchor 199 explicitly. 200 201- QLineEdit 202 Added input masks: setInputMask(), inputMask(), and 203 hasAcceptableInput(). 204 205- QMessageBox 206 Added the new static function, question(), that complements 207 the existing information(), warning() and fatal() functions. 208 209- QMotifDialog [Qt Motif Extension] 210 Now has two distinct modes of operation: 1) it allows a Motif 211 dialog to have a Qt parent, and 2) it allows a Qt dialog to have 212 a Motif parent. 213 214- QPixmapCache 215 Added the new function, remove(), to explicitly remove a 216 pixmap from the cache. 217 218- QPrinter 219 Added the new functions: setPrintRange(), printRange(), 220 setOptionEnabled(), and optionEnabled(). For Windows only, 221 added the new function, setWinPageSize(), that allows setting 222 DEVMODE.dmPaperSize directly. 223 224- QPtrList 225 Added STL-like iterators with begin(), end(), and erase(). 226 227- QScrollBar 228 Maintains a user defined size policy when the direction 229 changes. 230 231- QSplashScreen [new] 232 This new widget class provides a splash screen to be shown 233 during application startup. 234 235- QSplitter 236 Added the new properties: opaqueResize, childrenCollapsible, 237 and handleWidth. 238 239- QSqlError 240 Added a couple of convenience functions: text(), which returns 241 the concatenated database and driver texts. showMessage(), 242 which will pop up a QMessageBox with the text that text() 243 returns. 244 245- QSqlQuery 246 Added overloads for the bindValue() call which makes it 247 possible to specifiy what role a bound value should have: In, 248 Out or InOut. 249 250- QSqlSelectCursor [new] 251 This new QSqlCursor subclass provides browsing of general SQL 252 SELECT statements. 253 254- QString 255 Added 64 bit support. Added the new functions: multiArg(), 256 reserve(), capacity(), squeeze(). Added case insensitive 257 overloads for startsWith() and endsWidth(). 258 259- QStringList 260 Added the new function gres(). 261 262- QStyle 263 Added support for toolbox, header, MDI frame, table grid line 264 color, line edit password character, and message box question. 265 266- QSyntaxHighlighter 267 Added the new function, currentParagraph(). 268 269- QTabWidget 270 Added support for custom widgets to be placed beside 271 the tab bar: setCornerWidget() and cornerWidget(). 272 273- QTextEdit 274 In Log mode, added the new functions: setMaxLogLines() and 275 maxLogLines(). 276 277- QThreadStorage [new] 278 This new tool class provides per-thread data storage, also 279 referred to as thread local storage or TLS. 280 281- QToolBox [new] 282 This new widget class provides a column of tabbed widgets, one 283 above the other, with the current page displayed below the 284 current tab. 285 286- QVariant 287 Added support for LongLong and ULongLong. 288 289- QWidget 290 Added a new widget flag, WNoAutoErase, that combines the now 291 obsolete WResizeNoErase and WRepaintNoErase flags. 292 293- QWidgetContainerPlugin [new] 294 This new plugin class complements QWidgetPlugin for custom 295 container widgets, i.e. widgets that can host child 296 widgets. 297