diff options
Diffstat (limited to 'dist/changes-3.0.0-beta1')
-rw-r--r-- | dist/changes-3.0.0-beta1 | 1239 |
1 files changed, 1239 insertions, 0 deletions
diff --git a/dist/changes-3.0.0-beta1 b/dist/changes-3.0.0-beta1 new file mode 100644 index 0000000..2c73e77 --- /dev/null +++ b/dist/changes-3.0.0-beta1 @@ -0,0 +1,1239 @@ +Qt 3.0 adds a lot of new features and improvements over the Qt 2.x +series. Some internals have undergone major redesign and new classes +and methods have been added. + +We have tried to keep the API of Qt 3.0 as compatible as possible with +the Qt 2.x series. For most applications only minor changes will be +needed to compile and run them successfully using Qt 3.0. + +One of the major new features that has been added in the 3.0 release +is a module allowing you to easily work with databases. The API is +platform independent and database neutral. This module is seamlessly +integrated into Qt Designer, greatly simplifying the process of +building database applications and using data aware widgets. + +Other major new features include a component architecture allowing you +to build cross platform components, 'plugins' with Qt. You can use +your own and third party plugins your own applications. The Unicode +support of Qt 2.x has been greatly enhanced, it now includes full +support for scripts written from right to left (e.g. Arabic and +Hebrew) and also provides improved support for Asian languages. + +Many new classes have been added to the Qt Library. Amongst them are +classes that provide a docking architecture (QDockArea/QDockWindow), a +powerful rich text editor (QTextEdit), a class to store and access +application settings (QSettings) and a class to create and communicate +with processes (QProcess). + +Apart from the changes in the library itself a lot has been done to +make the development of Qt applications with Qt 3.0 even easier than +before. Two new applications have been added: Qt Linguist is a tool to +help you translate your application into different languages; Qt +Assistant is an easy to use help browser for the Qt documentation that +supports bookmarks and can search by keyword. + +Another change concerns the Qt build system, which has been reworked +to make it a lot easier to port Qt to new platforms. You can use this +platform independent build system for your own applications. + + +The Qt Library +======================================== + +A large number of new features has been added to Qt 3.0. The following +list gives an overview of the most important new and changed aspects +of the Qt library. A full list of every new method follows the +overview. + + +Database support +---------------- + +One of the major new features in Qt 3.0 is the SQL module that +provides cross-platform access to SQL databases, making database +application programming with Qt seamless and portable. The API, built +with standard SQL, is database-neutral and software development is +independent of the underlying database. + +A collection of tightly focused C++ classes are provided to give the +programmer direct access to SQL databases. Developers can send raw SQL +to the database server or have the Qt SQL classes generate SQL queries +automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are +available and writing new drivers is straightforward. + +Tying the results of SQL queries to GUI components is fully supported +by Qt's SQL widgets. These classes include a tabular data widget +(for spreadsheet-like data presentation with in-place editing), a +form-based data browser (which provides data navigation and edit +functions) and a form-based data viewer (which provides read-only +forms). This framework can be extended by using custom field editors, +allowing for example, a data table to use custom widgets for in-place +editing. The SQL module fully supports Qt's signal/slots mechanism, +making it easy for developers to include their own data validation and +auditing code. + +Qt Designer fully supports Qt's SQL module. All SQL widgets can be +laid out within Qt Designer, and relationships can be established +between controls visually. Many interactions can be defined purely in +terms of Qt's signals/slots mechanism directly in Qt Designer. + + +Component model - plugins +------------------------- + +The QLibrary class provides a platform independent wrapper for runtime +loading of shared libraries. Access to the shared libraries uses a +COM-like interface. QPluginManager makes it trivial to implement +plugin support in applications. The Qt library is able to load +additional styles, database drivers and text codecs from plugins which +implement the relevant interfaces, e.g. QStyleFactoryInterface, +QSqlDriverInterface or QTextCodecInterface. It is possible to remove +unused components from the Qt library, and easy to extend any +application with 3rd party styles, database drivers or text codecs. + +Qt Designer supports custom widgets in plugins, and will use the +widgets both when designing and previewing forms. + +QComponentFactory makes it easy to register any kind of component in a +global database (e.g. the Windows Registry) and to use any registered +component. + + +Rich text engine and editor +--------------------------- + +The rich text engine originally introduced in Qt 2.0 has been further +optimized and extended to support editing. It allows editing formatted +text with different fonts, colors, paragraph styles, tables and +images. The editor supports different word wrap modes, command-based +undo/redo, multiple selections, drag and drop, and many other +features. The engine is highly optimized for proccesing and displaying +large documents quickly and efficiently. + + +Unicode +------- + +Apart from the rich text engine, another new feature of Qt 3.0 that +relates to text handling is the greatly improved Unicode support. Qt +3.0 includes an implementation of the bidirectional algorithm (BiDi) +as defined in the Unicode standard and a shaping engine for Arabic, +which gives full native language support to Arabic and Hebrew speaking +people. At the same time the support for Asian languages has been +greatly enhanced. + +The support is almost transparent for the developer using Qt to +develop their applications. This means that developers who developed +applications using Qt 2.x will automatically gain the full support for +these languages when switching to Qt 3.0. Developers can rely on their +application to work for people using writing systems different from +Latin1, without having to worry about the complexities involved with +these scripts, as Qt takes care of this automatically. + + +Docked and Floating Windows +--------------------------- + +Qt 3.0 introduces the concept of Dock Windows and Dock Areas. Dock +windows are widgets, that can be attached to, and detached from, dock +areas. The commonest kind of dock window is a tool bar. Any number of +dock windows may be placed in a dock area. A main window can have dock +areas, for example, QMainWindow provides four dock areas (top, left, +bottom, right) by default. The user can freely move dock windows and +place them at a convenient place in a dock area, or drag them out of +the application and have them float freely as top level windows in +their own right. Dock windows can also be minimized or hidden. + +For developers, dock windows behave just like ordinary widgets. QToolbar +for example is now a specialized subclass of a dock window. The API +of QMainWindow and QToolBar is source compatible with Qt 2.x, so +existing code which uses these classes will continue to work. + + +Regular Expressions +------------------- + +Qt has always provided regular expression support, but that support +was pretty much limited to what was required in common GUI control +elements such as file dialogs. Qt 3.0 introduces a new regular +expression engine that supports most of Perl's regex features and is +Unicode based. The most useful additions are support for parentheses +(capturing and non-capturing) and backreferences. + + +Storing application settings +---------------------------- + +Most programs will need to store some settings between runs, for +example, user selected fonts, colors and other preferences, or a list +of recently used files. The new QSettings class provides a platform +independent way to achieve this goal. The API makes it easy to store +and retrieve most of the basic data types used in Qt (such as basic +C++ types, strings, lists, colors, etc). The class uses the registry +on the Windows platform and traditional resource files on Unix. + + +Creating and controlling other processes +---------------------------------------- + +QProcess is a class that allows you to start other programs from +within a Qt application in a platform independent manner. It gives you +full control over the started program, for example you can redirect +the input and output of console applications. + + +Accessibility (not part of the beta1 release) +--------------------------------------------- + +Accessibility means making software usable and accessible to a wide +range of users, including those with disabilities. In Qt 3.0, most +widgets provide accessibility information for assistive tools that can +be used by a wide range of disabled users. Qt standard widgets like +buttons or range controls are fully supported. Support for complex +widgets, like e.g. QListView, is in development. Existing applications +that make use of standard widgets will become accessible just by using +Qt 3.0. + +Qt uses the Active Accessibility infrastructure on Windows, and needs +the MSAA SDK, which is part of most platform SDKs. With improving +standardization of accessibility on other platforms, Qt will support +assistive technologies on other systems, too. + +The accessibility API in Qt is not yet stable, which is why we decided +not to make it a part of the beta1 release. + + +XML Improvements +---------------- + +The XML framework introduced in Qt 2.2 has been vastly improved. Qt +2.2 already supported level 1 of the Document Object Model (DOM), a +W3C standard for accessing and modifying XML documents. Qt 3.0 has +added support for DOM Level 2 and XML namespaces. + +The XML parser has been extended to allow incremental parsing of XML +documents. This allows you to start parsing the document directly +after the first parts of the data have arrived, and to continue +whenever new data is available. This is especially useful if the XML +document is read from a slow source, e.g. over the network, as it +allows the application to start working on the data at a very early +stage. + + +SVG support +----------- + +SVG is a W3C standard for "Scalable Vector Graphics". Qt 3.0's SVG +support means that QPicture can optionally generate and import static +SVG documents. All the SVG features that have an equivalent in +QPainter are supported. + + +Multihead support +----------------- + +Many professional applications, such as DTP and CAD software, are able +to display data on two or more monitors. In Qt 3.0 the QDesktopWidget +class provides the application with runtime information about the +number and geometry of the desktops on the different monitors and such +allows applications to efficiently use a multi-monitor setup. + +The virtual desktop of Windows 98 and 2000 is supported, as well as +the traditional multi-screen and the newer Xinerama multihead setups +on X11. + + +X11 specific enhancements +------------------------- + +Qt 3.0 now complies with the NET WM Specification, recently adopted +by KDE 2.0. This allows easy integration and proper execution with +desktop environments that support the NET WM specification. + +The font handling on X11 has undergone major changes. QFont no longer +has a one-to-one relation with window system fonts. QFont is now a +logical font that can load multiple window system fonts to simplify +Unicode text display. This completely removes the burden of +changing/setting fonts for a specific locale/language from the +programmer. For end-users, any font can be used in any locale. For +example, a user in Norway will be able to see Korean text without +having to set their locale to Korean. + +Qt 3.0 also supports the new render extension recently added to +XFree86. This adds support for anti aliased text and pixmaps with +alpha channel (semi transparency) on the systems that support the +rendering extension (at the moment XFree 4.0.3 and later). + + +Printing +-------- + +Printing support has been enhanced on all platforms. The QPrinter +class now supports setting a virtual resolution for the painting +process. This makes WYSIWYG printing trivial, and also allows you to +take full advantage of the high resolution of a printer when painting +on it. + +The postscript driver built into Qt and used on Unix has been greatly +enhanced. It supports the embedding of true/open type and type1 fonts +into the document, and can correctly handle and display Unicode. +Support for fonts built into the printer has been enhanced and Qt now +knows about the most common printer fonts used for Asian languages. + + +QHttp +----- + +This class provides a simple interface for HTTP downloads and uploads. + + +Compatibility with the Standard Template Library (STL) +------------------------------------------------------ + +Support for the C++ Standard Template Library has been added to the Qt +Template Library (QTL). The QTL classes now contain appropriate copy +constructors and typedefs so that they can be freely mixed with other +STL containers and algorithms. In addition, new member functions have +been added to QTL template classes which correspond to STL-style +naming conventions (e.g., push_back()). + + +Qt Designer +======================================== + +Qt Designer was a pure dialog editor in Qt 2.2 but has now been +extended to provide the full functionality of a GUI design tool. + +This includes the ability to lay out main windows with menus and +toolbars. Actions can be edited within Qt Designer and then plugged +into toolbars and menu bars via drag and drop. Splitters can now be +used in a way similar to layouts to group widgets horizontally or +vertically. + +In Qt 2.2, many of the dialogs created by Qt Designer had to be +subclassed to implement functionality beyond the predefined signal and +slot connections. Whilst the subclassing approach is still fully supported, +Qt Designer now offers an alternative: a plugin for editing +slots. The editor offers features such as syntax highlighting, +completion, parentheses matching and incremental search. + +The functionality of Qt Designer can now be extended via plugins. +Using Qt Designer's interface or by implementing one of the provided +interfaces in a plugin, a two way communication between plugin and Qt +Designer can be established. This functionality is used to implement +plugins for custom widgets, so that they can be used as real widgets +inside the designer. + +Basic support for project management has been added. This allows you +to read and edit *.pro files, add and remove files to/from the project +and do some global operations on the project. You can now open the +project file and have one-click access to all the *.ui forms in the +project. + +In addition to generating code via uic, Qt Designer now supports the +dynamic creation of widgets directly from XML user interface +description files (*.ui files) at runtime. This eliminates the need of +recompiling your application when the GUI changes, and could be used +to enable your customers to do their own customizations. Technically, +the feature is provided by a new class, QWidgetFactory in the +QResource library. + + +Qt Linguist +======================================== + +Qt Linguist is a GUI utility to support translating the user-visible +text in applications written with Qt. It comes with two command-line +tools: lupdate and lrelease. + +Translation of a Qt application is a three-step process: + + 1) Run lupdate to extract user-visible text from the C++ source + code of the Qt application, resulting in a translation source file + (a *.ts file). + 2) Provide translations for the source texts in the *.ts file using + Qt Linguist. + 3) Run lrelease to obtain a light-weight message file (a *.qm file) + from the *.ts file, which provides very fast lookup for released + applications. + +Qt Linguist is a tool suitable for use by translators. Each +user-visible (source) text is characterized by the text itself, a +context (usually the name of the C++ class containing the text), and +an optional comment to help the translator. The C++ class name will +usually be the name of the relevant dialog, and the comment will often +contain instructions that describe how to navigate to the relevant +dialog. + +You can create phrase books for Qt Linguist to provide common +translations to help ensure consistency and to speed up the +translation process. Whenever a translator navigates to a new text to +translate, Qt Linguist uses an intelligent algorithm to provide a list +of possible translations: the list is composed of relevant text from +any open phrase books and also from identical or similar text that has +already been translated. + +Once a translation is complete it can be marked as "done"; such +translations are included in the *.qm file. Text that has not been +"done" is included in the *.qm file in its original form. Although Qt +Linguist is a GUI application with dock windows and mouse control, +toolbars, etc., it has a full set of keyboard shortcuts to make +translation as fast and efficient as possible. + +When the Qt application that you're developing evolves (e.g. from +version 1.0 to version 1.1), the utility lupdate merges the source +texts from the new version with the previous translation source file, +reusing existing translations. In some typical cases, lupdate may +suggest translations. These translations are marked as unfinished, so +you can easily find and check them. + + +Qt Assistant +======================================== + +Due to the positive feedback we received about the help system built +into Qt Designer, we decided to offer this part as a separate +application called Qt Assistant. Qt Assistant can be used to browse +the Qt class documentation as well as the manuals for Qt Designer and +Qt Linguist. It offers index searching, a contents overview, bookmarks +history and incremental search. Qt Assistant is used by both Qt +Designer and Qt Linguist for browsing their help documentation. + + +QMake +======================================== + +To ease portability we now provide the qmake utility to replace tmake. +QMake is a C++ version of tmake which offers additional functionallity +that is difficult to reproduce in tmake. Trolltech uses qmake in its +build system for Qt and related products and we have released it as +free software. + + +Qt Functions +======================================== + +QAction +------- + +All new functions: + void addedTo( QWidget *actionWidget, QWidget *container ); + void addedTo( int index, QPopupMenu *menu ); + +QActionGroup +------------ + +New mode "uses drop down", where members are shown in a separate +subwidget such as a combobox or a submenu (enable with +setUsesDropDown(TRUE) ) + +All new functions: + void add(QAction*); + void addSeparator(); + void addedTo( QWidget *actionWidget, QWidget *container, QAction *a ); + void addedTo( int index, QPopupMenu *menu, QAction *a ); + void setUsesDropDown( bool enable ); + bool usesDropDown() const; + + +QApplication +------------ + +Added the setStyle(const QString&) overload that takes the name of the +style as its argument. This loads a style plugin via a QStyleFactory. + +desktop() now returns a QDesktopWidget that provides access to +multi-head information. Prior to 3.0, it returned a normal QWidget. + +New functions to define the library search path for plugins +(setLibraryPaths, ...). + +New functions to define reverse layout for bidirectional languages +(setReverseLayout, ...). + +All new functions: + bool hasPendingEvents() + + void setLibraryPaths(const QStringList &); + QStringList libraryPaths(); + void addLibraryPath(const QString &); + void removeLibraryPath(const QString &); + + void setReverseLayout( bool b ); + bool reverseLayout(); + int horizontalAlignment( int align ); + + + +QClipboard +---------- + +On systems that support it, for example X11, QClipboard now +differentiates between the primary selection and the data in the clipboard. + +All new functions: + bool supportsSelection() const; + bool ownsClipboard() const; + void setSelectionMode(bool enable); + bool selectionModeEnabled() const; +New signals: + void selectionChanged() + + + +QCursor +------- + +Now inherits Qt namespace. Enum values like ArrowCursor, +UpArrowCursor, CrossCursor etc. are now part of that namespace. + + +QDataStream +----------- + +Added missing operators for Q_LONG and Q_ULONG + + +QDateTime / QDate / QTime +------------------------- + +More sophisticated toString() function that takes a DateFormat, where +DateFormat can be either TextDate (the default), ISODate (ISO 8601) or +LocalDate (locale dependent). + +All new functions: + QDate addMonths( int months ) const; + QDate addYears( int years ) const; + QDate fromString( const QString& s, Qt::DateFormat f = Qt::TextDate ); + static QString shortMonthName( int month ); + static QString longMonthName( int month ); + static QString shortDayName( int weekday ); + static QString longDayName( int weekday ); + static void setShortMonthNames( const QStringList& names ); + static void setLongMonthNames( const QStringList& names ); + static void setShortDayNames( const QStringList& names ); + static void setLongDayNames( const QStringList& names ); + +QDialog +------- + +Merged with QSemiModal. Calling show() on a modal dialog will return +immediately, not enter a local event loop. Showing a modal dialog in +its own event loop is achieved using exec(). + +exec() is now a public slot. + +Usability: For widgets supporting What's This help, QDialog +automatically offers a context menu containing a "What's This?" entry. + + +QEvent +------ + +Mouse events are now propagated up to the toplevel widget if no widget +accepts them and no event filter filters them out. In previous Qt +versions, only key events were propagated. + +All events carry a flag 'spontaneous' to determine whether the even +came from the outside or was generated by code within the +applications. Previously, only show and hide events had this flag. + +Enter/Leave event generation has been fixed. Previously, a widget +received a leave event when the mouse pointer entered one of its +children. This was both unnatural and contradictive to the +documentation. + +QWheelevent now carries an orientation to differentiate between +horizontal and vertical wheels. + +QFocusEvent: new reason 'Backtab' (previously only 'Tab' was +available). This makes it possible to discover from what direction on +the tab-focus chain the widget was entered. + +New events: QContextMenuEvent, QIMEvent + + +QFile +----- + +Ported from int to Q_LONG to prepare for large file sizes on 64 bit +systems. + +Filter handling made more flexible. + + +QFileDialog +----------- + +All new Functions: + void setSelectedFilter( const QString& ); + void setSelectedFilter( int ); +New signals: + void filesSelected( const QStringList& ); + void filterSelected( const QString& ); + +If you try to specify an invalid file when using getOpenFileName(s), an error message +will appear and the file will not be accepted. In 2.x, this function behaved differently +because users were using getOpenFileName(s) as a Save File Dialog; you should use +getSaveFileName() when you require a Save File Dialog. + + +QCanvas Module +-------------- + + New classes: + QCanvasSpline - a multi-bezier spline + + QCanvasItemList + void update(); + + QCanvas: + QRect rect() const; + void setUnchanged( const QRect& area ); + void drawArea(const QRect&, QPainter* p, bool double_buffer); + void drawViewArea( QCanvasView* view, QPainter* p, const QRect& r, bool dbuf ); + QRect changeBounds(const QRect& inarea); + + QCanvasView: + const QWMatrix &worldMatrix() const; + const QWMatrix &inverseWorldMatrix() const; + void setWorldMatrix( const QWMatrix & ); + QCanvasSprite: + int leftEdge() const; + int topEdge() const; + int rightEdge() const; + int bottomEdge() const; + int leftEdge(int nx) const; + int topEdge(int ny) const; + int rightEdge(int nx) const; + int bottomEdge(int ny) const; + +QCanvasSprite can now be set to animate its frames without the need to +subclass. + + +QFont, QFontDatabase, QFontInfo, QFontMetrics +--------------------------------------------- + +The QFont::CharSet enum has been removed and replaced with the +QFont::Script enum. With this change, a QFont is not associated with a +specific character set. Instead, QFont uses Unicode Scripts for +loading fonts. On platforms where most fonts do not use the Unicode +encoding (currently only X11), multiple locale and character-set +dependent fonts can be loaded for the individual Unicode Scripts. + +Another new feature of QFont is a much more flexible substitution +mechanism. Each family can have a list of appropriate substitutes. The +font substitution feature allows you to specify a list of substitute +fonts. Substitute fonts are used when a font cannot be loaded, or if +the specified font doesn't have a particular character (X11 only). + +For example (on X11), you select the font Lucida, which doesn't have +Korean characters. For Korean text, you want to use the Mincho font +family. By adding Mincho to the list, any Korean characters not found +in Lucida will be used from Mincho. Because the font substitutions are +lists, you can also select multiple families, such as Song Ti (for use +with Chinese text). + +QFontInfo and QFontMetrics had small API changes related to the +disappearance of QFont::CharSet. In terms of functionality, the +behavior of these classes is unchanged. + +QFontDatabase had several API cleanups related to the disappearance of +QFont::CharSet. Most QFontDatabase member functions take one less +argument, yet compatibility functions still exist to keep old source +code working. + +Family and style names returned from QFontDatabase are now processed +and formatted in a way that is suitable for display to users. Family +and foundry names are capitalized and foundry names are enclosed in +square brackets after the family name. For example, the Helvetica +font family might have 3 different foundries: Adobe, Cronyx and +Phaisarn. In 2.x, QFontDatabase listed them like this: + + adobe-helvetica + cronyx-helvetica + phaisarn-helvetica + +Starting with 3.0, QFontDatabase lists them like this: + + Helvetica [Adobe] + Helvetica [Cronyx] + Helvetica [Phaisarn] + + +QFrame +------ + +Two new frame shapes for more sophisticated style features: +MenuBarPanel and ToolBarPanel. + + +QGrid +----- + +The member type + + enum Direction { Horizontal, Vertical }; + +has been eliminated, as it is redundant: use Qt::Orientation instead. +Old code referring to QGrid::Horizontal or QGrid::Vertical will still +work, as QGrid counts Qt among its ancestors. + + +QGroupBox +--------- + +More functionality of the built-in layout is exposed: + + int insideMargin() const; + int insideSpacing() const; + void setInsideMargin( int m ); + void setInsideSpacing( int s ); + + +QHeader +------- + +New property: bool stretching + +New functions: + bool isStretchEnabled( int section ); + void setStretchEnabled( bool b, int section ); + + +QIconSet +-------- + +In addition to the mode - which can be either Normal, Disabled or +Active - QIconSet now supports different pixmaps for a state, i.e. On +or Off. The functions pixmap() and setPixmap() have been extended +accordingly. + +The default constructor no longer initializes the iconset to +contain a null pixmap. QIconSet::isNull() returns TRUE for un- +initialized iconsets, and pixmap() still returns a null pixmap for +pixmaps that couldn't be generated. + + +QIconView +--------- + +Extended findItem() to support ComparisonFlags. Support for +soft-hyphens when doing word wrap. + +New signal: + contextMenuRequested( QIconViewItem*, const QPoint& pos); + + +QIconViewItem +------------- + +Added support for explicit rtti. + +New function: + int rtti() const; + + + +QListBox +-------- + +Extended findItem() to support ComparisonFlags. + +New signal: + void contextMenu( QListBoxItem *, const QPoint & ); + + +QListBoxItem +------------ + +Added support for explicit rtti. + +New function: + int rtti() const; + + + +QListView +--------- + +It was never really hard to implement drag and drop with QListView, +but since many applications demand this functionality today, we +decided to add it to the listview itself. + +In addition, in-place editing and per-item tooltips have been added. +Extended findItem() to support ComparisonFlags + +New properties: + bool showToolTips + ResizeMode resizeMode + +New signals: + contextMenuRequested( QIconViewItem*, const QPoint& pos); + void dropped( QDropEvent *e ); + void itemRenamed( QListViewItem *item, int col, const QString & ); + void itemRenamed( QListViewItem *item, int col ); + +New functions: + void setResizeMode( ResizeMode m ); + ResizeMode resizeMode() const; + QDragObject *dragObject(); + void startDrag(); + void startRename(); + + +QListViewItem +------------- + +Added support for explicit rtti. + +New functions: + void setDragEnabled( bool allow ); + void setDropEnabled( bool allow ); + bool dragEnabled() const; + bool dropEnabled() const; + bool acceptDrop( const QMimeSource *mime ) const; + void setVisible( bool b ); + bool isVisible() const; + void setRenameEnabled( int col, bool b ); + bool renameEnabled( int col ) const; + void startRename( int col ); + void setEnabled( bool b ); + bool isEnabled() const; + int rtti() const; + + void dropped( QDropEvent *e ); + void dragEntered(); + void dragLeft(); + void okRename( int col ); + void cancelRename( int col ); + + +QLabel +------ + +In addition to text, rich text, pixmaps and movies, QLabel can now +display QPicture vector graphics. + +New functions: + + QPicture *picture() const; + void setPicture( const QPicture & ); + + +QLineEdit +--------- + +New property: bool dragEnabled + +New signal: + contextMenuRequested( QIconViewItem*, const QPoint& pos); + +New functions: + void cursorForward( bool mark, int steps = 1 ); + void cursorBackward( bool mark, int steps = 1 ); + void cursorWordForward( bool mark ); + void cursorWordBackward( bool mark ); + bool dragEnabled(); + void setDragEnabled( bool b ); + + +QMainWindow +----------- + +Added a dock window architecture. Previous versions of QMainWindow +could only deal with toolbars, now they handle generalized dock +windows. QToolBar inherits QDockWindow. + + +New property: + bool dockWindowsMovable; + +New signals: + void dockWindowPositionChanged( QDockWindow * ); + +New functions: + void setDockEnabled( Dock dock, bool enable ); + bool isDockEnabled( Dock dock ) const; + bool isDockEnabled( QDockArea *area ) const; + void setDockEnabled( QDockWindow *tb, Dock dock, bool enable ); + bool isDockEnabled( QDockWindow *tb, Dock dock ) const; + bool isDockEnabled( QDockWindow *tb, QDockArea *area ) const; + + void addDockWindow( QDockWindow *, Dock = Top, bool newLine = FALSE ); + void addDockWindow( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE ); + void moveDockWindow( QDockWindow *, Dock = Top ); + void moveDockWindow( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 ); + void removeDockWindow( QDockWindow * ); + + QDockArea *dockingArea( const QPoint &p ); + QDockArea *leftDock() const; + QDockArea *rightDock() const; + QDockArea *topDock() const; + QDockArea *bottomDock() const; + + bool isCustomizable() const; + bool appropriate( QDockWindow *dw ) const; + QPopupMenu *createDockWindowMenu( DockWindows dockWindows = AllDockWindows ) const; + + bool showDockMenu( const QPoint &globalPos ); + + +QMetaObject +----------- + +###TODO + + +QMimeSourceFactory +------------------ + +New static functions: + QMimeSourceFactory* takeDefaultFactory(); + static void addFactory( QMimeSourceFactory *f ); + + +QNetworkProtocol +---------------- + +Spelling fix in Error::ErrListChildren enum. + + +QRegExp +------- + +QRegExp now has a more complete regular expression engine similar to +Perl's, with full Unicode and backreference support. + +New functions: + bool minimal() const; + void setMinimal( bool minimal ); + bool exactMatch( const QString& str ); + bool exactMatch( const QString& str ) const; + int search( const QString& str, int start = 0 ); + int search( const QString& str, int start = 0 ) const; + int searchRev( const QString& str, int start = -1 ); + int searchRev( const QString& str, int start = -1 ) const; + int matchedLength(); + QStringList capturedTexts(); + QString cap( int nth = 0 ); + int pos( int nth = 0 ); + + +QSessionManager +--------------- + +Renamed the misnamed setProperty() overloads to setManagerProperty() +to resolve the conflict with the now virtual QObject::setProperty(). + + +QString +------- + +New functions: + bool endsWith( const QString & ); + int similarityWith( const QString & ); + +### TODO + +QStyle +------ + +### TODO + +QTabBar +------- + +The extended QTabWidget support in Qt Designer made two more +functions handy to have: + QTab * tabAt( int ) const; + int indexOf( int ) const; + + + +QToolBar +-------- + +Inherits QDockWindow now, previously only QWidget. + + +QToolButton +----------- + +New property: + QIconSet iconSet + +New functions: + QIconSet iconSet() const; + virtual void setIconSet( const QIconSet & ); + +QWidget +------- + +New functions: + + const QColor & eraseColor() const; + virtual void setEraseColor( const QColor & ); + const QPixmap * erasePixmap() const; + virtual void setErasePixmap( const QPixmap & ); + + + +QWizard +------- + +New property: QString titleFont + +New functions: + QFont titleFont() const; + void setTitleFont( const QFont & ); + int indexOf( QWidget* ) const; + + +QWMatrix +-------- + +New function: + bool isIdentity() const; + + +QGL Module +---------- + +QGLWidget +New functions: + QGLFormat requestedFormat() const; + QImage grabFrameBuffer( bool withAlpha = FALSE ); + + +QWorkspace Module +----------------- + +A new property scrollBarsEnabled makes it possible to add on-demand +scrollbars to the workspace. We define this property in Qt Designer to +make designing forms larger than the available space on the desktop +more comfortable. + +New property: + bool scrollBarsEnabled + + +QXML Module +----------- +Many new functions have been added: + QDomImplementation + QDomDocumentType createDocumentType( const QString& qName, const QString& publicId, const QString& systemId ); + QDomDocument createDocument( const QString& nsURI, const QString& qName, const QDomDocumentType& doctype ); + QDomNode + QDomNode insertBefore( const QDomNode& newChild, const QDomNode& refChild ); + QDomNode insertAfter( const QDomNode& newChild, const QDomNode& refChild ); + QDomNode replaceChild( const QDomNode& newChild, const QDomNode& oldChild ); + QDomNode removeChild( const QDomNode& oldChild ); + QDomNode appendChild( const QDomNode& newChild ); + bool hasChildNodes() const; + QDomNode cloneNode( bool deep = TRUE ) const; + void normalize(); + bool isSupported( const QString& feature, const QString& version ) const; + QString namespaceURI() const; + QString localName() const; + bool hasAttributes() const; + QDomDocument + bool setContent( const QCString& text, bool namespaceProcessing=FALSE ); + bool setContent( const QByteArray& text, bool namespaceProcessing=FALSE ); + bool setContent( const QString& text, bool namespaceProcessing=FALSE ); + bool setContent( QIODevice* dev, bool namespaceProcessing=FALSE ); + QDomNamedNodeMap + QDomNode namedItemNS( const QString& nsURI, const QString& localName ) const; + QDomNode setNamedItemNS( const QDomNode& newNode ); + QDomNode removeNamedItemNS( const QString& nsURI, const QString& localName ); + + QDomElement + QString attributeNS( const QString nsURI, const QString& localName, const QString& defValue ) const; + void setAttributeNS( const QString nsURI, const QString& qName, const QString& value ); + void setAttributeNS( const QString nsURI, const QString& qName, int value ); + void setAttributeNS( const QString nsURI, const QString& qName, uint value ); + void setAttributeNS( const QString nsURI, const QString& qName, double value ); + void removeAttributeNS( const QString& nsURI, const QString& localName ); + QDomAttr attributeNodeNS( const QString& nsURI, const QString& localName ); + QDomAttr setAttributeNodeNS( const QDomAttr& newAttr ); + QDomNodeList elementsByTagNameNS( const QString& nsURI, const QString& localName ) const; + bool hasAttributeNS( const QString& nsURI, const QString& localName ) const; + + + QXmlAttributes + void clear(); + void append( const QString &qName, const QString &uri, const QString &localPart, const QString &value ); + + QXmlInputSource: + void setData( const QByteArray& dat ); + void fetchData(); + QString data(); + QChar next(); + void reset(); + QString fromRawData( const QByteArray &data, bool beginning = FALSE ); + + QXmlSimpleReader: + bool parse( const QXmlInputSource& input, bool incremental ); + bool parseContinue(); + + QXmlEntityResolver: + bool startEntity( const QString& name ); + bool endEntity( const QString& name ); + + + +New classes +----------- + +QAquaStyle (only on MacOS X) +QCleanupHandler +QComponentFactory +QComponentFactoryInterface +QComponentServerInterface +QContextMenuEvent +QDesktopWidget +QDockArea +QDockWindow +QErrorMessage +QFeatureListInterface +QHttp [network] +QInterfaceListInterface +QInterfacePtr +QIMEvent +QLibrary +QLibraryInterface +QStyleFactory +QStyleInterface +QTextCodecInterface +QUnknownInterface +QUuid +QRegExpValidator +QTextEdit + + +Renamed Classes +--------------- + +QArray has been renamed QMemArray +QCollection has been renamed QPtrCollection +QList has been renamed QPtrList +QListIterator has been renamed QPtrListIterator +QQueue has been renamed QPtrQueue +QStack has been renamed QPtrStack +QVector has been renamed QPtrVector + +The include file names have changed accordingly (e.g., <qmemarray.h>). + + +New Modules +----------- + +SQL + QDataBrowser + QDataTable + QDataView + QDateTimeEdit + QEditFactory + + +Obsolete classes +---------------- + + QSemiModal, use QDialog instead. + QMultiLineEdit, use QTextEdit instead. + QTableView, use QScrollView or QTable instead. + QAsyncIO, QDataSink, QDataSource, QDataPump and QIODeviceSource + + +Obsolete functions +------------------ + QActionGroup::insert( QAction * ), use QActionGroup::add( QAction* ) instead. + QApplication::setWinStyleHighlightColor( const QColor &c ), use setPalette() instead + QApplication::winStyleHighlightColor(), use palette() instead + QDir::encodedEntryList( int filterSpec, int sortSpec ), use QDir::entryList() instead + QDir::encodedEntryList( const QString &nameFilter, int filterSpec, int sortSpec ), use QDir::entryList() instead + QMainWindow::addToolBar( QDockWindow *, Dock = Top, bool newLine = FALSE ); + QMainWindow::addToolBar( QDockWindow *, const QString &label, Dock = Top, bool newLine = FALSE ); + QMainWindow::moveToolBar( QDockWindow *, Dock = Top ); + QMainWindow::moveToolBar( QDockWindow *, Dock, bool nl, int index, int extraOffset = -1 ); + QMainWindow::removeToolBar( QDockWindow * ); + QMainWindow::toolBarsMovable() const; + QMainWindow::toolBars( Dock dock ) const; + QMainWindow::lineUpToolBars( bool keepNewLines = FALSE ); + QRegExp::match( const QString& str, int index = 0, int *len = 0, + bool indexIsStart = TRUE ); + QToolButton::setOnIconSet( const QIconSet & ) + QToolButton::setOffIconSet( const QIconSet & ) + QToolButton::onIconSet() const + QToolButton::offIconSet() const + QToolButton::setIconSet( const QIconSet & set, bool on ) + QToolButton::iconSet( bool on ) const + QXmlInputSource::QXmlInputSource( QFile& file ), use QXmlInputSource( QIODevice *dev ) instead. + QXmlInputSource::QXmlInputSource( QTextStream& stream ), use QXmlInputSource( QIODevice *dev ) instead. + +Removed functions: + QWidget::setFontPropagation + QWidget::setPalettePropagation + QMenuBar::setActItem + QMenuBar::setWindowsAltMode + QCheckListItem::paintBranches + QString::visual + QString::basicDirection + QRegExp::find( const QString& str, int index ) const; - has been renamed QRegExp::search() + QFont::charSet() const, not needed anymore + QFont::setCharSet( QFont::CharSet ), not needed anymore + QPushButton::upButton(), not relevant anymore + QPushButton::downButton(), not relevant anymore + QSpinBox::upButton(), not relevant anymore + QSpinBox::downButton(), not relevant anymore + + +Removed preprocessor directives +------------------------------- + + qcstring.h no longer contains the following defines: + + #define strlen qstrlen + #define strcpy qstrcpy + #define strcmp qstrcmp + #define strncmp qstrncmp + #define stricmp qstricmp + #define strnicmp qstrnicmp + + These directives were meant to automagically replace calls to the + above listed standard C functions with the equivalent Qt wrappers. + The latter pre-check the input parameters for null pointers as those + might cause crashes on some platforms. + + Although convenient, this trick turned out to sometimes conflict with + third-party code, or, simply be nullified by standard system and + library headers depending on version and include order. + + The name of some debugging macro variables has been changed. + + DEBUG becomes QT_DEBUG + NO_DEBUG becomes QT_NO_DEBUG + NO_CHECK becomes QT_NO_CHECK + CHECK_STATE becomes QT_CHECK_STATE + CHECK_RANGE becomes QT_CHECK_RANGE + CHECK_NULL becomes QT_CHECK_NULL + CHECK_MATH becomes QT_CHECK_MATH + + The name of some other debugging macro functions has also been changed + but source compatibility should not be affected if the macro variable + QT_CLEAN_NAMESPACE is not defined: + + ASSERT becomes Q_ASSERT + CHECK_PTR becomes Q_CHECK_PTR + + For the record these undocumented macro variables that are not part of + the API have been changed: + + _OS_*_ becomes Q_OS_* + _WS_*_ becomes Q_WS_* + _CC_*_ becomes Q_CC_* + + +[Qt 3.0] + |