Qt 3.0 Beta3 is not binary compatible with Beta2, this means that any
programs linked with Beta2 must be recompiled.

Below you'll find a description of general changes in the Qt Library
and Qt Designer followed by a detailed list of changes in the
programming API.


The Qt Library
========================================

Documentation
-------------

Overall enhancements include fixed typos, corrected grammar and
spelling, and the addition of several images and code examples. Most
classes now have useful detailed descriptions. Documentation accuracy
and usability has been generally improved.

Styles
------

In Qt 3.0.0 Beta2, only the Windows and Motif styles were implemented with
the new style API. Now the missing styles (MotifPlus, Platinum, SGI and
CDE) are included.

MNG
---

Updated the libmng that is shipped with Qt to version 1.0.2.

Wacom Tablet Support
--------------------

Fixes for Windows to solve the problem of creating a context for every
widget and the problem of opening the dialog and losing the ability to use
the tablet afterwards.


Qt Designer
========================================

 - Added the ability to sort the property editor either by category
   (default and old behaviour) or alphabetically.

 - Added the option "-nofwd" to uic which supresses the generation of
   forward declarations for custom classes in the generated output.

-  The way how custom slots and editing these slots directly in the Qt
   Designer is handled has been changed. Originally the code for these
   slots was saved into the .ui XML file together with the user
   interface description and the uic did put this code into the
   generated source files.
   Now, if code of custom slots is edited directly in the Qt Designer,
   additionally to the <filename>.ui of a form, a <filename>.ui.h file
   is created. The code is written into this source file now instead
   of the .ui file.
   This way the code of custom slots can be also easily edited outside
   the Qt Designer without subclassing, and it is possible to edit it
   both, in the Qt Designer and outside the Qt Designer without
   conflicts, as this is a plain text C++ file.
   Uic now automatically includes this source file into the generated
   sources (if it exists) and, in this case, does not create empty
   stubs for the custom slots in the generated sources anymore. So
   this code file has not to be added to the project Makefile. If the
   source file does not exist, uic falls back to the old behavior and
   creates the empty stubs in the generated source.
   If a user does not want to subclass to implement the custom slots,
   but also does not want to edit the code of the custom slots in the
   Qt Designer, it is possible to always create the <formname>.ui.h
   for a form (even if it was not edited in the Qt Designer) and edit
   that file in a seperate editor. This feature can be configured in
   the project settings dialog.
   This way, the old approach of subclassing keeps working (and all
   old .ui files keep working without any change). Also, for users of
   the previous Qt 3.0 Beta versions, Qt Designer can still read the
   .ui files which contain code. So also .ui files created with Qt 3.0
   Beta versions of the Qt Designer keep working without any change.
   Details about the possible concepts which can be used to add code
   to a form created by the Qt Designer (subclassing and uic +
   <filename>.ui.h) and related information about project management
   can be found in the chapter about new features in Qt Designer 3.0
   in the Qt Designer manual.


Qt Functions
========================================

QApplication
------------

 - flush() no longer calls sendPostedEvents(), as this might be unsafe
   under certain circumstances.

QDataTable
----------

 - Now uses the new row selection mode of QTable.

QDomDocument
------------

 - Fixed the toString() function to work properly with namespaces.
 - In Qt 3.0.0 Beta2, there was a workaround for Microsoft's XML parser,
   so that the toString() function did not output a doctype that consists
   only of the name. This workaround is semantically wrong; it was
   reverted.

QDateEdit
---------

 - Fixed wrong default size policy and missing size hint.
 - Improved focus and tab handling.

QEffects
--------

 - Tooltips and popup menus scroll and fade again

QTable
------

 - Fixed right mouse button handling.
 - Implemented row selection modes. This implied adding the new enum values
   SingleRow and MultiRow to the enum SelectionMode.
 - Doubleclick clears selections completely now.
 - Allow different focus styles, namely FollowStyle (draw it as the style
   tells you) and SpreadSheet (draw it as it is done in common spreadsheet
   programs).

New functions:
	virtual void setFocusStyle( FocusStyle fs );
	FocusStyle focusStyle() const;
	virtual QRect cellRect( int row, int col ) const;

QTimeEdit
---------

 - Fixed wrong default size policy and missing size hint.
 - Improved focus and tab handling.

QTextEdit
---------

 - QTextCursor is an internal class, so the signal
   cursorPositionChanged(QTextCursor*) is only of limited use. Added a
   more useful signal in addition.

 - Overrides accelerators for all shortcuts used to edit text.

New signal:
	void cursorPositionChanged( int para, int pos );

QLineEdit
---------

 - Overrides accelerators for all shortcuts used to edit text.

QLibrary
--------

 - Static overload for resolve as a convenience function.

New function:
	static void *resolve( const QString &filename, const char * );

QListView
---------

 - A bug that was introduced in Qt 3.0.0 beta 2 made listviews with
   lots of items very slow. This problem has been fixed.

QProcess
--------

 - exitStatus() did not work for negative values on Unix. This is fixed
   now.
 - Fixed problems on Unixware.

QRichtext
---------

 - Fixed searching backwards.
 - Fixed some BIDI text-rendering problems.

QSound
------

 - Simplified the API to allow easier extension.

New functions:
	bool isAvailable();
	int loops() const;
	int loopsRemaining() const;
	void setLoops(int);
	QString fileName() const;
	bool isFinished() const;

New slot:
	void stop();

Removed function:
	bool available();

QSpinBox
--------

 - Spin box arrows were not updated correctly when the widget was
   disabled/enabled. This problem is fixed now.
 - Improved handling of the case when a spinbox accepts a value: now it
   also accepts it if the spinbox loses focus or is hidden.

QSqlCursor
----------

 - Add functions to set the generated flag. This is used to avoid the
   generation of malformed SQL statements.

New functions:
	void setGenerated( const QString& name, bool generated );
	void setGenerated( int i, bool generated );

QSqlDriver
----------

 - Add new function hasFeature( QSqlDriver::DriverFeature ) const which
   allows you to query whether the driver supports features like SQL
   transactions or Binary Large Object fields. The functions
   hasQuerySizeSupport(), canEditBinaryFields() and hasTransactionSupport()
   are therefore obsolete and have been removed.

New function:
	bool hasFeature( QSqlDriver::DriverFeature ) const;

Removed functions:
	bool hasQuerySizeSupport() const;
	bool canEditBinaryFields() const;
	bool hasTransactionSupport() const;

QSqlField
---------

 - The bool argument of setNull() was removed since it does not make sense
   to set a field to non null.

QTabWidget
----------

 - Use the functions below to add tool tips to the individual tabs in a
   QTabWidget.

New functions:
	void removeTabToolTip( QWidget * w );
	void setTabToolTip( QWidget * w, const QString & tip );
	QString tabToolTip( QWidget * w ) const;

QTabBar
-------

 - Use the functions below to add tool tips to the individual tabs in a
   QTabBar.

New functions:
	void removeToolTip( int id );
	void setToolTip( int id, const QString & tip );
	QString toolTip( int id ) const;

QTextStream
-----------

 - The global functions setw(), setfill() and setprecison() were deleted
   since they conflict with the std classes. If you need the functionality,
   use qSetW(), qSetFill() and qSetPrecision() instead.

Removed functions:
	QTSManip setw( int w )
	QTSManip setfill( int f )
	QTSManip setprecision( int p )
