blob: c0bcc48f06cc247901ba25d7fc3332ef01f19d7d [file] [log] [blame]
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<T>().
* 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 <br> 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<QDBusObjectPath> and QList<QDBusSignature>
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.