0
|
1 |
Qt 3.0 adds a wide range of major new features as well as substantial
|
|
2 |
improvements over the Qt 2.x series. Some internals have undergone
|
|
3 |
major redesign and new classes and methods have been added.
|
|
4 |
|
|
5 |
The Qt version 3.x series is not binary compatible with the 2.x
|
|
6 |
series. This means programs compiled with Qt version 2.x must be
|
|
7 |
recompiled to work with Qt 3.0.
|
|
8 |
|
|
9 |
In addition to the traditional Qt platforms Linux, Unix and the
|
|
10 |
various flavours of MS-Windows. Qt 3.0 for the first time introduces a
|
|
11 |
native port to MacOS X. Like all Qt versions, Qt/Mac is source
|
|
12 |
compatible with the other editions and follows closely the platform's
|
|
13 |
native look and feel guidelines.
|
|
14 |
|
|
15 |
We have tried to keep the API of Qt 3.0 as compatible as possible with
|
|
16 |
the Qt 2.x series. For most applications, only minor changes will be
|
|
17 |
needed to compile and run them successfully using Qt 3.0.
|
|
18 |
|
|
19 |
One of the major new features that has been added in the 3.0 release
|
|
20 |
is a module allowing you to easily work with databases. The API is
|
|
21 |
platform independent and database neutral. This module is seamlessly
|
|
22 |
integrated into Qt Designer, greatly simplifying the process of
|
|
23 |
building database applications and using data aware widgets.
|
|
24 |
|
|
25 |
Other major new features include a plugin architecture to extend Qt's
|
|
26 |
functionality, for styles, text encodings, image formats and database
|
|
27 |
drivers. The Unicode support of Qt 2.x has been greatly enhanced, it
|
|
28 |
now includes full support for scripts written from right to left
|
|
29 |
(e.g. Arabic and Hebrew) and also provides improved support for Asian
|
|
30 |
languages.
|
|
31 |
|
|
32 |
Many new classes have been added to the Qt Library. Amongst them are
|
|
33 |
classes that provide a docking architecture (QDockArea/QDockWindow), a
|
|
34 |
powerful rich text editor (QTextEdit), a class to store and access
|
|
35 |
application settings (QSettings) and a class to create and communicate
|
|
36 |
with processes (QProcess).
|
|
37 |
|
|
38 |
Apart from the changes in the library itself a lot has been done to
|
|
39 |
make the development of Qt applications with Qt 3.0 even easier than
|
|
40 |
before. Two new applications have been added: Qt Linguist is a tool to
|
|
41 |
help you translate your application into different languages; Qt
|
|
42 |
Assistant is an easy to use help browser for the Qt documentation that
|
|
43 |
supports bookmarks and can search by keyword.
|
|
44 |
|
|
45 |
Another change concerns the Qt build system, which has been reworked
|
|
46 |
to make it a lot easier to port Qt to new platforms. You can use this
|
|
47 |
platform independent build system - called qmake - for your own
|
|
48 |
applications.
|
|
49 |
|
|
50 |
And last but not least we hope you will enjoy the revisited and widely
|
|
51 |
extended documentation.
|
|
52 |
|
|
53 |
|
|
54 |
Qt/Embedded
|
|
55 |
----------
|
|
56 |
|
|
57 |
Qt/Embedded 3.0 provides the same features as Qt 3.0, but currently
|
|
58 |
lacks some of the memory optimizations and fine-tuning capabilities of
|
|
59 |
Qt/Embedded 2.3.x. We will add these in the upcoming maintainance
|
|
60 |
releases.
|
|
61 |
|
|
62 |
If you develop a new product based on Qt/Embedded, we recommend
|
|
63 |
switching to 3.0 because of the greatly improved functionality.
|
|
64 |
However, if you are planning a release within the next two months and
|
|
65 |
require memory optimizations not available with Qt/Embedded 3.0, we
|
|
66 |
suggest using Qt/Embedded 2.3.x.
|
|
67 |
|
|
68 |
|
|
69 |
The Qt Library
|
|
70 |
========================================
|
|
71 |
|
|
72 |
A large number of new features has been added to Qt 3.0. The following
|
|
73 |
list gives an overview of the most important new and changed aspects
|
|
74 |
of the Qt library.
|
|
75 |
|
|
76 |
|
|
77 |
Database support
|
|
78 |
----------------
|
|
79 |
|
|
80 |
One of the major new features in Qt 3.0 is the SQL module that
|
|
81 |
provides cross-platform access to SQL databases, making database
|
|
82 |
application programming with Qt seamless and portable. The API, built
|
|
83 |
with standard SQL, is database-neutral and software development is
|
|
84 |
independent of the underlying database.
|
|
85 |
|
|
86 |
A collection of tightly focused C++ classes are provided to give the
|
|
87 |
programmer direct access to SQL databases. Developers can send raw SQL
|
|
88 |
to the database server or have the Qt SQL classes generate SQL queries
|
|
89 |
automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are
|
|
90 |
available and writing new drivers is straightforward.
|
|
91 |
|
|
92 |
Tying the results of SQL queries to GUI components is fully supported
|
|
93 |
by Qt's SQL widgets. These classes include a tabular data widget
|
|
94 |
(for spreadsheet-like data presentation with in-place editing), a
|
|
95 |
form-based data browser (which provides data navigation and edit
|
|
96 |
functions) and a form-based data viewer (which provides read-only
|
|
97 |
forms). This framework can be extended by using custom field editors,
|
|
98 |
allowing for example, a data table to use custom widgets for in-place
|
|
99 |
editing. The SQL module fully supports Qt's signals/slots mechanism,
|
|
100 |
making it easy for developers to include their own data validation and
|
|
101 |
auditing code.
|
|
102 |
|
|
103 |
Qt Designer fully supports Qt's SQL module. All SQL widgets can be
|
|
104 |
laid out within Qt Designer, and relationships can be established
|
|
105 |
between controls visually. Many interactions can be defined purely in
|
|
106 |
terms of Qt's signals/slots mechanism directly in Qt Designer.
|
|
107 |
|
|
108 |
|
|
109 |
Explicit linking and plugins
|
|
110 |
-------------------------
|
|
111 |
|
|
112 |
The QLibrary class provides a platform independent wrapper for runtime
|
|
113 |
loading of shared libraries.
|
|
114 |
|
|
115 |
Specialized classes that make it possible to extend Qt's functionality
|
|
116 |
with plugins: QStylePlugin for user interface styles, QTextCodecPlugin
|
|
117 |
for text encodings, QImageFormatPlugin for image formats and
|
|
118 |
QSqlDriverPlugin for database drivers.
|
|
119 |
|
|
120 |
It is possible to remove unused components from the Qt library, and
|
|
121 |
easy to extend any application with 3rd party styles, database drivers
|
|
122 |
or text codecs.
|
|
123 |
|
|
124 |
Qt Designer supports custom widgets in plugins, and will use the
|
|
125 |
widgets both when designing and previewing forms (QWidgetPlugin).
|
|
126 |
|
|
127 |
|
|
128 |
Rich text engine and editor
|
|
129 |
---------------------------
|
|
130 |
|
|
131 |
The rich text engine originally introduced in Qt 2.0 has been further
|
|
132 |
optimized and extended to support editing. It allows editing formatted
|
|
133 |
text with different fonts, colors, paragraph styles, tables and
|
|
134 |
images. The editor supports different word wrap modes, command-based
|
|
135 |
undo/redo, multiple selections, drag and drop, and many other
|
|
136 |
features. The engine is highly optimized for proccesing and displaying
|
|
137 |
large documents quickly and efficiently.
|
|
138 |
|
|
139 |
|
|
140 |
Unicode
|
|
141 |
-------
|
|
142 |
|
|
143 |
Apart from the rich text engine, another new feature of Qt 3.0 that
|
|
144 |
relates to text handling is the greatly improved Unicode support. Qt
|
|
145 |
3.0 includes an implementation of the bidirectional algorithm (BiDi)
|
|
146 |
as defined in the Unicode standard and a shaping engine for Arabic,
|
|
147 |
which gives full native language support to Arabic and Hebrew speaking
|
|
148 |
people. At the same time the support for Asian languages has been
|
|
149 |
greatly enhanced.
|
|
150 |
|
|
151 |
The support is almost transparent for the developer using Qt to
|
|
152 |
develop their applications. This means that developers who developed
|
|
153 |
applications using Qt 2.x will automatically gain the full support for
|
|
154 |
these languages when switching to Qt 3.0. Developers can rely on their
|
|
155 |
application to work for people using writing systems different from
|
|
156 |
Latin1, without having to worry about the complexities involved with
|
|
157 |
these scripts, as Qt takes care of this automatically.
|
|
158 |
|
|
159 |
|
|
160 |
Docked and Floating Windows
|
|
161 |
---------------------------
|
|
162 |
|
|
163 |
Qt 3.0 introduces the concept of dock windows and dock areas. Dock
|
|
164 |
windows are widgets, that can be attached to, and detached from, dock
|
|
165 |
areas. The most common kind of dock window is a tool bar. Any number of
|
|
166 |
dock windows may be placed in a dock area. A main window can have dock
|
|
167 |
areas, for example, QMainWindow provides four dock areas (top, left,
|
|
168 |
bottom, right) by default. The user can freely move dock windows and
|
|
169 |
place them at a convenient place in a dock area, or drag them out of
|
|
170 |
the application and have them float freely as top level windows in
|
|
171 |
their own right. Dock windows can also be minimized or hidden.
|
|
172 |
|
|
173 |
For developers, dock windows behave just like ordinary widgets. QToolbar
|
|
174 |
for example is now a specialized subclass of a dock window. The API
|
|
175 |
of QMainWindow and QToolBar is source compatible with Qt 2.x, so
|
|
176 |
existing code which uses these classes will continue to work.
|
|
177 |
|
|
178 |
|
|
179 |
Regular Expressions
|
|
180 |
-------------------
|
|
181 |
|
|
182 |
Qt has always provided regular expression support, but that support
|
|
183 |
was pretty much limited to what was required in common GUI control
|
|
184 |
elements such as file dialogs. Qt 3.0 introduces a new regular
|
|
185 |
expression engine that supports most of Perl's regex features and is
|
|
186 |
Unicode based. The most useful additions are support for parentheses
|
|
187 |
(capturing and non-capturing) and backreferences.
|
|
188 |
|
|
189 |
|
|
190 |
Storing application settings
|
|
191 |
----------------------------
|
|
192 |
|
|
193 |
Most programs will need to store some settings between runs, for
|
|
194 |
example, user selected fonts, colors and other preferences, or a list
|
|
195 |
of recently used files. The new QSettings class provides a platform
|
|
196 |
independent way to achieve this goal. The API makes it easy to store
|
|
197 |
and retrieve most of the basic data types used in Qt (such as basic
|
|
198 |
C++ types, strings, lists, colors, etc). The class uses the registry
|
|
199 |
on the Windows platform and traditional resource files on Unix.
|
|
200 |
|
|
201 |
|
|
202 |
Creating and controlling other processes
|
|
203 |
----------------------------------------
|
|
204 |
|
|
205 |
QProcess is a class that allows you to start other programs from
|
|
206 |
within a Qt application in a platform independent manner. It gives you
|
|
207 |
full control over the started program. For example you can redirect
|
|
208 |
the input and output of console applications.
|
|
209 |
|
|
210 |
|
|
211 |
Accessibility
|
|
212 |
---------------
|
|
213 |
|
|
214 |
Accessibility means making software usable and accessible to a wide
|
|
215 |
range of users, including those with disabilities. In Qt 3.0, most
|
|
216 |
widgets provide accessibility information for assistive tools that can
|
|
217 |
be used by a wide range of disabled users. Qt standard widgets like
|
|
218 |
buttons or range controls are fully supported. Support for complex
|
|
219 |
widgets, like e.g. QListView, is in development. Existing applications
|
|
220 |
that make use of standard widgets will become accessible just by using
|
|
221 |
Qt 3.0.
|
|
222 |
|
|
223 |
Qt uses the Active Accessibility infrastructure on Windows, and needs
|
|
224 |
the MSAA SDK, which is part of most platform SDKs. With improving
|
|
225 |
standardization of accessibility on other platforms, Qt will support
|
|
226 |
assistive technologies on other systems too.
|
|
227 |
|
|
228 |
|
|
229 |
XML Improvements
|
|
230 |
----------------
|
|
231 |
|
|
232 |
The XML framework introduced in Qt 2.2 has been vastly improved. Qt
|
|
233 |
2.2 already supported level 1 of the Document Object Model (DOM), a
|
|
234 |
W3C standard for accessing and modifying XML documents. Qt 3.0 has
|
|
235 |
added support for DOM Level 2 and XML namespaces.
|
|
236 |
|
|
237 |
The XML parser has been extended to allow incremental parsing of XML
|
|
238 |
documents. This allows you to start parsing the document directly
|
|
239 |
after the first parts of the data have arrived, and to continue
|
|
240 |
whenever new data is available. This is especially useful if the XML
|
|
241 |
document is read from a slow source, e.g. over the network, as it
|
|
242 |
allows the application to start working on the data at a very early
|
|
243 |
stage.
|
|
244 |
|
|
245 |
|
|
246 |
SVG support
|
|
247 |
-----------
|
|
248 |
|
|
249 |
SVG is a W3C standard for "Scalable Vector Graphics". Qt 3.0's SVG
|
|
250 |
support means that QPicture can optionally generate and import static
|
|
251 |
SVG documents. All the SVG features that have an equivalent in
|
|
252 |
QPainter are supported.
|
|
253 |
|
|
254 |
|
|
255 |
Multihead support
|
|
256 |
-----------------
|
|
257 |
|
|
258 |
Many professional applications, such as DTP and CAD software, are able
|
|
259 |
to display data on two or more monitors. In Qt 3.0 the QDesktopWidget
|
|
260 |
class provides the application with runtime information about the
|
|
261 |
number and geometry of the desktops on the different monitors and such
|
|
262 |
allows applications to efficiently use a multi-monitor setup.
|
|
263 |
|
|
264 |
The virtual desktop of Windows 98 and 2000 is supported, as well as
|
|
265 |
the traditional multi-screen and the newer Xinerama multihead setups
|
|
266 |
on X11.
|
|
267 |
|
|
268 |
|
|
269 |
X11 specific enhancements
|
|
270 |
-------------------------
|
|
271 |
|
|
272 |
Qt 3.0 now complies with the NET WM Specification, recently adopted
|
|
273 |
by KDE 2.0. This allows easy integration and proper execution with
|
|
274 |
desktop environments that support the NET WM specification.
|
|
275 |
|
|
276 |
The font handling on X11 has undergone major changes. QFont no longer
|
|
277 |
has a one-to-one relation with window system fonts. QFont is now a
|
|
278 |
logical font that can load multiple window system fonts to simplify
|
|
279 |
Unicode text display. This completely removes the burden of
|
|
280 |
changing/setting fonts for a specific locale/language from the
|
|
281 |
programmer. For end-users, any font can be used in any locale. For
|
|
282 |
example, a user in Norway will be able to see Korean text without
|
|
283 |
having to set their locale to Korean.
|
|
284 |
|
|
285 |
Qt 3.0 also supports the new render extension recently added to
|
|
286 |
XFree86. This adds support for anti-aliased text and pixmaps with
|
|
287 |
alpha channel (semi transparency) on the systems that support the
|
|
288 |
rendering extension (at the moment XFree 4.0.3 and later).
|
|
289 |
|
|
290 |
|
|
291 |
Printing
|
|
292 |
--------
|
|
293 |
|
|
294 |
Printing support has been enhanced on all platforms. The QPrinter
|
|
295 |
class now supports setting a virtual resolution for the painting
|
|
296 |
process. This makes WYSIWYG printing trivial, and also allows you to
|
|
297 |
take full advantage of the high resolution of a printer when painting
|
|
298 |
on it.
|
|
299 |
|
|
300 |
The postscript driver built into Qt and used on Unix has been greatly
|
|
301 |
enhanced. It supports the embedding of true/open type and type1 fonts
|
|
302 |
into the document, and can correctly handle and display Unicode.
|
|
303 |
Support for fonts built into the printer has been enhanced and Qt now
|
|
304 |
knows about the most common printer fonts used for Asian languages.
|
|
305 |
|
|
306 |
|
|
307 |
Networking
|
|
308 |
-----------
|
|
309 |
|
|
310 |
A new class QHttp provides a simple interface for HTTP downloads and
|
|
311 |
uploads.
|
|
312 |
|
|
313 |
|
|
314 |
Compatibility with the Standard Template Library (STL)
|
|
315 |
------------------------------------------------------
|
|
316 |
|
|
317 |
Support for the C++ Standard Template Library has been added to the Qt
|
|
318 |
Template Library (QTL). The QTL classes now contain appropriate copy
|
|
319 |
constructors and typedefs so that they can be freely mixed with other
|
|
320 |
STL containers and algorithms. In addition, new member functions have
|
|
321 |
been added to QTL template classes which correspond to STL-style
|
|
322 |
naming conventions (e.g., push_back()).
|
|
323 |
|
|
324 |
|
|
325 |
Qt Designer
|
|
326 |
========================================
|
|
327 |
|
|
328 |
Qt Designer was a pure dialog editor in Qt 2.2 but has now been
|
|
329 |
extended to provide the full functionality of a GUI design tool.
|
|
330 |
|
|
331 |
This includes the ability to lay out main windows with menus and
|
|
332 |
toolbars. Actions can be edited within Qt Designer and then plugged
|
|
333 |
into toolbars and menu bars via drag and drop. Splitters can now be
|
|
334 |
used in a way similar to layouts to group widgets horizontally or
|
|
335 |
vertically.
|
|
336 |
|
|
337 |
In Qt 2.2, many of the dialogs created by Qt Designer had to be
|
|
338 |
subclassed to implement functionality beyond the predefined signal and
|
|
339 |
slot connections. Whilst the subclassing approach is still fully
|
|
340 |
supported, Qt Designer now offers an alternative: a plugin for editing
|
|
341 |
code. The editor offers features such as syntax highlighting,
|
|
342 |
completion, parentheses matching and incremental search.
|
|
343 |
|
|
344 |
The functionality of Qt Designer can now be extended via plugins.
|
|
345 |
Using Qt Designer's interface or by implementing one of the provided
|
|
346 |
interfaces in a plugin, a two way communication between plugin and Qt
|
|
347 |
Designer can be established. This functionality is used to implement
|
|
348 |
plugins for custom widgets, so that they can be used as real widgets
|
|
349 |
inside the designer.
|
|
350 |
|
|
351 |
Basic support for project management has been added. This allows you
|
|
352 |
to read and edit *.pro files, add and remove files to/from the project
|
|
353 |
and do some global operations on the project. You can now open the
|
|
354 |
project file and have one-click access to all the *.ui forms in the
|
|
355 |
project.
|
|
356 |
|
|
357 |
In addition to generating code via uic, Qt Designer now supports the
|
|
358 |
dynamic creation of widgets directly from XML user interface
|
|
359 |
description files (*.ui files) at runtime. This eliminates the need of
|
|
360 |
recompiling your application when the GUI changes, and could be used
|
|
361 |
to enable your customers to do their own customizations. Technically,
|
|
362 |
the feature is provided by a new class, QWidgetFactory in the
|
|
363 |
UI-library.
|
|
364 |
|
|
365 |
|
|
366 |
Qt Linguist
|
|
367 |
========================================
|
|
368 |
|
|
369 |
Qt Linguist is a GUI utility to support translating the user-visible
|
|
370 |
text in applications written with Qt. It comes with two command-line
|
|
371 |
tools: lupdate and lrelease.
|
|
372 |
|
|
373 |
Translation of a Qt application is a three-step process:
|
|
374 |
|
|
375 |
1) Run lupdate to extract user-visible text from the C++ source
|
|
376 |
code of the Qt application, resulting in a translation source file
|
|
377 |
(a *.ts file).
|
|
378 |
2) Provide translations for the source texts in the *.ts file using
|
|
379 |
Qt Linguist.
|
|
380 |
3) Run lrelease to obtain a light-weight message file (a *.qm file)
|
|
381 |
from the *.ts file, which provides very fast lookup for released
|
|
382 |
applications.
|
|
383 |
|
|
384 |
Qt Linguist is a tool suitable for use by translators. Each
|
|
385 |
user-visible (source) text is characterized by the text itself, a
|
|
386 |
context (usually the name of the C++ class containing the text), and
|
|
387 |
an optional comment to help the translator. The C++ class name will
|
|
388 |
usually be the name of the relevant dialog, and the comment will often
|
|
389 |
contain instructions that describe how to navigate to the relevant
|
|
390 |
dialog.
|
|
391 |
|
|
392 |
You can create phrase books for Qt Linguist to provide common
|
|
393 |
translations to help ensure consistency and to speed up the
|
|
394 |
translation process. Whenever a translator navigates to a new text to
|
|
395 |
translate, Qt Linguist uses an intelligent algorithm to provide a list
|
|
396 |
of possible translations: the list is composed of relevant text from
|
|
397 |
any open phrase books and also from identical or similar text that has
|
|
398 |
already been translated.
|
|
399 |
|
|
400 |
Once a translation is complete it can be marked as "done"; such
|
|
401 |
translations are included in the *.qm file. Text that has not been
|
|
402 |
"done" is included in the *.qm file in its original form. Although Qt
|
|
403 |
Linguist is a GUI application with dock windows and mouse control,
|
|
404 |
toolbars, etc., it has a full set of keyboard shortcuts to make
|
|
405 |
translation as fast and efficient as possible.
|
|
406 |
|
|
407 |
When the Qt application that you're developing evolves (e.g. from
|
|
408 |
version 1.0 to version 1.1), the utility lupdate merges the source
|
|
409 |
texts from the new version with the previous translation source file,
|
|
410 |
reusing existing translations. In some typical cases, lupdate may
|
|
411 |
suggest translations. These translations are marked as unfinished, so
|
|
412 |
you can easily find and check them.
|
|
413 |
|
|
414 |
|
|
415 |
Qt Assistant
|
|
416 |
========================================
|
|
417 |
|
|
418 |
Due to the positive feedback we received about the help system built
|
|
419 |
into Qt Designer, we decided to offer this part as a separate
|
|
420 |
application called Qt Assistant. Qt Assistant can be used to browse
|
|
421 |
the Qt class documentation as well as the manuals for Qt Designer and
|
|
422 |
Qt Linguist. It offers index searching, a contents overview, bookmarks
|
|
423 |
history and incremental search. Qt Assistant is used by both Qt
|
|
424 |
Designer and Qt Linguist for browsing their help documentation.
|
|
425 |
|
|
426 |
|
|
427 |
qmake
|
|
428 |
========================================
|
|
429 |
|
|
430 |
qmake is a cross-platform make utility that makes it possible to build
|
|
431 |
the Qt library and Qt-based applications on various target platforms
|
|
432 |
from one single project description. It is the C++ successor of
|
|
433 |
'tmake' which required Perl.
|
|
434 |
|
|
435 |
qmake offers additional functionallity that is difficult to reproduce
|
|
436 |
in tmake. Qt uses qmake in its build system and we have released it as
|
|
437 |
free software.
|
|
438 |
|
|
439 |
|
|
440 |
|
|
441 |
Detailed changes
|
|
442 |
=============
|
|
443 |
|
|
444 |
Qt 3.0 went through 6 beta releases. These are the detailed changes
|
|
445 |
since Beta 6 only. For other changes, please see the changes notes
|
|
446 |
of the respective beta releases.
|
|
447 |
|
|
448 |
|
|
449 |
Qt 3.0 final is not binary compatible with Beta6; any programs linked
|
|
450 |
against Beta6 must be recompiled.
|
|
451 |
|
|
452 |
Below you will find a description of general changes in the Qt
|
|
453 |
Library, Qt Designer and Qt Assistant. Followed by a detailed list of
|
|
454 |
changes in the API.
|
|
455 |
|
|
456 |
****************************************************************************
|
|
457 |
* General *
|
|
458 |
****************************************************************************
|
|
459 |
|
|
460 |
****************************************************************************
|
|
461 |
* Library *
|
|
462 |
****************************************************************************
|
|
463 |
|
|
464 |
- QApplication
|
|
465 |
make sure we process deferred deletes before leaving the event
|
|
466 |
loop. This fixes some ocassions of memory leaks on exit.
|
|
467 |
win32: some improvements for modality and dockwindow handling
|
|
468 |
x11 only: read non-gui QSettings when running without GUI.
|
|
469 |
|
|
470 |
|
|
471 |
- QCheckListItem
|
|
472 |
Make the checkboxes respect the AlignCenter flag. Also make
|
|
473 |
the boxes look better in case they are not placed in the first
|
|
474 |
column.
|
|
475 |
|
|
476 |
- QComboBox
|
|
477 |
if we have a currentItem and then we set the combobox to be
|
|
478 |
editable then set the text in the lineedit to be of the
|
|
479 |
current item.
|
|
480 |
|
|
481 |
- QCommonStyle
|
|
482 |
QToolButton: spacing between a toolbutton's icon and its label.
|
|
483 |
QProgressBar: text color fixed.
|
|
484 |
|
|
485 |
- QCursor
|
|
486 |
added the What's This? cursor to the collection.
|
|
487 |
|
|
488 |
- QDataTable
|
|
489 |
fixed broken context menus.
|
|
490 |
|
|
491 |
- QDate
|
|
492 |
fixed addMonth() overflow.
|
|
493 |
|
|
494 |
- QDesktopWidget
|
|
495 |
win32 only: works now also for cases where the card handles
|
|
496 |
multiple monitors and GetSystemMetrics returns a single screen
|
|
497 |
only.
|
|
498 |
|
|
499 |
- QDomAttr
|
|
500 |
fixed a memory leak in setNodeValue()
|
|
501 |
|
|
502 |
- QDomNodeMap
|
|
503 |
added count() as a Qt-style alias for length()
|
|
504 |
|
|
505 |
- QDragObject
|
|
506 |
default to the middle of the pixmap as a hot spot, this looks
|
|
507 |
nicer.
|
|
508 |
|
|
509 |
- QFileDialog (internal dialog)
|
|
510 |
make viewMode() return the correct value even after the dialog
|
|
511 |
is finished. Fixed getOpenFileName and getSaveFileName for
|
|
512 |
non-existant directories. Make sure that when it's in
|
|
513 |
directory mode that the filters reflect this, and change the
|
|
514 |
label from file name to directory.
|
|
515 |
win32 only: Improved modality when using the native file
|
|
516 |
dialog.
|
|
517 |
|
|
518 |
- QFont
|
|
519 |
x11 only: speed up fontloading with even more clever
|
|
520 |
caching. Make sure we can match scaled bitmap fonts by
|
|
521 |
default. Do not load a backup font for a script that is not
|
|
522 |
default. Make sure the pixel size is correct, even for fonts
|
|
523 |
that are unavailable. Try even harder to find a fontname that
|
|
524 |
is not understood. Some RENDER performance optimizations.
|
|
525 |
|
|
526 |
- QFontDialog
|
|
527 |
make sure the content is set up correctly when initializing
|
|
528 |
the dialog.
|
|
529 |
|
|
530 |
- QGLWidget
|
|
531 |
IRIX only: fixed reparent/resize bug, QGLContext::setContext()
|
|
532 |
is incredibly sensitive on different X servers.
|
|
533 |
|
|
534 |
- QHeader
|
|
535 |
fixed missing updates on height resp. width changes like the
|
|
536 |
occur when changing the application font.
|
|
537 |
|
|
538 |
- QIconView
|
|
539 |
fixed updates of non-auto-arranged views.
|
|
540 |
|
|
541 |
- QImage
|
|
542 |
no gamma correction by default.
|
|
543 |
x11 only: some alignment issue with the alpha masked fixed.
|
|
544 |
|
|
545 |
- QIODevice
|
|
546 |
fixed return value of QIODevice::readLine() for sequential
|
|
547 |
access.
|
|
548 |
|
|
549 |
- QKeyEvent
|
|
550 |
win32 only: generate Direction_R/L events for bidirectional
|
|
551 |
input.
|
|
552 |
|
|
553 |
- QLabel
|
|
554 |
handle setPixmap( *pixmap() ) gracefully. Apply the WordBreak
|
|
555 |
alignment flag to both plaintext and richtext. Improved alignment of
|
|
556 |
richtext labels. Removed some sizepolicy magic, QLabel now
|
|
557 |
works fine with Preferred/Preferred in all modes.
|
|
558 |
|
|
559 |
- QLineEdit
|
|
560 |
fixed a crash when doing undo and a validator is set. Emit
|
|
561 |
textChanged() also if the text changed because of undo or redo.
|
|
562 |
|
|
563 |
- QListBox
|
|
564 |
fixed RMB context-menu offset.
|
|
565 |
|
|
566 |
- QListView
|
|
567 |
do not start renaming an item is CTRL or SHIFT is
|
|
568 |
pressed. Start renaming on mouse release, not mouse press, so
|
|
569 |
click + click + move on the same item does not start a rename
|
|
570 |
operation.
|
|
571 |
|
|
572 |
- QMainWindow
|
|
573 |
show dock-menu also when clicking on the menubar.
|
|
574 |
|
|
575 |
- QPainter
|
|
576 |
win32 only: improved printing performance through printer font
|
|
577 |
caching.
|
|
578 |
boundingRect(): ignore 0-width in the constrain rectangle.
|
|
579 |
|
|
580 |
- QPicture
|
|
581 |
added overload for load() that takes a QIODevice.
|
|
582 |
|
|
583 |
- QPrintDialog (internal dialog)
|
|
584 |
fixed enabling of the first page and last page labels.
|
|
585 |
|
|
586 |
- QPrinter
|
|
587 |
win32 only: make setColorMode() work, some unicode fixes. Make
|
|
588 |
collate the default. Enable the collate checkbox without
|
|
589 |
losing the page selection if you want to print multiple
|
|
590 |
pages. Make the collateCopies property work that it knows
|
|
591 |
checks/unchecks the collate checkbox in the printing
|
|
592 |
dialog. Make settings also work when the print dialog is not
|
|
593 |
shown at all.
|
|
594 |
|
|
595 |
- QProcess
|
|
596 |
added a new communication mode that duplicates stderr to
|
|
597 |
stdout (i.e. the equivalent of the shell's 2>&1).
|
|
598 |
|
|
599 |
- QPSPrinter (unix)
|
|
600 |
fixed collate.
|
|
601 |
|
|
602 |
- QRangeControl
|
|
603 |
simplified code.
|
|
604 |
|
|
605 |
- QRichText
|
|
606 |
Propagate WhiteSpaceMode to subitems with
|
|
607 |
WhiteSpaceModeNormal. Hide DisplayModeNone
|
|
608 |
items without additional newline. Fixed links inside non-left
|
|
609 |
aligned tables. Fixed some bidi layout problems. Fixed last
|
|
610 |
line layout in right-aligned paragraphs. For plain text,
|
|
611 |
always use the palette's text color.
|
|
612 |
|
|
613 |
- QScrollView
|
|
614 |
safer destruction.
|
|
615 |
|
|
616 |
- QSettings
|
|
617 |
win32 only: fixed a dead lock situation when writing
|
|
618 |
to LOCAL_MACHINE, but reading from CURRENT_USER.
|
|
619 |
|
|
620 |
- QSGIStyle
|
|
621 |
fixed drawing of checkable menu items.
|
|
622 |
|
|
623 |
- QSimpleRichText
|
|
624 |
use the specified default font.
|
|
625 |
|
|
626 |
- QSlider
|
|
627 |
optimized drawing in the new style engine.
|
|
628 |
|
|
629 |
- QString
|
|
630 |
QString::replace() with a regular expression requires a
|
|
631 |
QRegExp object, passing a plain string will cause a compile
|
|
632 |
error.
|
|
633 |
|
|
634 |
- QStyleSheet
|
|
635 |
additional parameter 'whitespacemode' for
|
|
636 |
QStyleSheet::convertFromPlainText(). Support for superscript
|
|
637 |
('sup') and subscript ( 'sub' ).
|
|
638 |
|
|
639 |
- QTabBar
|
|
640 |
react properly on runtime font changes, less flicker.
|
|
641 |
|
|
642 |
- QTable
|
|
643 |
take the pixmap of a header section into account when
|
|
644 |
adjusting the size.
|
|
645 |
|
|
646 |
- QTabWidget
|
|
647 |
use the embedded tabbar as focus proxy.
|
|
648 |
|
|
649 |
- QThread
|
|
650 |
win32 only: possible crash with the thread dictionary fixed.
|
|
651 |
|
|
652 |
- QValidator
|
|
653 |
In Q{Int,Double}Validator, consider '-' as Invalid rather than
|
|
654 |
Intermediate if bottom() >= 0.
|
|
655 |
|
|
656 |
- QWidget
|
|
657 |
made showFullScreen() multihead aware.
|
|
658 |
win32 only: Better size and position restoring when switching
|
|
659 |
between fullscreen, maximized and minimized.
|
|
660 |
x11 only: improvements to XIM, overthespot works correctly
|
|
661 |
now.
|
|
662 |
|
|
663 |
- QWorkspace
|
|
664 |
smarter placement of the minimize button when there is no
|
|
665 |
maximize button. Make titlebars of tool windows a bit smaller.
|
|
666 |
Improved styleability. Do not maximize a widget that has a
|
|
667 |
maximum size that is smaller than the workspace.
|
|
668 |
|
|
669 |
|
|
670 |
|
|
671 |
****************************************************************************
|
|
672 |
* Other *
|
|
673 |
****************************************************************************
|
|
674 |
|
|
675 |
- moc
|
|
676 |
fixed generation of uncompilable code in conjunction with
|
|
677 |
Q_ENUMS and signal/slots.
|
|
678 |
|
|
679 |
- unicode
|
|
680 |
allow keyboard switching of paragraph directionality.
|
|
681 |
|
|
682 |
- installation
|
|
683 |
install $QTDIR/doc/html/ instead of $QTDIR/doc/
|
|
684 |
install Qt Designer templates as well.
|
|
685 |
|
|
686 |
- improved build on
|
|
687 |
HP-UX with cc.
|
|
688 |
Solaris 8 with gcc 3.0.1.
|
|
689 |
AIX with xlC and aCC.
|
|
690 |
|
|
691 |
- inputmethods
|
|
692 |
x11 only: do not reset the input context on focus changes.
|
|
693 |
|
|
694 |
- uic
|
|
695 |
smaller improvements, handle additional form signals.
|
|
696 |
|
|
697 |
- Qt Designer
|
|
698 |
make it possible to add new signals to a form without
|
|
699 |
subclassing. Minor fixes.
|
|
700 |
|
|
701 |
- Qt Assistant
|
|
702 |
fixed Shift-LMB selection bug. Fixed new window and window
|
|
703 |
restoration on restart.
|
|
704 |
|
|
705 |
- Qt Linguist
|
|
706 |
change fourth parameter of QApplication::translate() from bool
|
|
707 |
to enum type. This affects MOC (new revision) and lupdate (new
|
|
708 |
syntax to parse). Change Qt Linguist's XML file format (.ts)
|
|
709 |
to be consistent with QApplication:<defaultcodec> (rather than
|
|
710 |
<codec>) to match QApp::defaultCodec(); encoding="UTF-8"
|
|
711 |
(rather than utf8="true") to match QApp::translate(). Fixed
|
|
712 |
window decoration on restart. Use 'finished', 'unfinished' and
|
|
713 |
'unresolved' instead of the (!), (?) symbols on printouts.
|
|
714 |
|
|
715 |
- QMsDev
|
|
716 |
merge "Add UIC" and "New Dialog". Better user interface and
|
|
717 |
general cleanup. Wwrite (and merge) qmake pro file with active
|
|
718 |
project. Load qmake pro files into Visual Studio.
|
|
719 |
|
|
720 |
|