1
Qt 4.1 introduces many new features as well as many improvements and
2
bugfixes over the 4.0.x series. For more details, see the online
3
documentation which is included in this distribution. The
4
documentation is also available at http://qt.nokia.com/doc/
5
6
The Qt version 4.1 series is binary compatible with the 4.0.x series.
7
Applications compiled for 4.0 will continue to run with 4.1.
8
9
****************************************************************************
10
*			    General					   *
11
****************************************************************************
12
13
Qt library
14
----------
15
16
  - Integrated support for rendering Scalable Vector Graphics (SVG)
17
    drawings and animations (QtSvg module).
18
19
  - A Portable Document Format (PDF) backend for Qt's printing system.
20
21
  - A unit testing framework for Qt applications and libraries.
22
23
  - Modules for extending Qt Designer and dynamic user interface
24
    building.
25
26
  - New proxy models to enable view-specific sorting and filtering of
27
    data displayed using item views.
28
29
  - Additional features for developers using OpenGL, such as support
30
    for pixel and sample buffers.
31
32
  - A flexible syntax highlighting class based on the Scribe rich text
33
    framework.
34
35
  - Support for network proxy servers using the SOCKS5 protocol.
36
37
  - Support for OLE verbs and MIME data handling in ActiveQt.
38
39
Qt Designer
40
-----------
41
42
- Added support for editing menu bars and tool bars.
43
44
- Added support for adding comments to string properties.
45
46
- Added new static QtForm library with improved
47
  QForm::Loader API for loading designer forms at run-time.
48
49
- Added support for namespaces in uic generated code.
50
51
- Added support for dock widgets in main windows.
52
53
- Added support for editing table, tree and list widgets.
54
55
- Improved palette editing and resource support.
56
57
QTestLib
58
--------
59
60
- Added QTestLib, the Qt Unit Testing Library. See the "QTestLib" chapter
61
  in the Qt documentation for more information.
62
63
- Users of older versions of QtTestLib can use the updater utility in
64
  tools/qtestlib/updater to convert existing autotests to work with QTestLib.
65
66
Boost
67
-----
68
69
Added boost compatible syntax for declaring signals and slots. If you
70
define the macro QT_NO_KEYWORDS "Q_SIGNALS" and "Q_SLOTS" are
71
recognized as keywords instead of the default "signals" and "slots".
72
73
ActiveQt
74
--------
75
76
QAxServer now supports mime-type handling - a ActiveX control can be
77
registered to handle a certain file extension and mime-type, in which case
78
QAxBindable::load and QAxBindable::save can be reimplemented to serialize
79
the object.
80
81
Build system
82
------------
83
84
Added support for linking static plugins into the application.
85
86
Qt 3 to 4 Porting Tool
87
----------------------
88
89
Q(V|H)BoxLayout and QGridLayout usage is now ported to use
90
Q3(V|H)BoxLayout/Q3GridLayout, to retain the margin/spacing
91
behavior as in Qt 3.
92
93
Meta Object Compiler (moc)
94
--------------------------
95
96
- Added support for const signals.
97
98
Qt Assistant
99
------------
100
101
- Added -docPath command line option for easy setting of the
102
  document root path.
103
104
QMake
105
-----
106
107
- Added support for new FORMS3 profile variable to make it possible
108
  to have Qt Designer forms from Qt 3 and Qt 4 in the same project.
109
110
- Added support for precompiled headers on win32-g++ (MinGW)
111
112
Compilers
113
---------
114
115
Added support for Solaris 10 on AMD64 with the compiler provided by
116
Sun.
117
118
119
****************************************************************************
120
*			   Library					   *
121
****************************************************************************
122
123
124
New classes
125
-----------
126
127
- QTreeWidgetItemIterator
128
        Added iterator to help iterating over items in a QTreeWidget.
129
130
- QSortingProxyModel
131
        The QSortingProxyModel can contain another model and handles
132
        the sorting of it.
133
134
- QFilteringProxyModel
135
        Allows you to provide a subset of a model to a view.
136
137
- QStringFilterModel
138
        Allows you to provide a subset of a model to a view based on a
139
        regular expression.
140
141
- QSyntaxHighlighter
142
        The QSyntaxHighlighter class allows you to define syntax
143
        highlighting rules.
144
145
- QAbstractFileEngine
146
        A base class for implementing your own file and directory handling
147
        back-end for QFile, QFileInfo and QDir.
