
Qt 3.2 introduces new features as well as many improvements over the
3.1.x series. This file gives an overview of the main changes since
version 3.1.2.  For more details, see the online documentation which
is included in this distribution. The documentation is also available
at http://qt.nokia.com/doc/

The Qt version 3.2 series is binary compatible with the 3.1.x series.
Applications compiled for 3.1 will continue to run with 3.2.

****************************************************************************
*			    General					   *
****************************************************************************

Qt library
----------

New classes have been added to the Qt Library including a
class to add splash screens to applications (QSplashScreen), a toolbox
widget that provides a column of tabbed widgets (QToolBox), and a
class to manage per-thread data storage (QThreadStorage).

The SQL module received a fair bit of attention this time. The most
notable improvements include a native IBM DB2 driver, complete support
for stored procedures including the possibility to access
out-parameters, and native support for 64 bit fields without having to
convert to or from strings. We also added support for setting
connection parameters. This way you can, for example, conveniently
open an SSL connection to a MySQL or PostgreSQL database. If you need
even more customization, e.g. for an Oracle database, you can set up
the connection yourself and instantiate a Qt driver object on top of
it. An extended SQL cursor class has been added that makes it more
convenient to display result sets from general SQL queries
(QSqlSelectCursor). QSqlDatabase::tables() is now capable to return
tables, views and/or system tables. In addition, you can add custom
database drivers without compiling them as plugins
(see QSqlDatabase::registerSqlDriver()).

QLineEdit, the one-line text editor, now supports validation input
masks. The feature complements the previous QValidator concept and
allows e.g. restriction of input to the IP address format (mask
"990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").

Qt's unicode code support has been extended. Most notably, full
support for Indic scripts has been added, covering writing systems
such as Devanagari, Tamil and Bengali. The group of right to left
writing systems has been extended with support for Syriac. Both
improvements are available on both Windows with Uniscribe installed,
and on Unix/X11 when using XFT with OpenType fonts.

All tool classes that support STL-like iterators with begin() and
end(), contain two extra functions constBegin() and constEnd(). The
const versions always return const iterators, and thus can be a little
bit faster with Qt's implicitly shared containers.

QPainter's complex drawText() function has been highly
optimized. Despite its support for complex unicode scripts, it now
performs better than its less unicode-capable counterpart in Qt 2.3.

QPixmap now supports pixmaps with alpha channel (semi transparency) on
all Windows versions except Windows 95 and Windows NT 4.0.

The print dialog now supports "selection" as a print range as well as
the possibility to enable/disable all different printer options
individually.

On Windows, the Qt installation includes a toolbar for Visual Studio.NET 
that provides an integration of the Qt tools (ie. Qt Designer) with the 
IDE.

Many classes were improved; see the detailed overview that follows.

Qt Motif Extension
------------------

Dialog handling has matured and has been extended since the
extension's introduction in Qt 3.1.  The documentation and code
examples have been improved, including a walkthrough that covers the
complete migration of a real-world Motif example to Qt. The process
contains four intermediate steps where the application utilizes both
toolkits.

ActiveQt Extension
------------------

Type handling has been extended on both the container and the server
side. The new supported types are byte arrays and 64bit integers. The
QAxServer module supports aggregation, as well as QObject subclasses as 
return and parameter types of slots, and allows error reporting through 
COM exceptions.
The Designer integration has been extended to support property dialogs
implemented by the control server.
Controls developed with ActiveQt support aggregation, which makes it
possible to use them in containers that require this form of containment to
be supported. ActiveQt also supports masked controls in containers that
support this for window'ed controls.

Qt Designer
-----------

The popup menu editor has been rewritten. The new editor provides the
the ability to add, edit and remove menus and menu items directly in
the menubar and in the popup menu. Navigation and editing can be done
using either the mouse or the keyboard.

The property editor now allows editing of properties with or'd values
(sets).

Designer also supports the new QToolBox widget in a similar fashion to
QTabWidget, etc.

Qt Assistant
------------

Profiles have been introduced to allow applications to extend the use
of Qt Assistant as a help system. Profiles describe the documentation
to use so that only application specific documentation will be
referenced in an end user installation. Profiles also allow some
customization of the look in Qt Assistant. For detailed information,
see the helpdemo example in $QTDIR/examples/helpdemo.

Profiles replace the content files and categories system. The
following command line options are removed since they no longer serve
any purpose: addContentFile, removeContentFile, category, and
disableFirstRun.

Qt Assistant has multiple tabs for browsing, therefore enabling
multiple pages to be browsed without opening a new window.

It is possible to specify a default home page.

It is possible to specify a PDF reader so that urls to PDF files can
be opened from Qt Assistant.

Compilers
---------

Note: Qt 3.2 is the last version to officially support IRIX MIPSpro
o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided
for 3.2 which needs to be run for these compilers.

Miscellaneous
-------------

Users of the 3.2.0 beta releases please note: The QWidgetContainerPlugin
interfaces was removed from the final release due to some serious issues.

****************************************************************************
*			   Library					   *
****************************************************************************

