Revision 7e0fa2fc75a9c9ca3466d0a3fb6c9f302fc22a62 authored by Marc Mutz on 10 July 2012, 13:27:48 UTC, committed by Qt by Nokia on 26 August 2012, 12:29:49 UTC
Currently, we have a C++11 version that requires Q_COMPILER_DECLTYPE support, and can deal with final classes, and a C++98 version that doesn't require any C++11 features, but fails on final classes. What we're missing is a version that works for MSVC v8 and v9 (2005 and 2008), which sport the 'sealed' non-standard keywords but lack decltype support. So far, we tried to solve the problem by making class-level final special (Q_DECL_FINAL_CLASS), not defining that macro for these two compilers, even though we did define Q_DECL_FINAL, the method-level keyword. This new formulation, taken from http://stackoverflow.com/a/9655327/134841 supposedly supports all compilers with a minor #ifdef for MSVC which doesn't like applying sizeof() the way we do. However, testing has shown this to blow up on OSX. So we use the less intrusive approach: add this variant as a third version, only used by VC 2005 and 2008. Change-Id: If1945f8a6e9ed36cb68212fa781d5e29eb2a082d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
1 parent 9090e0d
changes-4.3.2
Qt 4.3.2 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 4.3.0 and Qt 4.3.1.
The Qt version 4.3 series is binary compatible with the 4.2.x, 4.1.x and
4.0.x series. Applications compiled for Qt 4.0, 4.1 or 4.2 will continue to
run with Qt 4.3.
****************************************************************************
* General *
****************************************************************************
General Improvements
--------------------
- Legal
* This version adds the Academic Free License 3.0, Artistic License 2.0,
Zope Public License 2.1 and Eclipse Public License to the GPL
Exception for developers using the Open Source Edition of Qt.
See the GPL Exception Version 1.1 page in the documentation
for more information.
Tools
-----
- Designer
* [175822] Fixed incorrect behavior of the widget editing mode that
could occur when a form was resized.
* [174797] Fixed a crash that could occur when several commands were
redone in one go.
Build System
------------
* Enabled MSVC project generator for the Qt Open Source edition.
* Ensured that the QMAKE_CC and QMAKE_CXX variables are not defined in
the Xcode project generator to allow distributed (distcc) builds to
work again.
* [165183] Make DESTDIR work again in the Xcode generator.
* Fixed a bug in escape_expand() that could cause text to be corrupted.
* Updated the compiler notes for version 10.0.026 of the Intel C++
Compiler for Linux. Precompiled header support has been fixed in
this version of the compiler, so the -no-pch workaround is no longer
needed. Note that there is still one outstanding bug in the 64-bit
compiler that requires configuring and building Qt with -debug.
* Updated the compiler notes for HP-UX platforms and compilers.
* Introduced support for 32-bit builds on HP-UXi Itanium: hpuxi-acc-32.
* [163661] Fixed the dependency generator for ActiveQt server projects
and certain custom compilers
* [169756] Fixed mocinclude.tmp usage for Visual Studio 6.0 project
files for cases where the length of the includes exceeds the amount
allowed on the command line.
* [166407] Fixed the generated target rules when using YACCSOURCES.
* [156948] Ensured that QTPLUGIN libraries come before the Qt libraries
on the link line.
* Ensured that support for libtiff is not built if Qt is configured
without zlib support.
* [172629] Ensured that syncqt does not generate zero-size master
include files for modules that are not found.
* Fixed generation of dependencies for EXTRA_TARGETS.
* [159113] Ensured that the description for the Post Link build step in
VS 2003 does not contain any \n characters.
I18n
----
* Fixed a crash in lupdate/lrelease that could occur if the XML parser
reported an error.
****************************************************************************
* Library *
****************************************************************************
General Improvements
--------------------
- Qt Script
* QScriptEngine::evaluate() no longer throws a syntax error in the case
where the script contains no actual statements.
* [175714] Fixed parsing of octal numbers on Windows and Mac OS X.
- Style Sheets
* QMainWindow now respects the background-image style property.
* [171858] Ensured that QPushButton uses the correct color when the
text-align property is set.
* Fixed various bugs in QMenu styling.
* [168286] Fixed a bug that prevented the background from being clipped
correctly when the border-radius and background-clip properties were
defined.
* Fixed a QComboBox styling bug where the popup would show an extra row
when a style sheet was used.
* [177168] Fixed a memory leak where QStyleSheetStyle is never
destroyed.
* [172315] Fixed a stack-overflow when using the isActiveWindow
property as a selector.
- Text rendering
* [168625] Fixed rendering of text with perspective transforms on X11
and Qtopia Core.
* [173792] Fixed transformed rendering of non-scalable/bitmap Freetype
glyphs.
- QAbstractItemView
* [168493] Fixed drag and drop regression when a parent item in a tree
doesn't allow item to be dropped on it.
* [174848] Fixed a crash that could occur if the row currently being
edited was removed.
- QCalendarWidget
* [171532] Fixed keyboard navigation (pressing "w" doesn't select the
"Wed" cell anymore).
* [173852] Fixed SingleLetterDayNames mode for the Chinese language.
- QColorDialog
* [153436] Fixed a crash in QColorDialog that could occur when choosing
a color in the Gray colorspace.
- QColumnView
* Ensured that selectAll() selects all items in cases where the
selection range contained multiple items.
* [170751] Fixed incorrect selection behavior caused by clicking on a
previously selected folder.
* [170753] Prevented items from being reselected on deselection in some
cases.
* [170753] Ensured that the full path is selected when passing an index
to select.
* [170753] Fixed a bug that could occur when deselecting an item that
caused its parent to be deselected.
- QCoreGraphicsPaintEngine
* [170352] Fixed aliased strokes that were drawn 1 pixel too far to the
left on Mac OS X versions < 10.4.
* [172006] Fixed point drawing with a scaled painter on Mac OS X.
- QDataWidgetMapper
* [172427] Fixed a crash that could occur when submitting data from the
mapped widget to the model.
- QDateTimeEdit
* [118867] Fixed a bug that prevented valid values from being entered
when certain range restrictions were applied.
* [171920] Fixed a bug with parsing long day names.
- QDir
* [176078] Fixed a crash that could occur when entering directories with
very long path entries.
- QDirIterator
* [176078] Fixed a crash that could occur when entering directories with
very long path entries.
- QDockWidget
* [174249] Fixed bug where it was possible to dock into a minimized
QMainWindow.
- QFile
* [175022] Fix regression in handle() on Windows.
- QFileDialog
* Fixed possible deadlock.
* Ensured that selection changed signals are reconnected when setting a
filter on a dialog.
* [171158] Fixed a crash that could occur when using the Forward button
to navigate into a folder that was deleted.
* [166786] (Windows) Fixed bug that prevented some files from being
shown in certain cases.
* [165289] (Windows) Fixed issue that caused UNC paths to be ignored
when used as initial paths for a file dialog.
* [140539] (Windows) Dialog no longer accesses floppy drives
automatically when launched.
- QFontDatabase
* [176450] Added some missing tr() calls and made all strings
localizable.
- QFSFileEngine
* [177363] Fixed a bug in fileTime() that caused the time returned to
depend on whether or not it was called during a Daylight Saving Time
period.
- QGLPixelBuffer
* [179143] (Windows) Fixed a memory leak that would occur when a
QGLPixelBuffer was deleted. This would appear as a slowdown in
performance to the user.
- QGLWidget
* [169131] Fixed an issue with renderPixmap() where text drawn with
renderText() was clipped to the size of widget, not the resulting
pixmap.
* [175513] Fixed an issue with renderText() which would cause artifacts
when bitmap fonts were used.
* [172474] (Windows) Fixed an issue with disappearing text when using
renderText() together with renderPixmap().
* [173944] (Mac OS X) Fixed a crash that could occur when requesting a
GL context with an overlay.
- QGraphicsItem
* [174299] Fixed and improved bounding rect calculations for most
standard items.
- QGraphicsScene
* [174450] Flat items are now rendered correctly also when NoIndex is
set.
- QGraphicsTextItem
* [174429] This item now respects QGraphicsItem::ItemClipsParentToShape.
- QGraphicsView
* (X11) A workaround has been applied to resolve random clipping errors
that would sometimes leave trailing artifacts and horizontal/vertical
white lines in the viewport.
- QHeaderView
* [178483] Prevented crash that could occur when recomputing the layout
under certain conditions.
- QHttp
* [176822] Fixed a bug that caused POST requests to submit an empty body
after a proxy authentication request.
* [176403] QHttp no longer resets proxy settings on sockets set with
QHttp::setSocket() (regression from 4.2.3).
* [175170] Prevent live lock when response ends with a stray '\r'.
* [172763] Fixed a bug that caused QHttp to ask the proxy server to
connect to the wrong address when in SSL (non-caching) mode.
* [172775] Fixed the emission of the done() signal under some conditions
(mostly SSL only).
- QImage
* [176831] Fixed a bug that caused conversions to Format_RGB16 to give
incorrect colors.
* [169908] Fixed a crash that could occur when reading 4 bits per pixel
uncompressed BMP images.
- QItemDelegate
* [173969] QDoubleSpinBox editors now allow negative input.
* [179119] Item checkboxes were rendered without a margin.
- QLabel
* Fixed a crash that could occur when changing the contents of a label
in a slot connected to the linkActivated() signal.
- QLayout
* Fixed a performance regression from Qt 4.2 related to the introduction
of QStyle::layoutSpacing().
- QLibrary
* [178304] Fixed a bug that caused a crash if QLibrary::errorString()
was called before QLibrary had a file name associated with it.
- QListView
* [270837] Fixed assert that could occur when setting a root index with
no children in icon mode.
- QMainWindow
* [175479] Fixed unified toolbar handling on Mac OS X to prevent
assertions in the layout engine.
* [174575] Several crashes fixed.
- QMdiArea
* [173391] (Windows) Fixed bug where a subWindowActivated() signal was
not emitted when the top-level window was minimized.
* [173628] Fixed bug that could cause an endless resize loop when using
Qt::ScrollBarAsNeeded as the scroll bar policy.
- QMdiSubWindow
* [176769] Fixed bug where the title bar font was not updated on
QEvent::FontChange.
* [173087] Ensured that double-clicking the system menu closes the
window.
* [173363] Fixed bug where the title bar was not immediately updated
after changing the window title.
- QMenu
* [111348] QMenu now takes focus with the QPopupMenuReason.
* [176201] Fixed possible crash when clearing the menu from a triggered
signal.
- QPainter
* [168621] Fixed an offset bug in drawing with perspective transforms.
* [172017] (X11 and OpenGL) Fixed drawing of non-cosmetic points with
the FlatCap cap style.
* [175010] Fixed some bugs related to dash offsets.
* [170517] Fixed issue with missing tab stops when painting to a
printer.
- QPainterPath
* Fixed the behavior of addText() when used with italic fonts.
* [178515] Fixed QPainterPath::pointAtPercent() to work correctly on
line segments in a path.
- QPicture
* [168621] Ensured that the correct scale is used when rendering to a
device with different x and y resolutions.
- QPixmap
* Ensure that the proper color space is used in QPixmap::grabWindow() on
Mac OS X.
- QPlastiqueStyle
* [174104] Fixed a regression in Plastique that caused spin boxes to
have incorrect heights.
- QRasterPaintEngine
* [169997] Fixed aliased rendering of complex paths with a large number
of subpaths.
* [174914] Fixed use of QPainter::setOpacity() when drawing a pixmap
into a 16-bit buffer.
* [177919] Fixed a problem with drawing bitmaps.
* [177654] (Windows) Fixed an issue with transformed bitmaps being
returned as pixmaps.
- QSqlQuery
* [173710] Fixed a bug that caused value() to return null-variants
instead of real values after re-executing a prepared query.
- QSqlRelationalTableModel
* [176374] Fixed an unfortunate change in 4.3.0. Display column names
were aliased to prevent duplicate column names in records in order to
fix a bug in insertRecord().
However all display columns were always aliased - even when not
necessary. From now on, display column names will only be aliased when
there are name clashes, and only the conflicting columns will be
aliased.
- QSqlTableModel
* [170783] Fixed a bug that caused empty rows to be displayed in a
QTableView when a new model was set on the view. This was caused by
QSqlTableModel emitting the rowsAboutToBeInserted() and rowsInserted()
signals even when the new model was empty.
- QSslSocket
* [177198] Fixed the emission of the proxyAuthenticationRequired()
signal.
* [174625] Ensured that only one attempt is made to resolve OpenSSL
symbols.
* [173734] Removed two memory leaks.
* [172285] (Windows) Fixed link error that occurred when Qt was built
as a static library with OpenSSL enabled.
- QSvgGenerator
* [167921] Fixed a rounding error; improved precision.
* [167921] Allow rendering to a device that's not open; warn if the
device is not writable.
* [167921] Fixed a bug that caused QSvgGenerator to confuse 'cm' units
with 'mm' units.
- QSvgRenderer
* [172550] Fixed incorrect linear gradient parsing for certain SVGs.
* [175651] Fixed a crash that could occur when loading SVGs with
undefined URLs.
- QTableView
* [171128] Fixed painting problems caused by deleting hidden rows.
* [175462] Fixed a bug where the region for selection spanning items was
calculated incorrectly.
- QTcpSocket
* Fixed a crash that could occur when using SOCKS5 proxy before
constructing a QCoreApplication.
* [174517] (Windows) Prevented stalling when connecting to offline
hosts.
- QTextBrowser
* [173945] Fixed bug that could prevent scrolling to an anchor in an
HTML file from working successfully.
- QTextEdit
* [171130] Fixed bug that could occur when appending text lists to a
document, causing the first list element to be treated as normal text
instead of a list element.
* [172367] Fixed a bug that caused the result of setPlainText() to use
HTML attributes if preceded by a call to setHtml().
* [173574] Fixed a bug that prevented floating image links from being
clickable.
* [174276] Fixed resizing performance in cases where wrapping is
disabled.
* [172646] Fixed a bug that caused leading spaces in marked up text to
be lost when the text was copied and pasted.
- QTextLayout
* Fixed a regression in the line breaking algorithm that lead to wrong
results for justified text.
- QTextStream
* [174516] (Windows) Fixed a bug in readLine() when reading "\r\r\n"
from devices opened in QIODevice::Text mode.
- QToolBar
* [270967] Fixed the behavior of floating toolbars.
- QTreeView
* [171947] Fixed a bug that prevented alternate colors in an inactive
QTreeView from being painted with the correct inactive palette role.
* Prevented a number of possible crashes that could occur when there are
pending changes.
* [177165] Fixed a bug that caused minimum column widths to become
independent of the width of the text in the header.
* [177945] (Mac OS X) Fixed a crash that could occur when dragging over
an empty region.
* [174437] Fixed a bug that made it possible to interactively change
the check state of an item, even if it was disabled.
* [172426] Fixed a segmentation fault in QModelIndex that would occur
when showing QTreeView with QSortFilterProxyModel and delayed layout
changes were pending.
- QTreeWidget
* [174396] Fixed an issue that could cause setItemExpanded() to fail.
* [172876] Ensured that itemBelow() and itemAbove() return correct
values.
* [171271] Fixed a possible crash caused by updating items too quickly.
- QUtf8Codec
* [175794] Fixed an off-by-one buffer overflow bug.
- QWidget
* [157496] (Windows) Fixed a memory leak in setWindowIcon().
* [175114] Fixed issue with missing update after hiding a child of a
hidden widget.
* [176455] Fixed a regression that prevented a parent layout from being
invalidated in certain situations if the widget had a fixed size.
- QWizard
* [177716] Ensured that the commit button is enabled and disabled
correctly according to QWizardPage::isComplete().
- QX11PaintEngine
* [173977] Fixed drawing of tiled bitmaps into a bitmap when XRender is
used.
* [175481] Fixed a crash that could occur when performing complex
transformations with a QRegion.
- Q3Action
* [175536] Fixed a formatting error in the tool tip string
representation of actions with shortcuts.
- Q3ButtonGroup
* [177677] Fixed a application freeze that could occur when resetting
the ID of a button inside a button group.
- Q3FileDialog
* [165470] Fixed broken scrolling behavior that occurred after toggling
between detail/list view mode.
- Q3Header
* [176202] Fixed memory leak when replacing icons using setLabel().
****************************************************************************
* Tools *
****************************************************************************
Build System
------------
- Q3ToolBar
* [176525] Ensured that the tool buttons of a vertical tool bar are
center-aligned instead of left-aligned.
I18n
----
* Fix crash in lupdate/lrelease that occured if the xml parser threw an error.
Linguist
--------
* [276076] Let Linguist show existing translations to other languages
as "auxillary sources"
****************************************************************************
* Library *
****************************************************************************
****************************************************************************
* Database Drivers *
****************************************************************************
- Interbase driver
* [175144] Fixed a build issue that prevented the QIBASE driver from
being built at the same time as the QODBC driver if Firebird header
files older than v2.0 were used.
* [177530] Fixed a regression introduced in Qt 4.3.0 that broke stored
procedure support for Interbase/Firebird. When executing a procedure
without parameters, the values were not retrievable.
****************************************************************************
* Examples *
****************************************************************************
- Draggable Text Example
* Fixed usability bugs.
- Torrent Client Example
* Several stability fixes have been applied.
- Ported Asteroids Example
* Modifications to significantly improve performance.
- Ported Canvas Example
* [139392] Prevented a crash that could occur when adding items after
shrinking the canvas to zero width and zero height.
- Secure Socket Example
* [173550] Usability fixes.
****************************************************************************
* Platform Specific Changes *
****************************************************************************
X11
---
* [169366] Fixed intermittent program hangs in the 64-bit PowerPC
implementation used on AIX.
* [176192] Fixed the behavior of show() followed by move() to correctly
place the window when called before the event loop is running.
* [133870] Fixed crashes in the 64-bit PowerPC implementation used
on Linux.
* [177143] Fixed a bug where the last activated QShortcut would be
incorrectly repeated when pressing a key with no KeySym defined.
* [171224] Fix copy and paste of non-ASCII text from Qt 3 to Qt 4
applications.
* Applied a workaround for a bug in gcc 3.4.2 that would cause 64-bit,
bootstrapped applications to crash on Solaris.
* [170792] Fixed subpixel anti-aliasing of fonts across X11
server/clients with different endianness.
Windows
-------
* [172621] Fixed an issue that caused large pixmaps to be printed
incorrectly.
* [170000, 171239, 173213] Fixed several issues with printing that
resulted in single and multipage printing being garbled.
* [168642] Fixed an issue with text disappearing when printing.
* [175517] Fixed a crash that could occur when calling setNumCopies() on
an invalid/non-existing printer.
* [173219] Fixed an issue that caused fonts to be incorrectly scaled
beyond 64 point font sizes.
* [276527] Fixed a memory leak in QWindowsVistaStyle.
Mac OS X
--------
* Note for Leopard pre-release builds: Qt 4.3.x applications running on
the August Leopard pre-release (build 9A527) will not show any windows
because of a regression in the Carbon library. This has been addressed
for a future OS X release. In the meantime, if you *must* test your
application against this Leopard build, please contact us.
* [178551] Fixed a regression that made it impossible to deliver mouse
move events to other widgets after a double-click on a widget that was
immediately hidden as a result of the double-click event.
* [172475] Ensured that OpenGL top-level widgets are not repainted when
another, independent, top-level widget is resized.
* Ensured that the maximized bit is removed when a window is resized by
user interaction.
* [170000] Fixed an issue that caused QPrinter::newPage() to incorrectly
reset the current QPainter state.
* [178531] Fixed an OpenGL text rendering issue that could cause garbled
text.
* [171173] Fixed a crash at application exit that could occur if
accessibility features had been used.
* [175164] Fixed a regression where font base lines for labels,
checkboxes and radio buttons were not properly aligned.
* [173007] Fixed a regression that prevented qt_mac_set_native_menubar()
from working.
* [130809] Ensured that bold fonts are used correctly when generating
PDFs.
* [164962] Improved support for Mac drawers in QMainWindow.
Qtopia Core
-----------
* Ensured that the font database cache is preserved across QWS server
restarts.
* Made some start-up time improvements for the server process.
* [272527] Fixed a bug in the internal crash handler that released
resources in some non-fatal incidents.
* [169569] Fixed a bug that caused uninitialized data to be blitted to
the screen when a window was shown and resized before the first paint
event.
* [274291] Added support for setting the QT_QWS_FONTDIR environment
variable to set the font installation path.
* [174264] Fixed synchronization of QDirectPainter::startPainting() to
be able to guarantee that QDirectPainter::allocatedRegion() returns
the correct result.
* [175994] Fixed missing updates in parent and sibling widgets when
using the QWindowSurface::buffer() and QWindowSurface::flush()
mechanism to paint outside a paint event.
* [170488] Implemented true synchronous behavior when creating a
QDirectPainter with the ReservedSynchronous flag.
* [275284] Fixed implementation of the Hybrid OpenGL integration.
* [178269] Fixed loading of the VNC screen driver when compiled as a
plugin.
* [178261] Fixed loading of the Transformed screen driver when compiled
as a plugin.
* [276651] Fixed mouse calibration in some configurations when using the
tslib mouse driver.
* [173037] Fixed re-entrancy problem that could cause
QClipboard::mimeData() to block in some situations.
* [174076] Added the QWS_CONNECTION_TIMEOUT environment variable to
allow the time out to be customized for client applications connecting
to the QWS server.
* [167661] Added support to enable some "broken" BMP images to be
rendered correctly.
* [176445] Added support for the Glib event loop; this is disabled by
default.
* Added livelock protection: events from the QWS server can no longer
starve local timer events or posted events.
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...