Qt 3.0 Beta4 is not binary compatible with Beta3; any programs linked
against Beta3 must be recompiled.

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


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

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

The extensive revision of the documentation is almost complete.
We have added new navigation options, including a shorter list
of classes entitled Main Classes.

Translations
------------

Qt now includes French and German translations of the Qt library, as
well as a template for translating Qt. These files are found in the
translations directory of Qt, in both .ts and .qm formats.

Style Fixes
-----------

Qt 3.0.0 beta2 introduced a new QStyle API. This new API has changed
between beta3 and beta4. These changes will affect both widget
writers and style writers. The QStyle entry below explains what has
changed.

Beta4 also introduces some fixes for bugs introduced during the port
to the new API in various widgets, notably QComboBox and QSlider.

LiveConnect Plugin
------------------

A few bugs were fixed in the LiveConnect Plugin so that the grapher
example works again on Windows.


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

 - General usability improvements and bug fixes, and improved file
   and project handling.
 - Updated designer manual to cover the .ui.h mechanism.
 - New auto-indentation algorithm in the code editor.


Qt Assistant
========================================

 - Added a Settings dialog and made more features customizable.
 - Sessions are now saved and restored.
 - A brief introduction to using Qt Assistant is now included.


Qt Linguist
========================================

 - Phrase books are now provided in tools/linguist/phrasebooks.
 - Added support for Qt Designer's .ui.h mechanism to lupdate.
 - Support for a larger subset of .pro file syntax in lupdate and
   lrelease.


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

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

 - Ignore drag-and-drop events for disabled widgets.
 - Always send ChildRemoved events, even if no ChildInserted event
   was sent.
 - Mouse events for popup menus are now sent to event filters.

QCanvasItem
-----------

 - The functions visible(), selected() and active() have been renamed
   setVisible(), setSelected() and setActive().

New functions:
	bool isVisible() const;
	bool isSelected() const;
	bool isActive() const;

Removed functions:
	bool visible() const;
	bool selected() const;
	bool active() const;

QCanvasText
-----------

 - Fixed alignment flags.

QChar
-----

New function:
	bool isSymbol() const;

QCheckBox
---------

 - Fixed a bug in pixmap caching which could result in using the
   wrong pixmap.

QCheckListItem
--------------

 - After a mouse click, the list view ignores the following double
   click as in Windows XP.

QClipboard
----------

 - Made clipboard operations faster on X11.

QColorDialog
------------

 - Never show scrollbars in the color array.

QComboBox
---------

 - Comboboxes are now drawn correctly in all styles.
 - Fixed bug with auto completion. There was undefined behavior with
   non-editable comboboxes when changing focus.

New function:
	virtual void setCurrentText( const QString& );

New property:
	QString currentText

QDataBrowser
------------

 - The setCursor() function is obsolete and will be removed for Qt 3
   release due to the incompatibility with some compilers. Use
   setSqlCursor() instead.

QDataTable
----------

 - Dates and times in tables can now be displayed in different
   display formats.
 - The setCursor() function is obsolete and will be removed for Qt 3
   release due to the incompatibility with some compilers. Use
   setSqlCursor() instead.

QDateEdit
---------

 - The default separator and the day-month-year order respect the
   user's settings.
 - Pressing the separator key now skips to the next section.
 - Fixed a usability flaw related to some months being longer than
   others.

New functions:
	QString separator() const;
	virtual void setSeparator( const QString& s );

QDateTime
---------

 - Always initialize the tm struct completely. This fixes a problem
   on some versions of Unix.

QDir
----

 - QDir::homeDirectory() now always returns an existing directory on
   Windows.

QDockWindows
------------

 - Fixed dockwindows created in non-dock areas.
 - Fixed constructor if InDock and the parent is a QMainWindow.

QDom...
-------

 - Fixes in the conversion of the DOM tree to a string.

QDomNodeList
------------

 - Fixed a crash.

QFileDialog
-----------

 - Select contents of the line edit at startup (if any) so that the
   user can overwrite the provided file name right away.

QFileInfo
---------

 - In adition to lastModified() and lastRead(), provide created().

New function:
	QDateTime created() const;

QFont
-----

 - Provide more correct font metrics under X11.
 - Worked around X11 limits on length of strings to draw and on
   coordinate sizes.
 - Fixed sone point vs. pixel size issues under X11.
 - Added PreferAntialias and NoAntialias flags to StyleStrategy enum
   type.

QFtp
----

 - Fixed a QSocket bug that made QFtp crash if the connection was
   refused.
 - Fixed operationRename() and operationRemove().
 - Set the right state when finished.

QGIFFormat
----------

 - Support GIF files with broken logical screen size.

QHeader
-------

 - Added support for '\n' in header labels.
 - Improved placement of icon.

QHttp
-----

 - If the status code of the reply is an error code, it is now also
   reflected in the status of the network operation. The error
   handling in general was improved.

QImageIO
--------

 - Allow gamma correction to be set programmatically.

