38be0d1383
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
335 lines
12 KiB
Plaintext
335 lines
12 KiB
Plaintext
Qt 3.1 introduces many significant new features and many improvements
|
||
over the 3.0.x series. This file provides an overview of the main
|
||
changes since version 3.0.x. For further details see the online
|
||
documentation which is included in this distribution, and also
|
||
available at http://qt.nokia.com/doc/.
|
||
|
||
The Qt version 3.1 series is binary compatible with the 3.0.x series:
|
||
applications compiled for 3.0 will continue to run with 3.1.
|
||
|
||
|
||
****************************************************************************
|
||
* General *
|
||
****************************************************************************
|
||
|
||
Qt Script for Applications
|
||
--------------------------
|
||
Qt 3.1 is the first Qt release that can be used with Qt Script for
|
||
Applications (QSA). QSA provides a scripting engine, an IDE for
|
||
creating and editing scripts and script forms, and bindings to the Qt
|
||
API. Script-enabling a Qt application is not difficult and the IDE
|
||
makes it easy for resellers and end-users to write their own scripts.
|
||
QSA is due for release after Qt 3.1.
|
||
|
||
|
||
Qt Designer
|
||
-----------
|
||
Qt Designer, the visual GUI builder, has undergone several usability
|
||
improvements. A new dialog for creating and editing signals and slots
|
||
connections has been created: it is much easier to use and much faster
|
||
for setting up multiple connections. The widgets are now presented in
|
||
an easy-to-use toolbox rather than in toolbars (although you can still
|
||
have the toolbars if you want). The property editor now handles common
|
||
properties in multiple widgets simultaneously. By popular demand,
|
||
WYSIWYG support for QWidgetStack has been added. Rich text is now
|
||
supported with a rich text editor. And the code editor can be used for
|
||
ordinary member functions as well as for slots.
|
||
|
||
|
||
Qt Assistant
|
||
------------
|
||
Qt Assistant, the Qt documentation browser, can now be used with
|
||
custom documentation sets. This new functionality combined with the
|
||
new QAssistantClient class means that you can use Qt Assistant as a
|
||
help browser for your own applications. Qt Assistant has also been
|
||
enhanced by the addition of a fast full text search engine.
|
||
|
||
|
||
Motif
|
||
-----
|
||
The general industry-wide move away from Motif is leaving more and
|
||
more companies in need of a migration solution. But converting large
|
||
legacy applications in one step is often impractical. To minimize
|
||
risks and to manage the workload companies often want to port code on
|
||
a module by module basis. Qt 3.1 includeds a completely new Motif
|
||
module that supports hybrid applications in which Qt code and Motif
|
||
code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
|
||
extension.)
|
||
|
||
|
||
ActiveX
|
||
-------
|
||
With the release of Qt 3.1, customers who use Qt for Microsoft Windows
|
||
development can now use Qt with ActiveX. The new ActiveQt module
|
||
provides a simple API for COM and ActiveX. The module can be used to
|
||
create applications which host ActiveX controls, and also to create
|
||
applications that serve ActiveX controls (e.g. Internet Explorer
|
||
plugins).
|
||
|
||
|
||
Qt/Mac
|
||
------
|
||
The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
|
||
proved a great success. This port has undergone many improvements in
|
||
Qt 3.1, especially with respect to Appearance Manager, anti-aliased
|
||
text and user settings. The Qt OpenGL support is greatly improved, and
|
||
uses the hardware-accelerated drivers.
|
||
|
||
|
||
Qt/Embedded
|
||
-----------
|
||
Graphics, mouse and keyboard drivers can now be compiled as plugins.
|
||
|
||
|
||
Qt library
|
||
----------
|
||
In addition to the new additions and enhancements referred to above,
|
||
as with all major Qt releases, Qt 3.1 includes hundreds of
|
||
improvements in the existing class library. Here is a brief summary of
|
||
the most significant changes:
|
||
|
||
- QTextEdit has a new text format: LogText. This is a performance and
|
||
memory optimized format especially designed for the fast display of
|
||
large amounts of text. The format supports basic highlighting,
|
||
including bold and colored text.
|
||
|
||
- The new QSyntaxHighlighter class makes it both easy and efficient to
|
||
add syntax highlighting capabilities to a QTextEdit.
|
||
|
||
- QHttp and QFtp in earlier Qt's were implementations of the
|
||
QNetworkProtocol. Both have been extended to stand in their own
|
||
right. If you missed some flexibility in the network protocol
|
||
abstractions of earlier Qt's, the new QHttp and QFtp classes should
|
||
provide the solution.
|
||
|
||
- QAccel, used to handle keyboard shortcuts, now gracefully copes with
|
||
shortcut clashes. If a clash occurs, a new signal,
|
||
activatedAmbiguously(), is emitted. Classes that use QAccel, like
|
||
QButton's subclasses and QPopupMenu, make use of this new
|
||
functionality. Futhermore QAccel can now handle multi-key sequences,
|
||
for example, Ctrl+X,Ctrl+F.
|
||
|
||
- QClipboard has been extended to simplify data exchange between
|
||
programs.
|
||
|
||
- Thread support: almost all methods in the tools classes have been
|
||
made reentrant. QApplication::postEvent() and a few other methods
|
||
are now thread-safe if Qt is compiled as a multi-threaded library.
|
||
(The documentation now states if a class or function is thread-safe
|
||
or reentrant.)
|
||
|
||
- A QMutexLocker class has been added to simplify the locking and
|
||
unlocking of mutexes.
|
||
|
||
- Input methods: A selectionLength() function has been added to
|
||
QIMEvent. Japanese compositions are now handled correctly. Support
|
||
for AIMM based input methods (those working on non-Asian versions of
|
||
Win95/98/Me) has been added.
|
||
|
||
- Large File support: Qt's internals have been modified to support
|
||
Large Files (> 2GB). QFileDialog will now correctly display and
|
||
select large files.
|
||
|
||
- SQL module: Support for prepared query execution and value binding
|
||
has been added. Among other benefits, this makes it possible to
|
||
write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
|
||
strings to SQL Server databases.
|
||
|
||
- Support for XIM on Solaris.
|
||
|
||
Build process
|
||
-------------
|
||
The build process has been improved:
|
||
|
||
- The configure script does not need QTDIR to be set anymore.
|
||
|
||
- Improved support for building Qt on MSVC.NET.
|
||
|
||
|
||
****************************************************************************
|
||
* Library *
|
||
****************************************************************************
|
||
|
||
- QAccel:
|
||
Corrected illegal accelerator state when using multiple
|
||
keysequences. (Resulted in no accelerator being triggered when
|
||
there's a partial match). Only triggers on enabled
|
||
accelerators and their enabled items. Eats all keys in a
|
||
keysequence, not just the first and last.
|
||
|
||
- QCString:
|
||
Speed-optimized replace().
|
||
|
||
- QDataStream:
|
||
Applies to printable data streams only: If the version number
|
||
of the device is less than 4, use the same streaming format
|
||
that was used in Qt 2.3 and earlier.
|
||
|
||
- QDataTable:
|
||
Respect read-only columns. Make it possible to swap columns.
|
||
|
||
- QDockWindow:
|
||
Added a standard widget constructor (taking a QWidget *parent,
|
||
const char *name and WFlags). Improved docking behavior.
|
||
|
||
- QFileDialog:
|
||
Windows only: make Qt's filedialog work properly with network
|
||
paths.
|
||
|
||
- QFontMetrics:
|
||
Windows only: Fixed QFontMetrics::boundingRect( QChar c ) to
|
||
work for non-TrueType fonts.
|
||
|
||
- QHeader:
|
||
Optimized the sectionSizeHint() calculation, which in turn
|
||
speeds up all QHeader size/label calculations.
|
||
|
||
- QIconFactory:
|
||
Avoid infinite loops when recursively calling
|
||
QPixmap::pixmap().
|
||
|
||
- QIconView:
|
||
Fixed navigation and selection with arrow keys. Some speedups
|
||
when repainting.
|
||
|
||
- QKeySequence:
|
||
Treat Unicode characters in string defined sequences
|
||
correctly. So, now letters like <20>, <20> and <20> should work as
|
||
accelerators, even through translation files.
|
||
|
||
- QLayout:
|
||
alignmentRect() respects the layout's maximum size.
|
||
|
||
- QLineEdit:
|
||
Added a lostFocus() signal. Double-clicking only uses spaces
|
||
as word bounderies for the selection now, not dots, commas,
|
||
etc. Support double-click+mousemove selection.
|
||
|
||
- QListBox:
|
||
Fixed the item which is passed into the contextMenuRequested()
|
||
signal (this was sometimes wrong). Don't select items that are
|
||
not selectable.
|
||
|
||
- QListView:
|
||
Shift selection in Extended mode now follows Windows
|
||
Shift-selection standard. Erase empty area when drawing
|
||
listviews without columns. Only drops on drop-enabled items
|
||
that accept drops.
|
||
|
||
- QListViewItem:
|
||
Optimized size claculation for multi-line items.
|
||
|
||
- QMainWindow:
|
||
Base the minimumSizeHint() on the sizeHint()s of the left hand
|
||
dock area (instead of the minimumSize()).
|
||
|
||
- QMenuBar:
|
||
Fixed broken Alt release detection. Fixed flickering. Fixed
|
||
empty menubars resizing properly.
|
||
|
||
- QObject:
|
||
Fixed return value of disconnect(). Fixed disconnect()ing
|
||
SIGNALs from SIGNALs and disconnect()ing multiple SLOTs with
|
||
the same name from a SIGNAL.
|
||
|
||
- QProcess:
|
||
Unix only: Don't eat the file descriptors if a lot of
|
||
processes (with short runtimes) are started immediately after
|
||
each other.
|
||
|
||
- QPSQLDriver:
|
||
Make the driver compile with the standard PostgreSQL source
|
||
distribution under Windows. Better handling of network,
|
||
datetime and geometrical datatypes.
|
||
|
||
- QRegion:
|
||
Fixed setRects() to calculate the bounding rectangle
|
||
correctly.
|
||
|
||
- QScrollView:
|
||
Doesn't reposition the view when the user is scrolling the
|
||
view.
|
||
|
||
- QSpinBox:
|
||
Fixed setValue() so that any not-yet-interpreted input is
|
||
ignored when setting a new value.
|
||
|
||
- QString:
|
||
Support QTextCodec::codecForCStrings(). Support
|
||
std::string<==>QString conversion when STL support is on.
|
||
|
||
- QSyntaxHighlighter:
|
||
Added function rehighlight(). Improved internals to be more
|
||
efficient (less calls to highlightParagraph() necessary).
|
||
|
||
- QTable:
|
||
Fixed Tab/BackTab handling to always work. Fixed
|
||
setColumnLabels() and setRowLabels().
|
||
|
||
- QTableItem (and subclasses):
|
||
Now supports global struts. (See QApplication::globalStrut().)
|
||
|
||
- QTDSDriver:
|
||
Added support for binary datatypes.
|
||
|
||
- QTextCodec:
|
||
Added QTextCodec::codecForCStrings and QTextCodec::codecForTr.
|
||
|
||
- QTextEdit:
|
||
Fixed a painting error which resulted in areas of the textedit
|
||
not being erased correctly. Make sure repainting is done after
|
||
changing the underline-links setting. Renamed 'allowTabs'
|
||
property to 'tabChangesFocus' (inverted value). Added a new
|
||
property 'autoFormatting'. When exporting HTML also quote
|
||
quotes. Fixed a background erasing bug which messed up the
|
||
view.
|
||
|
||
- QUrl:
|
||
Recognize Windows drive letters not only in the form of "c:/"
|
||
but also in the form "c:" (without the '/').
|
||
|
||
- QWidget:
|
||
Fixed some visibility issues.
|
||
|
||
****************************************************************************
|
||
* Qt Designer *
|
||
****************************************************************************
|
||
|
||
- Now displays the classname of "gray box" custom widgets in the gray
|
||
box on the form.
|
||
|
||
- Accept tildes (~) in the project settings.
|
||
|
||
- A new command line tool conv2ui (in qt/tools/designer/tools) has
|
||
been added, to convert dialog description files from different file
|
||
formats to .ui files without the need to invoke Qt Designer. This
|
||
tool uses the same plugins as Qt Designer for loading other dialog
|
||
description files.
|
||
|
||
- An import filter for .kdevdlg files has been added.
|
||
|
||
- Actions in the action editor are now sortable.
|
||
|
||
- Improved usability of more dialogs (in-place renaming, drag'n'drop,
|
||
etc.)
|
||
|
||
- Preserve creation order of forward declarations, variables, etc.
|
||
|
||
- Save comments for actions.
|
||
|
||
- uic: Fixed generating code for QStringList properties.
|
||
|
||
****************************************************************************
|
||
* Qt Assistant *
|
||
****************************************************************************
|
||
|
||
- Fixed some accelerator conflicts.
|
||
|
||
****************************************************************************
|
||
* Qt Linguist *
|
||
****************************************************************************
|
||
|
||
- Handle trailing backslash in strings correctly in lupdate.
|
||
|
||
******************************** END ***************************************
|