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
Raw File
changes-4.7.2
Qt 4.7.2 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 4.7.0.  For more details,
refer to the online documentation included in this distribution. The
documentation is also available online:

  http://qt.nokia.com/doc/4.7

The Qt version 4.7 series is binary compatible with the 4.6.x series.
Applications compiled for 4.6 will continue to run with 4.7.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker or the Merge Request queue
of the public source repository.

Qt Bug Tracker: http://bugreports.qt.nokia.com
Merge Request:  http://qt.gitorious.org

****************************************************************************
*                          Library                                         *
****************************************************************************

QtCore
------

 - QMutex
    * [QTBUG-16115] Fixed deadlock when calling tryLock repeatedly.
 - QStateMachine
    * [QTBUG-14491] Fixed compilation on AIX 5.3 with gcc.
 - QThread
    * [QTBUG-15378] QThread::exec returaed immediately if QThread::exit had
      been called when event loop was not running.

QtGui
-----

 - Painting
    * [QTBUG-14907] Fix OpenVG painting artifacts after restoreState().
    * [QTBUG-15320] QPainter::drawRect crashed when drawing a null QRectF 
      with OpenGL.
    * [QTBUG-15693] Prevent crash in drawhelper code when the cpu has MMXEXT
      but no SSE.
 - QDoubleValidator
    * [QTBUG-14935] With some locales, QDoubleValidator would not accept "C"
      locale valid numbers.
 - QFileDialog
    * [QTBUG-17298] QFileDialog::getOpenFileNames didn't show any file.
 - QGraphicsView
    * [QTBUG-16063] Fix precision loss when querying micro focus rectangle
      in QGraphicsView.
 - QPainterPath
    * [QTBUG-16377] Prevent QPainterPath::connectPath() returning incorrect
      path, which caused OpenGL paint engine to crash.
 - QTableWidget
    * [QTBUG-15973] Resizinag a QTableWidget column where a cell contains a
      QProgressBar made it crash.
 - QTextDocument
    * [QTBUG-15777] Fxied crash in QTextDocument::markContentsDirty.
 - QTextLayout
    * [QTBUG-15823] Fixed crash in QTextLayout when drawing full width
      selection spanning multiple QTextLine's.
 - QWidget
    * [QTMOBILITY-645] Send WinIdChange event when winId is set to zero.
      The window handle of a native widget may be set to zero in two
      situations: (i) temporarily, during reparenting and (ii) during
      widget destruction.  Previously, no WinIdChange event was sent in
      either of these cases; now, it is sent in both cases.

QtNetwork
---------

 - Bearer Management
    * [QTBUG-15276] Fixed possible crash when parsing new connection.
 - QUrl
    * [QTBUG-16425] QUrl::setUrl() did not call detach().

QtQuick
-------

 - [QTBUG-14374] Fixed broken alignment of rich text.
 - [QTBUG-14727] QML Text element did not play nice with transformations.
 - [QTBUG-14761] Fixed memory leak in QDeclarativeComponent.
 - [QTBUG-14830] Fixed crash when adjusting width inside onWidthChanged.
 - [QTBUG-15710] Ensure header is considered when positioning content with
   snapping.
 - [QTBUG-16365] When using a PathView with a VisualDataModel which in turn
   used a Tree model (DirModel, for example), nothing was shown.
 - [QTBUG-16769] QML BorderImage failed if .sci file contained a URL.

QtScript
--------

 - General
    * [QTBUG-17166] Fix ScopeChainNode memory leak in JavaScriptCore.
 - QScriptContext
    * [QTBUG-17137] Fix crash when generating backtrace involving a
      built-in (ECMA) function.
 - QScriptEngine
    * [QTBUG-16987] Ensure QScriptProgram objects are invalidated
      when engine is destroyed.
    * [QTBUG-16828] Fix alignment issue causing crashes on platforms
      with only 4-byte-aligned malloc'ed memory (e.g. Symbian debug
      builds).
    * [QTBUG-15144] Fix GC-related crash in QScriptValue::setData().
    * [QTBUG-15079] Fix crash when QScriptClass property getter
      returns an invalid value.
    * [QTBUG-13440] Fix bug that caused Math.random() not to
      produce random values.
  - QScriptValue
    * [QTBUG-14801] Fix crash in QScriptValue::construct() when
      the function throws a non-Object value.

