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/
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.
9 ****************************************************************************
11 ****************************************************************************
16 - Integrated support for rendering Scalable Vector Graphics (SVG)
17 drawings and animations (QtSvg module).
19 - A Portable Document Format (PDF) backend for Qt's printing system.
21 - A unit testing framework for Qt applications and libraries.
23 - Modules for extending Qt Designer and dynamic user interface
26 - New proxy models to enable view-specific sorting and filtering of
27 data displayed using item views.
29 - Additional features for developers using OpenGL, such as support
30 for pixel and sample buffers.
32 - A flexible syntax highlighting class based on the Scribe rich text
35 - Support for network proxy servers using the SOCKS5 protocol.
37 - Support for OLE verbs and MIME data handling in ActiveQt.
42 - Added support for editing menu bars and tool bars.
44 - Added support for adding comments to string properties.
46 - Added new static QtForm library with improved
47 QForm::Loader API for loading designer forms at run-time.
49 - Added support for namespaces in uic generated code.
51 - Added support for dock widgets in main windows.
53 - Added support for editing table, tree and list widgets.
55 - Improved palette editing and resource support.
60 - Added QTestLib, the Qt Unit Testing Library. See the "QTestLib" chapter
61 in the Qt documentation for more information.
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.
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".
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
84 Added support for linking static plugins into the application.
86 Qt 3 to 4 Porting Tool
87 ----------------------
89 Q(V|H)BoxLayout and QGridLayout usage is now ported to use
90 Q3(V|H)BoxLayout/Q3GridLayout, to retain the margin/spacing
93 Meta Object Compiler (moc)
94 --------------------------
96 - Added support for const signals.
101 - Added -docPath command line option for easy setting of the
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.
110 - Added support for precompiled headers on win32-g++ (MinGW)
115 Added support for Solaris 10 on AMD64 with the compiler provided by
119 ****************************************************************************
121 ****************************************************************************
127 - QTreeWidgetItemIterator
128 Added iterator to help iterating over items in a QTreeWidget.
131 The QSortingProxyModel can contain another model and handles
134 - QFilteringProxyModel
135 Allows you to provide a subset of a model to a view.
138 Allows you to provide a subset of a model to a view based on a
142 The QSyntaxHighlighter class allows you to define syntax
145 - QAbstractFileEngine
146 A base class for implementing your own file and directory handling
147 back-end for QFile, QFileInfo and QDir.
149 - QAbstractFileEngineHandler
150 For registering a QAbstractFileEngine subclass with Qt.
153 The default file engine for regular file and directory access in Qt.
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,
160 - Added qFromLittleEndian, qToLittleEndian, qFromBigEndian and
161 qToBigEndian endian helper conversion functions (qendian.h)
163 - Q_EXPORT_PLUGIN2 macro
164 Obsoletes Q_EXPORT_PLUGIN and allows static linking of
168 For enhanced backwards compatibility with Qt 3.
171 For creating and managing OpenGL pixel buffers.
174 For setting up transparent (SOCKS5) networking proxying.
176 - QDirectPainter (Qtopia Core only)
177 Provides direct access to video framebuffer hardware.
184 Added toLong() and toULong().
187 Fix shortcut and focus for "Alpha channel" spinbox.
190 Added conversion methods to convert from/to STL lists.
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.
198 Const-correctness in const_iterator's operator--(int).
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.
207 Added Qt 3 compatibility signal visibilityChanged(bool).
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.
215 Added isResettable().
218 Oracle plugin adds support for authentication using external credentials.
219 Added isValid() to QSqlError.
222 Added setPriority() and priority(), for querying and setting
223 the priority of a thread.
225 - QTreeWidgetItem/QTreeWidget
226 Added new constructors and addChildren(), insertChildren(),
227 takeChildren(), insertTopLevelItems(), addTopLevelItems to
228 speed up insertion of multiple items.
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.
237 Added support for setting the font pixel size.
238 Added UserObject to QTextFormat::ObjectTypes enum.
241 The value of QMetaTypeId<T>::Defined indicates whether a given type T is
242 supported by QMetaType.
245 Added setIndexWidget() and indexWidget() which makes it
246 possible to set a widget at a given index.
248 Added a QAbstractItemView::ContiguousSelection mode.
249 Added scrollToTop() and scrollToBottom().
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.
256 Add QModelIndex::operator<() so we are able to use them in
257 QMap and other containers.
259 Added qHash function for QModelIndex.
262 Added cellWidget() and setCellWidget() which makes it possible
263 to set a widget at a specified cell.
265 Added setCurrentCell().
267 Added QTableWidgetItem copy constructors.
271 Added setItemWidget() and itemWidget() which makes it possible
272 to set a widget on an item.
275 Added setItemWidget() and itemWidget() which makes it possible
276 to set a widget on an item.
278 Added QListWidgetItem copy constructors.
280 - QMutableMapIterator
281 Added value() overloads to Java-style iterators that return
282 non-const references.
285 Added mergeCells() and splitCells() to be able to set the row
286 or column span on a table cell.
289 Added standardIcon() which returns a default icon for standard
291 Added State_ReadOnly, which is enabled for read-only widgets.
293 Renamed QStyleOption::init() to initFrom().
294 - QGroupBox is now completely stylable (QStyleOptionGroupBox)
295 - Indeterminate (busy) progress bars are now animated properly
298 Added PM_DockWidgetTitleMargin as pixel metric.
301 Make it possible to use QHash with a type that has no default
305 Made QTableView::setShowGrid() a slot, like in Qt 3.
306 Added setRowHeight() and setColumnWidth().
308 - QTableWidgetSelectionRange
309 Added rowCount() and columnCount() convenience functions.
312 Added support for custom formats in QSettings.
315 Added status(), setStatus() and resetStatus() for improved error handling.
316 Added read(qint64 maxlen), for reading parts of a text stream into a
320 Added support for BlockUnderCursor selection type.
323 Added defaultSectionSize property which tells the default size
324 of the header sections before resizing.
327 Added context menu to the scrollbar with default navigation
331 Added ensureVisible(), which can scroll the scrollarea to make sure a
332 specific point is visible.
335 Added addMSecs(), which adds a number of milliseconds to the QDateTime.
338 Added support for more date/time formats.
339 Now allows multiple sections of the same type.
342 Added handling of buttons with IDs to the buttongroup like in
346 Added peek() for peeking data from a device.
349 Added property tabStopWidth which sets the tab stop width in
351 append(const QString &) is now a public slot.
352 Added support for inserting Unicode control characters through the
354 Added property acceptRichText, for whether or not the text edit
355 accepts rich text insertions by the user.
356 Added overwriteMode property.
360 Added support for QRegExp.
363 Added support for vertical progress bars.
366 The name() function has been obsoleted; use format() instead.
367 Added QImageIOHandler::Animation, for determining if the image format
369 Added QImageIOHandler::BackgroundColor, for setting the background
370 color for the image loader.
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
379 Added support for saving image text.
382 Added dateFormat()/timeFormat() to query the date/time format for the
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.
390 Added support for reverse name lookups.
393 Added a QString assignment operator
394 Added convenience functions for initializing from a native sockaddr
396 Added support for the IPv6 scope-id.
399 Added property "embedFonts" for embedding fonts into the target
401 Added support for printing to PDF.
402 Added support for custom print and paint engines
405 Added PPK_SuppressSystemPrintStatus, for suppressing the printer
406 progress dialog on Mac OS X.
409 Added fromString() and toString() for initializing a key sequence
410 from, and exporting a key sequence to a QString.
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.
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.
428 Added slots connectToHostImplementation() and
429 disconnectFromHostImplementation() to provide polymorphic behavior for
430 connectToHost() and disconnectFromHost().
433 Added setActiveAction(), which makes the provided action
437 This class has been obsoleted (see QAbstractProxyModel)
440 Now supports three modes of modality: NonModal, WindowModal and
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.
448 Added QPalette::Window (obsoletes Background) and
449 QPalette::WindowText (obsoletes Foreground).
451 - QHttpResponseHeader
452 Added two constructors and the function setStatusLine() for generating
456 Added count(bool), for counting on and off-bits in a bit array.
459 Added support for QRegExp
462 Added the property "regExp".
465 Added the property "iconSize", for setting the size of the icons on
469 Added support for inserting Unicode control characters through the
473 Added toLong() and toULong().
474 Support for std::string conversions with embedded \0 characters.
477 Added translate(), like QRect::translated().
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.
486 Made setCurrentIndex() a slot.
489 Added styleString(), for retrieving the style string from a QFontInfo.
490 Added support for Myanmar fonts.
493 Added xHeight(), which returns the 'X' height of the font.
496 Added arguments(), which returns a list of command line arguments as a
500 Added support for SOCKS5 via setProxy().
503 Added property "bindMode", for binding several sockets to the same
507 Added support for custom dash pattern styles and miter limits.
508 Added support for QDebug.
511 Added support for QVector and QPair output.
514 Added support for sorting.
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.
522 Platform-Specific changes
523 -------------------------
528 Added support for ClearType text rendering.
531 Added support for long filenames/paths.
536 Added support for freedesktop.org startup notifications.
540 - Improved support for the VoiceOver accessibility tool in Mac OS 10.4
548 Upgraded to zlib 1.2.3.
551 Upgraded to FreeType 2.1.10.
554 Upgraded to SQLite 3.2.7