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
support. - Fixed
tag. - Fix for the
tag and centering tables. - Fixed   and . - 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 ®xp, 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;