148
149
- QAbstractFileEngineHandler
150
        For registering a QAbstractFileEngine subclass with Qt.
151
152
- QFSFileEngine
153
        The default file engine for regular file and directory access in Qt.
154
155
- Q3(H|V)BoxLayout and Q3GridLayout
156
        Layout classes provided for compatibility that behave the same
157
        as the Qt 4 classes but use a zero margin/spacing by default,
158
        just like in Qt 3.
159
160
- Added qFromLittleEndian, qToLittleEndian, qFromBigEndian and
161
  qToBigEndian endian helper conversion functions (qendian.h)
162
163
- Q_EXPORT_PLUGIN2 macro
164
        Obsoletes Q_EXPORT_PLUGIN and allows static linking of
165
        plugins.
166
167
- Q3ComboBox
168
        For enhanced backwards compatibility with Qt 3.
169
170
- QGLPbuffer
171
        For creating and managing OpenGL pixel buffers.
172
173
- QNetworkProxy
174
        For setting up transparent (SOCKS5) networking proxying.
175
176
- QDirectPainter (Qtopia Core only)
177
        Provides direct access to video framebuffer hardware.
178
179
180
General improvements
181
--------------------
182
183
- QByteArray
184
        Added toLong() and toULong().
185
186
- QFileDialog
187
        Fix shortcut and focus for "Alpha channel" spinbox.
188
189
- QLinkedList
190
        Added conversion methods to convert from/to STL lists.
191
192
- QMap/QHash
193
        Fixed operator>>() to read back multiple values associated
194
        to a same key correctly.
195
        Added constFind(), for finding an item without causing a detach.
196
197
- QMap/QHash
198
        Const-correctness in const_iterator's operator--(int).
199
200
- QMainWindow
201
        The saveState() and restoreState() functions no longer
202
        fallback to using the windowTitle property when the objectName
203
        property is not set on a QToolBar or QDockWidget; this
204
        behavior was undocumented and has been removed.
205
206
- QToolBar
207
        Added Qt 3 compatibility signal visibilityChanged(bool).
208
209
- QMetaType
210
        Class is now fully reentrant.
211
        Metatypes can be registered or queried from multiple threads.
212
        Added qMetaTypeId<T>(), which returns the meta type ID of T at compile time.
213
214
- QMetaProperty
215
        Added isResettable().
216
217
- QSql
218
        Oracle plugin adds support for authentication using external credentials.
219
        Added isValid() to QSqlError.
220
221
- QThread
222
        Added setPriority() and priority(), for querying and setting
223
        the priority of a thread.
224
225
- QTreeWidgetItem/QTreeWidget
226
        Added new constructors and addChildren(), insertChildren(),
227
        takeChildren(), insertTopLevelItems(), addTopLevelItems to
228
        speed up insertion of multiple items.
229
230
- QTextDocument
231
        Added the class QTextBlockUserData and added the possibility
232
        of storing a state or custom user data in a QTextBlock
233
        Added useDesignMetrics property, to enable the use of design metrics for
234
        all fonts in a QTextDocument.
235
236
- QTextFormat
237
        Added support for setting the font pixel size.
238
        Added UserObject to QTextFormat::ObjectTypes enum.
239
240
- QMetaType
241
        The value of QMetaTypeId<T>::Defined indicates whether a given type T is
242
        supported by QMetaType.
243
244
- QAbstractItemView
245
        Added setIndexWidget() and indexWidget() which makes it
246
        possible to set a widget at a given index.
247
248
        Added a QAbstractItemView::ContiguousSelection mode.
249
        Added scrollToTop() and scrollToBottom().
250
251
- QAbstractItemModel
252
        Added a SizeHintRole that can be set for each item. The item
253
        delegate will now check for this value before computing the
254
        size hint based on other item data.
255
256
        Add QModelIndex::operator<() so we are able to use them in
257
        QMap and other containers.
258
259
        Added qHash function for QModelIndex.
260
261
- QTableWidget
262
        Added cellWidget() and setCellWidget() which makes it possible
263
        to set a widget at a specified cell.
264
265
        Added setCurrentCell().
266
267
        Added QTableWidgetItem copy constructors.
268
269
270
- QTreeWidget
271
        Added setItemWidget() and itemWidget() which makes it possible
272
        to set a widget on an item.
273
274
- QListWidget
275
        Added setItemWidget() and itemWidget() which makes it possible
