summaryrefslogtreecommitdiffstats
path: root/dist/changes-3.0.0-beta1
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2009-03-23 09:18:55 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-03-23 09:18:55 (GMT)
commite5fcad302d86d316390c6b0f62759a067313e8a9 (patch)
treec2afbf6f1066b6ce261f14341cf6d310e5595bc1 /dist/changes-3.0.0-beta1
downloadQt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz
Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2
Long live Qt 4.5!
Diffstat (limited to 'dist/changes-3.0.0-beta1')
-rw-r--r--dist/changes-3.0.0-beta11239
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]
+