Qt 4.3 introduces many new features as well as many improvements and bugfixes over the 4.2.x series. For more details, see the online documentation which is included in this distribution. The documentation is also available at http://qt.nokia.com/doc/4.3 The Qt version 4.3 series is binary compatible with the 4.2.x series. Applications compiled for 4.2 will continue to run with 4.3. The Qtopia Core version 4.3 series is binary compatible with the 4.2.x series except for some parts of the device handling API, as detailed in Platform Specific Changes below. Some of the changes listed in this file include issue tracking numbers corresponding to tasks in the Task Tracker: http://qt.nokia.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 -------------------- - Configuration/Compilation * Fixed OpenBSD and NetBSD build issues. - Legal * Added information about the OpenSSL exception to the GPL. - Documentation and Examples * Added information about the TS file format used in Linguist. * Moved platform and compiler support information from website into the documentation. * Added an Accessibility overview document. * Added new example to show usage of QCompleter with custom tree models. - Translations * Added a Slovak translation of Qt courtesy of Richard Fric. * Added a Ukrainian translation of Qt courtesy of Andriy Rysin. * Added a Polish translation of the Qt libraries and tools courtesy of Marcin Giedz, who also provided a Polish phrasebook for Qt Linguist. * [155464] Added a German translation for Qt Designer. - Added support for the CP949 Korean Codec. - [138140] The whole Qt source compiles with the QT_NO_CAST_FROM_ASCII and QT_NO_CAST_TO_ASCII defines and therefore is more robust when using codecs. - Added support for HP-UX 11i (Itanium) with the aCC compiler - Changed dialogs to respond much better to the LanguageChange event. (i.e. run time translation now works much better.) - Signals and slots * [61295] Added Qt::BlockingQueuedConnection connection type, which waits for all slots to be called before continuing. * [128646] Ignore optional keywords specified in SIGNAL() and SLOT() signatures (struct, class, and enum). * Optimize emitting signals that do not have anything connected to them. - [121629] Added support for the MinGW/MSYS platform. - [102293] Added search path functionality (QDir::addSearchPath) - Almost all widgets are now styleable using Qt Style Sheets. Third party components ---------------------- - Updated Qt's SQLite version to 3.3.17. - Updated Qt's FreeType version to 2.3.4. - Updated Qt's libpng version to 1.2.16. - Added libtiff version 3.8.2 for the TIFF plugin. **************************************************************************** * Library * **************************************************************************** - QAbstractButton * [138210] Ensured strictly alternating ordering of signals resulting from auto-repeating shortcuts. Fixed a repeat timer bug that cause cause infinite retriggering to occur. * [150995] Fixed bug where non-checkable buttons take focus when activating shortcuts. * [120409] Fixed bug where the button was set to unpressed when the right mouse button was released. - QAbstractItemView * [111503] Ensured that focus is given back to the view when the Tab key is pressed while inside an editor. * [156290] Use slower scrolling when the ScrollMode is set to ScrollPerItem. * Ensured that the item view classes use the locale property when displaying dates and numbers to allow easy customization. * Fixed a repaint issue with the focus rectangle in cases where selection mode is NoSelection. * [147422] Detect when persistent editors take/lose focus and update the view accordingly. * [146292] Items are now updated even if they contain an editor. * [130168] Auto-scrolling when clicking is now delayed to allow double-clicking to happen. * [139247] Fixed bug where clicking on a partially visible item was triggering a scroll and the wrong item was then clicked. * [137729] Use dropAction() instead of proposedAction() in QAbstractItemView::dropEvent(). * Fixed a bug that prevented keyboardSearch() from ignoring disabled items. * [151491] Ensured that we pass a proper MouseButtonPress event in QAbstractItemView::mouseDoubleClickEvent(). * [147990] Ensured that double-clicking does not open an editor when the edit trigger is set to SelectedClicked. * [144095] Ensured that sizeHintForIndex() uses the correct item delegate. * [140180] Ensured that clicking a selected item clears all old selections when the view is using the ExtendedSelection selection mode and SelectedClicked as an edit trigger. * [130168] Fixed bug where double clicking on partially visible items would not activate them. * [139342] Allow editing to be started programatically, even if there are no edit triggers. * [130135] Added public slot, updateIndex(const QModelIndex &index). - QAbstractProxyModel * [154393] QAbstractProxyModel now reimplements itemData(). - QAbstractSlider * [76155] Fixed bug where the slider handle did not stop under the mouse. - QAbstractSocket * [128546] Fixed bug where an error was emitted with the wrong type. - QAccessible * Added preliminary support for the upcoming IAccessible2 standard. * Made improvements to most of the accessible interfaces. * [154534] Ensured that our accessible interfaces honour QWidget::setAccessibleName() and QWidget::setAccessibleDescription(). * Avoid crash if QAccessibleInterface::object() returns 0. (It is absolutely legal to return a null value.) - QApplication * Added a flash() method for marking windows that need attention. * [86725] Allow the -style command line argument to override a style set with QApplication::setStyle() before QApplication construction. * [111892] Fixed a bug that caused Qt to steal all input when connecting the QAction::hovered() signal to a slot that called QMainWindow::setEnabled(false). * [148512] Fixed QApplication::keyboardModifiers() to update correctly when minimizing the window when Qt::MetaModifier is held down. * [148796] Fixed a bug that prevented Qt from detecting system font changes. * [154727] Prevent a crash when a widget deletes itself in an key event handler without accepting the event. * [156484] Fixed a bug where lastWindowClosed() was emitted for each top-level window when calling QApplication::closeAllWindows(). * [157667] Ensured that widgets with the Qt::WA_DeleteOnClose property set are properly deleted when they are closed in the dropEvent() handler following a drag that was started in the same application. * [156410] Implemented QEvent::ApplicationActivate and QEvent::ApplicationDeactivate on all platforms. Note that QEvent::ApplicationActivated and QEvent::ApplicationDeactivated are now deprecated. - QAtomic * [126321] Fixed several flaws in the inline assembler implementations for several architectures (ARM, i386, PowerPC, x86-64). * [133043] Added support for atomic fetch-and-add. - QAuthenticator * New Class. Needed for authentication support in the Network module. Currently supports the Basic, Digest-MD5 and NTLM authentication mechanisms. - QBitArray * [158816] Fixed crash in operator~(). - QCalendarWidget * Don't set maximum width for month/year buttons. * Ensured that the QPalette::Text role is used for default text. * Added a date editor which can be configured with the dateEditEnabled and dateEditAcceptDelay properties. * [137031] Ensured that grid lines are drawn properly when headers are not visible. * [151828] Ensured that the language can be set with QCalendarWidget::setLocale(). - QChar * Updated the Unicode tables to Unicode 5.0. * Added foldCase() and toTitleCase() methods. * Added public API to handle the full Unicode range. - QCleanlooksStyle * [129506] Sliders now look and behave correctly in both reversed and inverted appearance modes. * [131490] Group boxes no longer reserve space for their titles when no title is set. * [134344] A sunken frame is now used to indicate checked menu items with icons. * [133691] Improved the appearance of spin boxes and buttons when used against dark backgrounds. * [154499] Fixed a rendering issue with disabled, checked push buttons. * [154862] Fixed an issue causing combo boxes to sometimes show clipped text. * Slider appearance is now based on Clearlooks Cairo and the performance on X11 has been improved. * The appearance of tab bars when used with Qt::RightToLeft layout direction has been improved. * Dock widget titles are now elided if they are too long to fit in the available space. - QClipboard * Ensured that calling clear() on the Mac OS X clipboard really clears its data. * [143927] Don't drop alpha channel information when pasting pixmaps on Mac OS X. * The Mac OS X clipboard support now understands TIFF information and can export images as TIFF as well. * [145437] Fixed crash that could occur when calling setMimeData() twice with the same data. * QMacMime now does correct normalization of file names in a URL list from foreign applications. - QColor * [140150] Fixed bug where QColor::isValid() would return true for certain invalid color strings. * [120367] Added QColor::setAllowX11ColorNames(bool), which enables applications to use X11 color names. * Fixed internal errors in toHsv() due to inexact floating point comparisions. - QColorDialog * [131160] Enabled the color dialog to be used to specify an alpha color on Mac OS X. - QColumnView * A new widget that provide a column-based implementation of QAbstractItemView. - QComboBox * Significantly reduced the construction time of this widget. * [155614] Speeded up addItem() and addItems(). * [150768] Ensured that inserting items doesn't change the current text on editable combo boxes. * [150902] Ensured that only the left mouse button can be used to open the popup list. * [150735] Fixed pop-up hiding behind top-level windows on Mac OS X. * [156700] Fixed bug where the popup could be closed when pressing the scroll arrows. * [133328] Fixed bug where disabled entries were not grayed out. * [134085] Fixed bug where the AdjustToContents size policy had no effect. * [152840] Fixed bug where QComboBox would not automatically scroll to the current item. * [90172] Fixed bug where the sizeHint() implementation iterated over all icons to detect their availability. - QCompleter * Significantly reduced the construction time of this widget. * Added support for lazily-populated models. * [135735] Made QCompleter work when used in a QLineEdit with a QValidator. * Added the wrapAround property to allow the list of completions to wrap around in popup mode. * Added support for sharing of completers, making it possible for the same QCompleter object to be set on multiple widgets. * [143441] Added support for models that sort their items in descending order. - QCoreApplication * Added support for posted event priorities. * [34019] Added the QCoreApplication::removePostedEvents() overload for removing events of a specific type. * Documented QCoreApplication::processEvents() as thread-safe; calling it will process events for the calling thread. * Optimized delivery of QEvent::ChildInserted compatibility events. * [154727] Enabled compression of posted QEvent::DeferredDelete events (used by QObject::deleteLater()) to prevent objects from being deleted unexpectedly when many such events are posted. * Ensured that duplicate entries in library paths are ignored. - QCryptographicHash * New Class. Provides support for the MD4, MD5 and SHA1 hash functions. - QCursor * [154593] Fixed hotspot bug for cursors on Mac OS X. * [153381] Fixed crash in the assignment operator in cases where the cursor was created before a QApplication instance. - QDataWidgetMapper * [125493] Added addMapping(QWidget *, int, const QByteArray &) and mappedPropertyName(QWidget *) functions. - QDateTime * [151789] Allow passing of date-only format to QDateTime::fromString() (according to ISO 8601). * [153114, 145167] Fixed bugs that could occur when parsing strings to create dates. * [122047] Removed legacy behavior which assumed that a year between 0 and 99 meant a year between 1900 and 1999. * [136043] Fixed the USER properties. - QDateTimeEdit * [111557, 141266] Improved the behavior of the widget with regard to two-digit years. Made stepping work properly. * [110034] Don't change current section when a WheelEvent is received. * [152622] Don't switch section when a FocusInEvent is received if the reason is Popup. * Fixed a bug that would cause problems with formats like dd.MMMM.yyyy. * [148522] Ensured that the dateRange is valid for editors that only show the time. * [148725] Fixed a bug with wrapping and months with fewer than 31 days. * [149097] Ensured that dateTimeChanged() is emitted, even if only date or time is shown. * [108572] Fixed the behavior to ensure that typing 2 into a zzz field results in a value of 200 rather than 002. * Ensured that the next field is entered when a separator is typed. * [141703] Allow empty input when only one section is displayed. * [134392] Added a sectionCount property. * [134392] Added sectionAt(), currentSectionIndex(), and setCurrentSectionIndex() functions. * Added a NoButtons value for the buttonSymbols property. - QDesktopWidget * [135002] Ensured that the resized() signal is emitted after the desktop is resized on Mac OS X. - QDial * [151897] Ensured that, even with tracking disabled, the signal sliderMoved() is always emitted. * [70209] Added support for the inverted appearance property. - QDialog * [131396] Fixed a crash in QDialog::exec() that could occur when the dialog was deleted from an event handler. * [124269] Ensured that the size grip is hidden for extended dialogs. * [151328] Allow the use of buttons on the title bar to be explicitly specified on Mac OS X. - QDialogButtonBox * [154493] Moved the Action role before the Reject role on Windows to conform with platform guidelines. - QDir * [136380] QDir's permission filters on Unix now behave the same as on Windows (previously the filters' behavior was reversed on Unix). * [158610] Passing QDir::Unsorted now properly bypasses sorting. * [136989] Ensured that removed dirs are reported as non-existent. * [129488] Fixed cleanPath() for paths with the "foo/../bar" pattern. - QDirIterator * New class. Introduced to provide a convenient way to examine the contents of directories. - QDockWidget * [130773] Ensure that dock widgets remember their undocked positions and sizes. * Added support for vertical title bars, which can be used to save space in a QMainWindow. * Added support for setting an arbitrary widget as a custom dock widget title bar. * [141792] Added the visibilityChanged() signal which is emitted when dock widgets change visibility due to show or hide events, or when being selected or deselected in a tabbed dock area. * Added the dockLocationChanged() signal which is emitted when dock widgets are moved around in a QMainWindow. * [135878] Titlebars now support mnemonics properly. * [138995] Dock widget titlebars now correctly indicate their activation state. * [145798] Ensured that calling setWindowTitle() on a nested, docked dock widget causes the title in the tab bar to be updated. - QDomDocument * [128594] Ensured that comment nodes are indented correctly when serializing a document to a string. * [144781] Fixed crash that would occur when the owner document of new attributes was not adjusted. * [107123] Ensured that appendChild() does not erroneously add two elements to document nodes in certain cases. - QDoubleSpinBox * [99254] Allow higher settings for decimals. - QDrag * [124962] Added QDrag::exec() to allow the default proposed action to be changed. - QFile * [128352] Refactored the backend on Windows with major performance improvements; in particular line and character reading is now much faster. * [146693] Fixed a lock-up in copy(). * [148447] QFile now supports large files on Windows where support is available. * Generally improved support for stdin. * Byte writing performance has improved on all platforms. * [151898] Added support for reading lines with an embedded '\0' character. - QFileDialog * Updated the dialog to use native icons. * Made general improvements to the dialog's performance. * Added a sidebar to show commonly used folders. * [134557] Added the ability to use a proxy model. * Added dirEntered() and filterSelected() signals, previously found in Qt 3's file dialog. * [130353] Fixed Qt/Mac native file dialog pattern splitting * [140332] Made the dialog respond much better to the LanguageChange event. * [154173] Fixed a memory deallocation error. * Made the selected filter argument work for native Mac OS X file dialogs. - QFileInfo * Ensured that the value of Mac FS hidden flag is returned for symbolic links and not their targets; i.e., hidden links are not followed. * [128604] Introduced isBundle() for Mac OS X bundle types. * [139106] Fixed bug that could cause drives to be reported as hidden on Windows. - QFileSystemWatcher * [155548] Reliability fixes. * When in polling mode, send change notification when file permissions change. * [144049, 149637] Fixed a bug that prevented watching a directory for notification on Windows. * [143381] Fixed bug that caused addPath() and removePath() to fail when passing an empty string. - QFocusFrame * [128713, 129126] Made the focus frame visible in more situations on Mac OS X. - QFont * X11: Add a method to retrieve the FreeType handle from the QFont. - QFontComboBox * [132826] Fixed a bug that could cause the popup list to be shown off-screen. * [155614] Speeded up addItem() and addItems(). * [160110] Fixed crash that could occur when setting a pixel size for the fonts. - QFontMetrics * [152013] Fixed bug where boundingRect() gave sizes that were too large when compiled using Visual Studio 6. * [145980] Added tightBoundingBox() method. - QFrame * [156112] Fixed bug where the default frame was not correct when created without a parent and reparented afterwards. * [150995] Fixed bug where setting the frame style did not invalidate the size hint - QFSFileEngine * Fixed bug in fileTime() on Win98 and WinME * Ensured that the working directory of a Windows shortcut is set when a link is created. * Improved the reliability of buffered reads on platforms that cache their EOF status. - QFtp * [107381] Greatly improved LIST support; QFtp now supports more server types. * [136008] Improved tolerance for servers with no EPRT/EPSV support. * [150607] Fixed a race condition when using ActiveMode for uploading. - QGL * [158971] Fixed a resource leak in the GL texture cache. - QGLFramebufferObject * Made it possible to configure the depth/stencil buffer in a framebuffer object. * Added support for floating point formats for the texture in a framebuffer object. - QGLPixelBuffer * [138393] Made QGLPixelbuffer work under Windows on systems without the render_texture extension. - QGLWidget * [145621] Avoided a QGLFormat object copy when checking the buffer format with the doubleBuffer() function. * [100519] Rewritten renderText(). It now supports Unicode text, and it doesn't try to overwrite previously defined display lists. - QGraphicsItem * [151271] Fixed crash that could occur when calling update on items that are not fully constructed. * Ensured that the selected state no longer changes state twice for each mouse click. * [138576] setParent() now correctly adds the child to the parent's scene. * [130263] Added support for partial obscurity testing with the isObscured(QRectF) function. * [140725] QGraphicsTextItem is now also selectable when editable. * [141694] QGraphicsTextItem now calls ensureVisible() if it has input focus. * [144734] Fixed bugs in unsetCursor(). * [144895] Improved bounding rectangle calculations for all standard items. * Added support for QTransform. * [137055] Added QGraphicsItem::ItemPositionHasChanged and ItemTransformHasChanged. * Added several convenience functions. * [146863] Added ItemClipsToShape and ItemClipsChildrenToShape clipping flags. * [139782] Greatly improved hit and selection tests. * [123942] Added the ItemIgnoresTransformations flag to allow items to bypass any inherited transformations. * All QGraphicsItem and standard item classes constructors have now had their scene arguments obsoleted. * [150767] Added support for implicit and explicit show and hide. Explicitly hidden items are no longer implicitly shown when their parent is shown. * [151522] Fixed crash when nesting QGraphicsItems that enabled child event handling. * [151265] Cursors now change correctly without mouse interaction. * Added deviceTransform() which returns a matrix that maps between item and device (viewport) coordinates. * Added the ItemSceneChange notification flag. * [128696] Enabled moving of editable text items. * [128684] Improved highlighting of selected items. - QGraphicsItemAnimation * [140522] Fixed special case interpolation bug. * [140079] Fixed ambiguity in the position of insertions when multiple items are inserted for the same step in an animation. - QGraphicsScene * [130614] Added the invalidate() function for resetting the cache individually for each scene layer. * [139747] Fixed slow memory leaks caused by repeatedly scheduling single-shot timers. * [128581] Added the selectionChanged() signal which is emitted when the selection changes. * Introduced delayed item reindexing which greatly improves performance when moving items. * The BSP tree implementation has undergone several optimizations. * Added new bspTreeDepth property for fixating the BSP tree depth. * Optimization: Reduced the number of unnecessary index lookups. * [146518] Added the selectionArea() function. - QGraphicsSceneWheelEvent * [146864] Added wheel orientation. - QGraphicsView * [136173] Hit-tests are now greatly improved for thin items. * [133680] The scroll bars are now shown at their maximum extents instead of overflowing when the transformed scene is larger than the maximum allowed integer range. * [129946] Changing the viewport no longer resets the acceptsDrops() property. * [139752] ScrollHandDrag is now allowed also in non-interactive mode. * [128226] Fixed rubber band rendering bugs (flicker and transparency). * [144276] The selection is no longer reset by scroll-dragging. * Added support for QTransform. * [137027] Added new viewportUpdateMode() property for better control over how QGraphicsView schedules updates. * Several convenience functions have been added. * [146517] Added rubberBandSelectionMode() for controlling how items are selected with the rubber band. * [150344] Fixed the scroll bar ranges to prevent the scroll bars from hiding parts of the scene. * [150321] Added new optimizationFlags() property, allowing individual features to be disabled in order to speed up rendering. * The level of detail algorithm has been changed to improve support for transformations that change the view's aspect ratio. * [154942] Fixed background rendering in render(). * [156922] render() now properly supports all transformations, source and target rectangles. * [158245] Calling setScene(0) now implicitly calls update(). * [149317] Added NoViewportUpdate to the set of modes that can be set for updating a view. - QGridLayout * [156497] Fix a one-off error that could cause the bottom button in a QDialogButtonBox to be cropped. - QHeaderView * This widget now uses Qt::NoFocus as its default focus policy. * [99569] Improved performance, providing up to a 2x speed increase for some cases. * [146292] Fixed bug that made it impossible to resize the last section under certain circumstances. * [144452] Fixed bug that caused setDefaultAlignment() to have no effect. * [156453] Fixed column resizing bug that could cause branches in one column to be drawn in the next. * [142640] Ensured that the Qt::SizeHintRole is used when available. * [142994] Hidden items are now restored to their original size when shown. * [127430] Added saveState() and restoreState(). * [105635] Added support for drag selecting. - QHostInfo * [141946] No longer stops working after QCoreApplication is destroyed. * [152805] Now periodically reinitializes DNS settings on Unix. - QHttp * [139575] Fixed state for servers that use the "100 Continue" response. * Added support for the HTTPS protocol. * Improved proxy support. * Added support for server and proxy authentication. - QIcon * Added cacheKey() as a replacement for serialNumber(). * Fixed the streaming operators. - QImage * [157549] Fixed a crash that could occur when calling copy() with negative coordinates. * Added cacheKey() as a replacement for serialNumber(). * [131852] Optimized rotations by 90 and 270 degrees. * [158986] Fixed painting onto an images with the Format_RGB16 image format. * Fixed rotations by 90 and 270 degrees for images with the Format_RGB16 image format. * [152850] Fixed bugs in text() and setText(). * Fixed a crash that could occur when passing a 0 pointer to the constructor that accepts XPM format image data. * [150746] Added a constructor that accepts an existing memory buffer with non-default stride (bytes per line). - QImageReader * [141781] Fixed support for double byte PPM files (>256 colors). - QImageWriter * Added support to enable compression if a plugin supports it. - QInputDialog * [115565] Disabled OK button for non-acceptable text (getInteger() and getDouble()). * [90535] Input dialogs now have a size grip - QIntValidator, QDoubleValidator * Validators now use the locale property to recognize numbers formatted for various locales. - QItemDelegate * [145142] Ensured that text is not drawn outside the bounds of a cell. * [137198] Fixed handling of cases where the decoration position is set to be at the bottom of an item to prevent the text from being incorrectly positioned. * [142593] Take word wrap into account when calculating an item's size hint. * [139160] Ensured that the focus rectangle is shown, even for empty cells. - QItemSelectionModel * Made optimizations for some common cases. * [143383] Fixed incorrect behavior of hasSelection(). - QLabel * [133589] Fixed performance problems with plain text labels. * Fixed support for buddies with rich text labels. * [136918] Fixed setText() to not turn off mouse tracking when the text used is plain text. * [143063] Ensured that the mouse cursor is reset when a link is clicked. * [156912] Fixed bug where the mouse cursor shape was changed to the pointing hand cursor, but would not be correctly cleared afterwards. - QLayout * Added new features to Qt's layout system to enable: - independent values for all of the four margins, - independent horizontal spacing and vertical spacing in QGridLayout, - non-uniform spacing between layout items, - layout items to occupy parts of the margin or spacing when required by the application or style. - QLibrary * Fixed bug that caused QLibrary::load() to discard the real error message if the error was something else than ERROR_MOD_NOT_FOUND. (Win32) * Fixed bug that prevented QLibrary::load() from loading a library with no suffix (because LoadLibrary automagically appended the .dll suffix on Win32). * Corrected behavior of fileName() to ensure that, if we loaded a library without specifying a suffix and the file found had the .dll suffix, the fileName found is returned instead of the fileName searched for (as was previously the case). * [156276] Fixed behavior of unload() to return true only if the library could be unloaded. - QLineEdit * [156104] Ensured that input methods are disabled when not in the Normal edit mode. * [157355] Fixed drag and drop bug on Mac OS X that could occur when dragging inside the widget. * [151328] Ensured that the caret is removed when text is selected on Mac OS X. * [136919] Ensured that fewer non-printable characters are replaced with spaces. - QList * Fixed a race-condition in QList::detach() which could cause an assertion in debug mode. - QListView * [136614] Fixed the behavior of Batched mode to ensure that the last item of the batch is displayed. * Fixed some issues with jerky scrolling in ScrollPerItem mode if the grid size was different to the delegate's size hint. * [113437] Prevent noticeable flicker on slow systems in Batched mode by laying out the first batch immediately. * [114473] Added a new property to QListView: selectionRectVisible. * Fixed a bug that could cause too many items to be selected. * Fixed issue that could cause list views to have incorrect scroll bar ranges if their grid sizes differed from their item sizes. * [144378] Improved navigation for cases where an item is taller than the viewport. * [148846] Fixed an issue that prevented scroll bars from being updated correctly when items were moved programmatically. * [143306] Improved support for keyboard navigation and selection. * [137917] Shift-click extended mode selection in icon mode now selects the correct items. * [138411] Fixed bug where hidden items would cause drawing problems when pressing Ctrl+A. - QListWidget * [146284] Ensured that the effect of SingleSelection mode is also taken into account when setSelected() is called on items. * [151211] Added removeCellWidget() and removeItemWidget() functions. - QLocale * Updated the locale database to CLDR 1.4: more locales supported; numerous fixes to existing locales. - QMacStyle * [159270] Fixed drawing of icons on buttons with no text. * [146364] Fixed drawing of multi-line text for items in a QToolBar. * [145346] Removed unwanted wrapping of text in a QPushButton. * Fixed drawing of "Flat" group boxes. * [113472] Fixed drawing of text on vertical headers when resizing. * [148509] Ensured that the correct font is used for buttons and labels when the application is not configured to use the desktop settings. * [106100] Improved the look of push buttons with menus. * Made fixes to Qt's layout system that enable more native-looking forms. * [151739] Buttons with an icon are now centered correctly. * [142672] Fixed font size bug on the drop down box for QComboBox. * [148832] The button on a combo box is now showing as pressed when the drop down menu is shown. * [147377] Ensured that combo boxes now scale correctly on Mac OS X. * [143901] Fixed the highlight color for widgets such as QComboBox so that it follows the system settings on Mac OS X. * [151852] Fixed size calculation for QPushButton with an icon. * [133263] Removed the coupling of text size and button kind, enabling them to be set independently. * [133263] Ensured that QPushButton respects calls to setFont(). * [141980] Text with small font sizes is now centered vertically correct inside push buttons. * [149631] Ensure that beveled button types are chosen if text doesn't fit inside a button instead of cutting the text. * [151500] Fixed incorrect QPushButton text clipping behavior. * [147653] Fixed bug that caused the sort indicator to be drawn on top of the text in QHeaderView. * [139149] Fixed issues with CE_SizeGrip in right-to-left mode. * [139311] Improved drawing of the title in QGroupBox. * [128713] Ensured that drawing of the focus frame now follows pixel metrics. * [142274] Made QSlider tickmark drawing more like Cocoa. * focusRectPolicy() is now obsolete. This is now controlled by the Qt::WA_MacShowFocusRect attribute. * widgetSizePolicy() is now obsolete. This is now controlled by the Qt::WA_Mac*Size attribute. * [129503] Ensured that a group box without a title no longer allocates space for it. * Ensured that a more appropriate width is used for push buttons. * [132674] Ensured that tab bar drawing is correct when the tab's font isn't as tall as the default. * [126214] Ensured that the QSizeGrip is drawn correctly in brushed metal windows. * Improved styling of docked QDockWidgets. - QMainWindow * [145493] Fixed a crash that could occur when calling setMainWindow(0) on X11. * [137013, 158094] Fixed bugs relating to the handling of size hints, minimum/maximum sizes and size policies of QDockWidgets in main windows. * [147964] Animated tool bar areas adjust dynamically when a QToolBar is dragged over them. * Added the dockOptions property. This makes it possible to: - specify that tabbed dock areas should have vertical tab bars, - disable tabbed docking altogether, - force tabbed docking, disallowing the placement of dock widgets next to each other. * Fixed bugs in saving and restoring main window state. * [143026] Fixed support for hiding and showing toolbars on Mac OS X. * [131695] Add unified toolbar support on Mac OS X. - QMdiArea - QMdiSubWindow * New classes. QMdiArea is a replacement for QWorkspace. - QMenu * The addAction() overloads that accept a slot argument now honor the slot's bool argument correctly. * [129289] Added support for handling context menus from within a menu. * [144054] Fixed scrolling logic. * [132524] Allow setVisible() of separator items on Mac OS X native menu items. * [131408] Torn-off menus now have fixed sizes to prevent the window system from resizing them. * [113989] Added some fuzziness to the "snap to" detection. * [155030] Do not disable command actions when merge is disabled. * [131702] Tear-off menus no longer appear only once. * [138464] Ensured that, if a popup menu does not fit on the right-hand side of the screen, it is aligned with the right side of the parent widget instead of the left side. * [130343] Ensured that only the left mouse button triggers menu actions on Windows. * [139332] Fixed an issue that caused submenus to close when moving the mouse over a separator. * [157218] Ensured that torn-off menus are not closed when Alt is pressed. * [135193] Ensured that the size hint, maximum size and minimum size are taken into account for each QWidgetAction. * [133232] Improved handling of menus that are opened at specified positions. * [141856] Fixed bug where exec() would return NULL if the user pressed a mnemonic shortcut. * [133633] Fixed focus problem with keyboard navigation between menus and widget actions. * [134560] Fixed bug that prevented status tips from being shown for actions in tool button menus. * [150545] Fixed memory leak on Mac OS X. * [138331] Fixed bug that could cause menus to stay highlighted after the closing of a dialog. * Menu shortcuts are now cleared if the corresponding QAction is cleared on Mac OS X. * Fixed bug that could cause changes to shortcut to not take effect on Mac OS X. * [12536] Don't allow Tab to be used to navigate menus on Mac OS X. * [108509] Prevented shortcuts from stealing keyboard navigation keys. * [134190] Added support for Shift+Tab to enable backwards navigation. - QMenuBar * [135320] Make show() a no-op on Mac OS X to prevent the menu bar from being visible at the same time as a native Mac menu bar. * [115471] Fixed torn-off menu behavior to ensure that mouse events are propagated correctly on second level tear-offs. * [126856] Fixed an issue that could cause several menus to be open at the same time. * [47589] The position of the menu is now shifted horizontally when there is not enough space (neither above nor below) to display it. * [131010] Fixed bug where adding an action and setting its menu would prevent the action from being triggered through its shortcut. * [142749] Fixed bug where setEnabled(false) had no effect on Mac OS X. * [141255] Made it possible to make an existing menu bar an application- wide menu bar with setParent(0) on Mac OS X. - QMessageBox * [119777] Ensured that pressing Ctrl+C in message boxes on Windows copies text to the clipboard. * Added setDefaultButton(StandardButton) and setEscapeButton(StandardButton) functions. - QMetaObject * Optimized invokeMethod() to avoid calling type() unnecessarily. - QMetaType * [143011] Fixed isRegistered() to return false when the type ID does not correspond to a user-registered type. - QModelIndex * [144919] Added more rigorous identity tests for model indexes. - QMotifStyle * [38624] Fixed the behavior when clicking on a menu bar item a second time; the menu will now close in the same way that native Motif menus do. - QMutex * [106089] Added tryLock(int timeout), which allows a thread to specify the maximum amount of time to wait for the mutex to become available. * [137309] Fixed a rare deadlock that was caused by compiling with optimizations enabled. * Optimized recursive locking to avoid two unnecessary atomic operations when the current thread already owns the lock. * Optimized non-recursive mutexes by avoiding a call to pthread_self() on Unix. - QNetworkInterface * [146834] Now properly generates broadcast addresses on Windows XP. - QNetworkProxy * Added support for transparent HTTP CONNECT client proxying. * Added support for complex authenticators through QAuthenticator. - QObject * Added a compile time check to ensure that the objects passed to qobject_cast contain a Q_OBJECT macro. * [133901] Improved the run time warnings from setParent() that is output when trying to set a new parent that is in a different thread. * [140106] Fixed a deadlock that could occur when deleting a QObject from the destructor of a QEvent subclass. * [133739] Fixed compiler warnings from g++ in findChildren(). * Documented the QEvent::ThreadChange that is sent by moveToThread(). * [130367] Improved the run time warning that is output when creating a QObject with a parent from a different thread. * [114049] Made dumpObjectInfo() also dump connection information. - QPageSetupDialog * [136041] Margins are now saved and used properly when printing. - QPainter * Fixed stroking of non-closed polygons with non-cosmetic pens in the OpenGL paint engine. * [133980] Fixed stroking bug for RoundJoin and MiterJoin with paths containing successive line segments with a 180 degree angle between them. * [141826] Fixed stroking with MiterJoin of paths with duplicated control points. * [139454, 139209] Fixed problem with SmoothTransformation that caused images to fade out toward the edges in raster paint engine. * Added the HighQualityAntialiasing render hint to enable pixel shaders for anti-aliasing in the OpenGL paint engine. * [143503] Fixed broken painting when using a QPainter on a non-top-level widget where the world matrix is disabled then re-enabled. * [142471] Fixed dashed line drawing of lines that are clipped against the device rectangle. * [147001] Fixed bug with drawing of polygons with more than 65536 points in the raster paint engine. * [157639] Calling drawPolygon() from multiple threads no longer causes an assertion. * Optimized line and rectangle drawing in the raster paint engine. * [159047] Fixed case where fillRect() would ignore the brush origin. * [143119] Fixed bug where drawing a scaled image on another image would cause black lines to appear on the edges of the scaled image. * [159894] Fixed X11 errors when using brush patterns on multiple screens. * [148524] Fixed X11 errors when drawing bitmaps containing a color table with alpha values. * [141871] Optimized and fixed drawing of extremely large polygons. * [140952] Fixed transformed text drawing on X11 setups that used fontconfig without Xrender. * [139611] Fixed smooth transformation of pixmaps for X11. * [132837] Fixed text drawing on images with certain fonts on Mac OS X. * [147911] Use font anti-aliasing when rotating small fonts on Windows. * [127901] Optimized gradient calculations. * [139705, 151562] Optimized clipping algorithms in the raster paint engine. * Optimized blending operations in the raster paint engine using MMX, 3DNOW and SSE2. * Optimized fillRect() for opaque brushes. * Made general speed optimizations, especially in the OpenGL and raster paint engines. - QPainterPath * [136924] Correctly convert Traditional Chinese fonts (e.g., MingLiu) to painter paths. - QPicture * [142703] QPicture now correctly preserves composition mode changes. * Fixed QPicture text size handling on devices with non-default DPI. * [133727] Fixed text alignment handling when drawing right-to-left formatted text into a QPicture. * [154088] Fixed bugs that could occur when reading QPicture files generated with Qt 3. - QPixmap * Added cacheKey() as a replacement for serialNumber(). * [97426] Added a way to invert masks created with createMaskFromColor(). * Fixed a crash that could occur when passing a 0 pointer to the constructor that accepts XPM format image data. - QPixmapCache * [144319] Reinserting a pixmap now moves it to the top of the Least Recently Used list. - QPlastiqueStyle * [133220] Fixed QProgressBar rendering bugs. - QPrintDialog * [128964] Made "Print" the default button. * [138924] Ensured that the file name is shown in the file dialog when printing to a file * [141486] Ensured that setPrintRange() correctly updates the print dialog on X11. * [154690] Ensured that "Print last page first" updates the QPrinter instance on X11. * [149991] Added support for more text encodings in the PPD subdialog. * [158824] Disable the OK button in the dialog if no printers are installed. * [128990] X11: Don't immediately create an output file when a file name is entered in the print dialog. * [143804] Ensured that the default printer is set to the one specified by the PRINTER environment variable. - QPrinter * Added the supportedPaperSources() function. * [153735] Significantly speeded up generation of PDF documents with Asian characters. * [140759] Documented that the orientation cannot be changed on an active printer on Mac OS X (native format). * [136242] PostScript generator: Don't generate huge PostScript files for pattern brushes. * [139566] Added support for alpha blending when printing on Windows. * [151495] Fixed image scaling problems when printing on Windows. * [146788] Optimized drawTiledPixmap() on Windows. * [152637] PDF generator: Ensured that the pageRect property is set up correctly. * [152222] PDF generator: Fixed bug that lead to fonts being too small on Mac OS X. * [151126] Ensured that ScreenResolution is respected on Mac OS X. * [151141] PDF generator: Make PDFs using the default font on Mac OS X searchable. * [129297, 140555] PS/PDF generator: Drastically reduced the sizes of generated files and speeded up generation when using simple pens. * [143803] Correctly set the default printer name on X11. * [134204] PDF generator: Ensured that the correct output is generated when drawing 1-bit images * [152068] PS generator: Ensured that the correct PostScript is generated when embedding TrueType fonts with broken POST tables. * [143270] X11: Ensure that sigpipe is ignored when printing to an invalid printer using the PDF generator. - QProcess * [97517] Added suport for specifying the working directory of detached processes as well as retrieving the PID of such processes. * [138770] Greatly improved the performance of stdin and stdout handling on Windows. * [154135] Fixed crashes and lock-ups due to use of non-signal-safe functions on Unix. * [144728] Fixed race conditions on Windows that would occur when calling bytesWritten() while using the waitFor...() functions. * [152838] Ensured that finished() is no longer emitted if a process could not start. - QProgressBar * [146855] Ensured that setFormat() now calls update() if the format changes. * [152227] Improved support for wide ranges across the entire integer range. * The setRange() function is now a slot. * [137020] Ensured setValue() forces a repaint for %v. - QProgressDialog * The setRange() function is now a slot. * [123199] Ensured that the Escape key closes dialog even when the cancel text is empty. - QPushButton * [114245] Fixed some styling issues for push buttons with popup menus. * [158951] Buttons with icons now center their content to be more consistent with buttons that do not have icons in most styles. * [132211] Fixed setDefault() behavior. - QReadWriteLock * [106089] Added the tryLockForRead(int) and tryLockForWrite(int) functions which allow a thread to specify the maximum amount of time to wait for the lock to become available. * [131880] Added support for recursive write locking. - QRectF * [143550] Added the QRectF(topRight,bottomLeft) constructor. - QRegion * Added several optimizations for common operations on X11 and Qtopia Core. - QResource * Allow a QByteArray to be used for run time resource registration. - QScrollArea * [140603] Fixed flickering when the scroll widget is right-aligned. - QSemaphore * Add the tryAcquire(int n, int timeout) function which allows a thread to specify the maximum amount of time to wait for the semaphore to become available. - QSettings * [153758] Fixed various bugs that could occur when writing to and reading from the Windows registry. - QSizeGrip * Added support for size grips in TopLeftCorner/TopRightCorner on Windows. * Added support for size grips on subwindows. * [150109] Fixed bug where the position could change during resize. * [156114] Fixed incorrect size grip orientation on X11. - QSlider * Prevent the widget from getting into infinite loops when extreme values are used. - QSocketNotifier * [148472] Mac OS X now prevents the file descriptor from being closed when a socket notifier is deregistered. * [140018] Mac OS X will now invalidate the backing native socket notifier upon deregistration. * Optimized performance by avoiding some debugging code in release builds. - QSortFilterProxyModel * [151352] Ensured that the dataChanged() signal is emitted when sorting. * [154075] Added support to handle the insertion of rows in the source model. * [140152] Added a property to force the proxy model to use QString's locale-aware compare method. - QSpinBox * [141569] Disallow typing -0 in a QSpinBox with a positive range. * [158445] Add the keyboardTracking property. When set to false, don't send valueChanged() with every key press. * [143504] Made undo/redo work correctly. * [131165] Fixed highlighting according to the native look on Mac OS X. - QSplashScreen * [38269] Added support for rich text. - QSplitter * [139262] Fixed bug that caused the splitter to snap back and forth in certain situations. - QSql * Added NumericalPrecisionPolicy to allow numbers to be retrieved as double or float. - QSqlDriver * [128671] Added SimpleLocking to DriverFeature. - QSqlQueryModel * [155402] Fixed bug where the rowsAboutToBeRemoved() and rowsRemoved() signals were emitted when setQuery() was called on an already empty model. * [149491] Fixed bug where blank rows were inserted into the model if the database driver didn't support the QuerySize feature and the result set contained more than 256 rows. - QSqlRelationalTableModel * [142865] Fixed support for Interbase and Firebird by not using 'AS' in generated SQL statements. - QSqlTableModel * [128671] Ensured that the model has no read locks on a table before updating it. Fixes parallel access for in-process databases like SQLite. * [140210] Fixed bug where setting a sort order for a column caused no rows to be selected with PostgreSQL and Oracle databases due to missing escape identifiers in the generated SQL statement. * [118547] Don't issue asserts when inserting records before calling select() on the model. * [118547] Improved error reporting. - QSslCertificate - QSslCipher - QSslError - QSslKey - QSslSocket * New classes. Added support for SSL to QtNetwork. - QStandardItemModel * Reduced the construction time when rows and columns are given. * [133449] Improve the speed of setData() * [153238] Moving an item will no longer cause that item to lose its flags. * [143073] Calling setItemData() now triggers the emission of the dataChanged() signal. - QStatusbar * [131558] Increased text margin and fixed a look and feel issue on Windows. - QString * fromUtf8() now discards UTF-8 encoded byte order marks just like the UTF-8 QTextCodec. * [154454] Fixed several UTF-8 decoder compliance problems (also affects the UTF-8 QTextCodec). * Removed old compatibility hack in fromUtf8()/toUtf8() to allow round trip conversions of invalid UTF-8 text. * Added support for full Unicode case mappings to toUpper() and toLower(). * Correctly implemented case folding with the foldCase() method. (Also for QChar.) * [54399] Added more overloads (taking up to 9 arguments) for arg(). - QStringListModel * Made it possible for items to be dropped below the other visible items on a view with a QStringListModel. - QStyle * Added the SP_DirHomeIcon standard pixmap to provide the native icon for the home directory. * Added documentation to indicate that pixel metrics are not necessarily followed for all styles. * standardPixmap() has been obsoleted. Use standardIcon() instead. * Added SP_VistaShield to support Vista UAC prompts on Windows Vista. * [103150] Added SH_FocusFrame_AboveWidget to allow the focus frame to be stacked above the widget it has focus on. * The default password character is now a Unicode circle, the asterisk is still used for QMotifStyle and its subclasses. * [127454] CE_ToolBoxTab now draws two parts, CE_ToolBoxTabShape and CE_ToolBoxTabLabel. This should make QToolBox more styleable. * [242107] Added a QStyleOptionToolBoxV2 with tab position and selected position enums. - QStyleOption * [86988] Added an initializeFromStyleOption() function for the many widgets that need to create a QStyleOption subclass for style-related calls. - QSyntaxHighligher * [151831] Fixed bug where calling rehighlight() caused highlighBlock() to be called twice for each block of text. - QSystemTrayIcon * [131892] Added support to allow messages to be reported via AppleScript on Mac OS X. * [151666] Increased the maximum tool tip size to 128 characters on the Windows platforms that support it. * [135645] Fixed an issue preventing system tray messages from working on some Windows platforms. * Addded the geometry() function to allow the global position of the tray icon to be obtained. - QTabBar * [126438] Added the tabAt(const QPoint &pos) function. * [143760] Fixed a bug where scroll buttons were shown even when disabled. * [130089] Ensured that the tool tip help is shown on disabled tabs. * [118712] Enabled auto-repeat on scroll buttons. * [146903] Ensured that the currentChanged() signal is emitted when a tab is removed * Ensured that corner widgets are taken into account when calculating tab position in the case where the tab bar is centered. * [132091] Re-introduced the Qt 3 behavior for backwards scrolling of tabs. * [132074] Ensured that currentChanged() is always emitted when the current tab is deleted. - QTableView * No longer allow invalid spans to be created. * [145446] Fixed bug where setting minimum height on horizontal header caused the the table to be rendered incorrectly. * [131388] Fixed case where information set using setRowHeight() was lost on a subsequent call to insertRow(). * [141750] Fixed issue where spanned table items were painted twice per paint event. * [150683] Added property for enabling/disabling the corner button. * [135727] Added the wordWrap property. * [158096] resizeColumnToContents(int i) now has the same behavior that resizeColumnsToContents() uses for individual columns. - QTableWidget * [125285] Ensured that dataChanged() is only emitted once when setItemData() is used to set data for more than one role. * [151211] Added removeCellWidget() and removeItemWidget(). * [140186] Fixed bug where calling setAutoScroll(false) would have no effect. - QTabWidget * Tab widgets now take ownership of their corner widgets and allow corner widgets to be unset. * [142464] Fixed incorrect navigation behavior that previously made it possible to navigate to disabled tabs. * [124987] Ensured that a re-layout occurs when a corner widget is set. * [111672] Added the clear() function. - QtAlgorithms * [140027] Improved the performance of qStableSort() on large data sets. - QTcpSocket * Added several fixes to improve connection reliability on Windows. * Made a number of optimizations. * Improved detection of ConnectionRefusedError on Windows and older Unixes. * Added support for proxy authentication. - QTemporaryFile * [150770] Fixed large file support on Unix. - QTextBrowser * [126914] Fixed drawing of the focus indicator when activating links. * [82277] Added the openLinks property to prevent QTextBrowser from automatically opening any links that are activated. - QTextCodec * Improved the UTF-8 codec's handling of large, rare codepoints. * [154932] The UTF-8 codec now keeps correct state for sequence f0 90 80 80 f4 8f bf bd. * [154454] Fixed several UTF-8 decoder compliance problems also affecting QString::fromUtf8(). * Fixed the UTF-8 codec's handling of incomplete trailing UTF sequences to be the same as QString::fromUtf8(). - QTextCursor * The definition of the block character format (obtained using the blockCharFormat() and QTextBlock::charFormat() functions) has been changed to be the format used only when inserting text into an empty block. If a QTextCursor is positioned at the beginning of a block and the text block is not empty then the character format to the right of the cursor (the first character in the block) is returned. If the block is empty, the block character format is returned. List markers are now also drawn with the character format of the first character in a block instead of the invisible block character format. - QTextDecoder * Added the hasFailure() function to indicate whether input was correctly encoded. - QTextDocument * [152692] Ensured that the print() function uses the document's default font size. * Added the defaultTextOption property. * Setting a maximum block count implicitly now causes the undo/redo history to be disabled. * Made numerous fixes and speed-ups to the HTML import. * [143296] Fixed HTML import bug where adding a
tag after a table would cause two empty lines to be inserted instead of one. * [144637, 144653] Ensured that the user state property of QTextBlock is now preserved. * [140147] Fixed layout bug where the document size would not be updated properly. * [151526] Fixed problem where the margins of an empty paragraph above a table would be ignored. * [136013] The "id" tag can now be used to specify anchors. * [144129] Root frame properties are now properly exported/imported. - QTextDocumentFragment * QTextDocumentFragment no longer stores the root frame properties, the document title or the document default font when it is created from a document or from HTML. Use QTextDocument's toHtml() and setHtml() function if you want to propagate these properties to and from HTML. - QTextEdit * [152208] Ensured that the undo/redo enabled state is preserved across setPlainText() and setHtml() calls. * [125177] Added a print() convenience function that makes it possible to support QPrinter::Selection as selection range. * [126422] Fixed bug in copy/paste which could cause the background color of pasted text to differ from that of the copied text. * [147603] Fixed various cases where parts of a text document would be inaccessible or hidden by the scroll bars. * [148739] Fixed bug where setting the ensureCursorVisible property would not result in a visible cursor. * [152065] Fixed cases where currentCharFormatChanged() would not be emitted. * [154151] The undoAvailable() and redoAvailable() signals are no longer emitted too many times when entering or pasting text. * [137706] Made the semantics of the selectionChanged() signal more like QLineEdit::selectionChanged(). - QTextFormat * [156343] Fixed crash that could occur when streaming QTextFormat instances. - QTextLayout * Fixed support for justified Arabic text. * [152248] Fixed assert in sub/superscript handling of fonts specified in pixel sizes. * Optimized text layout handling for pure Latin text. * Ensured that OpenType processing is skipped altogether if a font does not contain OpenType tables. * Fixed some issues in the shaper for Indic languages. * Upgraded the line breaking algorithm to the newest version (http://www.unicode.org/reports/tr14/tr14-19.html). * [140165] Changed boundingRect() to report the actual position of the top left line instead of incorrectly reporting (0, 0) for the top-left corner in every case. * Fixed various problems with text kerning. - QTextStream * [141391] Fixed bug that could occur when reusing a text stream with the setString() method. * [133063] atEnd() now works properly with stdin. * [152819] Added support for reading and writing NaN and Inf. * [125496] Ensured that uppercasebase and uppercasedigits work as expected. - QTextTable * [138905] Fixed bug where merging cells in a QTextTable would cause text to end up in the wrong cells. * [139074] Fixed incorrect export of cell widths to HTML when exporting tables containing column spans. * [137236] Fixed bug where a text table would ignore page breaks. * [96765] Improved handling of page breaks for table rows spanning several pages. * [144291] Fixed crash that could occur when using setFormat() with an old format after inserting or removing columns. * [143501] Added support for vertical alignment of table cells. * [136397, 144320, 144322] Various border styles and border brushes are now properly supported. * [139052] Made sure that empty text table cells get a visible selection. - QtGlobal * Added Q_FUNC_INFO, a macro that expands to a string describing the function it is used in. * [132145] Fixed Q_FOREACH to protect against for-scoping compiler bugs. * Fixed a race condition in the internal Q_GLOBAL_STATIC() macro. * [123910] Fixed crashes on some systems when passing 0 as the message to qDebug(), qWarning(), and qFatal(). - QThread * [140734] Fixed a bug that prevented exec() from being called more than once per thread. * Optimized the currentThread() function on Unix. * Added the idealThreadCount() function, which returns the ideal number of threads that can be run on the system. - QThreadStorage * [131944] Refactored to allow an arbitrary number of instances to be created (not just 256 as in previous versions). * Updated documentation, as many caveats have been removed in Qt 4.2 and Qt 4.3. - QTimeEdit * [136043] Fixed the USER properties. - QTimeLine * [145592] Fixed the time line state after finished() has been emitted. * [125135] Added the resume() function to allow time lines to be resumed as well as restarted. * [153425] Fixed support for cases where loopCount >= 2. - QTimer * Added the active property to determine if the timer is active. - QToolBar * [128156, 138908] Added an animation for the case where a tool bar is expanded to display all its actions when its extension button is pressed. - QToolBox * [107787] Fixed rendering bugs in reversed mode. - QToolButton * [127814] Ensured that the popup delay respects style changes. * [130358] Ensured that Hover events are sent to the associated QAction when the cursor enters a button. * [106760] Fixed bug where the button was drawn as pressed when using MenuButtonPopup as its popup mode. - QToolTip * [135988] Allow tool tips to be shown immediately below the cursor * [148546] The usage of tool tip fading now adheres to the user settings on Mac OS X. * [145458] Tool tip fading now looks native on Mac OS X (fading out rather than in). * [145557] Fixed bug that caused tool tips to remain visible if the cursor left the application quickly enough on Mac OS X. * [143701] Fixed bug that caused tool tips to hide behind stay-on-top windows on Mac OS X. * [158794] Fixed bug on Mac OS X where isVisible() returned true even if the tool tip was hidden. - QTreeView * [158096] Added checks to prevent items from being dropped on their own children. * [113800] When dragging an item over an item that has child items, QTreeView will now automatically expand after a set time. * [107766] Added a style option (enabled in the Windows style) to select the first child when the right arrow key is pressed. * [157790] It was possible to get in a state where clicking on a branch (+/- in some styles) to expand an item didn't do anything until another location in the view was clicked. * Made it possible to create a selection with a rectangle of negative width or height. * [153238] Ensured that drops on branches are interpreted as drops onto the root node. * [152868] Fixed setSelection() so that it works with negative y-coordinates. * [156522] Fixed repaint errors for selections in reversed mode. * [155449] Prevented the tree from having huge columns when setting the alignment before it is shown. * [151686] Hidden rows are now filtered out of the user selection range. * [146468] Fixed bug where the indexRowSizeHint could be incorrect in the case where columns were moved. * [138938] Fixed an infinite loop when calling expandAll() with no column. * [142074] Scroll bars are no longer shown when there are no items. * [143127] Fixed bug that prevented the collapsed() signal from being emitted when the animated property was set to true. * [145199] Fixed crash that could occur when column 0 with expanded items was removed and inserted. * [151165] Added the indexRowHeight(const QModelIndex &index) function. * [151156] Add support for hover appearance. * [140377] Add the expandTo(int depth) function. * Clicking in the empty area no longer selects all items. * [135727] Added the wordWrap property. * [121646] setSelection() now selects the item within the given rectangle. * Added the setRowSpanning(int row, const QModelIndex &parent) and isRowSpanning(int row, const QModelIndex &parent) functions. - QTreeWidget * [159078] Fixed drag and drop bug on Mac OS X that could occur when dragging inside the widget. * [159726] Fixed crash that could occur when dragging a QTreeWidgetItem object with an empty last column. * [154092] Fixed case where the drag pixmap could get the wrong position when dragging many items quickly. * [152970] Hidden items are no longer returned as selected from the selectedItems() function. * [151211] Added the removeCellWidget() and removeItemWidget() functions. * [151149] Made the header text left-aligned instead of center-aligned by default. * [131234] Made it possible to do lazy population by introducing the QTreeWidgetItem::ChildIndicatorPolicy enum. * [134194] Added the itemAbove() and itemBelow() functions. * [128935] The disabled state of an item is now propagated to its children. * [103421] Added the QTreeWidgetItem::setExpandable() function. * [134138] Added the QTreeWidgetItem::removeChild() function. * [153361] Ensured that items exist before emitting itemChanged(). * [155700] Fixed a crash in QTreeWidget where deleted items could still be referenced by a selection model. - QUdpSocket * [142853] Now continues to emit readyRead() if the peer temporarily disappears. * [154913] Now detects datagrams even when the sender's port is invalid. - QUndoStack * [142276] Added the undoLimit property which controls the maximum number of commands on the stack. - QUrl * [134604] Fixed the behavior of the obsolete dirPath() function on Windows. - QValidator * [34933] Added support for scientific notation. - QVariant * [127225] Unloading a GUI plugin will no longer cause a crash in QVariant in a pure QtCore application. - QWaitCondition * [126007] Made the behavior of wakeOne() consistent between Windows and Unix in the case where wakeOne() is called twice when exactly 2 threads are waiting (the correct behavior is to wake up both threads). - QWidget * [139359] Added the locale property to make it easy to customize how individual widgets display dates and numbers. * [155100] Fixed a regression that could cause Qt::FramelessWindowHint to be ignored for frameless windows. * [137190] Ensured that windows with masks are now rendered correctly with respect to window shadows on Mac OS X. * [139182] Added the render() function to allow the widget to be rendered onto another QPaintDevice. * [131917] Fixed bug where minimum and maximum sizes were not respected when using X11BypassWindowManagerHint. * [117896] Fixed setGeometry() to be more consistent across Mac OS X, Windows, X11 and Qtopia Core. * [132827] Allow the focus to be given to a hidden widget; it will receive the focus when shown. * Reduced the overhead of repainting a widget with lots of children. * Clarified the documentation for the Qt::WA_AlwaysShowToolTips widget attribute. * [154634] Ensured that the Qt::WA_AlwaysShowToolTips widget attribute is respected for all widgets. * [151858] Improved the approximation returned by visibleRegion(). * [129486] Ensured that calling setLayout() on a visible widget causes its children to be shown, making its behavior consistent with the QLayout::addWidget() behavior. - QWindowsStyle * [110784] Scroll bar and spin box arrows now scale with the widget size. * Given certain panel and button frames a more native appearance. * [142599] Ensured that a QDockWidget subclass is not required when using the style to draw a CE_DockWidgetTitle. - QWindowsXPStyle * [150579] Fixed the use of the wrong background color for QSlider. * [133517] Fixed styling of the unused area in header sections. * [48387] Fixed styling of MDI/Workspace controls. * [109317] Fixed a rendering issue with tab widgets in the Silver color scheme. * [114120] Ensured that the frame property for combo boxes is respected. * [138444] Fixed crash that could occur when passing 0 as the widget argument to drawComplexControl(). - QWizard - QWizardPage * New classes. Based on QtWizard and QtWizardPage in Qt 4 Solutions. Redesign of QWizard from Qt 3. - QXmlParseException * [137998] Fixed incorrect behavior where systemId/publicId was never reported. - QXmlSimpleReader * QXmlSimpleReader no longer reads entire files into memory, allowing it to handle large XML files. - Q3DateEdit * [131577] Fix a bug that could occur when entering out-of-range years in a Q3DateEdit. - Q3DockWindow * [125117] Fixed some style issues with Windows XP and Plastique styles. - Q3GroupBox * Added FrameShape, FrameShadow, lineWidth, and midLineWidth properties. - Q3ListView * [150781] Fixed a crash in setOpen() (previously fixed in Qt 3). - Q3ScrollView * [125149] Mouse events should not be delivered if the Q3ScrollView is disabled. This fixed the case where items were still selectable when Q3ListView was disabled using the setEnabled() function. - Q3SqlCursor * [117996] Improved support for tables and views that have fields with whitespace in their names. - Q3TextEdit * [136214] Fixed invalid memory reads when using undo/redo functionality. **************************************************************************** * Database Drivers * **************************************************************************** - Interbase driver * [127724] Added support for OUT values from stored procedures. (See the SQL Database Drivers documentation for details.) * [159123] Fixed crash that could occur when fetching data from Interbase 2007 databases. * [143474] Added support for SQL security-based roles. * [134608] Fixed bug where queries in some cases returned empty VARCHAR fields if they contained non-ASCII characters. * [143471] Fixed bug that caused fetching of multisegment BLOB fields to fail in some cases. * [125053] Fixed bugs where NUMERIC fields were corrupted or returned as the wrong type in some cases. - MySQL driver * [156342] Fixed bug where BINARY and VARBINARY fields were returned as QString instead of QByteArray. * [144331] Fixed bug where a query would become unusable after executing a stored procedure that returns multiple result sets. - OCI driver * Added support for low-precision retrieval of floating point numbers. * [124834] Fixed bug where the binding strings failed on certain configurations. * [154518] Fixed bug where connections were not properly terminated, which lead to resource leaks and connection failures. - ODBC driver * Increased performance for iterating a query backwards. * [89844] Added support for fetching multiple error messages from an ODBC driver. * [114440] Fixed bug where binding strings longer that 127 characters failed with Microsoft Access databases. * [139891] Fixed bug where unsigned ints were returned as ints. - SQLite driver * [130799] Improved support for attatched databases when used with QSqlTableModel. * [142374] Improved error reporting in cases where fetching a row fails. * [144572] Fixed the implementation of escapeIdentifier() to improve support for identifiers containing whitespace and reserved words when used with the model classes. - PostgreSQL driver * [135403] Properly quote schemas in table names ("schema"."tablename"). * [138424] Fixed resource leak that occurred after failed connection attempts. - DB2 driver * [110259] Fixed bug where random characters were prepended to BLOB fields when fetched. * [91441] Fixed bug where binding strings resulted in only parts of the strings being stored. **************************************************************************** * QTestLib * **************************************************************************** * [138388] Floating point numbers are now printed in printf's "%g" format. * [145643] QEXPECT_FAIL does not copy or take ownership of "comment" pointer. * [156346] Gracefully handle calls to qFatal(). * [154013] Don't count skips as passes. * [145208] Display QByteArrays in convenient ways. * Output well-formed XML. **************************************************************************** * QDBus * **************************************************************************** - Library * Added support for QList and QList to allow them to be used without first having to register the types. * Added support for using QtDBus from multiple threads. * Made it possible to marshal custom types into QDBusArgument. * qdbuscpp2xml: * [153102] Ensure that Q_NOREPLY is ignored. * [144663] Fixed problems with executing qdbuscpp2xml on Windows. * Don't require moc to be on a path listed in the PATH environment variable. * QDBusInterface: * Changed asserts in the QDBusInterface constructor to QDBusErrors. * QDBusConnection: * Added a separate slot for delivering errors when calling callWithCallback(). - Viewer * Moved QDBusViewer from demos to QDBus tools. * Added ability to get and set properties. * Added support for demarshalling D-Bus variants. * Added a property dialog for entering arguments. * Made QDBusObjectPath clickable in the output pane. **************************************************************************** * Platform Specific Changes * **************************************************************************** X11 --- * [153346] Ensured that tablet events are not delivered while a drag and drop operation is in progress. * [141756] Ensured that the Plastique or Cleanlooks styles are not used as default styles when Xrender is not available. * [139455] Fixed QX11EmbedContainer race causing sudden unembedding of clients. * [96507] Added support for using _POSIX_MONOTONIC_CLOCK as the timer source (also affects Qtopia Core). * [128118] Fixed garbage output when calling QPixmap::grabWindow() on a window on a non-default screen. * [133119] Ensured that X11 color names are detected in the RESOURCE_MANAGER property. * [56319] Added support for _NET_WM_MOVERESIZE to QSizeGrip, which cooperates with the window manager to do the resizing. * Fixed QWidget::isMaximized() to return false when the window is only maximized in a single direction. * [67263] Fixed a bug that could cause applications to freeze while querying the clipboard for data. * [89224] Fixed the behavior of minimized Qt applications to show the correct icon (instead of the standard OpenWindows icon) on Solaris. * [116080] Ensured that the TIMESTAMP clipboard property is set using XA_INTEGER (as defined in the ICCCM). * [127556] Refactored timer accounting code to be more efficient and less cumbersome to maintain. * [132241] Add support for DirectColor visuals. Qt will now create and initialize a colormap when using such visuals. * [140737] Fixed QEventDispatcherGlib::versionSupported() to be much simpler. * Fixed a bug where QWidget::windowFlags() would not include Qt::X11BypassWindowManagerHint for Qt::ToolTip and Qt::Popup windows. * [146472] Fixed a bug where QWidget::setWindowFlags() would disable drag and drop operations from outside Qt applications. * [150352] Fixed painting errors after show(), hide(), then show() under GNOME. * [150348] Fixed a bug that would incorrectly set the Qt::WA_SetCursor attribute on top-level windows. * [135054] Fixed system palette detection code to use contrast that is more similar to the desktop settings. * [124689] Documented potential QDrag::setHotSpot() inefficiency on X11. * [121547] Fixed QWidget::underMouse() to ensure that the value it returns is correctly updated after the mouse button is released. * [151742] Improved robustness when executing in an X11-SECURITY reduced ssh-forwarded session. * [142009] Fixed a bug that caused an application using the Qt Motif Extension to freeze when trying to copy text into a QTextEdit. * [124723] Fixed PseudoColor detection to correctly handle cases where the colormap is not sequential. * [140484] Don't use the GLib event dispatcher if GLib version is too old. * Fixed a bug where a window would get an incorrect size after the second call to show(). * [153379] Fixed shortcuts where the modifier also includes Mode_switch in the modifier mask; for example, Alt+F on HP-UX. * [154369] Fixed drag and drop to work properly after re-creating a window ID. * [151778] Fixed mouse enter/leave event platform inconsistencies. * [153155] Added the QT_NO_THREADED_GLIB environment variable, which tells Qt to use Glib only for the GUI thread. * Fixed restoreGeometry() to ensure that full-screen windows are moved to the correct position. * [155083] Don't use legacy xlfd fonts if we have fontconfig available on Solaris. * [150348] Fixed bug where setCursor() would not work properly after a setParent() call. * Made Plastique the default style on X11. Windows ------- * Added an experimental DirectX-based paint engine. * [141503] Ensured that clicks inside tool windows won't cause them to be activated if there is no child widget to take focus. * [153315] Improved handling of Synaptic touchpad wheel messages. * [150639] Added support for CF_DIBV5 format and improved support for transparent images on the clipboard. * [146862] Improved readability of progress bar text when shown in the Highlight palette color. * [146928] Fixed issue where shortcut events were discarded when auto- repeat was disabled. * [141079] Ensured that wheel events contain button information. * [149367] Ensured that QMimeData::formats() returns all the available formats in the object. * [135417] Ensured that WM_SYSCOLORCHANGE does not trigger resetting of fonts. * [137023] Fixed a crash that could occur while translating mouse events. * [138349] Fixed incorrect focus handling with multiple top-level widgets. * [111211] Ensured that tool windows don't steal focus from their parents while opening. * [143812] Fixed a bug which can break the widget's ability to maximize after saving and restoring its state. * [111501] Ensured that SPI_SETWORKAREA messages trigger calls to QDesktopWidget::workAreaResized(). * [141633] Fixed command line parsing for GUI applications. * [134984] Ensured that SockAct events are not triggered from processEvents(ExcludeSocketNotifiers). * [134164] Ensured that top-level widgets configured with MSWindowsFixedSizeDialogHint are centered properly. * [145270] Fixed mapFromGlobal() and mapToGlobal() for minimized or invisible widgets. * [132695] Fixed a potential crash that could occur when changing the application style after the system theme had been changed. * [103739] Workspace title bars now respect custom title bar heights in the Windows XP style. * [48770] Improved size grip behavior in top-level widgets. * [113739] Fixed an issue that could occur when using QWidget::scroll() with on-screen painting. * [129589] Added support for moving the mouse cursor to the default button in dialogs. * [139120] Added support for resolving native file icons through QFileIconProvider. * [129927] Added the QWindowsVista style to support native look and feel on Windows Vista. * [106437] Removed the Windows XP style from the list of keys supplied by QStyleFactory::keys() on platforms where it is not available. * [109814] Improved UNC path support. * [157261] Fixed crash that could occur when using Alt keycodes with text handling widgets. * [116307] Ensured that QEvent::WindowActivate is sent for tool windows. * [150346] Fixed a bug that would cause an application to exit when its last window (a modal dialog) was closed and a new window shown immediately afterwards. * [90144] Fixed a bug that caused QApplication::keyboardModifiers() to return modifiers even after they had been released. * [142767] Fixed a bug that allowed a QPushButton to become pressed even though its mousePressEvent() handler function was never called. * [151199] Usage of blocking QProcess API in a thread no longer hangs the desktop. * [144430] Made the shortcut system distinguish between Key_Return and Key_Enter. * [144663] Made sure qdbuscpp2xml can parse moc output on Windows. * [126332] Made QDBus compile on Windows platforms. * [133823, 160131] Fixed bug in the QWidget::scroll() overload that accepts a rectangle argument. - ActiveQt * Ensured that, when loading a typelib file to obtain information about a control, the typelib is processed correctly. * [158990] Ambient property change events are now emitted regardless of the container's state. * [150327] ActiveQt based controls will now return the correct Extents depending on the size restrictions set on the widget. * [141296] Ensured that the ActiveQt DLL is unloaded from the same thread which loaded it. - Qt Style Sheets * Added support for background clipping using the border-radius property. * Almost all widgets are now styleable using style sheets. * Added support for the -stylesheet command line option to QApplication. * Added support for styling through SVG. * Added support to allow colors and brushes to be specified as gradients. Mac OS X -------- * qtconfig is no longer available on Mac OS X. All settings are read from the system's configuration. * [156965] Always offers a 'TEXT' type flavor for non-Pasteboard-aware Mac Application pastes. * [158087] Fixed various mouse event propagation bugs. * Introduced Q_WS_MAC32/Q_WS_MAC64 for 64 vs. 32-bit detection compile time infrastructure. * [156431] Introduced WA_MacAlwaysShowToolWindow to allow windows to behave as utility windows as opposed to floating windows. * [155651] Qt will now follow the HIView focus chain to allow wrapped HIViewRef's to take focus when appropriate. * [149753] Qt will not deliver mouse release events to widgets that do not process mouse press events (including widgets with the WA_MacNoClickThrough attribute set). * Introduced support for 64-bit Mac OS X builds. Only available on Mac OS X 10.5 (Leopard). * [145166] Ensured that CoreGraphics high quality interpolation is used when using SmoothPixmapTransform. * [134873] Ensured that the widget hierarchy is used to find a widget with a cursor rather than using the frontmost widget. * [132178] Enforced the requirement for double click detection that the second click must be near the previous click to prevent false double clicks being reported. * [131327] Fixed mouse propagation for top-level widgets with the WA_MacNoClickThrough attribute set. * Now entirely QuickDraw clean. * [155540] Ensured that asymmetic scales work with cosmetic pens. * [141300] Fixed an issue that prevented QFontDatabase/QFontDialog from showing all fonts installed on the system. * Fixed writing system detection in QFontDatabase. * [148876] Fixed bug that caused characters to be committed twice in the Chinese Input method. * Removed the use of an extra setFocus() in the event loop when a window is activated. * [152224] Fixed bug in QWidget's window state. * [156431] Added the WA_MacAlwaysShowToolWindow widget attribute to allow Mac users to create utility-window-style applications. * [144110] Fixed resizing of sheets on Panther. * [140014] Made it possible to drag QUrls on Panther. * [155312] Fixed bug that could occur when dragging several URLs to Finder and certain other applications. * [155244] Fixed bug that could occur when dragging a URL to Finder. * [153413] Fixed bug that could occur when dragging URLs between Qt applications. * [152450] Fixed bug that could occur when dragging URLs to applications such as the trash can. * [151158] Fixed an issue that prevented widgets from receiving drag events if a move event was ignored. * [145876] Ensured that a drag move event is always received directly after a drag enter event (according to the documentation). * [156365] Fixed event bug when dragging URLs to receivers that only refer to a drop location. * [119251] Tool tips and dialogs no longer cause full-screen windows to show their menu bar and the dock. * [147640] Fixed QScrollArea scrolling behavior when showing regions with dimensions between 2^15 and 2^16 pixels. * [158988] Ensured that a mouse enter event is now sent before a mouse press event upon window activation. * [157313] Fixed hanging bug that could occur if the system clock was adjusted backwards while using sockets. * [151411] Fixed window switching bug (Cmd + ~) that could occur when showing a modal dialog with a popup. * Ensured that changing a shortcut containing a cursor movement key now works correctly. * [143912] Fixed focus problem caused by mouse hovering over widgets with modal sheets. * [141456] Fixed activation bug exhibited by minimized windows upon being shown. * [155394] Fixed issue where a widget's move and resize state were not set correctly upon widget initialization. * [254325] Fixed sheet transparency bug. * [152481] Fixed crash that could occur when clicking in a window when a modal print dialog is showing. * [143835] Removed unnecessary window updates for active windows. * [145552] A mouse up event is now sent when a window drag has finished after a mouse press. * [146443] Ensure that, if a window is moved before it is shown for the first time, it is placed correctly when it is shown. * [141387] Fixed bug that caused two near-simultaneous mouse presses on different widgets to be interpreted as a single click. * [139087] Fixed activation for some types of shortcuts, such as QKeySequence(Qt::CTRL | Qt::Key_Plus). * Only use Roman for determining with System Fonts since Mac OS X will perform the necessary translation. * When using OpenGL, ensured that the 32-bit accumulation buffer is used in preference to the 64-bit accumulation buffer by default. * [123467] Fixed bug where the event loop would spin and not emit aboutToBlock() when popup menus were shown. * [137677] QString::localAwareCompare() now respects the sorting order set in the system preferences. * [139658] Mac OS X accessibility no longer requires that QApplication::exec() is called. * [118814, 126253, 105525] Fixed several QCombobox look and feel issues. * [145075] Fixed aliased line drawing bug. * [122826] Fixed QScrollBar painting error. * [131794] PixelTool and QWidget::grabWindow() now work on non-primary monitors. * [160228] The Quartz 2D-based paint engine now respects the font style strategy. * Made miscellaneous changes to make wrapping non-Qt HIViews easier. * Qt is now built with MACOSX_DEPLOYMENT_TARGET set to 10.3 (since Qt can only be run on Mac OS X 10.3 and above). * QSound now uses NSSound for its implementation instead of the deprecated C QuickTime API. This means that the QtGui library is no longer dependant on the QuickTime framework. * Added a -dwarf-2 configure option to allow people to turn on DWARF2 debugging symbols when that is not the default. The ability to use DWARF2 debugging symbols was added in later version of the Xcode 2.x series. * Fixed many assertions when running against Carbon_debug. * Renamed the Qt::WA_MacMetalStyle attribute to WA_MacBrushedMetal. * Changing the Qt::WA_MacBrushedMetal attribute will now cause a StyleChange event to be sent. * The Qt translations and Qt Linguist phrase books have been added to the binary package. * [134630] Fixed loading of plugins in the case where universal plugins are used but the wrong architecture is accidentally read first, instead of returning an architecture mismatch. * QCursor now uses NSCursor internally instead of the deprecated QuickDraw functions. * Corrected the encoding and decoding functions for QFile to handle different Unicode normalization forms. Qtopia Core ----------- - New font system * A new font subsystem has been implemented that, by default, allows glyphs rendered at run time to be shared between applications. A new pre-rendered font format (QPF2) has also been implemented together with a new "makeqpf" tool to generate them. * Support for custom font engine plugins has been added through QAbstractFontEngine and QFontEnginePlugin. * The default font family has been changed to DejaVu Sans. - OpenGL ES * [126421, 126424] Added QGLWindowSurface and QGLScreen framework for OpenGLES (and others) on Qtopia Core. A sample implementation can be found in the examples/qtopiacore directory. - Accelerated graphics API * [150564] API changes in QWSWindowSurface. New functions include QWSWindowSurface::move() to enable accelerated movement of top-level windows. * [152755] API clarification: The windowIndex parameter to exposeRegion() now always refers to the window that is being changed. * [150569, 139550] Made API additions to QWSWindow to give QScreen information about the window state, window flags, and window dirty region * [150746] Added QScreen::pixelFormat() and QScreen::setPixelFormat() to enable drawing optimizations for some formats. - General fixes * Improved support for compiling a LSB (Linux Standard Base) compliant Qtopia Core library. * [133365] Added the QWSServer::setScreenSaverBlockLevel() function to make it possible to block the key/mouse event that stops the screen saver at a particular level. * Fixed QFontDatabase::addApplicationFont() for Qtopia Core. * [131714] Fixed performance problems with drag and drop operations. * [96507] Added support for using _POSIX_MONOTONIC_CLOCK as the timer source (also effects Qt/X11). * [132346] Fixed a performance bug causing unnecessary screen copies when using a hardware cursor. * [121496] Made lots of performance improvements in the VNC driver. * [138615] Fixed color conversion for cases where the VNC server is running on a big-endian machine. * [131321] Optimized text drawing. * [136282] Fixed a bug preventing QWidget::setCursor() and QWidget::unsetCursor() from taking effect immediately. * [139318] Fixed a performance bug that would cause non-visible regions to receive paint events. * [139858] Implemented acceleration for the 'pc' mouse handler. * [140705, 140760] Improved release of used resources (e.g, shared memory and hardware resources) when the application exits unexpectedly. * [144245] Fixed a problem with some cross-compilers triggered by using math.h functions taking a double argument when using float data. * Optimized QSocketNotifier activation. * [156511] Implemented QDirectPainter::ReservedSynchronous which makes a QDirectPainter object behave as a QDirectPainter region allocated using the static functions. * [94856] Fixed console switching when using the Tty keyboard driver. * [157705] Ensured that device parameters are passed to keyboard and mouse plugins. * [156704] Fixed QPixmap::grabWindow() for 18 and 24-bit screens. * [154689] Fixed the -no-gfx-multiscreen configure script option. * [160404] Fixed 4-bit grayscale support in QVFb and QScreen. * Optimized QCop communication. * Fixed bug in QWidget::setMask() for visible widgets. * [152738] Allow transparent windows to be shown on top of unbuffered windows. * [154244] Fixed bug where a client process would not terminate when server closed. * [152234] No longer send key events for one client to other client processes for security and performance reasons. * [148996] Added checks in the server to avoid buffer overruns if clients send malformed commands * [154203] Fixed mouse calibration bug with mirrored/180-degree-rotated touch screens. **************************************************************************** * Compiler Specific Changes * **************************************************************************** - MinGW * [119777] Removed the dependency on mingwm.dll when compiled with the -no-exceptions option. **************************************************************************** * Tools * **************************************************************************** - Build System * Auto-detect Xoreax IncrediBuild with XGE technology, and enable distribution of moc and uic. * Shadow builds are now supported by nmake/mingw-make of the Qt build system. * [151184] Separated the -make options for demos and examples * [150610] Fixed the build system to take into account that fvisibility requires gcc on Unix builds. * [77152] Ensured that, at "make install" time, all meta-information files will be cleaned up to remove reference to source code path. * [139399] Ensured that the environment CC/CXX on Unix are taken into account when running the build tests. * [145344] Ensured that "make confclean" will remove all files generated by configure. * [145659] Added ability to disable SSE. * Added DWARF2 detection and support into the build system to reduce the debug library size. * Added macx-g++-64 meta-spec for Qt configuration purposes. * [127840] The pkgconfig files (.pc) are now placed into lib/pkgconfig. * [135547] Allow Windows line endings on UNIX and vice versa in .qt-license files. * [133068] GIF support is now enabled by default. * [137728] Fixed failed build on Mac OS X and Solaris when using the -separate-debug-info command line option for the configure script. * [137819] Added support for precompiled headers with the Intel C++ Compiler for Linux. * Re-used qplatformdefs.h from linux-g++ in the linux-icc mkspec. * [121633] Added linux-icc-64 mkspec which is needed for building on some 64-bit hosts. * Removed cd_change_global from win32-msvc's qmake.conf file. * [116532] Keep intermediate manifest file in object directory instead of the destination directory. * Added a configuration type to qconfig.pri on Windows. * Corrected paths in Makefile generation when configuring with the -fast command line option. * Added tests to auto-detect a suitable TIFF library. * [152252] Fixed auto-detection of MSVC.NET 2005 Express Edition in configure.exe. * [151267] Ensured that the manifest tool does not get forward slashes when writing paths to manifest files. * [153711] Ensured that the directory separators used in .qmake.cache are correct for normal MinGW and Cygwin MinGW. * [154192] Fixed a problem with configure.exe executing non-existing scripts. * [128667] Added a confclean build target on Windows for the top-level project file. - Assistant * [99923] Added a context menu for the tabs in the tab bar. Right click on a tab to get a list of common options. * Assistant now uses the "unified toolbar" look on Mac OS X. - Designer * [151376] Added a context menu to the tab order editor. * [39163] Added a tab order editor shortcut - using Ctrl with the left mouse button makes it possible to start ordering from the selected widget. * [159129] Fixed a crash in the tab order editor. * Improved snapping behavior for multi-selections and negative positions. * [126671] Made it possible to move widgets by using the cursor keys without modifiers. The Shift modifier enables resizing, the Control modifier enables snapping behavior. * [111093] Added a file tool bar. * [156225] Fixed the delete widget command for cases where the deleted widget is a child of a QSplitter widget. * [101420] Improved the WYSIWYG properties of forms with respect to the background colors used. * [112034] Enabled Ctrl + drag as a shortcut for copying actions in menus and tool bars. * [128334] Double clicking on a widget now invokes the default action from its task menu. * [129473] Fixed bug in the handling of default tab orders. * [131994] Made it possible to set the tab order for checkable group boxes. * Added new cursor shapes. * [137879] Improved the editor for key sequence properties. * [150634] Improved refreshing behavior of all properties after property changes. * [147655] Fixed shadow build issues. * [151567, 149966] Ensured that object names are unique. * [80270] Fixed bug with saving icons taken from resources which are specified with aliases. * [152417] Fixed loading/saving of header labels of Q3Table widgets. * Added the QColumnView widget to the widget box. * Added support for new margin (left, top, right and bottom) and spacing (horizontal and vertical) properties of the layout classes. * [146337] Ensure that the margin and spacing properties are not saved if they have the default values. * Fixed layout handling in Q3GroupBox * [124680] Ensured that the correct pages are displayed when selecting a QStackedWidget page in the object inspector. * [88264] Ensured that breaking a nested layout doesn't break the parent container's layout. * [129477] Added support for dynamic properties via the context menu in the property editor. * [101166] Added an "Add separator" action to the standard context menu. * [132238] Added a "Recent files" button to the New Form dialog. * [107934] Updated the font anti-aliasing property from a boolean property to a property with 3 values. * [155464] Added a German translation. * [146953] Enabled support to allow widgets to be dragged onto the object inspector. * [152475] Ensured that the widget box saves and restores its state. * [111092] Added support to allow images to be dragged from the resource editor and dropped onto the action editor or icon properties in the property editor. * [111091] By default, icon dialogs now open to show the resource browser. * [152475] Added a button to load newly found custom widget plugins to the plugin dialog. * [151122] Added warnings for custom widget plugin issues such as load failures and class name mismatches. * [138645] Improved the form preview on Mac OS X, provided a close button and a menu entry. * [103801] Made buddy editing possible for custom widgets derived from QLabel. * [148677] Added a font chooser for tool windows. * [107233] Made the grid customizable, provided default and per-form grid settings. * [149325] Provided a form editor context menu in the object inspector. * [147174] Changed the elide mode and improved column resizing behavior of property editor and object inspector. * [147317] Improved handling for switching user interface modes, preventing the geometries of form window from being changed. Made 'Bring to front' deiconify windows. * [146629] Fixed never ending loop on Linux triggered by scrolling quickly through the pages of a QStackedWidget. * [145806] Enabled KDialog to be used as a template. * [142723] Enabled the pages of QStackedWidget, QTabWidget and QToolBox to be promoted. * [105916] Enabled QMenuBar to be promoted. * [147317] Improved the New Form dialog. * [95038] Fixed handling of layout defaults. * [103326] Made it possible to make connections to form signals. * [145954] Added a new dialog for promoted widgets with the ability to specify global include files. Added promotion candidates to the form's context menu. * [127232] Ensured that global include files returned by QDesignerCustomWidgetInterface::includeFile() are handled correctly. * [139985] Improved handling of layouts for custom widgets. * [99129] Made custom implementations of QDesignerMemberSheetExtension work correctly. * [87181] Added support for setting properties on items in a multi- selection. Added support for sub-properties. For example, changing the font size of a multi-selection does not overwrite other font settings. Added undo-support for property comments. * [135360] Added tooltips to the property editor, action editor and object inspector. * [103215] Added handling of escaped newline characters for text properties. Added support for validators and syntax highlighting for style sheets. * [135468] Added support for tool bar breaks. * [135620] Fixed several issues concerning handling of properties of promoted widgets. * [109077] Provided multi-selection support in the object inspector. * [133907] Made in-place editing of plain label texts possible. * [134657] Fixed table widget editor. * [90085] Made the resource editor consume a little less horizontal screen real estate. * [105671] Added support to allow main windows to be maximized while being previewed. * Added a style sheet editor. - Linguist * Translations can be exported to and imported from XLIFF files. * [136633] Fixed "Find" so that it searches in comments. * [129163] Fixed bug that prevented "Next Unfinished" from working if there was no selected item. * [125131] Made the translation loading behavior consistent with Assistant and Designer. * [125130] Added the -resourceDir command line argument for consistency with Assistant and Designer, to allow the path of translation files to be specified. * [124932] XML files (.ts and .xlf) are now written with platform- specific line endings. * [128081] Ensure that the tree view does not lose focus when the up and down cursor keys are used for navigation. Use Shift+Ctrl+K and Shift+Ctrl+L instead if you really want this behavior. * [139079] Added a DTD to document the TS file format. - lupdate * Made some small improvements in lupdate's .pro file parser. Fixed bug in inclusion of relative .pri files. * [140581] Improved namespace/context parsing. * [142373] Fixed bug when running lupdate on a SUBDIRS .pro file that prevented TS files from being created. * [135991] Ensure that .pro file comments are handled correctly when they occur within a list of several variable assignments. * [154553] Fixed bug with CODECFORTR that caused saving of incorrect characters. - rcc * [158522] By default compression is now set to the zlib default (normally level 6). * [133837] Allow absolute paths in .qrc files (accessible through the original filesystem path). * [146958] No longer returns error when a .qrc is empty. A (mostly) empty file is generated instead. - moc * [149054] Fixed parsing of old-style C enums. * [145205] Ensured that a warning is given when a known interface (marked with Q_DECLARE_INTERFACE) is subclassed that is not mentioned in Q_INTERFACES. * [97300] Allow @file to be given as the options input file to handle command lines larger than allowed by the operating system. - uic * [144383] Added checks to prevent generated code from calling ensurePolished() before each constructor is finished. * [138949] Ensured that font and size policy instances are reused in generated code. * [141350] Ensured that color brushes are reused in generated code. * [141217] Improved handling of include files of Qt 3 classes. * [144371] Ensure that each form's objectName property is not set in setupUi() to avoid problems in cases where the name was already set. * Added support for the QWidget::locale property. * [141820] Fixed generation of connections in the form. * [137520] Ensured that code to set toolTip, statusTip and whatsThis properties is not generated when the corresponding QT_NO_* preprocessor macros are defined. * [128958] Ensured that static casts are not used in generated code. * [116280] Added support for qulonglong and uint types. -uic3 * [137915] Added functionality to extract images via the -extract command line option. * [129950] Added the -wrap command line option which specifies that a wrapper class which is Qt 3 source compatible should be generated. - qmake * [121965] Implemented DSW (Workspace files) generation for MSVC 6.0 users. * [132154] Added support for /bigobj option in the vcproj generator. * Fixed crash with dependency analysis. * Ensure that cleanup rules are not added for extra compilers with no inputs. * LEX/YACC support has been moved into .prf files. * [156793] Introduced PRECOMPILED_DIR for PCH output (defaults to OBJECTS_DIR). * [257985] Fixed qmake location detection bug. * Ensured that empty INCLUDEPATH definitions are stripped out. * Allow QMAKE_UUID to override qmake deteremined UUID in the vcproj generator. * [151332] Ensured that .pc files are terminated with an extra carriage return. * [148535] Introduced QMAKE_FRAMEWORKPATH and used it internally. * [127415] Fixed object_with_source. * [127413] Introduced QMAKE_FILE_IN_PATH placeholder for extra compilers. * [95975] Replaced QMAKE_FILE_IN for custom build steps in DSP generator. * [141749] Added checks to prevent cyclical dependencies. * [146368] Ensured that GNUmake .d files are removed upon distclean. * Improved extensibility of the precompiled header support to allow icc precompiled headers. * [147142] Short-circuit previously seen library paths to avoid cyclical .prl processing. * [144492] Ensured that INSTALL_PROGRAM is set for INSTALLS in macx-xcode projects. * [143720] Extra compilers will now depend upon the input file automatically. * Introduced QMAKE_DISTCLEAN for extra files to be removed upon invocation of "make distclean". * [133518] Reduced the noise created by qmake warnings. * [108012] Brought macx-xcode into line with macx-g++ with regards to custom bundle types. * [128759] Added support for spaces in paths to linked libraries. * [83445] Made sure that "make distclean" in a library with a DESTDIR really does remove the destination symbolic links. * The subdir generator will now use - to separate target words and _ to separate internally appended words. * [125557] Fixed broken generation of dependencies for extra compilers. * Ensured that the QMAKE_QMAKE variable is given a reasonable default before parsing and evaluating project files. * For Unix/Mac OS X, configure now has an -optimized-qmake option that allows people to build qmake with optimizations. This is disabled by default as older versions of some compilers take a long time to build an optimized qmake. qmake is already built with optimizations on Windows. * [130979] Made the incremental link option case-insensitive. * Ensured that paths for custom build steps in vcproj files have the correct seperators. * Avoid duplicate dependency paths, reduce file stats. * [91313] Ensured that multiple commands in the DSP generator are separated with \n\t characters. * [108681] Added checks to avoid problems with uic3 files having dependencies on themselves. * [130977] Added support for non-flat output for vcproj files with single configuration. * [134971] Added support for more compiler and linker options for vcproj files, and added catch-all cases which add options to AdditionalOptions variables. * [140548] Fixed escaping of the custom build step for image collections. * [114833] Ensured that paths in vcproj always have native filing system separators. * [144020] Only allow CONFIG+=staticlib for TEMPLATE==lib. * [97300] Handle large number of include paths on Windows for moc by using temporary files. (See moc changes.) * [150519] Ensured that qmake is compiled with the correct mkspec on Windows. * [148724] Added manifest files to project clean up. * [123501] Added /LIBPATH to AdditionalLibraryPaths in vcproj files. * [80526] Made sure that extra compiler commands are not corrupted due to path separator fixing. * [109322] Moved hardcoded extra compilers, yacc and lex, into the PRF (feature) system. * [101783] Added a _DEBUG to Resource Tool for debug builds on Windows. * [145074] Added a custom build step on input files, for extra compiler files with built-in compilers for the output files. * [150961] Added support for QMAKE_PRE_LINK in the DSP and VCPROJ generators. * Added checks to avoid double escaping of DESTDIR_TARGET file paths in Windows Makefiles. * Ensured that file paths for COPY_FILE and QMAKE_BUNDLE are escaped. * [83765] Ensured that input files instead of output files are added to extra compiler steps under certain conditions. * [101482] Fixed relative path handling for RC_FILE. **************************************************************************** * Plugins * **************************************************************************** - QTiffPlugin * [93364] Added support for the TIFF image format.