276
        to set a widget on an item.
277
278
        Added QListWidgetItem copy constructors.
279
280
- QMutableMapIterator
281
        Added value() overloads to Java-style iterators that return
282
        non-const references.
283
284
- QTextTable
285
        Added mergeCells() and splitCells() to be able to set the row
286
        or column span on a table cell.
287
288
- QStyle
289
        Added standardIcon() which returns a default icon for standard
290
        operations.
291
        Added State_ReadOnly, which is enabled for read-only widgets.
292
293
        Renamed QStyleOption::init() to initFrom().
294
        - QGroupBox is now completely stylable (QStyleOptionGroupBox)
295
        - Indeterminate (busy) progress bars are now animated properly
296
          in all styles.
297
298
        Added PM_DockWidgetTitleMargin as pixel metric.
299
300
- QHash
301
        Make it possible to use QHash with a type that has no default
302
        constructor.
303
304
- QTableView
305
        Made QTableView::setShowGrid() a slot, like in Qt 3.
306
        Added setRowHeight() and setColumnWidth().
307
308
- QTableWidgetSelectionRange
309
        Added rowCount() and columnCount() convenience functions.
310
311
- QSettings
312
        Added support for custom formats in QSettings.
313
314
- QTextStream
315
        Added status(), setStatus() and resetStatus() for improved error handling.
316
        Added read(qint64 maxlen), for reading parts of a text stream into a
317
        QString.
318
319
- QTextCursor
320
        Added support for BlockUnderCursor selection type.
321
322
- QHeaderView
323
        Added defaultSectionSize property which tells the default size
324
        of the header sections before resizing.
325
326
- QScrollBar
327
        Added context menu to the scrollbar with default navigation
328
        options.
329
330
- QScrollArea
331
        Added ensureVisible(), which can scroll the scrollarea to make sure a
332
        specific point is visible.
333
334
- QDateTime
335
        Added addMSecs(), which adds a number of milliseconds to the QDateTime.
336
337
- QDateTimeEdit
338
        Added support for more date/time formats.
339
        Now allows multiple sections of the same type.
340
341
- QButtonGroup
342
        Added handling of buttons with IDs to the buttongroup like in
343
        Qt 3.
344
345
- QIODevice
346
        Added peek() for peeking data from a device.
347
348
- QTextEdit
349
        Added property tabStopWidth which sets the tab stop width in
350
        pixels.
351
        append(const QString &) is now a public slot.
352
        Added support for inserting Unicode control characters through the
353
        context menu.
354
        Added property acceptRichText, for whether or not the text edit
355
        accepts rich text insertions by the user.
356
        Added overwriteMode property.
357
358
- QDataStream
359
        Added skipRawData().
360
        Added support for QRegExp.
361
362
- QProgressBar
363
        Added support for vertical progress bars.
364
365
- QImageIOHandler
366
        The name() function has been obsoleted; use format() instead.
367
        Added QImageIOHandler::Animation, for determining if the image format
368
        supports animation.
369
        Added QImageIOHandler::BackgroundColor, for setting the background
370
        color for the image loader.
371
372
- QImageReader
373
        Added setBackgroundColor() and backgroundColor(), for setting the
374
        background color of an image before it is read.
375
        Added supportsAnimation(), for checking if the image format supports
376
        animation.
377
378
- QImageWriter
379
        Added support for saving image text.
380
381
- QLocale
382
        Added dateFormat()/timeFormat() to query the date/time format for the
383
        current locale.
384
        Added toString() overloads for localized QTime and QDate output.
385
        Added decimalPoint(), groupSeparator(), percent(), zeroDigit(),
386
        negativeSign() and exponential(), which provide a means to generate
387
        custom number formatting.
388
389
- QHostInfo
390
        Added support for reverse name lookups.
391
392
- QHostAddress
393
        Added a QString assignment operator
394
        Added convenience functions for initializing from a native sockaddr
395
        structure.
396
        Added support for the IPv6 scope-id.
397
398
- QPrinter
399
        Added property "embedFonts" for embedding fonts into the target
400
        document.
401
        Added support for printing to PDF.
402
        Added support for custom print and paint engines
403
404
- QPrintEngine
405
        Added PPK_SuppressSystemPrintStatus, for suppressing the printer
406
        progress dialog on Mac OS X.
407
408
- QKeySequence
409
        Added fromString() and toString() for initializing a key sequence