New functions:
	void setGamma( float gamma );
	float gamma() const;

QKeyEvent
---------

 - Worked around an X11 bug in isAutoRepeat().

QKeySequence
------------

A new class that encapsulates a key sequence as used by accelerators.

QLabel
------

 - Made the WordBreak alignment property work with rich text labels
   in addition to plain text labels.

QLayout
-------

 - Fixed crashes with deleting widgets managed by the layout.
 - Fixed problems with reparenting widgets managed by the layout.
 - Respect maximumHeight() of items in heightForWidth().

QLibrary
--------

 - Plugins now return the version number, threading model and debug
   vs. release mode of the Qt library used in ucm_initialize(). If
   there is any kind of incompatibility, cancel the loading.

QLineEdit
---------

 - Update the "edited" flag and the accessibility data better than
   before.
 - Fixed setMaxLength().
 - Fixed context menu problem on Windows.

New functions:
	bool isUndoAvailable() const;
	bool isRedoAvailable() const;

QListViewItem
-------------

 - Fixed setVisible(TRUE) which triggered an update too soon.

QMenuBar
--------

 - Cancel alt-activation of menubar on mouse press/release.
 - On wheel events, all popup menus are now closed instead of hidden.
   Hiding popup menus confused QMenuBar.

QObject
-------

 - Have QObject dispatch events to customEvents().

QPainter
--------

 - Renamed the enum type ClipMode to CoordinateMode. The enum values
   ClipDevice and ClipPainter are now called CoordDevice and
   CoordPainter.
 - Fixed escaping of ampersand character, so "&&", "&&&", etc., now
   work as they did in Qt 2.x.

New functions:
	void drawPixmap( const QRect& r, const QPixmap& pm );
	void drawImage( const QRect& r, const QImage& img );

QPicture
--------

 - Respect the size of a loaded SVG document.
 - Solved a replay-transformed-picture problem.
 - Fixed format version number.

QPluginManager
--------------

 - Fixed crash when loading a plugin fails.

QPopupMenu
----------

 - Custom menu items that are separators now see their size hint
   respected.
 - Fixed crash when drawing an empty popup menu.

QPrinter
--------

 - Better printing in different resolutions under both Windows and
   X11.
 - Support for collation under Windows and X11.
 - Correct bounding rectangles for texts in all printer modes.
 - Fixed pixmap printing on Windows.
 - Fixed PostScript font names for fonts with foundries.
 - Support for PostScript printing of scaled images.

New functions:
	bool collateCopiesEnabled() const;
	void setCollateCopiesEnabled( bool enable ) const;
	bool collateCopies() const;
	void setCollateCopies( bool on );
	int winPageSize() const; /* Windows only */

QProcess
--------

 - The function hangUp() was renamed to tryTerminate() to make the
   purpose more clear. Furthermore, under Unix, the signal that is
   sent was changed from SIGHUP to SIGTERM.
 - The function kill() and the function tryTerminate() (formerly
   hangUp()) were made slots.

New slots:
	void tryTerminate();
	void kill();

Removed functions:
	void hangUp();
	void kill();

QProgressBar
------------

 - Draw the progress bar correctly with respect to the properties
   "percentageVisible", "indicatorFollowsStyle" and
   "centerIndicator".

QPtrVector
----------

 - Support null items without triggering an assert.

QPushButton
-----------

 - Fixed the sizeHint() of buttons with an icon.

QRegExp
-------

 - Fixed a subtle bug in regular expressions mixing anchors and
   alternation.

QRegion
-------

 - Don't crash when creating a QRegion from an empty point array.

QRichText
---------

 - Improved alignment support, including nested alignments.
 - Improved table margin support.
 - Improved page break algorithm.
 - Do not eat '\n' in preformatted items.
 - Do not draw the internal trailing space at the end of a paragraph.
 - Fixed link underlining in table cells and other subdocuments.
 - Use larger vertical margin between paragraphs.
 - Display paragraph spacing even when printing.
 - Support vertical table cell alignment.
 - Fix for floating items and table cell size calculation.
 - Improved allignment handling.
 - Offset fixes for tabs.
 - Better <div> support.
 - Fixed <br> tag.
 - Fix for the <center> tag and centering tables.
 - Fixed &nbsp; and <nobr>.
 - Fixed off-by-one bug in gotoWordLeft() and gotoWordRight().
 - Better positioning of super- and subscripts.
 - Faster printing of large tables by using a clipping rectangle.
 - Improved high-resolution printing.
 - Correct sizes for images when printing.
 - Fixed list painting when printing.
 - Use right background for printing.

QScrollBar
----------

 - Made setValue() a slot.

New slot:
	void setValue( int );

Removed function:
	void setValue( int );

QSettings
---------

 - Added support for QStringLists without requiring a distinct
   separator.
 - Added support for null strings, empty lists and null strings in
   lists.
 - Fixed bug with values ending with a backslash.
 - On Unix, don't overwrite files if the user doesn't have permission.

