diff options
Diffstat (limited to 'dist/changes-4.4.0')
-rw-r--r-- | dist/changes-4.4.0 | 2419 |
1 files changed, 2419 insertions, 0 deletions
diff --git a/dist/changes-4.4.0 b/dist/changes-4.4.0 new file mode 100644 index 0000000..7875f2c --- /dev/null +++ b/dist/changes-4.4.0 @@ -0,0 +1,2419 @@ +Qt 4.4 introduces many new features as well as many improvements and +bugfixes over the 4.3.x series. For more details, see the online +documentation which is included in this distribution. The +documentation is also available at http://doc.trolltech.com/4.4 + +The Qt version 4.4 series is binary compatible with the 4.3.x series. +The Qt for Embedded Linux version 4.4 series is binary compatible with the +Qtopia Core 4.3.x series. Applications compiled for 4.3 will continue to +run with 4.4. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Task Tracker: + + http://www.trolltech.com/developer/task-tracker + +Each of these identifiers can be entered in the task tracker to obtain +more information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + +General Improvements +-------------------- + +- Legal + * This version introduces the GPL version 3 as an alternative + license for the Open Source Edition of Qt, in addition to the + existing licenses. + * Updated the GPL Exception to version 1.2, which grants additional + rights to developers using the LGPL version 3.0 and other licenses + for their software. + +- Configuration/Compilation + * [102113, 151125] Make it possible to use Qt headers with MSVC's + warning level 4. + * [129841] Make Qt compile with Intel C++ 9.0 and Intel C++ 10 compilers + on Windows. + * [168868] Add experimental support for the Blackfin processor. + * [188167] Fixed a bug in the solaris-cc mkspec that would cause + it to always use RPATH, even when configured with -no-rpath. + * [176029] Added qmalloc.cpp with qMalloc() and qFree() implementation + to make it easier to replace the default container allocators with + custom allocators (by providing your own qmalloc.o(bj) file). + * Enable -reduce-exports automatically on linux-icc* mkspecs when + using version 10.1 of the Intel C++ Compiler for Linux. + * Add experimental support for the AVR32 processor. + * Allow building Qt with -release and the Intel C++ Compiler for + Linux. This required working around several compiler bugs by + turning optimizations off for certain modules. See the compiler + notes for more details. + * Add support for MSVC 2008, and add separate mkspecs for MSVC 2002 & + 2003. + * [189185] Avoid quoting the the include and library paths for iconv. + +- Documentation and Examples + * The Qt Designer Manual was updated to include new Qt Designer features. + * QtScript module overview was updated with more examples and reference + material. + * [161404] The 40000 Chips demo no longer shifts when clicking the OpenGL + button. + * [188676] Fixed text item moving in Diagram Scene example. + * New demo: Embedded Dialogs + * New demo: Browser + * New example: Graphics View / Pad Navigator + * New example: Item Views / Address Book + * New example: WebKit / Previewer + * New Example: XmlPatterns / Recipes + * New tutorial: Address Book + * Multiple bug fixes for the Torrent Client example. + * Speed-ups in the Ported Asteroids Example. + * [164223] All examples that use resources now include + Q_INIT_RESOURCES to avoid breakage in static builds. + +- Translations + * Added a Traditional Chinese translation of the Qt and tools courtesy + of Franklin. + * Added a Spanish translation of Qt courtesy of Enrique Matias Sanchez. + +- Signals and slots + * [147681] Added support for 'long long' and 'unsigned long long' + in queued connections. + * [125987] Optimized QMetaObject::activate(), the function that + actually delivers signals to all connected slots. + * [164558] Fixed a bug that caused queued signals to be delivered out + of order (not in the order they are emitted). + * [169554] Added Q_EMIT, to correspond to Q_SIGNAL and Q_SLOT. + +- Multithreaded painting + * [66358, 142031] Added support for painting on QImage, QPicture, + and QPrinter in multiple threads. See the Multithreaded + Programming documentation for more details on supported features + and known limitations. + +- Embedded QWidget support for Graphics View + * [177204] Added support for using layouts, styles, palettes and fonts, + as well as embedding QWidgets into a QGraphicsScene. + +- XML support in QtCore + * The QXmlStreamReader, QXmlStreamWriter and supporting classes + have moved from the QtXml module to the QtCore module. This change is + both source- and binary-compatible with previous versions. New + applications can opt to not link to QtXml when using these classes. + +- Printing + Made a number of improvements to printing in Qt 4.4, including + support for setting custom page sizes and custom margins as well as + the ability to programatically enumerate printers via the new + QPrinterInfo class. A couple of new classes, QPrintPreviewWidget + and QPrintPreviewDialog, have been added to make it easy to add a + print preview to an application. The QPrintDialog and QPageSetupDialog + for X11 have been redesigned and are hopefully easier to use. + +New features +------------ + +- XQuery 1.0 and XPath 2.0 support provided through the new QtXmlPatterns + module. + +- Qt Help module for embedding documentation into applications. + +- QSystemSemaphore provides a general counting system semaphore. + +- QSharedMemory provides access to a shared memory segment between multiple + threads and processes. + +- QLocalServer class provides a local socket-based server with a matching + new QLocalSocket class. + +- QFileSystemModel provides a data model for the local file system. Unlike + QDirModel, QFileSystemModel will fetch directory listings in a background + thread to prevent any locking in the GUI. QFileSystemModel is also much + faster and has a few more features then QDirModel. + +- QCommandLinkButton to support Vista style command links on all platforms. + +- QFormLayout provides a layout designed for convenient form creation with + the appropriate appearance on different platforms. This class previously + appeared in Qtopia/4.3, but has been integrated into Qt. + +- QtConcurrent provides a high level multi-threading API. + +- QPlainTextEdit provides a highly scalable plain text editor. It uses + similar technology and concepts as QTextEdit, but is optimized for plain + text handling; e.g. as a log viewer. + +- QTextBoundaryFinder is a new class implementing the Unicode text + boundaries specification. + + +Third party components +---------------------- + +- Updated Qt's SQLite version to 3.5.4. + +- Updated Qt's libpng version to 1.2.25. + +- Added CLucene version 0.9.17. + +- Added WebKit (see the src/3rdparty/webkit/VERSION file for the version). + +- Added Phonon version 4.1. + +**************************************************************************** +* Library * +**************************************************************************** + +- General Fixes + * [147201] Assert in debug mode when using QReadLocker, QWriteLocker, + or QMutexLocker with unaligned pointers. + +- QAbstractButton + * [190739] Ensure button with the TabFocus policy doesn't receive focus + through others ways. + * [192074] Disable key navigation for buttons in a item view. + +- QAbstractItemModel + * [171469] Speed up insertion of rows into a model. + +- QAbstractItemView + * [162487] Check canFetchMore() on the model before calling fetchMore(). + * [179163] The virtual selectAll() is now called when the user types + "Ctrl+A" + * [181413] Fixed InternalMove for MoveAction-only models. + * [181988, 192114] Made mouse wheel smarter on ScrollPerPixel mode. + * [182248] Trasparent background for the dragged visual. + * [184507] setVerticalScrollMode(ScrollPerItem) can cause the view to + scroll to the bottom. + * Add autoScrollMargin property. + * [162547] Make the current index stay in the viewport when sorting. + * [165404] Make the drop indicator stylable. + * [160611] Ensured that the hover item is updated when dragging over the view. + * [162497] Allow key events to be propagated. + * [186052] Mac: The alternatingRowColors property now honors the + Graphite color setting. + * [202276] Fixed crash when pressing Ctrl+C in a view with no model. + * [202034] Ensured that the editor's geometry is kept up to date when rows + are inserted. + * [204403] Only scroll to the current index on reset if the view is + editing. + +- QAbstractProxyModel + * [156789] Fixed a crash when deleting the source model. + * [194765] Made headerData() call mapToSource() when asking for data. + * [195023] Added setData() and setHeaderData() implementation. + +- QAbstractScrollArea + * [159949] Fixed a bug where setting the horizontal scroll had no effect. + +- QAbstractSpinBox + * [183108] Allowed a spin box to be cleared before it is visible. + * [198687] Always reset modified and undo states of the line edit upon + pressing Enter. + +- QAccessible + * [177706] Windows narrator will now read Tooltips properly. + * [182437] Tooltips are now read aloud once instead of twice. + +- QAction + * [200823] Fixed regression that caused the tool tip of an action not to + show the shortcut by default. + * [97238] Introduced the iconVisibleInMenu. + +- QApplication + * [100630, 153895] Fixed a bug where key press events were always + sent as non-spontaneous events, while the key release event was + spontaneous. + * [194454, 196062] Fixed QApplication::quitOnLastWindowClosed to + work as documented. + * [97238] Introduce an attribute (AA_DontShowIconsInMenus) to control + the default behavior of icons in menus. This obsoletes the + qt_mac_set_menubar_icons() function. + * [201218] Fix bug on Mac OS X where Qt::WA_DeleteOnClose failed to + delete on close. + +- QAtomicInt + +- QAtomicPointer + * [168853] Introduced QAtomicInt and QAtomicPointer into the public API. + These classes provide a cross-platform API for doing atomic operations. + * Optimized testAndSet*() on PowerPC to not branch in the best case + (when value == expectedValue). + * [197244] Fixed the gcc inline assembler constraints for the PowerPC + implementation. + * [198399] Applied patch from SUSE to add S390(x) support. + +- QBoxLayout + * [103626] Added insertSpacerItem() and addSpacerItem(). + * [127621] Made setStretchFactor() behave correctly if widget == 0. + +- QBrush + * [179308] Fixed a bug which caused QBrush to forget the color if it was + passed in the constructor along with Qt::NoBrush. + * [169502] Fixed a threading issue with setTextureImage(). + +- QBuffer + * [184730] A TIFF image can now be stored correctly in a QByteArray. + +- QByteArray + * [193870] Copy the data of a QByteArray that is taken from + QByteArray::fromRawData() when appending more data. + * [82509] Added QT_NO_CAST_FROM_BYTEARRAY to disable "operator const + char *" and "operator const void *". + +- QCalendarWidget + * [181388] Added support for updating the cell of a particular QDate. + * [172053] Fixed palette bug for calendar's buttons. + +- QChar + +- QCleanlooksStyle + * [194082] Fixed disabled checkbox painted as unchecked. + * [189609] Fixed an issue where QMdiSubWindow could have incorrect + buttons. + * [182806] Retain hover appearance on slider while dragging. + * [180105] Fixed gradient backgrounds shown as black on a pressed + QPushButton. + * [176674] Fixed combobox drop down ignoring custom icon sizes. + * [197691] Made the style work better on older X11 servers without + XRender support. + +- QColorDialog + * [142706] use QDialogButtonBox to conform with the style it is running + in. + +- QColumnView + * [167408] Added createColumn() to help make subclassing easier. + +- QComboBox + * [155578] Improved calculation of size hint for combo box pop-up. + * [183982] Fix bug where the combobox width was not wide enough in some + styles. + * [187744] Made QComboBox behave slightly better when the view is a tree. + * [189444] Allowed separators in the list. + * [190332] Made the popup respect the view's selection behavior. + * Made setEditable(false) explicitly hide the lineEdit, otherwise it may + remain visible when executing a modal dialog immediately afterwards. + * [154884] Fixed a bug where the popup was hidden without calling + QComboBox::hidePopup(). + * [169848] Fixed a bug where the combo box did not open as expected when + using a touch screen. + * [153975] Mac OS X: Improved the visual appearance (flash selected item + and fade away when hiding the menu). + * [190351] Fixed setView() for style using SH_ComboBox_Popup. + * [191329] Fixed the height calculation of the popup for custom view. + +- QCommonStyle + * [173539] Make the combo label draw according to the combo box's layout + direction and not the application's. + +- QCompleter + * [189564] Prevented unselectable items from appearing in the completion + list. + * [180785] Ensured that QCompleter emits activated() after pressing the + Return key. + +- QCoreApplication + * [157435] Fixed the posted event implementation to prevent the pending + queue from growing endlessly while a modal event loop is running. + * [132395] Sent DeferredDelete events at the right time. Specifying the + QEventLoop::DeferredDeletion flag (now deprecated) to processEvents() + is no longer necessary. + * [131235] Added QCoreApplication::applicationPid(). + * [132859] Don't explicitly set the LC_NUMBERIC locale to "C" on UNIX + systems. + * [187044] Fixed a crash when addLibraryPath() or setLibraryPaths() + is invoked before creating QCoreApplication. + * [161049, 171670] Don't leak the single QThread instance that Qt creates + to represent the main() thread. + * [143743] Added the QCoreApplication::applicationVersion property. + +- QCryptographicHash + * [190062] Ensured that calling result() twice returns the same value. + +- QDataWidgetMapper + * [194784] Allowed setting NULL values for editors. + +- QDataStream + * [196100] Fixed compatibility issue with QCString in Qt3.x streams. + * [196415] Fixed compatibility issue with invalid colors in Qt 3.x + streams. + +- QDateTime, QDate, QTime + * [189882] Optimized {QDate,QTime,QDateTime}::fromString() so that it + is about 40% faster than before. + * [193079] Have {QDate,QTime,QDateTime}::fromString() understand + locale-dependent string formats. + * Added enum values to distinguish between short and long formats. + +- QDateTimeEdit + * Added properties minimumDateTime/maximumDateTime + * [169916] Added a timeSpec property for QDateTimeEdit + * [178027] Make QDateTimeEdit respect the locale property + * [158950] Disable QCalendarWidget popup when the dateTimeEdit is + read-only. + * [145872] Added a getter and setter for the QCalendarWidget popup. + +- QDateEdit + * Don't interpret time-specific formats as special fields in a QDateEdit + and vice versa for QTimeEdit. + +- QDesktopServices + * [89584] Added a way to get users Documents, Desktop, Movies + directories. + * [105740] Added a way to determine the location to store data files. + +- QDialog + * [174842] Ignore the close event if the reimplementation of reject() + doesn't close the dialog. + +- QDialogButtonBox + * [191642] Don't steal the default button if there is one already. + * [196352] Fixed roles of QDialogButtonBox::Abort and + QDialogButtonBox::Ignore. + +- QDir + * [172057] Fixed bug when sorting directories containing files larger + than 2GB. + * [177904] Fixed a problem with QDir::tempPath() and QDir::homePath() + returning trailing slashes inconsistently. Now it returns the + absolute path name, without the trailing slash. + +- QDirModel + * [176323] Fixed display of files moved by drag and drop (on a QTreeView). + * [196768] Fixed sorting. + +- QDockWidget + * [171661] Fixed setTitlebarWidget(0) to reset the native decoration. + * [169808] SizeHint is now taken into account. + * [188583] Fixed a bug making dockLocationChanged signal not always + emitted. + * [193613] Highlighted splitters between QDockWidgets, now go back to + inactive state when the cursor have passed over it. + +- QDoubleSpinBox + * [164696] QWidget::locale() is now used for all string-to-number + conversions. + +- QErrorMessage + * [189429] Fixed "do not show again" with rich text message. + +- QEvent + * [37536] Add QEvent:registerEventType() for obtaining a unique + event type ID. + * [161940] Fix QContextMenuEvent::modifiers() on X11 and Qt for Embedded + Linux to behave like the Windows and Mac OS X. Previously, this + * [166605] A drop event's drop action is now initialized to the drag + manager's current default action. + +- QFile + * [107448] Fixed bug where QFile::write() would fail to report an error + on disk full. + * Added map() and unmap() to map files into memory. + +- QFileDialog + * [71645] Added a property to hide filter details. + * [174510] Ensured that when multiple files are selected, all of them + will be deleted, not just the current one. + * [172254] selectFile should also set the current directory. + * [185930] getExistingDirectory directory file not updated after + renaming the new directory. + * [164591] Provided a way to set the QDir::filter on the model. + * [180459] Native OS X file dialog forgets last visited directory. + * [184508] Improved speed when showing a lot of files. + * [184508] Improved launch speed. + +- QFont + * Add Capitalize font-capitalization feature including small caps. + * [191756] Do not crash when font config finds no fonts on the system. + * [145015] Don't replace '-' characters in font names anymore. + * Fixed a bug where glyphs sometimes showed up in italic for a non italic + font (X11/Embedded Linux only). + * Fixed a bug where xHeight() sometimes returned a wrong number + (X11/Embedded Linux only). + * Added support for word- and letter-spacing. + +- QFontComboBox + * Fixed a bug where font name would not be displayed in some cases. + +- QFontMetrics + * [179946] Fixed averageCharWidth() to change return value after adding + text to a QPainterPath. + +- QFSFileEngine + * [200220] Fixed a potential crash and removed some potential resource + leaks. + * [190377] Fixed a reentrancy bug on all platforms; querying the canonical + path no longer relies on chdir() and realpath(). + * [155284] Fixed uninitialized memory problem when calling realpath() + with an empty name on Solaris. + +- QGL + * [137573] Fixed drawing of images/pixmaps larger than the maximum texture + size in the OpenGL paint engine. + * [175853] Added new drawTexture member functions for convenient drawing + of textures in QGLWidget, QGLContext, QGLFramebufferObject, and + QGLPixelBuffer. + * [187954] Fixed an issue with missing corner pixels when drawing + rectangles in the OpenGL paint engine. + +- QGLContext + * [184996] Made isSharing() return something useful after a QGLWidget has + been reparented under Windows. + +- QGLPixelBuffer + * [195317] Make QGLPixelBuffer::hasOpenGLPbuffers() preserve the current + GL context when called. + +- QGLWidget + * [128157] QPixmap::grabWidget() now works on a QGLWidget. + * Added support for syncing drawing to QGLWidgets under X11 via the + QGLFormat::setSwapInterval() mechanism. This requires the + GLX_SGI_video_sync extension to be present. + * [183472] Made renderText() respect the currently set GL scissor box + and GL viewport. + * [182849] Fixed a crash on the Mac when renderPixmap() was called on a + multisampled GL context. + * [176618] Don't require depth testing to be enabled for the 3D version + of renderText() to work. + +- QGradient + * [178299] Fixed an issue where calling setColorAt twice with the same + position would not replace the existing color at that position. + +- QGraphicsItem + * [161160] Speedup when removing children from an item. + * [158799] QGraphicsItem now returns a different scene from + itemChange(ItemSceneChange). + * [127051] Added support for item caching in local and device + coordinates. + * [183996] Fixed a bug caused when items are moved by pressing many mouse + buttons at the same time. + * [192983] Added QGraphicsItem::boundingRegion(), which allows updating + items based on their shape instead of their bounding rect. + * Improved QGraphicsItem::isObscured() and QGraphicsItem::opaqueArea() + speed and accuracy. + * [195916] Fixed crash when deleting an item as it receives a + contextMenuEvent(). + * [202476] DeviceCoordinateCache now works with perspective + transformations. + * [202718] DeviceCoordinateCache performance improved greatly when + the cached item does minimal updates. + * [202689] Scrolling works (but is slow) for cached items. + +- QGraphicsItemAnimation + * [164587] QGraphicsItemAnimation::reset() has been marked as obsolete. + +- QGraphicsLineItem + * [177918] Lines with the same start and end point are now valid, and + rendered as a point. + +- QGraphicsScene + * [160463] QGraphicsScene::clearSelection() is now a slot. + * [161284] Added Q_DISABLE_COPY. + * [163854] QGraphicsScene no longer sends events to a disabled mouse + grabber item. + * [176902] Add support for context menu event propagation. + * [176178] QGraphicsScene::sceneRect() now auto-updates also with NoIndex + set. + * [186398] Added a fast QGraphicsScene::clear(), and massive speed-up in + recursive scene destruction. + * [180663] Fixed miscalculated expose rects in QGraphicsScene::render(). + * [176124] Ensure that all mouse events that should have a widget assigned + do have a widget assigned. + * [174238] The selectionChanged() signal is no longer emitted twice when + replacing one selection with another. + * [160653] selectionChanged is now emitted when reselecting an already + selected item. + * QGraphicsScene::mouseMoveEvent now receives all mouse move events from + the views, and translates them into hover events for the items. This + allows you to track all mouse move events for the entire scene, without + having to reimplement QGraphicsScene::event() and duplicating the + QGraphicsScene implementation. + +- QGraphicsSceneHoverEvent + * [151155] Added support for keyboard modifiers. + * [157222] Added support for lastPos, lastScenePos, and lastScreenPos. + +- QGraphicsSceneWheelEvent + +- QGraphicsSvgItem + * [171131] Fixed painting error caused by using obsolete pixmap cache + entry. + +- QGraphicsView + * [152477] Fix to QGraphicsView's scroll bar range calculation. + * [161284] Added Q_DISABLE_COPY. + * [164025] Mouse press events now propagate through the view if ignored + by the scene. + * New ViewportUpdateMode: QGraphicsView::BoundingRectViewportUpdate + * [180429] Mouse release events propagate properly in RubberBandDrag + mode. + * [176902] Add support for context menu event propagation. + * [180663] Fixed miscalculated expose rects in QGraphicsView::render(). + * [187791] QGraphicsView::setScene() now always updates the view + properly. + * [186827] Fixed an infinite loop caused by mouse replay after deleting + items in response to receiving mouse move events. + * [172231] Fixed erroneous clipping of untransformable items by scaled + graphics view. + * Fixed redraw bugs in QGraphicsView background rendering when using an + OpenGL viewport. + +- QGridLayout + * [121549] Added itemAtPosition(int, int). + +- QGroupBox + * [159480] QGroupBox's clicked() behavior is now the same as QCheckBox. + * [186297] Right-clicking a checkable group box now has no effect, which + is consistent with the behavior of QCheckBox. + * [178797] A checkable group box now correctly updates the sunken state + of its check box. + * Don't call updateGeometry() needlessly from resizeEvent(). + +- QHash + * [171909] Don't rehash in operator[] and insert() when the key already + exists -- to avoid subtle bugs when iterating on a QHash. (This is + documented as being undefined, since these functions are non-const, + but it's easy to avoid the rehashing.) + +- QHeaderView + * [173773] QHeaderView now updates properly upon sorting a column. + * [192884] When the model emits layout changed unhide old hidden rows + and hide new hidden rows. + * [170935] QHeaderView now updates properly when swapping columns. + * [157081] Made headerviews semi-transparent while dragged. + * [148198] Optimize hiding sections when the resize mode is ResizeToContents. + * [168128] Fixed problem where the last section was resized when the last two sections are swapped. + * [168209] Update the header section when the font size changes. + +- QHostInfo + * [194539] Fixed the ordering of IP addresses returned by the + host-lookup procedures. Qt respects the order supplied by the + system libraries. + * [176527] Fixed a problem in QHostInfo that would cause it to + print warnings if it was used before QCoreApplication is created + +- QHttpHeaders + * [104648] Fixed QHttpHeaders to not change the order or + capitalisation of headers received or sent. QHttpHeaders is now + case-insensitive but case-preserving + +- QHttp + * [181506] Fixed a bug that would cause QHttp to emit a warning + from QIODevice when connecting to some servers. + * [190605] Fixed a memory leak. + * [175357] Fixed a deadlock when trying to parse an empty HTTP + reply which did not contain Content-Length: 0 (such as those + found in 304 replies) + * [170860] Fixed a problem which would make QHttp emit the done() + signal too soon (before it was finished). + +- QIcon + * [168488] Reduce memory usage if you call addPixmap severals times with the same arguments. + +- QImage + * [176566] Fixed problem in scale() which would cause downscaled images to + become darker due to precision loss in the image scaling. + * [181265] Fixed crash in scale() when downscaling very large images. + * Added new image formats: QImage::Format_ARGB8565_Premultiplied, + QImage::Format_RGB666, QImage::Format_ARGB6666_Premultiplied, + QImage::Format_RGB555, QImage::Format_ARGB8555_Premultiplied, + QImage::Format_RGB444, QImage::Format_ARGB4444_Premultiplied, + and QImage::Format_RGB888. + * Added support for the ICO image format (from Qt Solutions) + * Fix drawing of text into a QImage on the Mac so that the native + CoreGraphics engine is used. This makes aliased text, or text with + a small point size, look much better. + * [188102] For Indexed image, fixed setColor() to expand the + colortable if necessary. Made colortable manipulation more robust. + +- QImageReader + +- QImageWriter + +- QInputDialog + +- QIntValidator + * [179131] Reverted QIntValidator's out-of-range semantics to Qt 4.2 + behavior, at popular demand. + +- QItemDelegate + * [175982] Escape did not close the editor if the application had registered + escape as a shortcut. + * [177039] Handle double precision properly. + * Don't finish editing if the validator is still in intermediate mode. + +- QItemSelectionModel + * [169285] Items are now deselected properly. + * [192147] Fix an off-by-one bug in QItemSelectionModel + +- QLabel + +- QLayout + * Cache sizeHint() and minimumSizeHint() of widgets in a layout using + the internal class QWidgetItemV2, leading to significant performance + gains for widgets that have an expensive size hint implementation. + +- QLibrary + * [155884] Fixed QPluginLoader to not load plugins with unresolved symbols. + * [170013] Make sure that libraries are opened with RTLD_LOCAL by default + on *all* platforms. (On Mac it was RTLD_GLOBAL by default). This should + make plugin loading more consistent. + * [190831] Fixed crash when calling loadHints on a default constructed + QLibrary. + * [155109] The real error message was discarded if the library existed, + but failed for another reason. + +- QLineF + * [170170] Introduce new member function angleTo() which returns the angle + between two lines, also taking the direction into account. + * [174122] Added new member functions in QLineF for setting and getting + the angle of the line, as well as translating a line, and constructing + a line from polar coordinates. + +- QLineEdit + * [151414] Add protected function to access the cursor rectangle. + * [153563] Don't show blinking cursor on read only line edit with input mask + * [174640] Emit editingFinished() when the user open a menu. + * [178752] Reverted to Qt3's behavior of using an arrow cursor instead of + a beam cursor when the QLineEdit is read only. + * [180999] Old selection now cleared upon activating a window. + * [188877] Fixed painting error resulting from pasting into a selection. + +- QLinkedList + * Add QLinkedList::removeOne(), which removes the first occurrence of a + value from the list. + +- QList + * Add QList::removeOne(), which removes the first occurrence of a value + from the list. + +- QListView + * [158122] Wordwrap in ListMode + * [177028] Make sure that the scrollbars is automatically removed when the + model has less than two items. + * [186050] Make sure the content size is updated when moving item. + * [182816] Combine wordwrap and text eliding. + +- QListWidget + * [199503] Fixed a crash when calling clear inside a slot connected to + currentItemChanged. + * [159792, 184946] Keyboard navigation fixed with non uniform item sizes. + * [255512] Add function to allow setting the current item without selecting it. + +- QLocale + * [161049] Fixed a couple of static memory leaks in QLocale. + * Added the following functions to QLocale: + QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; + QString toString(const QDateTime &dateTime, const QString &format) const; + QString dateTimeFormat(FormatType format = LongFormat) const; + * Added the following enum values to QLocale::QueryType: + DateTimeFormatLong + DateTimeFormatShort + DateTimeToStringLong + DateTimeToStringShort + +- QMacStyle + * [142746] Now respects the QComboBox::iconSize property. + * [184566] Make sure we pick up changes to QPushButton::setDefault(). + * [174284] Don't truncate text on tabs in the small and mini size. + * [170971] Don't try to draw a mini scrollbar as it doesn't exist, draw a small one instead. + * [170977] Correct checkmarks for small and mini non-editable comboboxes. + * [170978] Prevent mini push buttons from being clipped. + * [202959] Draw the correct number of tickmarks for sliders. + +- QMainWindow + * [178510] Context menu is not shown if all toggle view actions are invisible. + * [195945] Fixed resizing of QDockWidgets in QMainWindow without using any + central widget. + * [196569] Don't override the cursor set by the user with setCursor when hovering dock widgets. + +- QMdiArea + * [155815] Fixed a bug causing sub-windows to overlap when tiling them. + * [148183] Added support activation order. + * [153175] Added support for tabbed workspace. + * [182852] Don't overwrite mainwindow title. + * [189758] Fixed a bug causing sub-windows to be squeezed when tiling them. + * [202657] Fixed focus issue on dockwidget when activating the main window. + +- QMdiSubWindow + * [198638] Fixed so that minimumSize() and minimumSizeHint() was respected (it was + possible to resize the window to a smaller size earlier). + * [171207] Added tooltips for the buttons in the title bar. + * [169874, 47106] Added support for switching between sub-windows using Ctrl-Tab. + * [169734] Added an access function to QMdiArea. + * [192794] Fixed a bug causing installed event filters to be removed after maximizing a sub-window. + +- QMenu + * [165457] Fixed torn-off QMenus to have the correct stacking order. + * [167894] Fixed focus management when activating an action from the keyboard. + * [167954] Increased the size of the tear-off handle. + * [172423] Mac OS X: Improved the visual appearance (flash selected item and fade away when hiding the menu). + * [183777] Fixed a bug with tear off menu making impossible to tear some menu off. + +- QMenuBar + * [193355] Fied bug with action plugged in menu which did not return to their normal state + after being clicked + * [194677] Fixed a bug causing the corner widgets to be laid out incorrectly when adding them right + before the menu bar was shown. + +- QMessageBox + * [176281] By default, if there is exactly one button with the RejectRole or + MessageBox::NoRole, it is now made the escape button. + * [181688] Better look with setInformativeText. + +- QMetaObject + * [197741] Fixed a memory leak in QMetaObject::invokeMethod() when + called with unregistered data types. + * [171723] Support for 'unsigned' type in the meta-object system. + +- QMetaType + * [179191] Added QMetaType::unregisterType() for unregistering a metatype. + +- QMimeData + * Added a removeFormat() method. + +- QMngHandler + * [155269] QMngHandler now initializes image backgrounds properly. + +- QModelIndex + * [176068] optimize QModelIndex operator< + +- QMotifStyle + * [185649] Fixed incorrect positioning of itemview frames in reverse mode. + +- QMutex + * [151077] Optimized QMutex locking path to be comparable to Win32 + CRITICAL_SECTIONs. + * [186088] Clarify documentation of lock() and tryLock() to be + more explicit about the behavior of these functions in recursive + vs. non-recursive mode. + +- QNetworkInterface + +- QNetworkProxy + +- QObject + * [144976] Fix QObject::property() to return a QVariant that can be + converted to an enum if the enum is known to QMetaType. + * [171612] Fix QObject::removeEventFilter() to work as documented. + * [172061] convert() now return false if the result is invalid for date types. + * [184003] Fix a crash in QObject::queryList() when called from an + object's destructor. + * [173218] Document deleteLater()'s behavior when called before + QCoreApplication::exec(). + +- QOpenGLPaintEngine + * [183995] Reset the GL_TEXTURE_ENV attribute and pixel transfer modes to the + default values when QPainter::begin() is called. + * [174273] Fixed the annoying "Unable to compile fragment programs" problem + by adding a GL program cache, and compiling the programs on demand. + +- QPainter + * [121105] Added drawEllipse overload that takes a center point and two + radii. + * [124248] Fixed some rounding issues causing inconsistencies between + text and line drawing. + * [142470] Fixed performance issue with non-cleartype text drawing on + Windows when doing several calls to QPainter::drawText(). + * [142514] Fixed bug in X11 paint engine where a pixmap drawn + at non-integer coordinates would be drawn at different offsets depending + on whether opacity was set or not. + * [156787] Fixed problem with SmoothPixmapTransform and source rects in + drawImage and drawPixmap which would cause color bleeding from pixels + outside the source rect at the image borders. + * [156964] Improved accuracy of arc drawing, ensuring that arcs drawn + with same control rect but different sweeps are still coinciding. + * [162153] Fixed bug caused by integer overflow in QPainter::boundingBox + when passing a very large rectangle. + * [163605] Introduced new drawRoundedRect API with support for absolute + coordinates for the corner radii. + * [166702] Fixed some potential floating point exceptions in raster + paint engine line drawing. + * [167890] Prevent crash when drawing zero-length lines; these are now + drawn as points. + * [169711] Ensured that calling setClipRect with negative width/height + is treated as an empty clip region. + * [170208, 170213] Fixed some bugs with dashed line drawing and dash + dash offsets in the mac paint engine. + * [175912, 176386, 194360] Fixed some precision issues with projective + transformed pixmaps and images. + * [179507] Ensure that the final stop color is always used beyond the + radius when using a QRadialGradient. + * [180245] Fixed bug which caused setOpacity to be ignored when drawing + transformed RGB32 images. + * [182658] Fixed a problem with drawPoint in X11 paint engine which would + cause a one-pixel point to sometimes be drawn as two pixels. + * [184746] Fixed performance regression in drawEllipse() with raster paint + engine. + * [188012] Fixed stroking of empty rectangles in X11 paint engine. + * [190336] Fixed text drawing performance issue on Windows when using + setPixelSize to draw large fonts. + * [190394] setOpacity() now correctly paints transparent regions when + outputting to PDF. + * [190634] Fixed bug where drawLine would fill part of the paint device + instead of just drawing a line. + * [190733] Fixed some precision problems with miter joins and curve + segments which could cause ugly painting artifacts. + * [191531] Fixed a bug with alpha or pattern brush drawing to mono images. + * [191761] Fixed rendering of transformed ObjectBoundingMode gradients. + * [199234] Fixed a bug causing fillRect with a gradient fill to not work + with ObjectBoundingMode gradients in the raster paint engine. + * Introduced a new rasterizer for aliased drawing to address performance + and precision issues in the existing rasterizer. + * Remove warnings emitted when setting Source or SourceOver composition + modes on certain paint devices. + * [192820] Fix drawImage()/drawPixmap() with a source rect parameter outside + of the range of the source image dimensions. + * [183745] Fixed setting font point sizes < .5, would in some cases cause + the font size to default back to 12 points. + * [157547] Fixed inconsistent pen styles for DashLine, DotLine, DashDotLine + and DashDotDotLine across Win/Linux. + * [143526] Fixed a problem with drawing text or shapes that were drawn + with a very large scale factor. Typically you would get a crash after + memory was exhausted. + * [186070] Fixed potential integer overflow when drawing texture or pattern + brushes with a transform that has a small scale. + * [200616] Fixed bug causing transformed cosmetic pens with width > 0 and a + dash pattern to be partially or completely clipped (raster engine). + * [206050] Fixed QImage::scale with a SmoothTransformation to handle alpha + channel correctly when scaling. + + +- QPainterPath + * [121105] Added addEllipse overload that takes a center point and two + radii. + * [181774] Remove assert that could occur when calling pointAtPercent() + with parameters close to 0 or 1. + * [189695] Fixed bug relating to 360-degree arcs and winding fill. + * [187779, 187780] Fixed some bugs in intersects() and contains() when + dealing with paths with multiple subpaths. + * [191706] Fixed intersects(QRectF) for paths that represent vertical or + horizontal lines. + * [193367] Introduced simplified() to simplify paths with multiple + subpaths and/or self-intersections. + * [206160] Modify QPainterPath::operator== to do point comparisons with + an epsilon relative to the painter path's bounding rect size. + +- QPainterPathStroker + * [174436] Fixed some bugs relating to dash offsets and dashing of + paths with multiple subpaths. + +- QPalette + * [170106] Added QPalette::ToolTipBase and QPalette::ToolTipText. + +- QPicture + +- QPixmap + * [164116] QPixmap::x11Info() didn't report the correct depth when + the pixmap depth and the desktop depth was different. + +- QPixmapCache + +- QPlastiqueStyle + * More native appearance of button, combobox, spinbox and slider. + +- QPolygon + * [163219] Added missing datastream operators to QPolygon. + +- QPrintDialog + * [182255] Don't ask whice to overwrite axisting file. + * [183028] Changed to default for maxPage() to INT_MAX. + + +- QPrinter + * PDF engine now supports hyperlinks. + * [180313] Fixed a bug where QPrinter could not be used more than once + per instantiation. + * [121907] Change begin() to properly return 'false' when the file we + want to write to can not be written to. + * [189604] Make the pdf printer capable of having a different page size + and orientation for each page. + * [99441] Add setPaperSize(const QSizeF &paperSize, Unit unit). + * [182245] Make pageRect() return consistent values across + Mac/Win/Linux when fullPage() is set, and fix an off by one error in + the width()/height() functions on the Mac. + * [156508] PS/PDF generators: Correctly generate grayscale output when + requested. + +- QPrintEngine + * [193986] Fixed the Trolltech copyright date on PDF files + +- QProcess + * [162522] QProcess now emits stateChanged() consistently for all state + changes. + * [153565] Add define to make it compile with QNX RTOS. + * [196323] Try to unregister SIGCHLD while Qt is unloaded. + +- QProgressBar + * [189512] sizeHint() doesn't depends anymore on PM_ProgressBarChunkWidth + +- QProgressDialog + * [190318] Use the size of the label if setMinimumSize() and setLabel() + are called. + * [198202] Wixed crash when calling setLabel(0). + +- QPushButton + +- QReadWriteLock + * [131880, 170085] Add support for recursive read-lock + support. See the not below in the Important Behavior Changes + section. + +- QRect + * Fixed a bug in normalized() when width() == 0 and height() < 0 + or vice versa. + +- QRectF + +- QRegion + * Added numRects() which returns the number of rectangles in the region. + * [193612] Various optimizations for regions consisting of only one + rectangle. + +- QResource + +- QScriptEngine + * [200225] Made uncaughtExceptionBacktrace() return a correct backtrace + in the case where the value thrown is not an Error object. + * [202454] Made QScriptContext::isCalledAsConstructor() return the right + result for constructors registered with newQMetaObject(). + * [198166] Made canEvaluate() handle C-style comments correctly. + * [202606] Made it possible to invoke slots with const QObject* arguments. + * [200599] Removed the need to register the metatype-id of QObject-derived types + before they can be used as arguments to slots where the type occurs + in the signature. + * [185580] Fixed a bug with automatic semi-colon insertion that caused the + prefix ++ operator to behave incorrectly. + * [190991] Implemented iteration for arguments objects. + * [175697] Made conditional function declarations have the same semantics as in + other popular ECMAScript implementations. + * [176020] Fixed a crash that occurred when the left-hand side of an assignment + was an object literal. + * [176020] Fixed a crash that occurred when an if-statement inside a function + contained a return statement in the false-branch but not in the + true-branch, and the function didn't contain any more statements. + * [182578] Fixed a bug that caused automatic QList<int>-to-QScriptValue + conversion to fail. + * [163318] Added abortEvaluation() function. + * [167711] Added qScriptConnect() and qScriptDisconnect() functions, so that + a signal can be connected to a script function from C++. + +- QScrollArea + * Fixed an issue with child widgets with heightForWidth sizing behavior. + +- QScrollBar + * [178919] Fixed a bug where the slider kept moving after the mouse button was released. + +- QSemaphore + +- QSettings + * [199061] Don't use more permissions than we have to, when opening the registry. + * [142457] Preserve the order of keys in .ini files when regenerating them. + * [186232] Unix and Mac OS X: OR the needed permissions flags with the + default flags (instead of overriding them). + * [184754] Hande out-of-disk-space condition more smoothly, by keeping the + old .ini/.conf file if possible (instead of trashing it). + * [189589] Don't create empty directories when accessing QSettings read-only. + * [182712] Added QSettings::setDefaultFormat(), defaultFormat(), and + format() to give more control over the format of QSettings objects + created using the default constructor. + * [183068] Added QSettings::scope(), applicationName(), and + organizationName() for retrieving the values passed to the constructor. + +- QShortcut + * [141646] Add ShortcutContext::WidgetWithChildrenShortcut context, for shortcuts + which are valid for a widget and all it's children. +- QSize + * [172712] Fixed bug in QSize::scale() when passing INT_MAX as height and + KeepAspectRatio as mode. + * [191533] Fixed bug in QSize::scale() where scaling a size with zero + width or height would cause a division by zero. + +- QSizeGrip + * [193199] Made the size grip always respect height-for-width on all + platforms. + * [161173] Fixed a bug causing the size grip to be visible when it shouldn't be. + * [184528] Windows: Fixed a bug causing a mouse press event not to be sent. + * [193350] Fixed a bug with QVBoxLayout. + +- QSlider + * [180474] Fixed regression causing a tick mark not to be shown at the max value for + certain common cases. + +- QSocketNotifier + +- QSortFilterProxyModel + * [162503] Call mapToSource when mapping from proxy to source indexes. + * [146684] Allow the original order of the source model to be restored. + * [199518] Don't assert if the source model emits unbalanced change signals. + * [202908] dropMimeData incorrectly maps when row is rowCount(parent). + +- QSpinBox + * [157520] Adopt the special value text when the value is explicitly set to the + minimum value with the keyboard + * [164696] QWidget::locale() is now used for all string-to-number conversions. + +- QSplashScreen + +- QSplitter + * [169702] Respect the minimum size of widgets. + * [187373] Ensure that widgets are properly initialized before being added to a QSplitter. + +- QSql + +- QSqlDatabase + * [129992] Make it possible to retrieve the connection name from a connection. + Use the connectionName() function. + + * [143878] Give a warning if there is no QCoreApplication instance (required + when using a plug-in driver). + +- QSqlDriver + * [141269] Add support for asynchronous database event notifications. + +- QSqlQuery + * [157397] Set an error if QSqlQuery is used with an invalid database + connection. + + * [122336] Support queries returning multiple result sets. Use the + nextResult() function. + + * [149743] Fixed bug where seek() to a record which was not the next one + returned true, but the data could not be retrieved. + + * [186812] Improved error handling for exec(). + +- QSqlQueryModel + +- QSqlRelationalTableModel + +- QSqlTableModel + * [160135] Emit headerDataChanged when removing rows when using the + OnManualSubmit edit strategy. + +- QSslCertificate + * [186791] Fixed wildcard support in QSslCertificate::fromPath(). + +- QSslCipher +- QSslError +- QSslKey + +- QSslSocket + * [190133] Fixed security hole in certificate verification. + * [186077] Fixed bug in ASN1 time parsing. + * [177375] Added support for peer verification. + * [191705] Fixed crash on remote disconnect. + * [177285, 170458] Enabled run-time resolving of OpenSSL libs also in + static Qt builds. Enabled by default, with configure option to force + (static) linkage. + +- QStackedLayout +- QStackedWidget + * [124966] Honor QSizePolicy::Ignored in pages like we did in Qt 3. + +- QStandardItemModel + * Improved general performance + * [133449] Improved setData() performance + +- QStatusBar + * [194017] Ensure that explicitly hidden Widget in the status bar stay invisible. + +- QString + * [202871] QString::sprintf() crashed with size_t format. + * [193684] Optimized common case in QString::replace(int, int, QString). + * [190186] Handle multiple-digit %n args in QString::arg(QString, + QString, ...) gracefully. + +- QStringListModel + * [158908] Add MoveAction to the default supportedDropActions + * [180184] sort() was not updating the persistant model index's + +- QStyle + * [127923] All implementations of QStyle::subControlRect() now respect QStyleOption::rect for + spin boxes. + * Added SH_SpinBox_ClickAutoRepeatThreshold which used to be hardcoded in QAbstractSpinBox + +- QStyleOption + +- QSvg + * [185844] Fixed parsing of the gradientUnits attribute to support + objectBoundingBox for gradients. + * [161275] Fixed parsing of repeatCount attribute for animateColor + and animateTransform tags. + * [176835] Fixed a memory leak in QSvgGenerator. + * [182196] Fixed problem in QSvgGenerator which would cause gradient + fills to be stored as images instead of using native SVG gradients. + * [187994] Always encode generated SVGs in UTF-8, and specify that + in the xml tag. + * [188847] Fixed a crash when an SVG file contains empty url keywords. + * [190936] Ensure properly sized viewport and viewbox, even when + the paint device does not have a size (such as QPicture). + * [191353, 192220] Fixed a couple of floating point exceptions occuring + when rendering certain SVGs containing curved paths. + * Added correct default attribute values for SVG gradients. + +- QSyntaxHighligher + +- QSystemTrayIcon + +- QTabBar + * [182473] Fixed a bug causing the tabs to stay unchanged after calling setElideMode(). + +- QTableView + * [192919] Drag-selection from QTableView now respects single-selection mode. + * [172201] Painting errors when there are multiple regions that overlap that need to be painted. + * [148565] setSpan() and other spanning operations is slow when there are a lot of spans. + * [186431] Fix bug in wrapping to the next/previous line while doing cursor navigation. + * [189251] corner widget is hidden with header, but not unhidden + * [196532] Fixed bad repaint with hidden header and scrollPerItem. + * [158258] Add clearSpanns() function. + +- QTableWidget + * [255512] Add function to allow setting the current item without selecting it. + +- QTabWidget + * [159433] Emit currentChanged() when the first tab is created. + * [171464] QTabWidget::minimumSizeHint() now respects the orientation. + * [188357] Fixed a bug causing the corner widget to be displayed incorrectly. + +- QtAlgorithms + * [304394] qBinaryFind() can potentially end up in an infinite loop with large collections + +- QTcpSocket + * [149200] Fixed crash when using QTcpSocket without constructing + Q(Core)Application. + +- QTemporaryFile + * [192890] Fixed resize bug on Windows. + * [194130] Fixed creation of temp files in toplevel directories on + Windows. + +- QTextBrowser + * [166040] Detects the right format when calling setText() severals times. + * [177036] Fix handling of encoded urls. + * [169621] Fixes clearHistory() removes all history items except the first, + while it should keep the last entry. + * [176042] Fix selectAll to sometimes show focus frames instead of selected + text. + +- QTextCodec + * [169065] Make calling QTextCodec::setCodecForLocale() with NULL + reset codecForLocale() to the default, instead of causing a crash. + * [167709] Improved support for cp932 codec. + * [185085] Make sure every codec has a unique mibEnum + * Added UTF-32 codecs + +- QTextCursor + * [179634] Fixes loosing of x position when using vertical navigation + in a not yet fully layed out document. + * [178499] Add functionality to interpolate inside the glyph size if it + takes multiple characters to decide on the position. + * [182914] '/' is now considered a word separator. + * Faster QTextCursor::blockNumber(). + +- QTextDecoder + +- QTextDocument + * [135133] Add proper support for the background attribute of HTML + tags, which enables specifying background images. + * [148847] Add support for padding-left, padding-right, padding-top, + and padding-bottom for table cells in the HTML import. + * [169724] Added API for changing the indent width in a QTextDocument. + * [173258] Fixed bug in text layout of tables with row spans and + empty cells. + * [174405] Added support for the border-width css property in the HTML + import. + * [176162] Fixed bug in HTML import which would cause block properties + of empty paragraphs to be transfered to following paragraphs. + * [179330] Fixed performance problem when a maximum block count is reached + which caused the whole document to be relayouted. + * Numerous fixes in the import of malformed HTML. + * QTextDocument::print() now preserves formats set by a syntax highlighter. + * Added QTextDocument::firstBlock() and lastBlock() for convenient iteration + * Added QTextDocument::undoCommandAdded() signal. + * [189691] Fixed bug in HTML image tags showing in incorrect width/height + when only one was provided. + * [193122] QTextTable::removeRows() correctly removes one row after a + mergeCells() + * [55520] Fix bi-directional text showing correctly when mixed with tabs. + * [170376] Fixes text layout QTextLine::setNumColumns(1) combined with + alignment not left + * [177024] Fixed bug in definition of ¤t; entity. + * [176898] QTextDocument loses UndoRedo stack when setting it on QTextEdit by + calling QTextEdit::setDocument() + * [180657] QTextDocument::documentSize() returns an incorrect width when there + is a long line with only spaces. + * [180430] Stop compression of space after an image tag. + * [154330] Implement Right, Justified and Center tabs and make Left tabs + behave as expected in all cases. + * [196744] Fixes colspan making a table cell multiply given user width. + * [197769] Fixed wrong modified state while undo/redo. + * Added QTextDocument::findBlockByNumber() and QTextBlock::blockNumber(). + * Added QTextDocument::revision() and QTextBlock::setRevision()/revision(). + * Added QTextBlock::setVisible()/visible() and QTextCursor::setVisualNavigation()/ + visualNavigation(). + +- QTextDocumentFragment + +- QTextEdit + * [80240] Fixed text color bug when creating a text edit with a disabled + parent widget that is then reenabled. + * [104778] Added convenience functions for getting/setting the background + color of text. + * [150562] Wrap correctly the text in a <table> when the flag + WrapAtWordBoundaryOrAnywhere is set. + * [165610] Fixed bug where a text fragment's underline would be drawn + too long. + * [166486] Fixed bug which caused the cursor to not be shown when + setting the cursor flash time to 0. + * [190852] Fixed a bug which caused the font sizes in tables to be wrong + in QTextEdit documents exported to HTML. + * Many performance improvements + * [190723] Fix problem where the bullet might disappear if there was an + extra selection selecting the word next to the bullet. + * [182200] Make the selectionChanged signal be emitted when pressing + "Ctrl+A" and there is already a selection present. + * [188589] Fixes regression in QTextEdit::keyReleaseEvent where it makes + the release events not be ignored when unused. + * [175825] Allow stopping auto-scrolling feature by moving the cursor + to a position other then the last position. + * [177151] Fix the "Copy Link Location" is always disabled in context + menus created with createStandardContextMenu() + * [182180] The value of cursor width desktop settings on windows is now + respected. + * [108739] Added DnD scrolling and made selection scrolling smoother. + * [202319] More precise QTextEdit::cursorRect(). + * [181572] Accept Key_Up and Key_Down ShortcutOverride events. + +- QTextFormat + * Fixed bug which caused QTextCharFormat::font() to return a wrong font + after changing font-unrelated properties in QTextCharFormat. + * [181177] Fix text directionality changing. + +- QTextLayout + * Support WrapAtWordBoundaryOrAnywhere with QTextLine::setColumns. + * [188594] Make nextword and previous word be more synchronous by making + them stop at the same word boundaries. + +- QTextStream + * [178772] setCodec() take effect immediatly even on open stream. + * [180679] Implemented AlignAccountingStyle. + * Add UTF-32 autodetection + +- QTextTable + +- QtGlobal + * [186969] Fixed theQT_NO_WARNING_OUTPUT define to work properly. + * qFuzzyCompare() is now part of Qt's API and is public. + +- QThread + * QThread is no longer abstract. The default implementation of + QThread::run() function now calls QThread::exec(). + +- QThreadStorage + +- QTimeEdit + +- QTimeLine + * Add CosineShape. + +- QTimer + +- QToolBar + * [159715] If the main window is to small to contains the extension, show it in a menu. + * [179202] Toolbars can be resized by dragging them with the mouse. + * [175325] Changing toolButtonStyle on floating toolbars is handled correctly. + * [187996] Ensure that invisible action are invisible in the toolbar. + * [191727] Fix layouting issue with widgets on the toolbar. + +- QToolBox + +- QToolButton + * [QToolButton] Emit triggered(QAction*) on the activation of the default action even if + triggered from the menu. + +- QToolTip + * [183679] Fixed problem of tool tip being closed when pressing certain keys. + * [191550] Fixed a regression causing the palette not to be updated after calling + QToolTip::setPalette. + * Added functions text() and isVisible(). + * Fixed QToolTip::showText() with rectangle, it always created a new tip. + +- QTransform + * [178609] Fixed division by zero in QTransform::mapRect when passing an + invalid QRect. + * Fixed problem with QTransform::inverted() returning the identity matrix + for transforms with a low scale factor. + +- QTranslator + * [168416] Make it possible for QTranlator to open qm files generated with msgfmt. + (regression from Qt3) + +- QTreeView + * [41004] Deleting a directory will delete all of its children. + * [174627] Moving left towards a custom root index now works correctly. + * [154742] Add property to hide the header + * [166175] Improve the performance of hide() and isHidden() + * [166175] Improve the performance of expanded() and isExpanded() + * [181508] adding a row to a item that is visible and not expanded wont update the '+' + * [179635] Incorrect row height if column with a multi-line item is not visible when tree is first shown. + * [187745] When the context key is pressed first check for a micro focus, but if that isn't valid then go to the mouse cursor position. + * [188862] Crash if a parent index of the root index in the view is removed + * Improving performance by reduce the number of calls to model->parent() + * [167811] Improve insertion speed + * [192104] scrollTo(PositionAtCenter) can scroll beyond the item if item is at 0 + * [168237] Fixed selection when using SelectItems selection behavior and ExtendedSelection selection mode. + * [171902] Expansion is not managed correctly when the 1st column is hidden. + * [130628] Add expandsOnDoubleClick property. + * [189956] Make scrollTo() scroll correctly when the scrollHint is PositionAtBottom. + * [185068] Update editor geometries when columns are moved. + * [120922] Mac OS X: Improved the selection behavior. + * [197650] Fixed spanning items in "right to left" layouts, or if the first column is + moved in another position. + * [204726] Don't assert when sorting an unchanged tree. + * [185994] Introduce a style hint that describes how the view should treat empty areas. + +- QTreeWidget + * [172685] When setting flags don't do anything if the new flag is the same as the old. + * [162736] Fixed potential slowness in QTreeWidget::isItemSelected() + * [167811] Improve insertion speed + * [255512] Add funtion to allow setting the current item without selecting it. + * [183566] Make rows containing widgets resize correctly. + * [189071] Make it possible to disable drop dirrectly on the viewport. + * [192840] Only paint disabled cells as disabled, not the entire row. + * [191329] The checkable items are now checkable even in RightToLeft mode. + +- QTreeWidgetItemIterator + * [172275] Optimize QTreeWidgetItemIterator to not query various states + unless the user explictly specified the corresponding flags. + +- QUdpSocket + +- QUndoStack + * [143285] Added API to access individual commands in the undo stack. + +- QUrl + * [162669] Fixed bug in QUrl::setAuthority() when input ends with a digit. + * [199967] Fixed a regression from Qt 4.4.0 Technical Preview 1 + that caused isEmpty() to return true on non-empty URLs in some cases. + +- QValidator + +- QExplicitlySharedDataPointer + * A new reference counting pointer which doesn't perform copy on write. + +- QVariant + * [186447] Do not call qFatal() when QVariant::load() enconters a UserType + that's unknown to the meta object system. + * [170901] Compare values _and_ keys in QVariant::operator==() when + applied to maps. + +- QVarLengthArray + * [177708] Fix crash in QVarLengthArray::append() for types with a + non-trivial constructor (e.g., QString). + +- QVector + * [161376] Fix unitialized read reported by Valgrind in QVector<T> for + sizeof(T) < 4. + +- QWaitCondition + * [106086] Add support for QReadWriteLock to QWaitCondition::wait(). + +- QWidget + * [323] Add the Qt::WA_ShowWithoutActivating attribute, which can + be used to show a window without activating it. + * [176809] When using the Qt::PreventContextMenu policy, the + context menu key should be sent to the widget (instead of + consuming the event). + * [83698] Introduce QWidget::setWindowFilePath() that allows setting a + proxy icon on the mac and sets the window title if the window title + hasn't been set previously. + * X11/Win: Added support for non-native child widgets. + * [173044] Added support for rendering widgets before they are shown. + * [152962] Fixed a bug causing the widget to repaint itself twice when calling show(). + * Added a render() overload taking an arbitrary QPainter. + * [183466] Fixed a bug where the mouse button release event was sent to wrong widget + when having a mouse grabber. + * [177605, 171333] Windows: Fixed a bug causing painting artifacts when using the + Qt::WA_PaintOnScreen attribute. + * [141857] Fixed a bug causing painting artifacts when using the Qt::WA_OpaquePaintEvent attribute. + * [198794] Fixed wrong calculation of the target offset in render(). + * [180009] Fixed order dependency of setWindowFlags() and setWindowTitle() on Windows. + * [155297] Avoid crash in QWidget::setLayout() if the layout already has + a parent. + +- QWidgetAction + * [193061] Fixed setEnabled that has no effect. + +- QWindowsStyle + * [162326] Removed a warning when rendering to small rectangles. + +- QWindowsXPStyle + * [189527] Fixed incorrect tab indentation on XP/Vista styles. + * [177846] Fixed setAutoRaise beeing ignored for tool buttons. + * [168515] Allow changing the background color of a disabled spinbox. + * [165124] Fixed context help button beeing ignored for QMdiSubWindows. + +- QWindowsVistaStyle + * [164016] More native menu borders on Vista. + * [168611] Allow progress bar animation to complete after reaching 100%. + +- QWizard + * [177022] Respect the minimum and maximum size. + * [189333] The (re)size behavior is now correct for Windows Me. + * [183550] Fixed wrong stretch factor for a wizard page in the interal layout. + * [166559] Honor isAcceptableInput(). + * [170447] Make sure that the virtual QWizard::nextId() function is + called from QWizardPage::isFinalPage(). + +- QWizardPage + +- QXmlStreamReader + * Added convenience function prefix() to the reader and the attributes, previously + we only had name() and qualifiedName(). + * Added more DTD reporting. + * Added QXmlStreamEntityResolver for undeclared entities. + * [179320] Fixed wrongly reported premature end of document for non-recoverable errors + * [192810] Fixed namespace declarations in DTD attribute lists. + * Add UTF-32 autodetection + +- QXmlStreamWriter + * Improvements to conformance to XML 1.0 + * Added autoFormattingIndent property to customize the auto-formatted output. + * [18911] Fixed auto formatting for XML comments. + +- QXmlStreamWriter + * Added autoFormatting() property which controls whether the output should be indented + for readability. + +- QXmlSimpleReader + * [201459] That the class is not reentrant, has been documented. + * Add UTF-32 autodetection + +- Q3ButtonGroup + * [198864] Fixed bug that caused Q3ButtonGroup::insert() to generate wrong + (typically non-unique) ids. + +- Q3DateEdit + +- Q3DockWindow + * [173255] When docked, relayout improved when the content is changed. + +- Q3FileDialog + * [200264] Fixed the "QObject: Do not delete object, 'unnamed', + during its event handler!" warning found in the 4.4.0 beta. + +- Q3GroupBox + +- Q3ImageDrag + * [184521] Q3ImageDrag::canDecode() will now return true for image data that can be decoded. + +- Q3ListView + * [127037] Q3ListView::paintCell() now uses the viewport's background role. + +- Q3MainWindow + * [176544] Q3MainWindow::setDockEnabled() no longer adds dock windows that are already there. + * [176129] Q3MainWindow::setUsesBigPixmap now works. + +- Q3PopupMenu + * [177490] Fixed regression causing activated and highlighted signals to be + emitted multiple times. + +- Q3ScrollView + +- Q3SqlCursor + +- Q3Table + * [171801] Fixed a graphical error in Q3CheckTableItem. + * [196074] Fixed a crash when using Q3Table and Q3ComboTableItem together + with stylesheets. + +- Q3TextEdit + * [197033] Fixed "select-and-copy" on X11 + +- Q3Toolbar + * [171843] QComboBox in a Q3Toolbar was generating warnings + +- QSvgWidget + * Support for xml:space + +- QWhatsThis + [177416] Fix sizing hints when using rich-text. + +- Qt Style Sheets + * [163429] Stylesheet backgrounds now work on Mac. Note that there are + still issues with stylesheets on that platform. + * [169855] Setting a style sheet with gridline-color on QTableView now + works correctly. + * [182917] :hover no longer applies to disabled widgets. + * [184867] Several speedups to stylesheet parsing. + * [188344] Style sheets no longer reset font settings. They now + take precedence over manually set font settings, and will leave other + settings alone. The font is restored to the manual settings if + the style sheet is removed. + * [188702] Fixed a bug where QLineEdit would not react to the :focus + pseudo state. + * [190422] Fixed a bug where the width of QSpinBox subcontrols would not + be properly respected. + * [190423] Fixed a bug where gradient backgrounds were not shown correctly + in QComboBox. + * [191189] Fixed a bug where classes derived from QDialog by more than two + levels (QDialog -> MySubClass -> MySubSubClass) would not receive the + styled background. + * [191216] Menus with a background color will now be rendered using the + native style. + * [191822] Fixed a crash in subElementRect when widget pointer is null. + * [192374] An offset ::tab-bar element no longer offsets scroll buttons. + * [192535] Fixed a bug where a QComboBox would not always draw its + dropdown button when styled. + * [192655] Fixed a bug where it was sometimes impossible to toggle a + styled, checkable menu item. + * [199912] QHeaderView no longer collapses to zero contentsRect if size + is not specified. + +**************************************************************************** +* Database Drivers * +**************************************************************************** + +- Interbase driver + * [185482] Fixed bug where data corruption occurred when inserting data into + numeric fields on some platforms. + + * [156090] Fixed bug where the connection information was always assumed to + be Latin1 encoded. + +- MySQL driver + * [190311] Fixed bug where fetching BLOBs with a prepared query would fail + if the second BLOB was larger than the first. + + * [184354] Implement QSqlDriver::escapeIdentifier() allowing reserved words and + white spaces in table and column names. + + * [129925] Communicate with the database using UTF8 encoding for MySQL + versions >= 4.1.13 and < 5.0.0. This makes the behavior consistent with MySQL + versions >= 5.0.7. + +- OCI driver + * [167644] Set an error when failing to start a transaction in addition to + printing an error. + + * [177054] Fixed bug that caused QSqlField::length() to always return 38 for + non-numeric fields. + + * [141706] Added support for the using the hostname and port number provided by + QSqlDatabase. This makes it possible to connect to Oracle databases without + a tnsnames.ora file on the client. + +- ODBC driver + * [164680] Don't crash when updating a view displaying a model after the + database connection has been closed. + + * [166003] Use SQLFetch() if SQLFetchScroll() isn't supported in the driver. + + * [116534] Allow closing cursor without destruction of QSqlQuery object. Use + QSqlQuery::finish(). + + * [181039] Added support for a connection option to instruct the driver to + connect as an ODBC 3 application; SQL_OV_ODBC3. This is needed in order to + make the QODBC driver work with some ODBC drivers. + + * [176233] Connection options are no longer case-sensitive (according to the + ODBC standard). + + * [178532] Fixed bug where binding bools would fail. + + * [176231] Support passing the username and password as part of a connection string + instead of using QSqlDatabase::setUserName() and QSqlDatabase::setPassword(). + + * [141822] Support the SQL_GUID type. + + * [187936] Improved support for the Linux Easysoft ODBC driver. + + * [165923] Improved error handling. + +- SQLite driver + * [174340] Bind QVariant::UInt as int64 instead of string. + +- PostgreSQL driver + * [152770] Support prepared queries natively for PostgreSQL 8.2. + + * [164233] Fixed bug where QSqlDatabase::primaryIndex() would fail if the + table name was used in multiple schemas. + + * [168934] Make a real error message available when failing to connect to a + database. + + * [150373] Added support for NumericalPrecisionPolicy, allowing the user to + instruct the driver not to return NUMERICs as strings. + +- DB2 driver + * [189727] Fixed bug where fetching the fields in a row multiple time would + fail unless the fields were fetched in order. + + +**************************************************************************** +* QTestLib * +**************************************************************************** +* The display is now enabled on Mac OS X just before a test in run and qtestlib will ensure + the application under test is the "front process" if it is a GUI application. + +**************************************************************************** +* QDBus * +**************************************************************************** + +- Library + * [195515] Fixed a bug where the Qt application would crash if it + tried to send some types of messages after the connection to the + bus was broken. + * [188728] Fixed a freeze caused by connecting to a slot that did + not exist + +- Viewer + +**************************************************************************** +* Platform Specific Changes * +**************************************************************************** + +MIPS Linux + * [188320] Build Qt/X11 with FPU support, breaking binary + compatibility; see "Important Behavior Changes" below. + +X11 +--- + * Improved GNOME platform detection. + * [193845] Improved support for KDE palette settings. + * [179200] Fixed an issue where Qt would print "QProcess: Destroyed + while process is still running." when using Cleanlooks. + * [155704] Fixed a bug where widgets with MSWindowsFixedSizeDialogHint + flag would be minimized when their parent QMainWindow was minimized. + The MSWindowsFixedSizeDialogHint is now ignored on X11. + * [153155] Make it possible to bypass g_thread_init() and have the + Unix event dispatcher be used in threads instead by setting the + QT_NO_THREADED_GLIB environment variable. + * [157807] Fix an inefficiency in the Glib dispatcher's + timerSourcePrepare() implementation. + * [158332] Fix a bug where text/uri-list drops from Qt 3 would + append a single, empty url to the uri-list. + * [166097] QWidget::show() no longer resets the WM_TRANSIENT_FOR + property if the Qt::WA_X11BybassTransientForHint attribute is + set. + * [166097] QWidget::show() no longer resets the _NET_WM_STATE + property. Qt now merges its own state with any previous state + set by the application programmer. + * [168285] Fixed QDrag to correctly reset the override cursor. + * [17566] Don't impose FD_SETSIZE limit when using the Glib event + dispatcher. + * [171513] Fixed a bug where an application would take up 100% CPU + after starting a QDrag. + * [184482] Fixed QApplication::setOverrideCursor() to not change + the cursor for the root window. + * [185048] Fixed a bug where calling QClipboard::set*() + immediately after QClipboard::clear() would result in the + clipboard staying cleared. + * [182840] Fixed a bug where QApplication::mouseButtons() would + sometimes report the wrong state. + * [173328] Fixed QEventLoop::exec(ExcludeUserInputEvents) to not + consume 100% when using the Glib event dispatcher. + * [179536] Make QEventLoop::X11ExcludeTimers work as expected with + the Glib event dispatcher. + * [182913] Qt will now always look for the _MOTIF_DRAG_WINDOW + property on screen 0 (instead of the default screen). + * [187752] Fixed a bug where calling show() and hide() on a window + before the event loop starts would prevent the window from ever + being shown. + * [189045] Reset the keyboard and mouse grabs to the current + grabber when the last popup is closed. + * [167707] Add support for all known _NET_WM_WINDOW_TYPE_* types + via QWidget::setAttribute(). The attributes follow the + Qt::WA_X11NetWmWindowType* naming scheme. + * [172623] Don't create a pipe in the Glib event dispatcher (as it + is not necessary). + * [192871] Fixed a regression found in the 4.4.0 snapshots that + broke QX11EmbedContainer. + * [192526] Similar to 170768 below, fixed the spin locking in the + QAtomic* implementation for 32-bit SPARC processors to yield + instead of busy waiting. + * [194566] Fixed a bug found in the 4.4.0 snapshots that would + always cause the cursor to change when QWidget::setCursor() was + called on a widget that was not under the mouse. + * [173746] Fixed a bug in QDialog that would cause the "What's + This?" popup menu to appear on the wrong X11 screen. + * [187965] Fixed a bug where moving a widget that is hidden could + cause the positioning to be incorrect. + * [160206] Fixed some bugs in QX11EmbedWidget and + QX11EmbedContainer to provide minimal support for multiple + containers and multiple embedded widgets in the same + application. + * [182898] Fixed a crash in Motif Drag-and-Drop support when the + _MOTIF_DRAG_WINDOW property is missing. + * [183477] Fixed a bug that would cause a window to disappear + after restoring it with QWidget::restoreGeometry(). + * [163507] Fixed a couple of memory errors reported by valgrind. + * [192654] Fixed drag-and-drop of more than one URL (using the + text/uri-list mime type) between applications. + * [198709] Fix QDesktopWidget to not report overlapping screens on + servers with Xrandr 1.2. + * [146336] On UNIX systems without CUPS support, the + $HOME/.printers is now checked for a default printer. + * [185864] Allow Qt to find the OpenSSL libraries dynamically even + if the libssl.so file is not present. + * [168283] Set WM_WINDOW_ROLE directly from QWidget's windowRole() property. + * [187660] Implemented rotation for tablets on non-Irix X11 platforms. + * [192818] Fixed drawing shapes with a textured brush that had an offset. + * [133291] Fixed slow line drawing when using dashing under X11. + * [183070] Make it possible to filter events for overlay widgets in OpenGL + under X11. + * [176485] Make drawing text through FreeType beyond the SHORT_MIN/MAX + coordinate range work. Note that this won't work for XLFD based fonts. + * [182264] Fixed a crash in QClipboard::setMimeData() when several + clipboards share the same QMimeData instance. + * [182264] Copying rich-text contents of a QTextEdit and pasting + them to an editor that accepts rich text didn't work. + +- QPrintDialog + * [128956] Fixed a bug which caused the print dialog to become hidden + while the overwrite dialog was shown. + * [192764] /etc/printcap with blank lines is now correctly parsed. + * Redesigned the print dialog and pagesetup dialog to be much nicer. + +- QPrinter + * [148125] Switched to printing through the CUPS API. This should fix the + problem where the wrong lp/lpr command was picked up, and therefore + printed through the wrong print system. If CUPS is enabled at compile + time, it will always be used if available. + * [161936] lp no longer outputs job ID to the console when printing. + * [180669] QPrinter no longer crashes if the CUPS library cannot be found. + +Windows +------- + * [185702] Fixed qatomic_windows.h to properly forward declare the + _Interlocked*() functions to avoid conflicts with other headers + that also use these functions. + * [183547] Replaced scalar delete with array delete in windows socket engine. + * [190066] Fixed setting spinbox and combobox bgcolor with stylesheets on Vista. + * [197055] Fixed a stylesheet background issue with TextEdit on Vista. + * Black regions are no longer exposed when resizing windows on Vista using Aero. + * [172757] Respect system font changes on Windows. + * [194803] Pass the keyboard modifiers in QTabletEvent on Windows. + * [194089] Avoid adding the current screen point when translating tablet events on Windows. + * [187712] Fixed QT_WA() macros to use correct windows version in static builds. + * [183975] Handle 'Win+M' key while showing modal dialogs. + * [187729] Fixed incorrect focus behavior when main-window is shown minimized. + * [187900] Increased area for scrolbar thumb dragging. + * [180416] Fixed incorrect command line parsing on windows. + * [169703] Fixed Drag & Drop returning Invalid data. + * [181816] Fixed drawing ClearType text into a QImage with the Format_ARGB32 format. + * [123455] Make QWidget::numColors() return something useful for widgets that's not + been shown yet. + +- QApplication + * [167897] Fixed a bug where QApplication would treat single quotes + as a quote to signify the end of an argument. + +- QFileDialog + * [173402] Fixed wrong sort order if cou reopen a file dialog. + * [178279] Be more smart for enabling or disabling the open button. + * [178897] Fixed QFileDialog minimym size while very long path are in the history. + * [181912] Not following folders that are symlinks. + * [187959] Change the button caption from "save" to "open" when selecting a folder + in a save dialog. + * [196062] HANDLEs are now freed when searching the paths. + * [198049] Selecting a file in the completer would display the full path rather then just the file name if it was in the current directory. + +- QDesktopServices + * [194046] Fixed support for percentage encoded URL strings with openUrl(). + * [172914] Fixed an issue where openUrl() would incorrectly return true + after failing to open on Windows. + +- QFileSystemWatcher + * [170021] Make it possible to monitor FAT32 directories. + +- QFont + * Use Harfbuzz instead of Uniscribe for complex text shaping enabling support of a broader + range of writing systems on all Windows versions. + +- QKeySequence + * [187917] Fixed incorrect standard shortcut for PreviousChild. + +- QListView + * [183299] More native appearance on list view selection backgrounds. + +- QLocale + * [139582] An unrecognized LANG environment variable will now make QLocale + fall back to the Windows locale, instead of the C locale. + +- QMenu + * [140954] Fixed an issue where pressing the Alt-key would not correctly + show and hide menu accelerators. + +- QMutex + * [179050] Fixed a bug that cause a warning on startup from QMutex + running an application build with MinGW on Windows 9x. + +- QPrintDialog + * [183448] Fixed a bug where the print-to-file setting would remain stuck + even after disabling it in the dialog. + +- QPrinter + * [185751] Fixed a crash in QPrinter if QPainter.begin() failed. + * [191316] Fixed a crash when using certain nonstandard printer drivers. + +- QScriptEngine + * [182241] Fixed a bug that caused qScriptValueFromQMetaObject() to generate + the wrong script constructor function with VC6. + +- QSyntaxHighlighter + * Added QSyntaxHighlighter::currentBlock(). + +- QSystemTrayIcon + * [189196] Fixed showMessage timeout interval being ignored on windows. + +- QTimer + * [179238] Make QTimer behavior consistent with UNIX by not + allowing them to fire recursively. + * [188820] Fixed a bug found in the 4.4.0 snapshots that caused + menu effects to "freeze." + +- QWizard + * [180397] Fixed crash resulting from AeroStyle being assumed even when some of the required + symbols were unresolved. + +- ActiveQt + * [198021] Optimized QAxHostWidget::paintEvent(), the painting code is required only when the + widget is being grabbed. + * [191314] Support browsing of ActiveQt controls in Microsoft Visual Studio. + * [190584] Support for large strings in code generated by dumpcpp. + * [190538] Fixed incomplete function declarations generated by dumpcpp. + * [90634] Support for 2D safe arrays. + * [158785] Support for ActiveX control initialization using stored data. + +Mac OS X +-------- + * [168290] Input Methods can now be used on windows of type Qt::Popup. + * [195099] Fixed a problem with posted an event to quit in one thread to + another thread would not quit the other threads loop. + * [193047] Extend support for all the function keys on a standard Apple keyboard. + * [193096] QtUiTools_debug.a is now included in the debuglibraries binary package. + * [141602] pixeltool is also included in the binary package. + * [188580] Respect the LSUIElements key in an application's Info.plist. + * [188267] Ensure that qAppName() checks CFBundleName before using the executable name. + * [183464] Fix "wrong clippboard content" issue. + * [189587] Prevent triggering menu shortcuts when showing native dialogs. + * [174769] Add separator above the "Preferences" menu item in the application menu. + * Some fixes to color space handling to ensure that the display color space is used when + drawing items to the screen (and printer). This works even if the display has a non-standard colorspace. + * Apply a fix so that programs using the sqlite plugin and built on Mac OS X 10.5 will run on older versions of Mac OS X. + +- QAction + * [196332] Make actions with ApplicationSpecificRole get merged in all cases. + +- QApplication + * [180466] Ensure that non Qt Windows get an activate. + * [171181] QApplication no longer send key events to disabled widgets. + +- QContextMenuEvent + * [161940] Implement support for QContextMenuEvent::modifiers() + +- QImage + * [182655] Switch off antialiasing when drawng to 1bpp images on Mac + +- QMainWindow + * [171931] Fix crash when calling addToolBar while the user is dragging toolbars. + * [191544] Fix unified toolbar size constraint issues. + +- QMime + Implement text/html for cutting and pasting. + +- QPixmap + * QPixmap no longer breaks CGImageRef's immutability. + +- QPushButton + * [183084] QPushButton will no longer change appearance between mini, small, and large + according to the size of it's contents. This behaviour can be switched on by using + WA_MacVariableSize. + * [172108] Unset the mnemonic if setText() is called with no &. + +- QPrinter + * [189182, 194085] Querying printer properties on Mac now works after QPainter::end(). + +- QSettings + * Fixed QSettings::sync() spurious error on Mac OS X 10.5. + * Improved the Mac .plist serialization so that it doesn't generate + needless one-element CFArrays. + +- QTextCodec + * Fixed "System" locale codec on little-endian Mac OS X (Intel). + +- QTextEdit + * [176378] Make selections be shown full-width. + * [182243] Fix a regression where text editing widgets would insert command-keys that weren't shortcuts. + +- QWidget + * [197087] Make masks work correctly for splashscreens and popups on Leopard. + * [167974] Fix offset issue when seMask() was used in combinatiojn with Qt::FramelessWindowHint. + * [192527] Fix a regression where Cmd+MouseButton on a window icon no longer sent a QIconDragEvent. + * [179073] WA_MacMiniSize and MA_MacSmallSize have an effect on the default fonts for a widget. + * [175199] Ensure sheets that later become normal windows have the correct opacity. + * [139002] Ensure macEvent() is called. + +- QCoreGraphicsPaintEngine + * Implement Porter-Duff operations. + +- QPageSetupDialog +- QPrintDialog + * Make both these dialogs sheets if they are given a parent. + +- Q3ComboBox + * Make up/down arrows work when the popup is closed. + + +Qt for Embedded Linux +--------------------- + + - Screen drivers + * LinuxFB: Improved support for BGR framebuffers + * LinuxFB: Added 12, 15, 18 and 24 bit pixel depth detection. + * AHI: New driver using the ATI Handheld Interface library. + * DirectFB: New driver using the DirectFB library. + * SVGAlib: Add support for 4 and 8 bit mode. + * SVGAlib: Fixed the background color for 16 bit mode. + * Transformed: Fix bug preventing driver to load as a plugin + * VNC: Added support for the client cursor pseudo encoding. + * Added QProxyScreen, a class for simplifying proxy based screen drivers. + Currently used by the VNC and Transformed screen driver. + * Added framework for letting the screen driver control the QPixmap + implementation. + * [194139] Fixed background initialization in a multiscreen environment. + * [195661] Fixed disappearing mouse cursor in a multiscreen environment. + + - Mouse drivers + * Made the Yopy, VR41xx, PC, LinuxTP, and Bus drivers available as plugins. + * [194413] Fixed missing newline when writing the calibration file. + * Configurable double-click jitter sensitivity through the + QWS_DBLCLICK_DISTANCE environment variable. + + - Keyboard drivers + * Made the SL5000, USB, VR41xx and Yopy drivers available as plugins. + + - Decoration drivers + * Made the Styled, Windows and Default decorations avaiable as plugins + + - Demo applications + * Added embeddedsvgviewer, styledemo & fluidlauncher applications to + demos/embedded to demonstrate Qt/Embedded on small screens (QVGA/VGA). + Fluidlauncher is used to launch the demos. + * Modified the existing pathstroke & deform demos to add a -small-screen + command line option to optimize layout for small screens (QVGA/VGA). + + - Windowing system + * Removed redundant blits to the screen. + * Fixed a bug in QWSWindowSurface preventing the Opaque property to be used. + * Fixed a bug making the window surface valid when the + windowEvent(QWSServer::Hide) signal is emitted. + * Fixed a crash when no mouse driver is installed. + * Fixed bug where QWSWindow::name() would be incorrect unless + setWindowTitle() was called. + * Allow normal windows to be raised above full screen windows. + * [179884] Fixed bug when calling showMaximized() on a FramelessWindowHint + window. + * Fixed bug where children of a StaysOnTop window would be shown below the + parent. + * Fixed painting bug when configuring with -opengl and resizing/showing + child widget of visible window. + + - QDirectPainter + * [100114] Implemented lock() and unlock(). + * default parameter bug fixed for startPainting(); see "Important Behavior Changes" below. + + - QScreen + * Added classId() to enable safe casting to specific subclasses. + + - QPixmap + * Fixed grabWindow() on 12, 15, 18 and 24 bit screens. + * Fixed grabWindow() on BGR framebuffers. + * Fixed grabWindow() on rotated screens. + + - QVFb + * Fixed 12-bit support. + * Added 15-bit support. + * Added support for 32-bit ARGB + * [127623] Tab key presses are now passed to the embedded application. + + - General fixes + * [181906] Fixed case insensitive key comparisions in the keyboard, mouse + and screen plugin factory. + * [170768] For ARM processors, fixed the spin lock protecting the + * QAtomic* implementations to yield instead busy waiting. + * Reduced number of double precision floating point operations as an + optimization for platforms without a floating point processor. + * Reduced memory usage in the backing store. + * [177057] Fixed use of the modifier window title tag. + +**************************************************************************** +* Compiler Specific Changes * +**************************************************************************** + +- ICC + * [169196] Use -fpic instead of deprecated -KPIC option. + +**************************************************************************** +* Tools * +**************************************************************************** + +- Build System + * Make it possible to use QT+=dbus and QT+=testlib to enable + compiling against the QtDBus and QtTestLib libraries. + +- Assistant + * Renamed the existing Assistant to Assistant_adp and adjusted the QtAssistantClient library accordingly. + + * Added the new Assistant based on the Qt Help module. + + * Introduced qhelpconverter to convert adp or dcf files to the new file formats. + + * Added the qhelpgenerator tool to create qch documentation files. + + * Introduced qcollectiongenerator to create help collections. + +- Designer + * [191493] Fixed issues with small widgets in grid layouts on Mac + + * [177564] Fixed autoFillBackground being reverted when setting a stylesheet on a QLabel. + + * [171900] Made Qt3Support functions visually different (signals and slots, widget icons) + + * [182037] Fixed a bug which made it possible to resize QFrame-based containers to arbitrarily small sizes + + * [176678] Made "Current Widget Help" work + + * [193885] Fixed a crash caused by a widget box widget not having a geometry nor a valid sizeHint. + + * [122185] Added support for QMdiArea, QWorkspace + + * [173873] Made pasted widgets appear at mouse position + + * [191789] Added QtDesigner.pc for pkg-config + + * [157152] Added a context menu to the buddy editor + + * [189739] Fixed a crash caused by internal layouts of custom widget plugins + + * [133687] Fixed QDesignerContainerExtension; provided way to specify a method to add pages in domXML + + * [161643] Changed rich text editor to detect plain text and store it as such + + * [183110] Added a dialog for setting the tab order by sorting the list of widgets + + * [188548] Added support for static custom widget plugins to QUiLoader + + * [157164] Made QStackedWidget context menu available on browse buttons + + * [157217] Fixed default size of spacers + + * [182448] Fixed a bug that caused additional spacing between toolbar's last action and consecutive toolbar + + * [84089] Added containers and custom containers to the "New Form" dialog + + * [165443] Grey out the geometry property in Designer when it has no functionality + + * [119506] Made comments available for shortcut properties + + * [161480] Added detailed view to action editor + + * [175146] Improved the signal/slot editor; do not reset the column sizes when switching forms + + * [176121] Added "Save As" to code preview + + * [176122] Added code preview + + * [79138] Added support for QLayout::sizeConstraint + + * [156718] Made it possible to copy actions between forms + + * [168648] Improved object inspector selection + + * [166406] Fixed a selection bug affecting custom subclasses of QTabBar + + * [151323] Made it possible to use subclasses of QTabWidget, QToolBox or QStackedWidget as custom widgets + + * [168564] Fixed a bug in table widget editor + + * [132874] Added support for user-defined signals and slots of promoted widgets and main container + + * [202256] Made header section size of the action editor persist when switching forms + + * [201505] Extended the QDesignerIntegration::objectNameChanged() signal to carry the previous object name + + * [196304] Exclude C++ and java keywords as names for objects + + * [199838] Breaking layout didn't update properly minimumSize of a form + + * [118874] Added spacing property for the QToolBox + + * [120274] Q3Wizard - "currentPageText" property added, "caption" properly converted to "windowTitle" + + * [181567] Added support for loading and saving items for Q3ListBox and Q3ListView + + * [187593] Fixed issue with dynamic properties + + * [107935] Actions provided by task menu extension are appended to the list of actions of superclass + + * [188823] Compress margin/spacing properties in case all values are the same, for legacy reasons + + * [160635] Make Z-order working properly + + * [171900] Signals and slots from compat layer marked with red italic + + * [177398] Added notr="true" attribite to styleSheet property - in this way styleSheet string will not appear in linguist + + * [180367] Greyed out X and Y properties of geometry in case of main container + + * [118393] Collapsing property groups in property editor allowed + + * [190703] Fixed in-place editor behaviour + + * [154745] Guidelines provided for grid layout + + * [173516] New resource system integrated + + * [142477] Improved rich text editor and added HTML editing + + * Gradient editor added to stylesheet editor + + * Resetting font and palette subproperties handled properly + + * uint, qlonglong, qulonglong and QByteArray properties supported + + * Property Browser Solution integrated + + * Property Editor - added toolbar with object and class name, and some actions + + * Property Editor - remember expansion state + + * Property Editor - style sheet editor added + + * Property Editor - sorting and coloring added + + * Added basic fixup for URL properties to prevent data loss when the + user enters an intermediate URL (such as www.google.com). + +- Linguist + * [39078] Added shortcut for adding an entry to a phrase book. + + * [116913] Added tooltips to messages view and phrases view to be able to see the full text as well as to see a preview of HTML rendering. + + * [142628] Fix a "What's this?" message in Linguist. + + * [170053], [183645] Split the context / items tree up into a contexts window and a messages window. + + * [171829] Added support for syntax highlighting in source/translation strings. + + * [179415] When previewing a dialog via Qt Linguist that has the window + modality set to ApplicationModal do not block linguist. + + * [181411] Make xliff utf-8 export use non-ascii characters, too. + + * [183713] Identify the line number in the code for strings. + + * [184586] Added ability to show multiple auxiliary (read-only) translations. + + * [194325] Fixed an error with loading XLIFF files containing consecutive internal whitespace. + + * Added a source code window. It shows the source file when available and highlights the line on which the source text was found. + + * Added a window for showing warnings. + + * Allow a translation to be marked as done when there are still warnings. + + * Fixed undo/redo functionality. + + * Show obsolete entries in grey. + + * Ask whether modified phrase books should be saved on quit. + + * Re-open phrasebooks at startup. + +- lupdate + * [80235] Introduce QT_TRANSLATE_NOOP3 as a QT_TRANSLATE_NOOP3 variant + taking a comments parameter. + + * [161106] When specifying ::QObject::tr() lupdate will no more take + the previous word as namespace. + + * [165460] Make lupdate work with relative paths. + + * [165679] Prevent lupdate from crashing on special string patterns. + + * [179506] Handle the case of a class in a namespace inheriting from + another class in a different namespace correctly. + + * [180318] Make lupdate work properly on deeply nested directories. + + * Added an option (-pluralonly) that will only extract strings which + require a plural form, to ease adding plural translations for the same + language as the source messages. + + * Do not require administrative privileges to run lupdate on Windows Vista. + +- lrelease + * [187375] Allow lrelease to be run from a directory outside the .pro file. + + * Added an option (-removeidentical) that omits translated strings that + are exactly the same as the source string, to reduce file size. + +- rcc + * [105595] Add QT_NO_CAST_TO_ASCII define to tools by default. + + * [188891] Fix crash when QResource is loaded from stream that was + rcc'd from an empty qrc file. + * [164840] Allow use of chinese characters in commandline arguments to rcc. + +- moc + * Treat -DFOO as -DFOO=1 for macros defined on the commandline. + +- uic + * [189327] Added support for QT_NO_ACCESSIBILITY + + * [170919] Fixed a bug that caused nonsensical includes to appear in + conjunction with Qt support classes + + * [171228] Fixed a bug that caused nonsensical includes to appear in + conjunction with Qt support classes + + * [105595] Add QT_NO_CAST_TO_ASCII define to tools by default. + + * [186989, 158836] Fixed invalid code generation in some cases when + cross-compiling. + +- uic3 + * [179540] Added support for QPushButton's "on"-property + + * [170919] Fixed a bug regarding includes for classes in namespaces + + * [299175] Transform Qt3's QSlider property tickmarks to Qt4's + tickPosition + +- qmake + * [187938] Fix a bug that would cause Xcode projects generated by qmake to fail to link in Xcode 3. + * The pkgconfig files generated for the frameworks on Mac OS X are now correct. + * Makefiles for Mac OS X now always set QMAKE_MACOSX_DEPLOYMENT_TARGET=10.3 + unless it is overridden in the .pro file, this will solves linking errors + on Leopard. + * [189409] The default Xcode generator format is now Xcode 2.2. + * Added an unsupported mkspec for LLVM on Mac OS X. + * [198562, 201942] Added support for overriding bundle extentions for Mac + * [152932] Specify the /MANIFEST option when embedding manifests into the application/library. + * Avoid adding silencing echos to the compiler when generating XCode projects. + * [191267] Only include the -L$$QT_PLUGINPATH option once in a project. + * Avoid memmoving data from outside a memory block. + * Generate proper MSVC 2008 VCPROJ and SLN files. + * [168308] Avoid double dir separators in subdir Makefiles. + * [168075] Make distcc work on Mac. + +- configure + + * [180315] Implement -qtlibinfix configure option to allow renaming of Qt + libraries. + * [180315] Implement -qtnamespace configure option to allow compiling all + Qt symbols in a user-defined namespace. + + +**************************************************************************** +* Plugins * +**************************************************************************** + +- QTiffPlugin + * [187169] Return an error if loading fails instead of empty image. + +- QSvgIconEngine + The qsvg icon engine plugin has been renamed to qsvgicon to disambiguate + it from the qsvg image format plugin. + * Now allows multiple SVG files and/or other images to be added to + QIcon for different modes. + * Streaming of SVG icons is fixed. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +- Event filters + + The behavior of event filters has changed starting with + 4.4. Previously, thread affinity was ignored when adding, + removing, and activating an object's event filters. Now, event + filters must have the same thread affinity as the object they + are filtering. Qt will warn when it detects a filter that is + in a different thread from the object being filtered. + +- QFont + Starting with Qt 4.4, the '-' characters in the raw font names + are no longer substituted with a ' ' (space character). This + may impact your application if you use fonts that have '-' + characters in their raw font names. + +- QReadWriteLock + Starting with Qt 4.4, recursive lock support is disabled by + default in QReadWriteLock. Code that relies on recursive write + locking will need to be changed to construct the + QReadWriteLock with recursive lock support enabled. Previously, + recursive write-lock support (introduced in 4.3) was enabled by + default, but QReadWriteLock did not properly support recursive + read-lock support. QReadWriteLock now supports both and needs to + be constructed explicitly with recurive lock support enabled + (QMutex works in the same way). + +- QPainterPath + We have changed QPainterPath::angleAtPercent() to use the same + angle definition as in the rest of Qt. This means that the angle + returned will be from 0 to but not including 360, specifying + the degrees from the 3 o'clock position in the counter-clockwise + direction. + +- QDirectPainter [Qt for Embedded Linux-specific class] + startPainting() in Qt 4.3 had a default parameter lock=false, + the value of which was not used. The function would lock for + client processes, but not for the server process. From Qt 4.4, + the default value is changed to true, and startPainting() will + lock if lock == true, and not lock if lock == false. This means + that client processes running code that has not been recompiled + with Qt 4.4 may show flicker and/or painting problems. To get + exactly the same behaviour as for Qt 4.3, change startPainting() + to startPainting(QApplication::type() == QApplication::GuiClient). + +- QPrinter + QPrinter::pageRect() did not return consistent values on + Linux/Mac/Windows when QPrinter::fullPage() was set to true. On + Mac and Windows pageRect() was not influenced by the fullPage() + setting. This has now been changed so that pageRect() returns + the same as paperRect() when fullPage() is true on all + platforms. + +- QPixmap + Using QPixmap outside of the GUI thread is dangerous and error + prone. Because of this, starting with 4.4, any QPixmap created + outside of the GUI thread will always be a null pixmap. + +- QDateTime + When using QDateTime::fromString() to parse dates, QDateTime + no longer tries to use English month names because that would + cause some dates to become unparseable. If you need to parse + date times in the English locale, use QLocale::toDateTime (in + specific, the QLocale::c() locale). + +- Qt/Mac + Starting a Qt application no longer makes it the front process. This is + more in-line with other applications on Mac OS X. What this means is + that you can start a Qt application, do something else and not have the + Qt application steal your focus. If you desire for the Qt application + to become the front process, you can call QWidget::raise() + programmatically or launch the application with open(1) or using + QDesktopServices. This should not have any affect if launched from + double-clicking in Finder or run in a debugger. + +- Qt/X11 on MIPS Linux + qreal is changed from float to double, breaking binary compatibility. + This change fixes a bug introduced in Qt 4.3.0 when qreal was + changed from double to float for embedded MIPS processors. |