1Qt 5.9.2 is a bug-fix release. It maintains both forward and backward 2compatibility (source and binary) with Qt 5.9.0. 3 4For more details, refer to the online documentation included in this 5distribution. The documentation is also available online: 6 7http://doc.qt.io/qt-5/index.html 8 9The Qt version 5.9 series is binary compatible with the 5.8.x series. 10Applications compiled for 5.8 will continue to run with 5.9. 11 12Some of the changes listed in this file include issue tracking numbers 13corresponding to tasks in the Qt Bug Tracker: 14 15https://bugreports.qt.io/ 16 17Each of these identifiers can be entered in the bug tracker to obtain more 18information about a particular change. 19 20**************************************************************************** 21* Important Behavior Changes * 22**************************************************************************** 23 24 - Building examples inside the Qt source tree while not building Qt itself 25 is rejected now, because this can cause hard to debug configuration 26 issues. If building isolated examples is needed, you may still use shadow 27 builds. 28 29 - This version of Qt restores compatibility with pre-5.9.0 calculation of 30 QCryptographicHash algorithms that were labelled "Sha3_nnn": that is, 31 applications compiled with old versions of Qt will continue using the 32 Keccak algorithm. Applications recompiled with this version will use 33 SHA-3, unless QT_SHA3_KECCAK_COMPAT is #define'd prior to #include 34 <QCryptographicHash>. 35 36**************************************************************************** 37* General Notes * 38**************************************************************************** 39 40Binary Compatibility Note 41------------------------- 42 43 - The variable QOperatingSystemVersion::AndroidOreo was added in this 44 release. Code that uses this variable will not run under Qt 5.9.1. If 45 backwards compatibility is desired, use instead 46 QOperatingSystemVersion(QOperatingSystemVersion::Android, 8) 47 [This is similar to QOperatingSystemVersion::MacOSHighSierra added in 48 5.9.1] 49 50 - This version of Qt changes the values assigned to enumerations 51 QCryptographicHash::Sha3_nnn. Applications compiled with this version and 52 using those enumerations will not work with Qt 5.9.0 and 5.9.1, unless 53 QT_SHA3_KECCAK_COMPAT is defined. 54 55Deprecation Notice 56------------------ 57 58 - Starting with Qt 5.10, IPv6 support will be mandatory for all platforms. 59 Systems without proper IPv6 support, such as the getaddrinfo() function 60 or the proper socket address structures, will not be able to build 61 QtNetwork anymore. 62 63Third-Party Code 64---------------- 65 66 - [QTBUG-31020] zlib was updated to version 1.2.11. 67 - libpng was updated to version 1.6.32 68 69**************************************************************************** 70* Library * 71**************************************************************************** 72 73QtCore 74------ 75 76 - [QTBUG-61350] Fixed the conversion from string to double of the strings 77 "0E+1" and "0E-1" (with capital E), which QString::toDouble(), 78 QByteArray::toDouble() and similar functions reported as invalid. 79 80 - QFile: 81 * [QTBUG-57023] Reverted an incorrect change from Qt 5.9.0 that forbade 82 the creation and access to Alternate Data Streams on NTFS on Windows. 83 This means that file names containing a colon (':') are allowed again, 84 but note that they are not regular files. 85 86 - QFileInfo: 87 * [QTBUG-62802] Relative symbolic links on Windows are now resolved to 88 their absolute path by symLinkTarget(). 89 90 - QFileSystemWatcher: 91 * [QTBUG-62242] Fixed a crash on Windows if this class was instantiated 92 before QCoreApplication was created. 93 * [QTBUG-61792] Fixed an issue on Windows that would cause this class not 94 to monitor files properly if the directory containing the monitored 95 files was added to the list of watched paths after the files. 96 97 - QLocale: 98 * [QTBUG-53565] Fixed the conversion of QTime to string form and parsing 99 from string form to always treat the value as the decimal fraction of 100 the seconds component. That is, the string format ".z" produces/parses 101 ".2" for 200 milliseconds and ".002" for 2 milliseconds. Use of "z" or 102 "zzz" is discouraged outside decimal fractions to avoid surprises. 103 * [QTBUG-61949] Fixed bcp57Name() to return "en" for the QLocale::c() 104 locale. Previously, it returned "C", which is not a valid BCP47 105 language tag. 106 107 - QProcess: 108 * [QTBUG-61634] Added a workaround for a rare race-condition bug in 109 some C libraries that caused the child process started by QProcess to 110 hang after trying to launch a non-existent executable or change to a 111 non-existent directory. 112 * [QTBUG-62584] Fixed a race-condition bug that could cause 113 waitForXxx() functions to hang forever if a slot triggered by that 114 function futher started a nested event loop. 115 116 - QTimeZone: 117 * [QTBUG-63205] Fixed a bug that would cause QTimeZone to mis-parse 118 timezone files on Unix systems if they contained leap second 119 information. 120 121 - QVariant: 122 * [QTBUG-61471] Fixed QVariant to actually perform the conversions 123 between QVariantHash and QVariantMap in the respective .toHash() and 124 .toMap() functions. QVariant already reported true in .canConvert() 125 between those two types. 126 127QtDBus 128------ 129 130 - [QTBUG-62284] Fixed a race condition in QDBusAbstractInterface that 131 could cause the class to never see the notification that the remote 132 service became available and cause isValid() to change to true. 133 134QtGui 135----- 136 137 - Text: 138 * [QTBUG-61520] Fixed matching of non-regular font weights for 139 application fonts on macOS. 140 141QtNetwork 142--------- 143 144 - [QTBUG-61692] Fixed the handling of application-wide proxy settings (set 145 with QNetworkProxy): previously, QTcpSocket would directly fall back to 146 the system settings if the object-specific setting was 147 QNetworkProxy::DefaultProxy. 148 149 - QLocalSocket: 150 * [QTBUG-61643] Fixed an issue with Qt pipe-handling code that could 151 cause deadlocks on Windows, most often if the QLocalSocket object tried 152 to wait for more data during application shutdown. 153 154QtTest 155------ 156 157 - Added flowId to messages when logging in TeamCity format. FlowId is used 158 to distinguish logging from multiple processes running in parallel. 159 160QtWidgets 161--------- 162 163 - Android: 164 * [QTBUG-48639] Fixed label duplication for buttons when using style 165 sheets with the Android style. 166 167 - QLineEdit: 168 * [QTBUG-60319] Fixed behavior of the ImSurroundingText query. 169 Previously, it returned a masked text whose length may be less than 170 the cursor position. Now it returns unmasked text, so the text length 171 is always greater than or equal to the cursor position. 172 173 - QMenu: 174 * [QTBUG-59794] Fixed menu size issue when using high DPI on 175 multi-screen system. 176 177**************************************************************************** 178* Compiler-specific Changes * 179**************************************************************************** 180 181clang 182----- 183 184 - [QTBUG-61840][QTBUG-62085] Fixed an issue that caused recent Clang 185 versions to print a warning about [[nodiscard]. 186 187Visual Studio 188------------- 189 190 - [QTBUG-61902] Changed Qt uses of certain C++ Standard Library functions 191 that Visual Studio warns about. Now Qt public headers call 192 Microsoft-specific versions that do not produce warnings. 193 194**************************************************************************** 195* Platform-specific Changes * 196**************************************************************************** 197 198macOS 199----- 200 201 - [QTBUG-59222] Switching focus objects inside a top level window while 202 composing text using dead keys or input method events would leave the 203 application in an inconsistent state. The composition now automatically 204 cancels when the focus object changes. 205 206Windows 207------- 208 209 - [QTBUG-57916] Fixed build with ANGLE and newer MinGW versions. 210 - [QTBUG-62083] Fixed Qt trying to steal certain events from user windows if 211 the event ID was WM_USER. 212 213**************************************************************************** 214* Tools * 215**************************************************************************** 216 217configure & build system 218------------------------ 219 220 - [QTBUG-35928][QTBUG-41908][Apple] Qt can now be built using just the 221 Xcode Command Line Tools, without needing to install the full Xcode IDE. 222 - [QTBUG-55755][Windows] All Qt .exe files now include meta information, 223 like .dll files already did. 224 - [QTBUG-58012] (Re-)added a way to specify alternative ICU libraries. 225 - [QTBUG-62150] Fixed detection of ICU in static builds. 226 - [QTBUG-53537][X11] Added missing detection of Xinerama. 227 - [QTBUG-61731][X11] Fixed detection of AT-SPI, allowing accessibility 228 support to be built again. 229 - [X11] Fixed detection of x11-xcb with pkg-config. 230 - [CMake] All Qt module defines are now propagated to the config files. 231 232qmake 233----- 234 235 - [QTBUG-31034] Added qmake feature and configure option to use ccache. 236 - [QTBUG-48342] Fixed generation of extraneous slashes in -project mode. 237 - [QTBUG-55633] Fixed misparsing of some string literal concatenations 238 as C++11 raw strings. This affects dependency scanning. 239 - [QTBUG-59301][Xcode] Fixed duplicate references in project files. 240 - [QTBUG-59827][nmake] The 'clean' target now deletes backup files of 241 MSVC manifests. 242 - [QTBUG-60455][Android] libc++ is now used instead of libstdc++ when 243 building with the android-clang mkspec. 244 - [QTBUG-60430][iOS] Fixed handling of the deprecated variable 245 QMAKE_IOS_TARGETED_DEVICE_FAMILY. 246 - [QTBUG-60899][WinRT] Fixed capability handling for Win10 targets. 247 - [WinRT] Added support for new Win10 capabilities. 248 - [QTBUG-61335][MinGW] Worked around LTO+MRI linker issue when cross- 249 building from Linux. 250 - [QTBUG-61411][Windows] _UNICODE is now defined, consistently with VS. 251 - [QTBUG-61688][MSVC] Fixed compilation of precompiled headers with 252 CONFIG+=silent. Done by removing redundant progress messages. 253 - [QTBUG-61690][QTBUG-61735] Fixed detection of compiler default search 254 paths for various compilers and platforms. 255 - [QTBUG-63197][Windows] Fixed moc'ing in a build directory with spaces 256 when INCLUDEPATH contains 40+ entries. 257 - [Android] Fixed building with ndkr16+ by using unified headers. 258 - [Windows] Fixed repeated installation of read-only files. 259 - [VS] Fixed deployment rules in created solution files. 260