| 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. Trolltech uses qmake in its build system for Qt and related |
| 437 |
products and we have released it as 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. |