QtSql
-----

 - [QTBUG-14132] Fix errors in Oracle (xe) stored procedures with bind
   variables.
 - [QTBUG-14831] Fix regression in dynamic sorting of a QSortFilterProxyModel
   on a QSqlTableModel with OnManualSubmit.
 - [QTBUG-17076] Fix plugins/sqldrivers/oci compile error when using
   QT_NAMESPACE.


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

Qt for Linux/X11
----------------

 - [QTBUG-15008] Fix broken prefix setting in configure when EPOCROOT shell
   variable is set.

Qt for Windows
--------------

 - QtQuick
    * [QTBUG-16885] QDeclarativeEngine::addImportPath() did not work if the
      drive letter is in lowercase.
    * [QTBUG-17360] Make sure $QTDIR/plugins/qmldebugging/tcpserver.dll is
      found in windows release builds.

Qt for Mac OS X
---------------

 - [QTBUG-13772] Returning form fullscreen mode causes assertion failure.
 - [QTBUG-14023] Added missing plugins to debug-libs package.
 - [QTBUG-14420] Switching from an application with undocked widgets hid the
   application.
 - [QTBUG-15638] Fixed incorrect QComboBox drop-down menu Z-ordering.
 - [QTBUG-15666] Fixed crash when closing QFontDialog::getFont() dialog before
   its event loop finished.
 - [QTBUG-16279] Fixed deadlock in QSyntaxHighlighter::highlightBlock.

