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