QSimpleRichText
---------------

 - Implemented vertical breaks and floating elememts.
 - Fixed bug with borders and clipping in printing.
 - Fixed bug in adjustSize() cache.

QSizePolicy
-----------

 - Stretch factors were added to QSizePolicy.
 - Added a new size policy: Ignored.

New functions:
	uint horStretch() const;
	uint verStretch() const;
	void setHorStretch( uchar sf );
	void setVerStretch( uchar sf );

QSpinBox
--------

New slot:
	virtual void selectAll();

QSqlDatabase
------------

 - QSqlDatabase now provides access to meta-data. Meta-data is stored
   in two new classes, QSqlFieldInfo and QSqlRecordInfo. See the
   class documentation for details.

New Functions:
	QSqlRecordInfo recordInfo ( const QString & tablename ) const
	QSqlRecordInfo recordInfo ( const QSqlQuery & query ) const


QSqlFieldInfo
-------------

A new class that stores meta data associated with a SQL field.

QSqlRecordInfo
--------------

A new class that is keeping a set of QSqlFieldInfo objects.

QStatusBar
----------

 - Don't cut off the bottom line of the border of the status bar.
 - Respect maximumHeight() of items in the status bar.

QString
-------

 - QString now provides section(), a function that parses simple
   fields.
 - The function similarityWith() has been removed from the API. If
   you need it, write to qt-bugs@trolltech.com.

New functions:
	QString section( QChar sep, int start, int end,
			 int flags = SectionDefault ) const;
	QString section( char sep, int start, int end = 0xffffffff,
			 int flags = SectionDefault ) const;
	QString section( const char *substr, int start, int end = 0xffffffff,
			 int flags = SectionDefault ) const;
	QString section( QString substr, int start, int end = 0xffffffff,
			 int flags = SectionDefault ) const;
	QString section( const QRegExp &regxp, int start, int end = 0xffffffff,
			 int flags = SectionDefault ) const;
	
Removed function:
	int similarityWith( const QString& target ) const;

QStyle
------

 - Changed "void **" technique to QStyleOption technique. This
   affects the interface of most of the QStyle member functions.
   Please read the QStyle class documentation for details.

QStyleOption
------------

A new class that encapsulates extra data sent to the style API.

QTabBar
-------

 - The accelerators are now working correctly after changing a tab.

QTable
------

 - Fixed crash related to popup menu and cell edition.
 - Fixed not-drawing hidden cells.

QTextCodec
----------

 - Added MIME names for codecs.
 - Improved locale detection.
 - Fixed the ISO 8859-6.8x (Arabic) font encoding.

New function:
	const char *mimeName() const;

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

 - Fixed bug with stateful QTextEncoders.

QTextEdit
---------

 - Respect disabling updates.
 - Fixed link underlining in table cells and other subdocuments.
 - Draw cursor on focus in.
 - Emit cursorPositionChanged() where it previously was missing.
 - Fixed sync().

New functions:
	bool isUndoAvailable() const;
	bool isRedoAvailable() const;
	bool isUndoRedoEnabled() const;
	virtual void setUndoRedoEnabled( bool enabled ) const;

New property:
	bool undoRedoEnabled

QThread
-------

 - Fixed QThread::sleep() on Unix.

QTime
-----

 - fromString() with format Qt::ISODate now recognizes milliseconds
   if they are specified.
 - Make elapsed() a const function.

QTimeEdit
---------

 - The default time separator respects the user's settings.
 - Pressing the separator key now skips to the next section.

New functions:
	QString separator() const;
	virtual void setSeparator( const QString& s );

QTooltip
--------

 - Hide active tooltips when the user switches to another application.
 - Fixed tooltips with Windows effects enabled.

QUrl
----

 - Fixed password encoding.

New function:
	bool hasPort() const;

QValidator
----------

 - Let QValidator, QIntValidator, QDoubleValidator and
   QRegExpValidator have QObject parents rather than only QWidget
   parents.

QVariant
--------

 - Added QBitArray support.
 - The QDateTime type now supports asDate() and asTime().
 - The QByteArray type now supports toString().

New functions:
	QVariant( const QBitArray& );
	const QBitArray toBitArray() const;
	QBitArray& asBitArray();

QWhatsThis
----------

 - Added support for hyperlinks in "What's This?" help windows.

QWidget
-------

 - Fixed crashes related to LayoutHint events.

QWizard
-------

 - Made removePage() behave as documented.
 - Fixed back() so that it skips irrelevant pages like next().

QWorkspace
----------

 - Make sure that the widget state is set before the first titlebar
   painting is triggered.
 - Use the right pixmap for titlebar.
 - Respects widget flags better for titlebars in QCommonStyle.
 - Fixed move and resize in the system menu bar of workspace
   children.

QXml
----

 - Made the "prefix" xmlns map to the namespace name
   http://www.w3.org/2000/xmlns/.
 - Fixed default namespaces.

QXmlAttributes
--------------

 - Added count() as equivalent to length() to be consistent with Qt
   conventions.

New function:
	int count() const;
