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