410
        from, and exporting a key sequence to a QString.
411
412
- QUrl
413
        Added the port(int) function, which provides a default value for the
414
        port if the URL does not define a port.
415
        Support for decoding Punycode encoded hostnames in URLs.
416
        Made the parser more tolerant for mistakes, and added a ParsingMode
417
        flag for selecting strict or tolerant parsing.
418
        Added support for the NAMEPREP standard in our i18n domain name support.
419
420
- QDir
421
        Added the filter QDir::NoDotAndDotDot, for the
422
        special directories "." and "..".
423
        Added the filter QDir::AllEntries, for all entries
424
        in a directory, including symlinks.
425
426
427
- QAbstractSocket
428
        Added slots connectToHostImplementation() and
429
        disconnectFromHostImplementation() to provide polymorphic behavior for
430
        connectToHost() and disconnectFromHost().
431
432
- QMenuBar
433
        Added setActiveAction(), which makes the provided action
434
        active.
435
436
- QProxyModel
437
        This class has been obsoleted (see QAbstractProxyModel)
438
439
- QWidget
440
        Now supports three modes of modality: NonModal, WindowModal and
441
        ApplicationModal.
442
        Added Qt::WindowModality, obsoleted WA_ShowModal and WA_GroupLeader.
443
        Added Qt::WA_OpaquePaintEvent widget attribute, obsoleting Qt::WA_NoBackground.
444
        Added boolean autoFillBackground property.
445
        Child widgets now always inherit the contents of their parent.
446
447
- QPalette
448
        Added QPalette::Window (obsoletes Background) and
449
              QPalette::WindowText (obsoletes Foreground).
450
451
- QHttpResponseHeader
452
        Added two constructors and the function setStatusLine() for generating
453
        a response header.
454
455
- QBitArray
456
        Added count(bool), for counting on and off-bits in a bit array.
457
458
- QVariant
459
        Added support for QRegExp
460
461
- QRegExpValidator
462
        Added the property "regExp".
463
464
- QTabBar
465
        Added the property "iconSize", for setting the size of the icons on
466
        the tabs.
467
468
- QLineEdit
469
        Added support for inserting Unicode control characters through the
470
        context menu.
471
472
- QString
473
        Added toLong() and toULong().
474
        Support for std::string conversions with embedded \0 characters.
475
476
- QRegion
477
        Added translate(), like QRect::translated().
478
479
- QProcess
480
        Added systemEnvironment(), which returns the environment variables
481
        of the calling process.
482
        Added exitStatus(), and added a new finished() signal which takes the
483
        exit status as a parameter.
484
485
- QComboBox
486
        Made setCurrentIndex() a slot.
487
488
- QFontDataBase
489
        Added styleString(), for retrieving the style string from a QFontInfo.
490
        Added support for Myanmar fonts.
491
492
- QFontMetrics
493
        Added xHeight(), which returns the 'X' height of the font.
494
495
- QCoreApplication
496
        Added arguments(), which returns a list of command line arguments as a
497
        QStringList.
498
499
- QTcpSocket
500
        Added support for SOCKS5 via setProxy().
501
502
- QUdpSocket
503
        Added property "bindMode", for binding several sockets to the same
504
        address and port.
505
506
- QPen
507
        Added support for custom dash pattern styles and miter limits.
508
        Added support for QDebug.
509
510
- QDebug
511
        Added support for QVector and QPair output.
512
513
- QStringListModel
514
        Added support for sorting.
515
516
- QOpenGLPaintEngine
517
        Gradients in the OpenGL paint engine are now drawn using
518
        fragment programs, if the extension is available. Lots of
519
        fixes, speedups and tweaks.
520
521
522
Platform-Specific changes
523
-------------------------
524
525
Windows:
526
527
- Painting
528
        Added support for ClearType text rendering.
529
530
- File Engine
531
        Added support for long filenames/paths.
532
533
X11:
534
535
- QWidget
536
        Added support for freedesktop.org startup notifications.
537
538
Mac OS X:
539
540
- Improved support for the VoiceOver accessibility tool in Mac OS 10.4
541
  and later
542
543
544
3rd-party libraries
545
-------------------
546
547
- zlib
548
        Upgraded to zlib 1.2.3.
549
550
- FreeType
551
        Upgraded to FreeType 2.1.10.
552
553
- SQLite
554
        Upgraded to SQLite 3.2.7