Qt for Symbian
--------------

 - Multimedia
    * [QTBUG-17040] Prevent menu and native title pane area popping up when
      setting fullscreen mode off during video playback.
 - Packaging changes
    * [QTBUG-17399] Remove sqlite3 from Qt SIS for S60 3.2 and 5.0 to allow
      Nokia Content Signing, which doesn't permit sis files to have other
      sis files embedded inside.
 - Paging changes
    * [QT-3503] Remove PAGED keyword from all Qt-based binaries for
      MMP-based build systems (abld, SBSv2 (a.k.a. Raptor)).
      This changes the code paging field in the Symbian (E32Image) header
      from "paged" to "default".  Thus it is left to the configuration
      of the particular device whether paging is used for the binary or
      not.  All devices that support code paging should have it turned
      on (the value is stored in the HAL, so can be checked using eg.
      fshell); data paging may or may not be turned on depending on the
      device characteristics.  Leaving both code and data paging as
      "default" means that any limitations in the device (eg. around
      flash wear) can be controlled by that device by disabling the
      appropriate types of paging rather than being forced by the binary
      (which may be deployed to several different devices with different
      characteristics).
 - Phonon MMF backend
   * [QTBUG-11436] Added a MediaObject property which allows the client to
     specify which Internet Access Point should be used for streaming.
 - QApplication
   * [QTBUG-15915] Fix crash when creating more than one QApplication in single
     test case.
   * [QTBUG-16065] QApplication object with QApplication::GuiServer type caused
     crash on Symbian devices.
 - QDesktopWidget
   * [QTBUG-16095] Resize event for QDesktopWidget was sent too early.
 - QDialog
   * [QTBUG-16277] Fix fullscreen/Maximized dialog misplacement in Symbian.
   * [QTBUG-16110] QMessageBox softkeys were dimmed when application returned
     to foreground.
 - QEventDispatcherSymbian
   * [QTBUG-16380] Fix leaking of RTimer handles.
 - QFileDialog
   * [QTBUG-16204] Fix using QFileDialog statics in Symbian.
 - QFontDatabase
   * [QTBUG-16514] Avoid collision of application fonts.
 - QGraphicsView
   * [QTBUG-16932] Fix rendering errors on QGraphicsView with OpenVG engine.
 - QLineEdit
   * [QTBUG-16238] Fix one character displacement for cursor in line edits.
 - qmake & mkspecs
   * [QT-4193] Only add ICON for application projects in symbianpkgrules.pri
   * [QTBUG-13159] Allow pkg_prerules and pkg_postrules to be targeted to separate
     files.
   * [QTBUG-13367] Make default application deployment removable & added .flags
     modifier support for DEPLOYMENT items in Symbian.
   * [QTBUG-14280] Implement support for DEPLOYMENT.display_name in Symbian.
   * [QTBUG-13917] Localize .loc and .pkg content based on TRANSLATIONS.
   * [QTBUG-15159] Use include(original mkspec) instead of copying of mkspec to
     default.
   * [QTBUG-15393] Resolve EPOCROOT in qt.conf using same logic as in .pro.
   * [QTBUG-15501] Fix symbian-mmp.conf include path.
   * [QTBUG-15539] Use parent class function to generate Makefile headers.
   * [QTBUG-14472] Add NetworkServices capability automatically for network apps.
   * [QTBUG-14736] Add libinfix support for QML plugins in Symbian.
   * [QT-4375] Fix incorrect file name case for OpenGL libraries in
     symbian.conf.
   * [QTBUG-16172] Use relative include instead of absolute in default
     qmake.conf.
   * [QTBUG-16221] Fix libinfixed usage in Symbian when def files are used.
   * [QTBUG-16261] Fix infinite loop in qmake when reading malformed .ts files.
   * [QTBUG-16298] Ignore static_and_shared in Symbian builds.
   * [QTBUG-16477] Fix compile error when QT_NO_BEARERMANAGEMENT is defined.
   * [QTBUG-13769] Generate freeze targets in Symbian.
   * [QTBUG-16691] Remove toolcheck from generic clean targets for
     symbian-sbsv2.
   * [QT-4476] Fixed UTF-8 application names in device application menu.
   * [QTBUG-16753] Improved QMAKE_POST_LINK support in symbian-sbsv2.
   * [QTBUG-16881] Fix QMAKE_POST_LINK for targets with special characters.
   * [QTBUG-16888] No longer replace dash and dot in TARGET with underscore.
   * [QTBUG-17187] Ensure that package generated against Symbian^3 SDK has no
     Symbian^1 platforms as dependencies.
   * Fix partial upgrade package UID for libinfixed Qt.
   * Cleaned up sis_targets.prf.
 - QNetworkProxyFactory
   * [QTBUG-13857] Added systemProxyForQuery() for Symbian, allowing
     network proxies configured on the device to be used by applications.
 - QPaintEngine
   * [QTBUG-16008] Fixed broken constant alpha blending on ARMV6.
   * [QTBUG-16240] Fix blurry text in word-wrapped, center-aligned text items
     with OpenVG.
 - QSystemSemaphore
   * [QTBUG-16615] Fix QSystemSemaphore handle management issues in Symbian.
 - qtmain.lib
   * [QTBUG-14735] Use qtmain.lib to provide entry point for all applications.
 - QtQuick
   * [QTBUG-15405] QML Plugins were not loaded when installed on different
     drives.
 - QtScript
   * [QTBUG-14293] Enhanced JavaScript heap allocator.
   * [QTBUG-15800] Creating QScriptEngine on the heap caused app crash.
   * [QTBUG-15847] Add compiler optimizations.
   * [QTBUG-16685] Fix crash in JavaScript stack allocator.
 - QWidget
   * [QTBUG-16578] In cases where the widget was created from the event loop
     instead of main(), the middle three softkeys would not get the right
     visibility and would leave a "hole" in the application where one could
     see what was beneath it.
   * [QT-4416, QTBUG-17288] On devices which lack support for transparency
     in EGL surfaces, setting Qt::WA_TranslucentBackground on a widget
     whose windowType() is Qt::Window causes that widget to be rendered
     using the raster graphics system.
 - Tool scripts
   * [QTBUG-13886] Disallow patching capabilities of executables.
   * [QTBUG-13891] Add Location as self signable capability in patch_capabilities.pl.
   * [QTBUG-15561] Only patch package content that is necessary for self-signing.
   * Fix epocroot handling in createpackage.pl script.
   * Unify epocroot usage in createpackage and patch_capabilities scripts.

****************************************************************************
*                          Tools                                           *
****************************************************************************

 - qmake
   * [QTBUG-14357] Make qmake to pass all UTF-8 characters unchanged through parser.

back to top