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 . **************************************************************************** * 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.