diff -r 000000000000 -r 1918ee327afb dist/changes-4.2.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dist/changes-4.2.0 Mon Jan 11 14:00:40 2010 +0000 @@ -0,0 +1,2506 @@ +Qt 4.2 introduces many new features as well as many improvements and +bugfixes over the 4.1.x series. For more details, see the online +documentation which is included in this distribution. The +documentation is also available at http://qt.nokia.com/doc/ + +The Qt version 4.2 series is binary compatible with the 4.1.x series. +Applications compiled for 4.1 will continue to run with 4.2. + +The Qtopia Core version 4.2 series is binary compatible with the 4.1.x +series except for some parts of the device handling API, as detailed +in Platform Specific Changes below. + + +**************************************************************************** +* General * +**************************************************************************** + + +New features +------------ + +- QCalendarWidget provides a standard monthly calendar widget with date + selection features. + +- QCleanlooksStyle provides the new Cleanlooks style, a clone of the GNOME + ClearLooks style, giving Qt applications a native look on GNOME desktops. + +- QCompleter provides facilities for auto completion in text entry widgets. + +- QDataWidgetMapper can be used to make widgets data-aware by mapping them + to sections of an item model. + +- QDesktopServices provides desktop integration features, such as support + for opening URLs using system services. + +- QDialogButtonBox is used in dialogs to ensure that buttons are placed + according to platform-specific style guidelines. + +- QFileSystemWatcher enables applications to monitor files and directories + for changes. + +- QFontComboBox provides a standard font selection widget for document + processing applications. + +- QGraphicsView and related classes provide the Graphics View framework, a + replacement for Qt 3's canvas module that provides an improved API, enhanced + rendering, and more responsive handling of large numbers of canvas items. + +- QGLFramebufferObject encapsulates OpenGL framebuffer objects. + +- QMacPasteboardMime handles Pasteboard access on Qt/Mac. This obsoletes + QMacMime as the underlying system has changed to support Apple's new + Pasteboard Manager. Any old QMacMime objects will not be used. + +- QNetworkInterface represents a network interface, providing information + about the host's IP addresses and network interfaces. + +- QResource provides static functions that control resource lookup and + provides a way to navigate resources directly without levels of + indirection through QFile/QFileEngine. + +- QSystemTrayIcon allows applications to provide their own icon in the + system tray. + +- QTimeLine gives developers access to a standard time line class with which + to create widget animations. + +- The QtDBus module provides inter-process communication on platforms + that support the D-BUS protocol. + +- The QUndo* classes in Qt's Undo framework provide undo/redo functionality + for applications. + +- Support for the Glib event loop to enable integration between Qt and non-Qt + applications on the GNOME desktop environment. + +- Improved Accessibility for item-based views and QTextEdit. + +- Support for main window animations and tabbed dock widgets. + +- Added an SVG icon engine to enable SVG drawings to be used by QIcon. + +- Widgets can now be styled according to rules specified in a style sheet, + using a syntax familiar to users of Cascading Style Sheets (CSS). Style + sheets are set using the QWidget::styleSheet property. + +- Introduced a new key mapper system which improves the shortcut system by + only testing the real possible shortcuts, such as Ctrl+Shift+= and Ctrl++ + on an English keyboard. + +- Improved and enhanced QMessageBox to support native look and feel on many + common platforms. + +- Experimental support for Qt usage reporting ("metered licenses") on Linux, + Windows and Mac OS X. Reporting is disabled by default. + +- A screen magnification utility, pixeltool, is provided. It is designed to help + with the process of fine-tuning styles and user interface features. + +- New qrand() and qsrand() functions to provide thread safe equivalents to + rand() and srand(). + + +General improvements +-------------------- + +- Item views + + * Selections are maintained when the layout of the model changes + (e.g., due to sorting). + + * Convenience views can perform dynamic sorting of items when the data + in items changes. + + * QStandardItem provides an item-based API for use with + QStandardItemModel and the model/view item view classes. + + * QStandardItemModel API provides a classic item-based approach to + working with models. + + * Single selection item views on Mac OS X cannot change their current + item without changing the current selection when using keyboard + navigation. + +- Plastique style has improved support for palettes, and now requires + XRender support on X11 for alpha transparency. + +- Tulip containers + + * Added typedefs for STL compatability. + + * Added function overloads to make the API easier to use. + +- Added the Q3TextStream class for compatiblity with Qt 3 and to assist with + porting projects. + +- OpenGL paint engine + + * Added support for all composition modes of QPainter natively using + OpenGL. + + * Fixed a case where very large polygons failed to render correctly. + + * Ensured that glClear() is only called in begin() if the + QGLWidget::autoFillBackground() property is true. + + * Ensured that a buffer swap is only performed in end() if + QGLWidget::autoBufferSwap() is true. + + * Improved text drawing speed and quality. + +- Raster paint engine + + * Fixed blending of 8 bit indexed images with alpha values. + + * Fixed drawing onto QImages that were wider than 2048 pixels. + + * Fixed alpha-blending and anti-aliasing on ARGB32 images. + + * Improved point drawing performance. + + * Fixed issue where lines were drawn between coordinates that were + rounded instead of truncated. + + * Ensured that setClipRegion(QRegion()) clips away all painting + operations as originally intended. + + +Third party components +---------------------- + +- Dropped support for MySQL version 3. + +- Updated Qt's SQLite version to 3.3.6. + +- Updated Qt's FreeType version to 2.2.1. + +- Updated Qt's libpng version to 1.2.10. + + +Build System +------------ + +- Auto-detect PostgreSQL and MySQL using pg_config and mysql_config on UNIX + based systems in the configure script + +- Added "-system-sqlite" option to configure to use the system's SQLite + library instead of Qt's SQLite version. + +- Added QT_ASCII_CAST_WARNINGS define that will output a warning on implicit + ascii to Unicode conversion when set. Only works if the compiler supports + deprecated API warnings. + +- Added Q_REQUIRED_RESULT to some functions. This macro triggers a warning + if the result of a function is discarded. Currently only supported by gcc. + + +- Qt/X11, Qt/Mac and Qtopia Core only: + + * Added all QT_NO_* defines to the build key. + + +- Qt/X11 and Qtopia Core only: + + * As in Qt 3, the configure script enables the -release option by + default, causing the Qt libraries to be built with optimizations. If + configured with the -debug option, the debug builds no longer result + in libraries with the _debug suffix. + + On modern systems, flags are added to the Qt build to also + generate debugging information, which is then stored in a + separate .debug file. The additional debug information does not + affect the performance of the optimized code and tools like gdb + and valgrind automatically pick up the separate .debug + files. This way it is possible to get useful backtraces even + with release builds of Qt. + + * Removed the last vestiges of the module options in the configure + script, previously they were available but did not function. + + * Implemented a -build option in the configure script to conditionally + compile only certain sections of Qt. + + * Made it possible to build Qt while having "xcode" set as your + QMAKESPEC on OSX. + + +- Windows only: + + * Populated the build key, as done on all the other platforms. + + * Fixed dependency generation in Visual Studio Solutions (.sln) + created by qmake. + + * Added missing platforms to the Visual Studio project generator (X64, + SH3DSP and EBC). + + * Made UIC3 use a temporary file for long command lines. + + * Removed the object file (.o) conflicts with MinGW that appeared when + embedding a native resource file which was named the same as a normal + source file. + + * Fixed mkspec detection when generating project files outside of QTDIR. + + * Removed compiler warnings with MinGW g++ 3.4.5. + + + +**************************************************************************** +* Library * +**************************************************************************** + + +- QAbstractButton + + * Returns QPalette::Button and QPalette::ButtonText for + backgroundRole() and foregroundRole(), respectively, rather than + QPalette::Background and QPalette::Foreground. + + * Ensured that nextCheckState() is called only when there is a state + change. + +- QAbstractItemModel + + * When dropping rows only insert rows that were actually dropped, not + the continuous row count from first to last. + + * Added a supportedDragActions property to be used by + QAbstractItemView when starting a drag. + + * When updating changed persistent indexes, ignore those that haven't + actually changed. + + * Fixed endian issue with createIndex(). + + * Added FixedString matching for match(). + + * Changed the sorting algorithm to use a stable sort. + + * Added persistentIndexList() function. + +- QAbstractItemView + + * Added possibility to copy elements to clipboard on read-only views. + + * Improved handling of QAbstractItemModel::supportedDropActions(). + + * Ensured that the current item is selected when using keyboard + search. + + * Ensured that the view starts with a valid current index. + + * Ensured that data is only committed in currentChanged() if the + editor is not persistent. + + * Fixed crash that occurred when a modal dialogs was opened when + closing an editor. + + * Added verticalScrollMode and horizontalScrollMode properties. + + * Added setItemDelegateForRow() and setItemDelegateForColumn(). + + * Ensured that existing models are disconnected properly when + replaced. + + * Ensured that the doubleClicked() signal is only emitted when the + left button has been double-clicked. + + * Changed setSelection(...) to work when given a non-normalized + rectangle. + + * Fixed regression for shift-selections in ExtendedSelection for + all views. + + * Added dragDropMode property and implemented move support in all of + the views and models. + + * For edit triggers SelectedClicked and DoubleClicked, only trigger + editing when the left button is clicked. + + * Trigger SelectedClicked editing on mouse release, not mouse press. + + * Suppressed the doubleClicked() signal in cases where the clicks + happened on two different items. + + * Enabled keyboard search to be programmatically reset by calling + keyboardSearch() with an empty string as argument. + + * Don't allow drops on items that don't have the Qt::ItemIsDropEnabled + flag set. + + * Added modelAboutToBeReset() and layoutAboutToBeChanged() signals. + + * Suppressed assertion in dropMimeData() for cases where mimeTypes() + returns an empty list. + + * Ensured consistent behavior of drag and drop when rootIndex() is a + valid model index. + + * Made it possible to check a checkbox with only a single click when + using the CurrentChanged edit trigger. + + * Ensured that WhatsThis events are propagated when the relevant item + doesn't have a valid "What's This?" value. + + * Added PositionAtCenter scrollHint. + + * Added support to allow items to be checked and unchecked using the + keyboard. + + * Added support for keypad navigation. + +- QAbstractProxyModel + + * Added default implementations for data(), headerData() and flags() + +- QAbstractScrollArea + + * Added ability to set a corner widget. + + * Added ability to set scroll bar widgets. + + * Added support for custom scroll bars. + +- QAbstractSpinBox + + * Added a hasAcceptableInput() property. + + * Ensured that fixup/validate are called for third party subclasses of + QAbstractSpinBox as well. + + * Fixed geometry issues when toggling frames on and off for spinboxes. + + * Added a property for correctionMode. + + * Added a property for acceleration. + +- QAbstractPrintDialog + + * Fixed handling of existing printer options so that storage of page + ranges using setFromTo() works as expected when printing in PDF format. + +- QAction + + * Added the setAutoRepeat(bool) function to disable auto-repeating + actions on keyboard shortcuts. + +- QApplication + + * Added saveStateRequest() and commitDataRequest() signals so that + QApplication does not need to be subclassed to enable session + management in an application. + + * Added the styleSheet property to get/set the application style sheet. + + * Support sending key events to non-widget objects. + + * Ensured that argc and argv as passed to the QApplication constructor + will always be zero-terminated on all platforms after QApplication + consumes command line options for itself. + +- QBrush + + * Added a constructor that accepts a QImage. + +- QButtonGroup + + * Added pressed() and released() signals. + + * Fixed a bug caused by removing buttons from button groups. Removed the + internal mapping as well. + + * Ensured that checkedButton() returns the correct value with + non-exclusive groups. + +- QClipboard + + * Added support for find text buffer. + +- QColor + + * Fixed corruption in setRed(), setGreen() and setBlue() for HSV/CMYK + colors. + +- QComboBox + + * Fixed drawing issues related to certain FocusPolicy values. + + * Ensured that the ItemFlags of an Item (ItemIsEnabled,...) are + respected. + + * Fixed cases where the popup could be shown completly on screen, but + weren't. + + * Added the InsertAlphabetically insert policy. + + * Fixed case where a QPixmap could not be displayed using a QIcon. + + * Fixed the type of the modelColumn property from bool to int. + + * Updated documentation to clarify the differences between activated(), + highlighted() and currentIndexChanged(), and describe what they + actually mean. + + * Updated the behavior to ensure that, if the combobox isn't editable, + the Qt::DisplayRole rather than the Qt::EditRole is used to query the + model. + +- QCoreApplication + + * Added flags to enable/disable application-wide features such as + delayed widget creation. + +- QCursor + + * Added support for the newly added Qt::OpenHandCursor and + Qt::ClosedHandCursor enum values. + +- QDate + + * Support dates all the way down to Julian Day 1 (2 January 4713 B.C.) + using the Julian calendar when appropriate. + +- QDateTime + + * Fixed parsing issue in fromString(const QString &, Qt::DateFormat). + +- QDateTimeEdit + + * Added the calendarPopup property to enable date selection using the + new QCalendarWidget class. + + * Added a setSelectedSection() function to allow the currently selected + section to be programmatically set. + +- QDesktopWidget + + * Remove a potential out-of-bounds read. + +- QDialog + + * Improved stability in cases where the default button is deleted. + +- QDir + + * Improved support for i18n file paths in QDir::tempPath(). + + * Improved support for UNC paths when the application is run from a + share. + + * Ensured that mkpath() properly supports UNC paths. + + * Obsoleted QDir::convertSeparators(). + + * Introduced QDir::toNativeSeparators() and QDir::fromNativeSeparators(). + + * Added a QDebug streaming operator. + +- QDirModel + + * Fixed conversion from bytes to larger units in QDirModel in the file + size display. + + * Remove hardcoded filtering of the '.' and '..' entries. + +- QErrorMessage + + * Made qtHandler() work in cases where the message handler is invoked + from threads other than the GUI thread. + +- QEvent + + * Added the KeyboardLayoutChange event type which is sent when the + keyboard layout changes. + +- QFile + + * Improved support for UNC paths when the application is run from a + share. + + * Added support for physical drives (e.g., "//./Physical01"). + + * Ensured that QFile::error() and QIODevice::errorString() are set + whenever possible when errors occur. + + * Renamed readLink() to symLinkTarget(). + +- QFileDialog + + * Fixed a case where view mode got disabled. + +- QFileInfo + + * Improved support for UNC paths when the application is run from a + share. + + * Improved support for drive-local relative paths, such as "D:". + + * Renamed readLink() to symLinkTarget(). + +- QFlags + + * Added the testFlag() convenience function. + +- QFont + + * Added NoFontMerging as a flag to QFont::StyleStrategy. + +- QFontDatabase + + * Added functions for handling application-local fonts at run-time: + addApplicationFont(), removeApplicationFont(), + applicationFontFamilies(), etc. + +- QFontDialog + + * Enabled support for custom window titles. + +- QFontMetrics/QFontMetricsF + + * Added the elidedText() function. + + * Added the averageCharWidth() function. + +- QFrame + + * Fixed a rendering issue when showing horizontal and vertical lines + created using Designer. + +- QFtp + + * Improved parsing of the modified date in list(). + + * Ensured that all data has been received when downloading, before the + data connection is closed. + + * Added support for FTP servers that reject commands with a 202 response. + +- QGLFormat + + * Added the openGLVersionFlags() function. + + * Added support for setting the swap interval for a context + (i.e., syncing to the vertical retrace). + + * Added support for setting red, green and blue buffer sizes. + +- QGLWidget + + * Fixed a resource leak that could occur when binding QImages with the + bindTexture() function. + + * Fixed renderText() to produce proper output when depth buffering is + enabled. + + * Fixed bindTexture() to respect premultiplied QImage formats. + + * Ensured that the updatesEnabled property is respected. + +- QGradient + + * Added default constructors and setter functions for all gradients and + their attributes. + +- QGridLayout + + * Do not segfault if cellRect() is called before setGeometry(), + even though the result is documented to be undefined. + + * Fixed maximum size handling when adding spacing. + +- QGroupBox + + * Activating a group box by a shortcut will now show the focus rectangle. + + * Added the clicked() signal + +- QHash + + * Prevent conversion of iterator or const_iterator to bool + (e.g., if (map->find(value))) because the conversion always returned + true. Qt 4.1 code that doesn't compile because of this change was most + probably buggy. + + * Added the uniqueKeys() function. + +- QHeaderView + + * Use the current resize mode to determine section sizes when + new rows are inserted. + + * Recover the internal state if other widgets steal the mouse release + event. + + * Ensure that moved sections can be removed without asserting. + + * Be more robust with regards to arguments sent to the rowsInserted slot. + + * Let the stretchLastSection property override the globalResizeMode in + the resizeSections() function. + + * Renamed ResizeMode::Custom to ResizeMode::Fixed. + + * Added the swapSections() convenience function. + + * Added a more "splitter-like" resize mode. + + * Added the possibility for the user to turn off stretch mode by + resizing the header section. This includes the stretchLastSection + property. + + * Added the minimumSectionSize property. + + * Get the section size hint from the Qt::SizeHintRole, if set. + + * Added the ResizeToContents resize mode. + + * Ensure that all header contents are centered by default. + + * Improved the internal structure to be more memory efficient. + +- QHostAddress + + * Added QDataStream streaming operators. + +- QHttp + + * Support percent-encoded paths when used with a proxy server. + + * Improved handling of unexpected remote socket close. + +- QHttpHeader + + * Improved support for case-insensitive header searching. + +- QIcon + + * Fixed issue where actualSize() might return a larger value than the + requested size. + + * Fixed improper pixmap caching + + * Added QDataStream operators for QIcon. + + * Added the Selected mode. + +- QImage + + * Added support for 16 bit RGB format. + + * Added QPoint overloads to various (int x, int y) functions. + + * Added support for faster/better rotation of images by 90/180/270 + degrees. + + * convertToFormat() now supports the color lookup table. + + * Improved algorithm for smooth scaling to produce better results. + +- QImageReader + + * Ensured that size() returns an invalid QSize if the image I/O handler + does not support the QImageIOHandler::Size extension. + + * Added support for reading negative BMP images. + + * Improved handling of invalid devices. + + * Added optimizations to ensure that the most likely formats and plugins + are tested first when reading unknown image formats. + + * Improved reading of BMP images from sequential QIODevices. + + * Support for scaledSize() with JPEG images. + + * It is now possible to query the supported options of an image by + calling supportedOptions(). + + * Stability fixes for the built-in XBM reader. + +- QImageWriter + + * Ensured that an error is reported when attempting to write an image + to a non-writable device. + + * It is now possible to query the supported options of an image by + calling supportedOptions(). + +- QIODevice + + * Fixed a casting bug in QIODevice::getChar(). + + * Improved reading performance significantly by using an internal buffer + when a device is opened in buffered mode. + + * Some behavioral differences have been introduced: + + + The following functions now need to call the base implementation + when reimplemented: atEnd(), bytesAvailable(), size(), canReadLine(). + + + pos() should return the base implementation directly. + + + QIODevice now handles the device position internally. seek() should + always end up calling the base implementation. + +- QItemDelegate + + * Use a widget's USER property to set and get the editor data. + + * Removed unnecessary assertions. + + * Added the clipping property to enable clipping when painting. + + * When the model specifies a font, resolve the font over the existing + one rather than replacing it. + + * Fixed issue with rendering of selected pixmaps. + + * Ensured that QItemEditorFactory is called with the variant's + userType() so that the factory can distinguish between multiple user + types. + + * Ensured that Key_Enter is propagated to the editor before data is + committed, so that the editor has a chance to perform custom input + validation/fixup. + + * Let the line edit grow to accomodate long strings. + + * Made it easer to subclass the item delegate. + + * Added support for keypad navigation. + +- QItemSelectionModel + + * Improved overall speed, particularly when isSelected() is used. + + * Added functions for getting the selected rows or columns. + + * Ensured that the current index is updated when it is being removed. + + * Ensure that QAbstractItemView::clearSelection() only clears the + selection and not the current index. + + * Added the hasSelection() function. + + * Fixed some connection leaks (connections were not disconnected) when + an QItemSelectionModel was deleted. This should also speed up some + special cases. + +- QKeySequence + + * Added a set of platform-dependent standard shortcuts. + + * Fixed incorrect parsing of translated modifiers. + +- QLabel + + * Added support for text selection and hyperlinks. + + * Improved handling of scaled pixmaps. + + * Made handling of QMovie safer to avoid object ownership issues. + +- QLibrary + + * Added support for hints to control how libraries are opened on UNIX + systems. + + * Added errorString() to report the causes of errors when libraries + fail to load. + + * Added easier way to debug plugin loading: Setting QT_DEBUG_PLUGINS=1 + in the environment will enable debug message printing on the + console. + + * Increased the number of acceptable file name suffixes used to + recognize library files. + +- QLineEdit + + * Ensured that the Unicode context menu gets shown if language + extensions are present. + + * Ensured that editingFinished() is not emitted if a validator is set + and the text cannot be validated. + + * Ctrl+A now triggers select all on all platforms. + + * Call fixup on focusOut() if !hasAcceptableInput(). + + * Added auto-completion support with the setCompleter() function. + + * Fixed painting errors when contents margins were set. + + * Invalid text set using setText() can now be edited where previously + it had to be deleted before new text could be inserted. + + * Use SE_LineEditContents to control the contents rect of each + QLineEdit. + +- QListView + + * Added the batchSize property. + + * Don't un-hide currently hidden rows when new rows are inserted. + + * Fixed partial repainting bug that occurred when alternatingRowColors + was enabled. + + * Ensured that the resize mode is not reset in setViewMode() if it was + already set. + + * Fixed crash that occurred when the first item was hidden and + uniformItemSizes was set. + + * Added the wordWrap property for wrapping item text. + + * Allow the user to select items consecutively when shift-selecting. + + * Ensured that only the top item is selected when the user clicks on + an area with several items are stacked on top of each other. + + * Optimized hiding and showing of items. + + * Fixed issue where dragging an item in Snap mode did not respect the + scroll bar offsets. + + * Fixed issue in Snap mode where a (drag and) drop did not always + query the item that existed in the corresponding cell for an enabled + Qt::ItemIsDropEnabled flag. + +- QListWidget/QTreeWidget/QTableWidget + + * Ensured the dataChanged() signal is emitted when flags are set on an + item. + + * Removed unnecessary assertions. + + * Added more convenience functions in QListWidget, QTableWidget and + QTreeWidget for selecting, hiding, showing, expanding and collapsing + nodes. + + * Ensured that changes to items are reported. + +- QLocale + + * Fixed bug in the string-to-number functions which sometimes caused + them to fail on negative numbers which contained thousand- + separators. + + * Implemented the numberOptions property for specifying how + string-to-number and number-to-string conversions should be + performed. + +- QMainWindow + + * Added support for tabbed dock widgets. + + * Enhanced look and feel of dock widget handling. When a dock widget + hovers over a main window, the main window animates the existing + dock widgets and main area to show how it will accept the dock + widget if dropped. + + * Fixed issues related to insertToolBarBreak(). + +- QMap + + * Prevent conversion of iterator or const_iterator to bool + (e.g., if (map->find(value))), because the conversion always + returned true. Qt 4.1 code that doesn't compile because of this + change was most probably buggy. + + * Added the uniqueKeys() function. + +- QMenu + + * Added the aboutToHide() signal. + + * Added the isEmpty() accessor function. + + * Clear menuAction() when setMenu(0) + + * Added support for widgets in menus via QWidgetAction. + + * Collapse multiple consecutive separators. This can be turned off + with the collapsibleSeparators property. + + * Made scrollable menus wrap, just like non-scrollable ones. + +- QMessageBox + + * Updated the API to allow more than 3 buttons to be used. + + * Added support to display buttons in the order required by + platform-specific style guidelines. + + * Added support for display of informative text using the + informativeText property. + + * Added the detailedText property to allow detailed text to be + displayed. + + * Improved sizing of message box (especially on Mac OS X). + + * Changed the behavior so that long text strings are automatically + wrapped. + + * Updated icon handling to use QStyle::standardIcon() where possible. + +- QMetaObject + + * Added the userProperty() and normalizedType() functions. + +- QMetaType + + * Ensured that all type names are normalized before registering them. + + * Added support for handling Qt's integer typedefs: qint8, qint16, + etc. + +- QModelIndex + + * Added the flags() convenience function. + +- QMutexLocker, QReadLocker, and QWriteLocker + + * These classes now track the state of the lock they are holding. + They will not unlock on destruction if unlock() has been called. + +- QObject + + * thread() will always return a valid thread, even if the object was + created before QApplication or in a non-QThread thread. + + * When thread() returns zero, events are no longer sent to the object. + (Previous versions of Qt would send posted events to objects with no + thread; this does not happen in Qt 4.2). + + * Added support for dynamically added properties via the new + property(), setProperty(), and dynamicPropertyNames() functions. + + * Fixed a crash that could occur when a child deleted its sibling. + +- QPainter + + * Fixed a crash the occurred when drawing cosmetic lines outside the + paint device boundaries. + + * Fixed a pixel artifact issue that occurred when drawing cosmetic + diagonal lines. + + * Fixed opaque backgrounds so that they are identical on all + platforms. + + * Optimized drawing of cosmetic lines at angles between 315 and 360 + degrees. + + * Added the setRenderHints() function. + + * Fixed a memory corruption issue in drawEllipse(). + +- QPixmap + + * Fixed crash caused by setting a mask or alpha channel on a pixmap + while it was being painted. + + * Changed load() and save() to no longer require a format string. + + * Ensured that grabWidget() works before the specified widget is first + shown. + +- QPluginLoader + + * Added errorString() to report the causes of errors when plugins fail + to load. + +- QPrinter + + * Added support for PostScript as an output format on all platforms. + + * Significantly reduced the size of the generated output when using + the PostScript and PDF drivers. + + * Fixed issue where fromPage()/toPage() returned incorrect values when + generating PDF files. + + * Ensured that setOutputFormat() preserves previously set printer + properties. + + * Updated setOutputFileName() to automatically choose PostScript or + PDF as the output format for .ps or .pdf suffixes. + +- QProcess + + * Added support for channel redirection to allow data to be redirected + to files or between processes. + +- QPushButton + + * Ensured that, when a menu is added to a push button, its action is + also added to enable keyboard shortcuts. + +- QRect, QRectF, QRegion + + * Renamed unite(), intersect(), subtract(), and eor() to united(), + intersected(), subtracted(), and xored() respectively. + + * Added QRegion::intersects(QRegion) and QRegion::intersects(QRect). + + * Fixed case where rect1 & rect2 & rect3 would return a non-empty + result for disjoint rectangles. + +- QRegExp + + * Added RegExp2 syntax, providing greedy quantifiers (+, *, etc.). + + * Marks (QChar::isMark()) are now treated as word characters, + affecting the behavior of '\b', '\w', and '\W' for languages + that use diacritic marks (e.g., Arabic). + + * Fix reentrancy issue with the regexp cache. + +- QScrollArea + + * Added the ensureWidgetVisible() function to facilitate scrolling to + specific child widgets in a scroll area. + +- QScrollBar + + * Ensured that a SliderMove action is triggered when the slider value is + changed through a wheel event. + +- QSet + + * Added QSet::iterator and QMutableSetIterator. + +- QSettings + + * Store key sequences as readable entries in INI files. + + * Detect NFS to prevent hanging when lockd isn't running. + +- QShortcut + + * Added the setAutoRepeat(bool) function to disable auto-repeating + actions on keyboard shortcuts. + +- QSize + + * Fixed potential overflow issue in scale(). + +- QSlider + + * Added support for jump-to-here positioning. + +- QSortFilterProxyModel + + * Handle source model changes (e.g., data changes, item insertion + and removal) in a fine-grained manner, so that the proxy model + behaves more like a "real" model. + + * Added sortRole, filterRole and dynamicSortFilter properties. + + * Perform stable sorting of items. + + * Fixed support for drag and drop operations where one item is dropped + on top of another. + + * Ensure that persistent indexes are updated when the layout of the + source model changes. + + * Made match() respect the current sorting and filtering settings. + + * Forward mimeTypes() and supportedDropActions() calls to source + models. + + * Added the ability to filter on all the columns. + + * Added the filterChanged() function to enable custom filtering to be + implemented. + +- QSqlQuery + + * Added execBatch() for executing SQL commands in a batch. Currently + only implemented for the Oracle driver. + + * Fixed a case where executedQuery() would not return the executed + query. + +- QSqlRelationalTableModel + + * Fixed issue related to sorting a relational column when using the + PostgreSQL driver. + + * revertAll() now correctly reverts relational columns. + +- QStackedLayout + + * Fixed crash that occurred when removing widgets under certain + conditions. + +- QStackedWidget + + * Fixed crash that occurred when removing widgets under certain + conditions. + + * Fixed issue where the size hint of the current widget would not be + respected. + +- QStandardItemModel + + * Added an item-based API for use with QStandardItem. + + * Reimplemented sort(). + + * Added the sortRole property. + +- QStatusBar + + * Added the insertWidget() and insertPermanentWidget() functions. + +- QString + + * Added support for case-insensitive comparison in compare(). + + * Added toUcs4() and fromUcs4() functions. + +- QStyle + + * Added the following style hint selectors: + SH_Slider_AbsoluteSetButtons, SH_Slider_PageSetButtons, + SH_Menu_KeyboardSearch, SH_TabBar_ElideMode, SH_DialogButtonLayout, + SH_ComboBox_PopupFrameStyle, SH_MessageBox_TextInteractionFlags, + SH_DialogButtonBox_ButtonsHaveIcons, SH_SpellCheckUnderlineStyle, + SH_MessageBox_CenterButtons, SH_Menu_SelectionWrap, + SH_ItemView_MovementWithoutUpdatingSelection. + + * Added the following standard pixmap selectors: + SP_DirIcon, SP_DialogOkButton, SP_DialogCancelButton, + SP_DialogHelpButton, SP_DialogOpenButton, SP_DialogSaveButton, + SP_DialogCloseButton, SP_DialogApplyButton, SP_DialogResetButton, + SP_DialogDiscardButton, SP_DialogYesButton, SP_DialogNoButton, + SP_ArrowUp, SP_ArrowDown, SP_ArrowLeft, SP_ArrowRight, SP_ArrowBack, + SP_ArrowForward. + + * Added PE_PanelScrollAreaCorner and PE_Widget as primitive element + selectors. + + * Added PM_MessageBoxIconSize and PM_ButtonIconSize as pixel metric + selectors. + + * Added SE_LineEditContents and SE_FrameContents as sub-element + selectors. + + * Added SE_FrameContents to control the contents rectangle of a + QFrame. + +- QSvgHandler + + * Improved style sheet parsing and handling. + + * Added support for both embedded and external style sheets. + + * Improved parsing of local url() references. + + * Improved coordinate system handling. + + * Fixed issue where the viewbox dimensions would be truncated to integer + values. + + * Fixed support for gradient transformations. + + * Fixed opacity inheritance behavior. + + * Added support for gradient spreads. + + * Fixed gradient stop inheritance behavior. + + * Fixed parsing of fill and stroke properties specified in style sheets. + + * Added support for reading and writing the duration of animated SVGs. + + * Fixed incorrect rendering of SVGs that do not specify default viewboxes. + + * Fixed radial gradient rendering for the case where no focal point is + specified. + +- QSyntaxHighlighter + + * Added various performance improvements. + +- Qt namespace + + * Added ForegroundRole and BackgroundRole, allowing itemviews to use + any QBrush (not just QColor, as previously) when rendering items. + + * Added NoDockWidgetArea to the ToolBarArea enum. + + * Added NoToolBarArea to the DockWidgetArea enum. + + * Added GroupSwitchModifier to the KeyboardModifiers enum. It + represents special keys, such as the "AltGr" key found on many + keyboards. + + * Added several missing keys to the Key enum: Key_Cancel, Key_Printer, + Key_Execute, Key_Sleep, Key_Play and Key_Zoom. + + * Added OpenHandCursor and ClosedHandCursor for use with QCursor. + +- QTabBar + + * QTabBar text can now be elided; this is controlled by the elideMode + property. + + * You can now turn on or off the "scroll buttons" for the tab bar with + the usesScrollButtons property. + + * Non-pixmap based styles will now fill the background of the tab with + the palette's window role. + +- QTabletEvent: + + * Ensured that QTabletEvents are dispatched with the proper relative + coordinates. + + * Added proximity as another type of a tablet event (currently only sent + to QApplication). + +- QTableView + + * Added API for spanning cells. + + * Ensured that cells are selected when the user right clicks on them. + + * Added a corner widget. + + * Added the setSortingEnabled property. + +- QTableWidget + + * Added the clearContents() function to enable the contents of the view + to be cleared while not resetting the headers. + + * QTableWidget now uses stable sorting. + + * Allow sorting of non-numerical data. + + * Add convenience table item constructor that takes an icon as well as + a string. + +- QTabWidget + + * Added missing selected() Qt3Support signal. + + * Clarified documentation for setCornerWidget(). + + * Ensured that the tab widget's frame is drawn correctly when the tab + bar is hidden. + + * Ensured that the internal widgets have object names. + + * Added iconSize, elideMode, and usesScrollButtons as properties (see + QTabBar). + +- QTcpSocket + + * Fixed a rare data corruption problem occurring on heavily loaded + Windows servers. + +- QTemporaryFile + + * Added support for file extensions and other suffixes. + + * Fixed one constructor which could corrupt the temporary file path. + +- QTextBrowser + + * Fixed various bugs with the handling of relative URLs and custom + protocols. + + * Added isBackwardAvailable(), isForwardAvailable(), and + clearHistory() functions. + +- QTextCodec + + * Allow locale-dependent features of Qt, such as QFile::exists(), to + be accessed during global destruction. + +- QTextCursor + + * Added columnNumber(), blockNumber(), and insertHtml() convenience + functions. + +- QTextDocument + + * Added convenience properties and functions: textWidth, idealWidth(), + size, adjustSize(), drawContents(), blockCount, maximumBlockCount. + + * Added support for forced page breaks before/after paragraphs and + tables. + + * Added CSS support to the HTML importer, including support for + CSS selectors. + + * Added defaultStyleSheet property that is applied automatically for + every HTML import. + + * Improved performance when importing HTML, especially with tables. + + * Improved pagination of tables across page boundaries. + +- QTextEdit + + * Fixed append() to use the current character format. + + * Changed mergeCurrentCharFormat() to behave in the same way as + QTextCursor::mergeCharFormat, without applying the format to the + word under the cursor. + + * QTextEdit now ensures that the cursor is visible the first time the + widget is shown or when replacing the contents entirely with + setPlainText() or setHtml(). + + * Fixed issue where the setPlainText() discarded the current character + format after the new text had been added to the document. + + * Re-added setText() as non-compatibility function with well-defined + heuristics. + + * Added a moveCursor() convenience function. + + * Changed the default margin from 4 to 2 pixels for consistency with + QLineEdit. + + * Added support for extra selections. + +- QTextFormat + + * Fixed the default value for QTextBlockFormat::alignment() to return + a logical left alignment instead of an invalid alignment. + + * Added UnderlineStyle formatting, including SpellCheckUnderline. + +- QTextStream + + * Added the pos() function, which returns the current byte-position + of the stream. + +- QTextTableCell + + * Added the setFormat() function to enable the cell's character format + to be changed. + +- QThread + + * Related to changes to QObject, currentThread() always returns a + valid pointer. (Previous versions of Qt would return zero if called + from non-QThread threads; this does not happen in Qt 4.2). + +- QToolBar + + * Introduced various fixes to better support tool buttons, button + groups and comboboxes in the toolbar extension menu. + + * Fixed crash that occurred when QApplication::setStyle() was called + twice. + +- QToolButton + + * Fixed an alignment bug for tool buttons with multi-line labels and + TextUnderIcon style. + +- QToolTip + + * Added the hideText() convenience function. + + * Added the showText() function that takes a QRect argument specifying + the valid area for the tooltip. (If you move the cursor outside this + area the tooltip will hide.) + + * Added a widget attribute to show tooltips for inactive windows. + +- QTranslator + + * Added support for plural forms through a new QObject::tr() overload. + + * Ensured that a LanguageChange event is not generated if the + translator fails to load. + + * Fixed a bug in isEmpty(). + + * Added Q_DECLARE_TR_FUNCTIONS() as a means for declaring tr() + functions in non-QObject classes. + +- QTreeView + + * Ensured that no action is taken when the root index passed to + setRootIndex() is the same as the current root index. + + * When hiding items the view no longer performs a complete re-layout. + + * Fixed possible segfault in isRowHidden(). + + * Significantly speed up isRowHidden() for the common case. + + * Improved row painting performance. + + * After expanding, fetchMore() is called on the expanded index giving + the model a way to dynamically populate the children. + + * Fixed issue where an item could expand when all children were + hidden. + + * Added support for horizontal scrolling using the left/right arrow + keys. + + * Added a property to enable the focus rectangle in a tree view to be + shown over all columns. + + * Added more key bindings for expanding and collapsing the nodes. + + * Added the expandAll() and collapseAll() slots. + + * Added animations for expanding and collapsing branches. + + * Take all rows into account when computing the size hint for a + column. + + * Added the setSortingEnabled property. + + * Fixed the behavior of the scrollbars so that they no longer + disappear after removing and re-inserting items while the view is + hidden. + + * Fixed memory corruption that could occur when inserting and removing + rows. + + * Don't draw branches for hidden rows. + +- QTreeWidget + + * Added the const indexOfTopLevelItem() function. + + * Improved item insertion speed. + + * Fixed crash caused by calling QTreeWidgetItem::setData() with a + negative number. + + * QTreeWidget now uses stable sorting. + + * Made construction of single column items a bit more convenient. + + * Added the invisibleRootItem() function. + + * Made addTopLevelItems() add items in correct (not reverse) order. + + * Ensured that the header is repainted immediately when the header + data changes. + +- QUiLoader + + * Exposed workingDirectory() and setWorkingDirectory() from + QAbstractFormBuilder to assist with run-time form loading. + +- QUrl + + * Added errorString() to improve error reporting. + + * Added hasQuery() and hasFragment() functions. + + * Correctly parse '+' when calling queryItems(). + + * Correctly parse the authority when calling setAuthority(). + + * Added missing implementation of StripTrailingSlash in toEncoded(). + +- QVariant + + * Added support for all QMetaType types. + + * Added support for QMatrix as a known meta-type. + + * Added support for conversions from QBrush to QColor and QPixmap, + and from QColor and QPixmap to QBrush. + + * Added support for conversions between QSize and QSizeF, between + QLine and QLineF, from long long to char, and from unsigned long + long to char. + + * Added support for conversions from QPointF to QPoint and from QRectF + to QRect. + + * Fixed issue where QVariant(Qt::blue) would not create a variant of + type QVariant::Color. + + * Added support for conversions from int, unsigned int, long long, + unsigned long long, and double to QByteArray. + +- QWhatsThis + + * Improved look and feel. + +- QWidget + + * Delayed creation: Window system resources are no longer allocated in + the QWidget constructor, but later on demand. + + * Added a styleSheet property to set/read the widget style sheet. + + * Added saveGeometry() and restoreGeometry() convenience functions for + saving and restoring a window's geometry. + + * Fixed memory leak for Qt::WA_PaintOnScreen widgets with null paint + engines. + + * Ensured that widget styles propagate to child widgets. + + * Reduced flicker when adding widget to layout with visible parent. + + * Fixed child visibility when calling setLayout() on a visible widget. + + * Speed up creation/destruction/showing of widgets with many children. + + * Avoid painting obscured widgets when updating overlapping widgets. + +- QWorkspace + + * Resolved issue causing the maximized controls to overlap with the + menu in reverse mode. + + * Fixed issue where child windows could grow a few pixels when + restoring geometry in certain styles. + + * Ensured that right-to-left layout is respected when positioning new + windows. + + * Fixed crash that occurred when a child widget did not have a title + bar. + + * Fixed issue where maximized child windows could be clipped at the + bottom of the workspace. + +- quintptr and qptrdiff + + * New integral typedefs have been added. + +- Q3ButtonGroup + + * Fixed inconsistencies with respect to exclusiveness of elements in + Qt 3. + + * Fixed ID management to be consistent with Qt 3. + +- Q3Canvas + + * Fixed several clipping bugs introduced in 4.1.0. + +- Q3CanvasView + + * Calling setCanvas() now always triggers a full update. + +- Q3Grid, Q3Hbox, Q3VBox + + * Fixed layout problem. + +- Q3IconView + + * Fixed a case where selected icons disappeared. + +- Q3ListBox + + * Fixed inconsistencies in selectAll() with respect to Qt 3. + + * Fixed possible crash after deleting items. + +- Q3ListView + + Fixed possible crash in Q3ListView after calling clear(). + + Fixed inconsistent drag and drop behavior with respect to Qt 3. + +- Q3Process + + * Stability fixes in start(). + +- Q3Socket + + * No longer (incorrectly) reports itself as non-sequential. + +- Q3Table + + * Improved behavior for combobox table elements. + + + +**************************************************************************** +* Database Drivers * +**************************************************************************** + +- Interbase driver + + * Fixed data truncation for 64 bit integers on 64 bit operating + systems. + +- MySQL driver + + * When using MySQL 5.0.7 or larger, let the server do the text + encoding conversion. + + * Added UNIX_SOCKET connection option. + + * Improved handling of TEXT fields. + +- OCI driver + + * Improved speed for meta-data retrieval. + + * Fixed potential crash on Windows with string OUT parameters. + + * Improved handling of mixed-case table and field names. + +- ODBC driver + + * Improved error reporting if driver doesn't support static result + sets. + + * Improved support for the Sybase ODBC driver. + +- SQLite driver + + * QSqlDatabase::tables() now also returns temporary tables. + + * Improved handling of mixed-case field names. + + + +**************************************************************************** +* QTestLib * +**************************************************************************** + +- Added "-silent" options that outputs only test failures and warnings. + +- Reset failure count when re-executing a test object + +- Added nicer output for QRectF, QSizeF, and QPointF + + + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + + +Qtopia Core +----------- + +- Fixed the -exceptions configure switch. + +- Fixed a build issue preventing the use of MMX instructions when + available. + +- Fixed leak of semaphore arrays during an application crash. + +- Fixed cases where the wrong cursor was shown. + +- Fixed cases where QWidget::normalGeometry() would return wrong value. + +- Allow widgets inside QScrollArea to have a minimum size larger than the + screen size. + +- Allow (0,0) as a valid size for top-level windows. + +- VNC driver + + * Fixed keyboard shortcut problem when using the VNC driver. + + * Fixed issue with the VNC driver that prevented client applications to + connect in some cases. + + * Fixed a leak of shared memory segments in the VNC driver. + + * Reduced CPU consumption in the VNC driver. + + * Implemented dynamic selection of the underlying driver for the VNC and + transformed screen drivers. + + * Improved error handling when clients connects to the server. + +- Graphics system + + * Introduced new API for accelerated graphics hardware drivers. + + * Implemented support for multiple screens. + + * QScreen has binary incompatible changes. All existing screen drivers + must be recompiled. + + * QWSWindow, QWSClient, QWSDisplay and QWSEvent have binary + incompatible changes. QWSBackingStore has been removed. + Existing code using these classes must be recompiled. + + * Added support for OpenGL ES in QGLWidget. + + * Implemented support for actual screen resolution in QFont. + + * Removed internal limitation of 10 display servers. + + * Improved memory usage when using screens with depths less than 16 + bits-per-pixel. + + * Fixed 16 bits-per-pixel screens on big-endian CPUs. + + * Optimized CPU usage when widgets are partially hidden. + + * Improved detection of 18 bits-per-pixel framebuffers. + + * Improved performance when using a rotated screen with 18 or 24 + bits-per-pixel depths. + + * Improved speed of drawing gradients. + + * Introduced the QWSWindowSurface as a technique to create + accelerated paint engines derived from QPaintEngine. + + * Implemented the Qt::WA_PaintOnScreen flag for top-level widgets. + + * Extended QDirectPainter to include non-blocking API and support for + overlapping windows. Existing code that subclasses QDirectPainter + must be recompiled. + + * Implemented QWSEmbedWidget which enables window embedding. + + * Removed hardcoded 72 DPI display limitation. + +- Device handling + + * QWSMouseHandler has binary incompatible changes. All existing mouse + drivers must be recompiled. + + * Fixed an issue of getting delayed mouse events when using the + vr41xx driver. + + * Improved event compression in the vr41xx mouse handler. + + * Improved algorithm for mouse calibration which works for all + screen orientations. + + * Fixed an issue causing mouse release events with wrong positions + when using a calibrated and filtered mouse handler on a rotated + screen. + + * Made the tty device configurable for the Linux framebuffer screen + driver. + + * Fixed a deadlock issue when using drag and drop and a calibrated + mouse handler. + + * Autodetection of serial mice is turned off to avoid disrupt serial + port communication. Set QWS_MOUSE_PROTO to use a serial mouse. + +- QVFb + + * Fixed an issue preventing QVFb from starting on some systems. + + * Added support for dual screen device emulation in QVFb. + +- QCopChannel + + * Added a flush() function so that the QWS socket can be flushed, + enabling applications to ensure that QCop messages are delivered. + + +Linux and UNIX systems +---------------------- + +- Printing + + * Improved CUPS support by sending PDF instead of Postscript to + CUPS on systems that have a recent CUPS library, improving the + print quality. + + * Added a new and improved QPrintDialog. + + * Improved font embedding on systems without FontConfig. + +- QApplication + + * When available, use Glib's mainloop functions to implement event + dispatching. + +- QPlastiqueStyle + + * Added support to enable KDE icons to be automatically used on + systems where they are available. + +- QTextCodec + + * Uses iconv(3) (when available) to implement the codec returned by + QTextCodec::codecForLocale(). The new codec's name is "System" + (i.e., QTextCodec::codecForLocale()->name() returns "System" + when iconv(3) support is enabled). + + +AIX +--- + +- The makeC++SharedLib tool is deprecated; use the "-qmkshrobj" compiler + option to generate shared libraries instead. + + +X11 +--- + +- Added support to internally detect the current desktop environment. + +- QAbstractItemView + + * Fixed assertion caused by interrupting a drag and drop operation + with a modal dialog on X11. + + * Ensured that release events dispatched when closing a dialog + with a double click, are not propagated through to the window + underneath. + +- QCursor + + * Fixed crash occuring when the X11 context had been released before + the cursor was destructed. + +- QGLWidget + + * Fixed crashes that could occur with TightVNC. + + * Improved interaction between QGLWidget and the Mesa library. + +- QMenu + + * Made it possible for popup menus to cover the task bar on KDE. + +- QMotifStyle + + * Ensured that the font set on a menu item is respected. + +- QX11EmbedContainer, QX11EmbedWidget + + * Added missing error() functions. + +- QX11PaintEngine + + * Increased speed when drawing polygons with a solid pixmap brush. + + * Fixed masked pixmap brushes. + + * Increased QImage drawing performance. + +- Motif Drop support + + * Support for drops from Motif applications has been refactored and is + now working properly. QMimeData reports non-textual data offered in + Motif Drops using a MIME type of the form "x-motif-dnd/ATOM", where + ATOM is the name of the Atom offered by the Motif application. + +- Font rendering + + * Improved stability when rendering huge scaled fonts. + + * Enabled OpenType shaping for the Latin, Cyrillic, and Greek + writing systems. + + * Improved sub-pixel anti-aliasing. + + * Improved font loading speed. + + +Mac OS X +-------- + +- Mac OS 10.2 support dropped. + +- QuickDraw support in QPaintEngine dropped; everything folded into the + CoreGraphics support. + +- All libraries in Qt are now built as frameworks when -framework mode is + selected (default) during the configuration process. + +- Many accessibility improvements, including better VoiceOver support. The + following widgets have had their accessibilty updated for this release: + QSplitter, QScrollBar, QLabel, QCheckBox, QRadioButton, QTabBar, + QTabWidget, QSlider, and QScrollBar. + +- Hidden files are now reported as hidden by QFileInfo, QDirModel, etc. + +- Windows now have a transparent size grips, an attribute for specifying an + opaque size grip was added. + +- Metrowerks generator has been removed. + +- Ensured that the anti-aliasing threshold setting is followed. + +- Added a standard "Minimize" menu item to Assistant's Window menu. + +- The documentation now has "Xcode-compatible" links so that it can be added + into Xcode's documentation viewer. This needs to be done by the developer + as regenerating Xcode's index takes quite a long time + +- QAbstractScrollArea + + * Improved look and feel by aligning the scroll bars with the size + grip. + +- QClipboard + + * Data copied to the clipboard now stays available after the + application exits. + + * Added support for the Find clipboard buffer. + + * Fixed encoding of URLs passed as MIME-encoded data. + +- QComboBox + + * Improved the popup sizing so it's always wide enough to display its + contents. + + * Improved the popup placement so it stays on screen and does not + overlap the Dock. + + * The minimumSizeHint() and sizeHint() functions now honor + minimumContentsLength. + +- QKeyEvent + + * The text() of a QKeyEvent is filled with the control character if + the user pressed the real Control key (Meta in Qt) and another key. + This brings the behavior of Qt on Mac OS X more in line with Qt on + other platforms. + +- QLibrary + + * Removed the dependency on dlcompat for library loading and resolving + in favor of native calls. This means that you can unload libraries + on Mac OS X 10.4 or later, but not on 10.3 (since that uses dlcompat + itself). + +- QMacStyle + + * QMacStyle only uses HITheme for drawing now (no use of Appearance + Manager). + + * Fixed placement of text on buttons and group boxes for non-Latin + locales. + + * Fixed rendering of small and mini buttons. + + * Attempt to be a bit smarter before changing a push button to bevel + button when the size gets too small. + + * Draws the focus ring for line edits when they are near the "top" of + the widget hierarchy. + + * Ensured that the tickmarks are drawn correctly. + + * Implemented the standardIconImplementation() function. + + * Fixed the look of line edits. + + * "Colorless" controls now look better. + + * Fixed the sort indicator. + + * Improved the look of text controls, such as QTextEdit, to fit in + better with the native style. + +- QMenu + + * Popups no longer show up in Expose. + + * Ensured that the proper PageUp and PageDown behavior are used. + +- QMenuBar + + * Added support for explicit merging of items using QAction::MenuRole. + + * Added support for localization of merged items. + +- QMessageBox + + * A message box that is set to be window modal will automatically + become a sheet. + + * Improved the look of the icons used to fit in with the native style. + +- QPainter + + * Fixed off-by-one error when drawing certain primitives. + + * Fixed off-by-many error when drawing certain primitives using a + scaling matrix. + + * Fixed clipping so that setting an empty clip will clip away + everything. + + * Fixed changing between custom dash patterns. + + * Added combinedMatrix() which contains both world and viewport/window + transformations. + + * Added the setOpacity() function. + + * Added MiterJoins that are compliant with SVG miter joins. + +- QPainterPath + + * Added the arcMoveTo() and setElementPosition() functions. + +- QPixmap + + * Added functions to convert to/from a CGImageRef (for CoreGraphics + interoperability). + + * Fixed various Qt/Mac masking and alpha transparency issues. + +- QPrinter + + * Made QPrinter objects resuable. + +- QProcess + + * Always use UTF-8 encoding when passing commands. + +- QScrollBar + + * Improved handling of the case where the scrollbar is to short to + draw all its controls. + +- QTextEdit + + * Improved the look of the widget to fit in with the native style. + +- QWidget + + * All HIViewRefs inside Qt/Mac are created with the + kWindowStandardHandlerAttribute. + + * Added the ability to wrap a native HIViewRef with create(). + + * Windows that have parents with the WindowStaysOnTopHint also get the + WindowStaysOnTopHint. + + +Windows +------- + +- Ensured that widgets do not show themselves in a hover state if a popup + has focus. + +- Fixed issues with rendering system icons on 16 bits-per-pixel displays. + +- Fixed issue where fonts or colors would be reset on the application + whenever windows produced a WM_SETTINGSCHANGE event. + +- Fixed a bug with Japanese input methods. + +- Compile SQLite SQL plugin by default, as on all the other platforms. + +- Fixed build issue when not using Precompiled Headers (PCH). + +- Made Visual Studio compilers older than 2005 handle (NULL == p) + statements, where p is of QPointer type. + +- Fixed HDC leak that could cause applications to slow down significantly. + +- Ensured that timers with the same ID are not skipped if they go to different + HWNDs. + +- Improved MIME data handling + + * Resolved an issue related to drag and drop of attachments from some + applications. + + * Resolved an issue where pasting HTML into some applications would + include parts of the clipboard header. + + * Improved support for drag and drop of Unicode text. + + * Made it possible to set an arbitrary hotspot on the drag cursor on + Windows 98/Me. + +- ActiveQt + + * Fixed issues with the compilation of code generated by dumpcpp. + + * Made ActiveQt controls behave better when inserted into Office + applications. + + * Ensured that slots and properties are generated for hidden functions and + classes. + + * Ensured that the quitOnLastWindowClosed property is disabled when + QApplication runs an ActiveX server. + + * Ensured that controls become active when the user clicks into a subwidget. + + * Added support for CoClassAlias class information to give COM class a + different name than the C++ class. + +- QAccessible + + * Ensured that the application does not try to play a sound for + accessibility updates when no sound is registered. + +- QAxBase + + * Fixed potential issue with undefined types. + +- QDir + + * Fixed bug where exists() would return true for a non-existent drive + simply because the specified string used the correct syntax. + + * Improved homePath() to work with Japanese user names. + +- QFileDialog + + * Added support for relative file paths in native dialogs. + + * Enabled setLabelText() to allow context menu entries to be changed. + + * Ensured that users are denied entry into directories where they + don't have execution permission. + + * Disabled renaming and deleting actions for non-editable items. + + * Added a message box asking the user to confirm when deleting files. + +- QFileInfo + + * Fixed absoluteFilePath() to return a path that begins with the + current drive label. + +- QGLWidget + + * Fixed usage of GL/WGL extension function pointers. They are now + correctly resolved within the context in which they are used. + +- QGLColormap + + * Fixed cases where the colormap was not applied correctly. + +- QMenu + + * Made it possible for popup menus to cover the task bar. + +- QPrinter + + * Added support for printers that do not have a DEVMODE. + + * Fixed a drawing bug in the PDF generator on Windows 98/Me. + + * Made it possible to programmatically change the number of copies + to be printed. + + * Fixed possible crash when accessing non-existent printers. + +- QProcess + + * Fixed lock-up when writing data to a dead child process. + +- QSettings + + * Fixed bug causing byte arrays to be incorrectly stored on + Win95/98/Me. + + * Allow keys to contain HKEY_CLASSES_ROOT and HKEY_USERS to allow all + registry keys to be read and prevent unintentional use of + HKEY_LOCAL_MACHINE. + + * Fall back to the local machine handle if a key does not start with a + handle name. + +- QUdpSocket + + * Introduced fixes for UDP broadcasting on Windows. + +- QWhatsThis + + * Improved native appearance. + +- QWidget + + * Top-level widgets now respect the closestAcceptableSize of their + layouts. + + * Ensured that getDC() always returns a valid HDC. + +- QWindowsStyle + + * We no longer draw splitter handles in Windows style. This resolves + an inconsistency with XP style, so that the two styles can use the + same layout interchangeably. Note that it is fully possible to style + splitter handles (if a custom style or handle is required) using + style sheets. + + * Disabled comboboxes now have the same background color as disabled + line edits. + +- QWindowsXPStyle + + * Made QPushButton look more native when pressed. + + * Improved the look of checked tool buttons. + + * Defined several values that are not present in MinGW's header files. + + + +**************************************************************************** +* Significant Documentation Changes * +**************************************************************************** + + +- Updated information about the mailing list to be used for porting issues + (qt-interest). + +- Demos / Examples + + * Added a new directory containing desktop examples and moved the + Screenshot example into it. + + * Added a new Chat client network example which uses QUdpSocket to + broadcast on all QNetworkInterface's interfaces to discover its + peers. + + * The Spreadsheet demo now uses the QItemDelegate, QCompleter, and + QDateTimeEdit with calendar popup. + + * An OpenGL button is added to some of the demos to toggle usage of + the OpenGL paint engine. + + * Fixed crash resulting from incorrect painter usage in the Image + Composition example + + + +**************************************************************************** +* Tools * +**************************************************************************** + + +Assistant +--------- + +- Middle clicking on links will open up new tabs. + +- Added "Find as you type" feature to search documentation pages. + +- Added "Sync with Table of Contents" feature to select the current page in + the contents. + +- Fixed issue where activating a context menu over a link would cause the + link to be activated. + +- Provides a default window title when not specified in a profile. + +- Fixed JPEG viewing support for static builds. + +- Fixed crash that could occur when opening Assistant with old and invalid + settings. + +- Fixed display of Unicode text in the About dialog. + + +Designer +-------- + +- Added QWidget and the new widgets in this release to Designer's widget + box. + +- Updated the dialog templates to use the new QDialogButtonBox class. + +- Backup files created by Designer no longer overwrite existing files. + +- Promoted widgets inherit the task menu items of the base class. + +- Enums are no longer ordered alphabetically in the property editor. + +- Fixed issue where shortcuts could be corrupted in certain situations. + +- Line endings in .ui files now match the standard line endings for the + platform the files are created on. + +- Ensured that a warning is displayed whenever duplicate connections are + made in the connections editor. + +- Added shortcuts for the "Bring to Front" and "Send to Back" form editor + actions. + +- Added new 22 x 22 icons. + +- Fixed selection of dock widgets in loaded forms. + +- Made QWidget::windowOpacity a designable property. + +- Numerous improvements and fixes to the action and property editors. + +- Windows only + + * The default mode is Docked Window. + +- Mac OS X only + + * Preview of widgets is no longer modal. + + * Passing really long relative paths into the resource will no longer + cause a crash. + + +Linguist +-------- + +- Added a new "Check for place markers" validation feature. + +- Added the "Search And Translate" feature. + +- Added the "Batch translation" feature. + +- Added support for editing plural forms. + +- Extended the .ts file format to support target language, plural forms, + source filename, and line numbers. + +- Added the "Translated Form Preview" feature. + +- Added placeholders for "hidden" whitespace (i.e., tabs and newlines) in + the translation editor. + + +lupdate +------- + +- Added the -extensions command-line option in order to recursively scan + through a large set of files with the specified extensions. + +- Made lupdate verbose by default (use -silent to obtain the old behavior). + +- Improved parsing of project files. + +- Fixed some issues related to parsing C++ source files. + + +lrelease +-------- + +- Made lrelease verbose by default (use -silent to obtain the old behavior). + +- Disabled .qm file compression by default (pass -compress to obtain the old + behavior). + + +moc +--- + +- Fixed support for enums and flags defined in classes that are themselves + declared in namespaces. + +- Added support for the -version and -help command line options (for + consistency with the other tools). + + +rcc +--- + +- Added support for the -binary option to generate resources that are + registered at run-time. + + +qmake +----- + +- Added support for an Objective C compiler on platforms that support it via + OBJECTIVE_SOURCES. Additionally, Objective C precompiled headers are + generated as necessary. + +- Added support for a qt.conf to allow easy changing of internal target + directories in qmake. + +- Added support for the recursive switch (-r) in shadow builds. + +- Introduced QMAKE_CFLAGS_STATIC_LIB to allow modified flags to be + passed to temporary files when compiling a static library. + +- Added a target.targets for extra qmake INSTALLS. The $files() function + is now completely consistent with wildcard matching as specified to + input file variables. + +- Added QMAKE_FUNC_* variables to EXTRA_COMPILERS for late evaluation + of paths to be calculated at generation time. $$fromfile() will no + longer parse input file multiple times. + +- Added support for -F arguments in LIBS line in the Xcode generator. + +- $$quote() has changed to only do an explicit quote, no escape sequences + are expanded. A new function $$escape_expand() has been added to allow + expansion of escape sequences: \n, \t, etc. + +- Added a $$QMAKE_HOST variable to express host information about the + machine running qmake. + +- Added a $$replace() function. + +- Ensured that PWD is always consulted first when attempting to resolve an + include for dependency analysis. + +- Added support for UTF-8 encoded text in .pro files. + +- Variables $$_PRO_FILE_ and $$_PRO_FILE_PWD_ added for features to detect + where the .pro really lives. + +- Added QMAKE_FRAMEWORK_VERSION to override the version inside a .framework, + though VERSION is still the default value. + +- Added support for custom bundle types on Mac OS X. + +- Added support for Mac OS X resources (.rsrc) in REZ_FILES. + + +qt3to4 +------ + +- qt3to4 now appends to the log file instead of overwriting it. + +- Fixed one case where qt3to4 was inserting UNIX-style line endings on + Windows. + +- Added the new Q3VGroupBox and Q3HGroupBox classes to ease porting. + +- Updated the porting rules for this release. + + +uic +--- + +- Added support for more variant types: QStringList, QRectF, QSizeF, + QPointF, QUrl, QChar, qlonglong, and qulonglong. + +- Fixed code generated by uic for retranslating item view widgets so that + the widgets are not cleared when they are retranslated. + +- Ensured that no code is generated to translate empty strings. + + +uic3 +---- + +- Added line numbers to warnings. + +- Ensured that warnings show the objectName of the widget in question. + +- Added support for word wrapping in labels when converting files from uic3 + format. + +- Ensured that the default layouts are respected when converting files from + uic3 format. + +- Ensured that double type properties are handled correctly.