blob: 0ed88849ed803eea20531d80c26f176300309d63 [file] [log] [blame]
Qt 5.9.2 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.9.0.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:
http://doc.qt.io/qt-5/index.html
The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
https://bugreports.qt.io/
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
* Important Behavior Changes *
****************************************************************************
- Building examples inside the Qt source tree while not building Qt itself
is rejected now, because this can cause hard to debug configuration
issues. If building isolated examples is needed, you may still use shadow
builds.
- This version of Qt restores compatibility with pre-5.9.0 calculation of
QCryptographicHash algorithms that were labelled "Sha3_nnn": that is,
applications compiled with old versions of Qt will continue using the
Keccak algorithm. Applications recompiled with this version will use
SHA-3, unless QT_SHA3_KECCAK_COMPAT is #define'd prior to #include
<QCryptographicHash>.
****************************************************************************
* General Notes *
****************************************************************************
Binary Compatibility Note
-------------------------
- The variable QOperatingSystemVersion::AndroidOreo was added in this
release. Code that uses this variable will not run under Qt 5.9.1. If
backwards compatibility is desired, use instead
QOperatingSystemVersion(QOperatingSystemVersion::Android, 8)
[This is similar to QOperatingSystemVersion::MacOSHighSierra added in
5.9.1]
- This version of Qt changes the values assigned to enumerations
QCryptographicHash::Sha3_nnn. Applications compiled with this version and
using those enumerations will not work with Qt 5.9.0 and 5.9.1, unless
QT_SHA3_KECCAK_COMPAT is defined.
Deprecation Notice
------------------
- Starting with Qt 5.10, IPv6 support will be mandatory for all platforms.
Systems without proper IPv6 support, such as the getaddrinfo() function
or the proper socket address structures, will not be able to build
QtNetwork anymore.
Third-Party Code
----------------
- [QTBUG-31020] zlib was updated to version 1.2.11.
- libpng was updated to version 1.6.32
****************************************************************************
* Library *
****************************************************************************
QtCore
------
- [QTBUG-61350] Fixed the conversion from string to double of the strings
"0E+1" and "0E-1" (with capital E), which QString::toDouble(),
QByteArray::toDouble() and similar functions reported as invalid.
- QFile:
* [QTBUG-57023] Reverted an incorrect change from Qt 5.9.0 that forbade
the creation and access to Alternate Data Streams on NTFS on Windows.
This means that file names containing a colon (':') are allowed again,
but note that they are not regular files.
- QFileInfo:
* [QTBUG-62802] Relative symbolic links on Windows are now resolved to
their absolute path by symLinkTarget().
- QFileSystemWatcher:
* [QTBUG-62242] Fixed a crash on Windows if this class was instantiated
before QCoreApplication was created.
* [QTBUG-61792] Fixed an issue on Windows that would cause this class not
to monitor files properly if the directory containing the monitored
files was added to the list of watched paths after the files.
- QLocale:
* [QTBUG-53565] Fixed the conversion of QTime to string form and parsing
from string form to always treat the value as the decimal fraction of
the seconds component. That is, the string format ".z" produces/parses
".2" for 200 milliseconds and ".002" for 2 milliseconds. Use of "z" or
"zzz" is discouraged outside decimal fractions to avoid surprises.
* [QTBUG-61949] Fixed bcp57Name() to return "en" for the QLocale::c()
locale. Previously, it returned "C", which is not a valid BCP47
language tag.
- QProcess:
* [QTBUG-61634] Added a workaround for a rare race-condition bug in
some C libraries that caused the child process started by QProcess to
hang after trying to launch a non-existent executable or change to a
non-existent directory.
* [QTBUG-62584] Fixed a race-condition bug that could cause
waitForXxx() functions to hang forever if a slot triggered by that
function futher started a nested event loop.
- QTimeZone:
* [QTBUG-63205] Fixed a bug that would cause QTimeZone to mis-parse
timezone files on Unix systems if they contained leap second
information.
- QVariant:
* [QTBUG-61471] Fixed QVariant to actually perform the conversions
between QVariantHash and QVariantMap in the respective .toHash() and
.toMap() functions. QVariant already reported true in .canConvert()
between those two types.
QtDBus
------
- [QTBUG-62284] Fixed a race condition in QDBusAbstractInterface that
could cause the class to never see the notification that the remote
service became available and cause isValid() to change to true.
QtGui
-----
- Text:
* [QTBUG-61520] Fixed matching of non-regular font weights for
application fonts on macOS.
QtNetwork
---------
- [QTBUG-61692] Fixed the handling of application-wide proxy settings (set
with QNetworkProxy): previously, QTcpSocket would directly fall back to
the system settings if the object-specific setting was
QNetworkProxy::DefaultProxy.
- QLocalSocket:
* [QTBUG-61643] Fixed an issue with Qt pipe-handling code that could
cause deadlocks on Windows, most often if the QLocalSocket object tried
to wait for more data during application shutdown.
QtTest
------
- Added flowId to messages when logging in TeamCity format. FlowId is used
to distinguish logging from multiple processes running in parallel.
QtWidgets
---------
- Android:
* [QTBUG-48639] Fixed label duplication for buttons when using style
sheets with the Android style.
- QLineEdit:
* [QTBUG-60319] Fixed behavior of the ImSurroundingText query.
Previously, it returned a masked text whose length may be less than
the cursor position. Now it returns unmasked text, so the text length
is always greater than or equal to the cursor position.
- QMenu:
* [QTBUG-59794] Fixed menu size issue when using high DPI on
multi-screen system.
****************************************************************************
* Compiler-specific Changes *
****************************************************************************
clang
-----
- [QTBUG-61840][QTBUG-62085] Fixed an issue that caused recent Clang
versions to print a warning about [[nodiscard].
Visual Studio
-------------
- [QTBUG-61902] Changed Qt uses of certain C++ Standard Library functions
that Visual Studio warns about. Now Qt public headers call
Microsoft-specific versions that do not produce warnings.
****************************************************************************
* Platform-specific Changes *
****************************************************************************
macOS
-----
- [QTBUG-59222] Switching focus objects inside a top level window while
composing text using dead keys or input method events would leave the
application in an inconsistent state. The composition now automatically
cancels when the focus object changes.
Windows
-------
- [QTBUG-57916] Fixed build with ANGLE and newer MinGW versions.
- [QTBUG-62083] Fixed Qt trying to steal certain events from user windows if
the event ID was WM_USER.
****************************************************************************
* Tools *
****************************************************************************
configure & build system
------------------------
- [QTBUG-35928][QTBUG-41908][Apple] Qt can now be built using just the
Xcode Command Line Tools, without needing to install the full Xcode IDE.
- [QTBUG-55755][Windows] All Qt .exe files now include meta information,
like .dll files already did.
- [QTBUG-58012] (Re-)added a way to specify alternative ICU libraries.
- [QTBUG-62150] Fixed detection of ICU in static builds.
- [QTBUG-53537][X11] Added missing detection of Xinerama.
- [QTBUG-61731][X11] Fixed detection of AT-SPI, allowing accessibility
support to be built again.
- [X11] Fixed detection of x11-xcb with pkg-config.
- [CMake] All Qt module defines are now propagated to the config files.
qmake
-----
- [QTBUG-31034] Added qmake feature and configure option to use ccache.
- [QTBUG-48342] Fixed generation of extraneous slashes in -project mode.
- [QTBUG-55633] Fixed misparsing of some string literal concatenations
as C++11 raw strings. This affects dependency scanning.
- [QTBUG-59301][Xcode] Fixed duplicate references in project files.
- [QTBUG-59827][nmake] The 'clean' target now deletes backup files of
MSVC manifests.
- [QTBUG-60455][Android] libc++ is now used instead of libstdc++ when
building with the android-clang mkspec.
- [QTBUG-60430][iOS] Fixed handling of the deprecated variable
QMAKE_IOS_TARGETED_DEVICE_FAMILY.
- [QTBUG-60899][WinRT] Fixed capability handling for Win10 targets.
- [WinRT] Added support for new Win10 capabilities.
- [QTBUG-61335][MinGW] Worked around LTO+MRI linker issue when cross-
building from Linux.
- [QTBUG-61411][Windows] _UNICODE is now defined, consistently with VS.
- [QTBUG-61688][MSVC] Fixed compilation of precompiled headers with
CONFIG+=silent. Done by removing redundant progress messages.
- [QTBUG-61690][QTBUG-61735] Fixed detection of compiler default search
paths for various compilers and platforms.
- [QTBUG-63197][Windows] Fixed moc'ing in a build directory with spaces
when INCLUDEPATH contains 40+ entries.
- [Android] Fixed building with ndkr16+ by using unified headers.
- [Windows] Fixed repeated installation of read-only files.
- [VS] Fixed deployment rules in created solution files.