721 lines
27 KiB
Plaintext
721 lines
27 KiB
Plaintext
|
Qt 3.0 adds a wide range of major new features as well as substantial
|
||
|
improvements over the Qt 2.x series. Some internals have undergone
|
||
|
major redesign and new classes and methods have been added.
|
||
|
|
||
|
The Qt version 3.x series is not binary compatible with the 2.x
|
||
|
series. This means programs compiled with Qt version 2.x must be
|
||
|
recompiled to work with Qt 3.0.
|
||
|
|
||
|
In addition to the traditional Qt platforms Linux, Unix and the
|
||
|
various flavours of MS-Windows. Qt 3.0 for the first time introduces a
|
||
|
native port to MacOS X. Like all Qt versions, Qt/Mac is source
|
||
|
compatible with the other editions and follows closely the platform's
|
||
|
native look and feel guidelines.
|
||
|
|
||
|
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 plugin architecture to extend Qt's
|
||
|
functionality, for styles, text encodings, image formats and database
|
||
|
drivers. 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 - called qmake - for your own
|
||
|
applications.
|
||
|
|
||
|
And last but not least we hope you will enjoy the revisited and widely
|
||
|
extended documentation.
|
||
|
|
||
|
|
||
|
Qt/Embedded
|
||
|
----------
|
||
|
|
||
|
Qt/Embedded 3.0 provides the same features as Qt 3.0, but currently
|
||
|
lacks some of the memory optimizations and fine-tuning capabilities of
|
||
|
Qt/Embedded 2.3.x. We will add these in the upcoming maintainance
|
||
|
releases.
|
||
|
|
||
|
If you develop a new product based on Qt/Embedded, we recommend
|
||
|
switching to 3.0 because of the greatly improved functionality.
|
||
|
However, if you are planning a release within the next two months and
|
||
|
require memory optimizations not available with Qt/Embedded 3.0, we
|
||
|
suggest using Qt/Embedded 2.3.x.
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
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 signals/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.
|
||
|
|
||
|
|
||
|
Explicit linking and plugins
|
||
|
-------------------------
|
||
|
|
||
|
The QLibrary class provides a platform independent wrapper for runtime
|
||
|
loading of shared libraries.
|
||
|
|
||
|
Specialized classes that make it possible to extend Qt's functionality
|
||
|
with plugins: QStylePlugin for user interface styles, QTextCodecPlugin
|
||
|
for text encodings, QImageFormatPlugin for image formats and
|
||
|
QSqlDriverPlugin for database drivers.
|
||
|
|
||
|
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 (QWidgetPlugin).
|
||
|
|
||
|
|
||
|
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 most common 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
|
||
|
---------------
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
Networking
|
||
|
-----------
|
||
|
|
||
|
A new class QHttp 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
|
||
|
code. 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
|
||
|
UI-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
|
||
|
========================================
|
||
|
|
||
|
qmake is a cross-platform make utility that makes it possible to build
|
||
|
the Qt library and Qt-based applications on various target platforms
|
||
|
from one single project description. It is the C++ successor of
|
||
|
'tmake' which required Perl.
|
||
|
|
||
|
qmake offers additional functionallity that is difficult to reproduce
|
||
|
in tmake. Qt uses qmake in its build system and we have released it as
|
||
|
free software.
|
||
|
|
||
|
|
||
|
|
||
|
Detailed changes
|
||
|
=============
|
||
|
|
||
|
Qt 3.0 went through 6 beta releases. These are the detailed changes
|
||
|
since Beta 6 only. For other changes, please see the changes notes
|
||
|
of the respective beta releases.
|
||
|
|
||
|
|
||
|
Qt 3.0 final is not binary compatible with Beta6; any programs linked
|
||
|
against Beta6 must be recompiled.
|
||
|
|
||
|
Below you will find a description of general changes in the Qt
|
||
|
Library, Qt Designer and Qt Assistant. Followed by a detailed list of
|
||
|
changes in the API.
|
||
|
|
||
|
****************************************************************************
|
||
|
* General *
|
||
|
****************************************************************************
|
||
|
|
||
|
****************************************************************************
|
||
|
* Library *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QApplication
|
||
|
make sure we process deferred deletes before leaving the event
|
||
|
loop. This fixes some ocassions of memory leaks on exit.
|
||
|
win32: some improvements for modality and dockwindow handling
|
||
|
x11 only: read non-gui QSettings when running without GUI.
|
||
|
|
||
|
|
||
|
- QCheckListItem
|
||
|
Make the checkboxes respect the AlignCenter flag. Also make
|
||
|
the boxes look better in case they are not placed in the first
|
||
|
column.
|
||
|
|
||
|
- QComboBox
|
||
|
if we have a currentItem and then we set the combobox to be
|
||
|
editable then set the text in the lineedit to be of the
|
||
|
current item.
|
||
|
|
||
|
- QCommonStyle
|
||
|
QToolButton: spacing between a toolbutton's icon and its label.
|
||
|
QProgressBar: text color fixed.
|
||
|
|
||
|
- QCursor
|
||
|
added the What's This? cursor to the collection.
|
||
|
|
||
|
- QDataTable
|
||
|
fixed broken context menus.
|
||
|
|
||
|
- QDate
|
||
|
fixed addMonth() overflow.
|
||
|
|
||
|
- QDesktopWidget
|
||
|
win32 only: works now also for cases where the card handles
|
||
|
multiple monitors and GetSystemMetrics returns a single screen
|
||
|
only.
|
||
|
|
||
|
- QDomAttr
|
||
|
fixed a memory leak in setNodeValue()
|
||
|
|
||
|
- QDomNodeMap
|
||
|
added count() as a Qt-style alias for length()
|
||
|
|
||
|
- QDragObject
|
||
|
default to the middle of the pixmap as a hot spot, this looks
|
||
|
nicer.
|
||
|
|
||
|
- QFileDialog (internal dialog)
|
||
|
make viewMode() return the correct value even after the dialog
|
||
|
is finished. Fixed getOpenFileName and getSaveFileName for
|
||
|
non-existant directories. Make sure that when it's in
|
||
|
directory mode that the filters reflect this, and change the
|
||
|
label from file name to directory.
|
||
|
win32 only: Improved modality when using the native file
|
||
|
dialog.
|
||
|
|
||
|
- QFont
|
||
|
x11 only: speed up fontloading with even more clever
|
||
|
caching. Make sure we can match scaled bitmap fonts by
|
||
|
default. Do not load a backup font for a script that is not
|
||
|
default. Make sure the pixel size is correct, even for fonts
|
||
|
that are unavailable. Try even harder to find a fontname that
|
||
|
is not understood. Some RENDER performance optimizations.
|
||
|
|
||
|
- QFontDialog
|
||
|
make sure the content is set up correctly when initializing
|
||
|
the dialog.
|
||
|
|
||
|
- QGLWidget
|
||
|
IRIX only: fixed reparent/resize bug, QGLContext::setContext()
|
||
|
is incredibly sensitive on different X servers.
|
||
|
|
||
|
- QHeader
|
||
|
fixed missing updates on height resp. width changes like the
|
||
|
occur when changing the application font.
|
||
|
|
||
|
- QIconView
|
||
|
fixed updates of non-auto-arranged views.
|
||
|
|
||
|
- QImage
|
||
|
no gamma correction by default.
|
||
|
x11 only: some alignment issue with the alpha masked fixed.
|
||
|
|
||
|
- QIODevice
|
||
|
fixed return value of QIODevice::readLine() for sequential
|
||
|
access.
|
||
|
|
||
|
- QKeyEvent
|
||
|
win32 only: generate Direction_R/L events for bidirectional
|
||
|
input.
|
||
|
|
||
|
- QLabel
|
||
|
handle setPixmap( *pixmap() ) gracefully. Apply the WordBreak
|
||
|
alignment flag to both plaintext and richtext. Improved alignment of
|
||
|
richtext labels. Removed some sizepolicy magic, QLabel now
|
||
|
works fine with Preferred/Preferred in all modes.
|
||
|
|
||
|
- QLineEdit
|
||
|
fixed a crash when doing undo and a validator is set. Emit
|
||
|
textChanged() also if the text changed because of undo or redo.
|
||
|
|
||
|
- QListBox
|
||
|
fixed RMB context-menu offset.
|
||
|
|
||
|
- QListView
|
||
|
do not start renaming an item is CTRL or SHIFT is
|
||
|
pressed. Start renaming on mouse release, not mouse press, so
|
||
|
click + click + move on the same item does not start a rename
|
||
|
operation.
|
||
|
|
||
|
- QMainWindow
|
||
|
show dock-menu also when clicking on the menubar.
|
||
|
|
||
|
- QPainter
|
||
|
win32 only: improved printing performance through printer font
|
||
|
caching.
|
||
|
boundingRect(): ignore 0-width in the constrain rectangle.
|
||
|
|
||
|
- QPicture
|
||
|
added overload for load() that takes a QIODevice.
|
||
|
|
||
|
- QPrintDialog (internal dialog)
|
||
|
fixed enabling of the first page and last page labels.
|
||
|
|
||
|
- QPrinter
|
||
|
win32 only: make setColorMode() work, some unicode fixes. Make
|
||
|
collate the default. Enable the collate checkbox without
|
||
|
losing the page selection if you want to print multiple
|
||
|
pages. Make the collateCopies property work that it knows
|
||
|
checks/unchecks the collate checkbox in the printing
|
||
|
dialog. Make settings also work when the print dialog is not
|
||
|
shown at all.
|
||
|
|
||
|
- QProcess
|
||
|
added a new communication mode that duplicates stderr to
|
||
|
stdout (i.e. the equivalent of the shell's 2>&1).
|
||
|
|
||
|
- QPSPrinter (unix)
|
||
|
fixed collate.
|
||
|
|
||
|
- QRangeControl
|
||
|
simplified code.
|
||
|
|
||
|
- QRichText
|
||
|
Propagate WhiteSpaceMode to subitems with
|
||
|
WhiteSpaceModeNormal. Hide DisplayModeNone
|
||
|
items without additional newline. Fixed links inside non-left
|
||
|
aligned tables. Fixed some bidi layout problems. Fixed last
|
||
|
line layout in right-aligned paragraphs. For plain text,
|
||
|
always use the palette's text color.
|
||
|
|
||
|
- QScrollView
|
||
|
safer destruction.
|
||
|
|
||
|
- QSettings
|
||
|
win32 only: fixed a dead lock situation when writing
|
||
|
to LOCAL_MACHINE, but reading from CURRENT_USER.
|
||
|
|
||
|
- QSGIStyle
|
||
|
fixed drawing of checkable menu items.
|
||
|
|
||
|
- QSimpleRichText
|
||
|
use the specified default font.
|
||
|
|
||
|
- QSlider
|
||
|
optimized drawing in the new style engine.
|
||
|
|
||
|
- QString
|
||
|
QString::replace() with a regular expression requires a
|
||
|
QRegExp object, passing a plain string will cause a compile
|
||
|
error.
|
||
|
|
||
|
- QStyleSheet
|
||
|
additional parameter 'whitespacemode' for
|
||
|
QStyleSheet::convertFromPlainText(). Support for superscript
|
||
|
('sup') and subscript ( 'sub' ).
|
||
|
|
||
|
- QTabBar
|
||
|
react properly on runtime font changes, less flicker.
|
||
|
|
||
|
- QTable
|
||
|
take the pixmap of a header section into account when
|
||
|
adjusting the size.
|
||
|
|
||
|
- QTabWidget
|
||
|
use the embedded tabbar as focus proxy.
|
||
|
|
||
|
- QThread
|
||
|
win32 only: possible crash with the thread dictionary fixed.
|
||
|
|
||
|
- QValidator
|
||
|
In Q{Int,Double}Validator, consider '-' as Invalid rather than
|
||
|
Intermediate if bottom() >= 0.
|
||
|
|
||
|
- QWidget
|
||
|
made showFullScreen() multihead aware.
|
||
|
win32 only: Better size and position restoring when switching
|
||
|
between fullscreen, maximized and minimized.
|
||
|
x11 only: improvements to XIM, overthespot works correctly
|
||
|
now.
|
||
|
|
||
|
- QWorkspace
|
||
|
smarter placement of the minimize button when there is no
|
||
|
maximize button. Make titlebars of tool windows a bit smaller.
|
||
|
Improved styleability. Do not maximize a widget that has a
|
||
|
maximum size that is smaller than the workspace.
|
||
|
|
||
|
|
||
|
|
||
|
****************************************************************************
|
||
|
* Other *
|
||
|
****************************************************************************
|
||
|
|
||
|
- moc
|
||
|
fixed generation of uncompilable code in conjunction with
|
||
|
Q_ENUMS and signal/slots.
|
||
|
|
||
|
- unicode
|
||
|
allow keyboard switching of paragraph directionality.
|
||
|
|
||
|
- installation
|
||
|
install $QTDIR/doc/html/ instead of $QTDIR/doc/
|
||
|
install Qt Designer templates as well.
|
||
|
|
||
|
- improved build on
|
||
|
HP-UX with cc.
|
||
|
Solaris 8 with gcc 3.0.1.
|
||
|
AIX with xlC and aCC.
|
||
|
|
||
|
- inputmethods
|
||
|
x11 only: do not reset the input context on focus changes.
|
||
|
|
||
|
- uic
|
||
|
smaller improvements, handle additional form signals.
|
||
|
|
||
|
- Qt Designer
|
||
|
make it possible to add new signals to a form without
|
||
|
subclassing. Minor fixes.
|
||
|
|
||
|
- Qt Assistant
|
||
|
fixed Shift-LMB selection bug. Fixed new window and window
|
||
|
restoration on restart.
|
||
|
|
||
|
- Qt Linguist
|
||
|
change fourth parameter of QApplication::translate() from bool
|
||
|
to enum type. This affects MOC (new revision) and lupdate (new
|
||
|
syntax to parse). Change Qt Linguist's XML file format (.ts)
|
||
|
to be consistent with QApplication:<defaultcodec> (rather than
|
||
|
<codec>) to match QApp::defaultCodec(); encoding="UTF-8"
|
||
|
(rather than utf8="true") to match QApp::translate(). Fixed
|
||
|
window decoration on restart. Use 'finished', 'unfinished' and
|
||
|
'unresolved' instead of the (!), (?) symbols on printouts.
|
||
|
|
||
|
- QMsDev
|
||
|
merge "Add UIC" and "New Dialog". Better user interface and
|
||
|
general cleanup. Wwrite (and merge) qmake pro file with active
|
||
|
project. Load qmake pro files into Visual Studio.
|
||
|
|
||
|
|