- QAction / QActionGroup
	Simplified constructors so that it is no longer necessary to
	specify texts for buttons and menu items separately.
	For action groups, we fixed the enable/disable behavior. If
	an action inside an action group is explicitly disabled, it is
	no longer implicitly enabled together with the group.
	This is identical to enabling/disabling widgets and their
	children.

- QApplication
	Added the aboutQt() slot for convenience.

- QAssistantClient
	Added the new function, setArguments(), that invokes Qt
	Assistant in different modes.

- QAxBase
	Added the new function, asVariant(), that passes a COM
	object through dynamicCall().

- QAxBindable
	Added the new function, reportError(), that sends error
	information to the ActiveX client.

- QColor
	Added the new static function, colorNames(), that retrieves a
	list of all color names known to Qt.

- QDeepCopy
	Now also supports QDir, QFileInfo, and QStringList.

- QDom
	Now has long and ulong support for setAttribute() and
	setAttributeNS().

- QFont
	Added the new properties: stretch and overline. Added the new
	function, resolve(), that copies unspecified attributes from
	one font to another.

- QFontDataBase
	Added a new overload for families() that restricts the
	returned list to fonts supporting a specific QFont::Script,
	e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.

- QFontInfo / QFontMetrics
	Added new constructors that force the info and metrics objects
	to use a given QFont::Script.

- QGLWidget
	Added a new constructor that takes a QGLContext
	parameter. Makes the undocumented setContext() obsolete.

- QHeader
	Added getters for the sort indicator (sortIndicatorSection()
	and sortIndicatorOrder() ).

- QImage
	Added a new overload for save() that writes to a given
	QIODevice*.

- QListView
	Added tristate support to check list items
	(QCheckListItem::setTristate()). Added the new function,
	setSelectionAnchor(), to set the list view's selection anchor
	explicitly.

- QLineEdit
	Added input masks: setInputMask(), inputMask(), and
	hasAcceptableInput(). Added new function selectionStart()
	which returns the index of the first selected character in the
	line edit.

- QMacStyle
	Added customizable focus rectangle policy.

- QMessageBox
	Added the new static function, question(), that complements
	the existing information(), warning() and fatal() functions.

- QMotifDialog [Qt Motif Extension]
	Now has two distinct modes of operation: 1) it allows a Motif
	dialog to have a Qt parent, and 2) it allows a Qt dialog to have
	a Motif parent.

- QMYSQLDriver
	Better support for MySQL/embedded.

- QPixmapCache
	Added the new function, remove(), to explicitly remove a
	pixmap from the cache.

- QPrinter
	Added the new functions: setPrintRange(), printRange(),
	setOptionEnabled(), and optionEnabled(). For Windows only,
	added the new function, setWinPageSize(), that allows setting
	DEVMODE.dmPaperSize directly.

- QPtrList
	Added STL-like iterators with begin(), end(), and erase().

- QScrollBar
	Maintains a user defined size policy when the direction
	changes.

- QSplashScreen [new]
	This new widget class provides a splash screen to be shown
	during application startup.

- QSplitter
	Added the new properties: opaqueResize, childrenCollapsible,
	and handleWidth.

- QSqlError
	Added a couple of convenience functions: text(), which returns
	the concatenated database and driver texts. showMessage(),
	which will pop up a QMessageBox with the text that text()
	returns.

- QSqlQuery
	Added overloads for the bindValue() call which makes it
	possible to specifiy what role a bound value should have: In,
	Out or InOut.

- QSqlSelectCursor [new]
	This new QSqlCursor subclass provides browsing of general SQL
	SELECT statements.

- QSqlDatabase
	Added overloaded tables() call which can return tables, views
	and/or system tables.

- QPSQLDriver
	Calling tables() with no arguments will only return table names,
	instead of table and view names as in Qt 3.1.
	The new tables() call in QSqlDatabase can be used to get
	table and/or view names.

- QString
	Added 64 bit support. Added the new functions: multiArg(),
	reserve(), capacity(), squeeze(). Added case insensitive
	overloads for startsWith() and endsWidth().

- QStringList
	Added the new function gres().

- QStyle
	Added support for toolbox, header, MDI frame, table grid line
	color, line edit password character, and message box question.

- QSyntaxHighlighter
	Added the new function, currentParagraph().

- QTabWidget
	Added support for custom widgets to be placed beside
	the tab bar: setCornerWidget() and cornerWidget().

- QTextEdit
	In Log mode, added the new functions: setMaxLogLines() and
	maxLogLines(). Implemented insertAt() for LogText mode.

- QThreadStorage [new]
	This new tool class provides per-thread data storage, also
	referred to as thread local storage or TLS.

- QToolBox [new]
	This new widget class provides a column of tabbed widgets, one
	above the other, with the current page displayed below the
	current tab.

- QVariant
	Added support for LongLong and ULongLong.

- QWidget
	Added a new widget flag, WNoAutoErase, that combines the now
	obsolete WResizeNoErase and WRepaintNoErase flags.
