1Qt 5.11 introduces many new features and improvements as well as bugfixes 2over the 5.10.x series. For more details, refer to the online documentation 3included in this distribution. The documentation is also available online: 4 5http://doc.qt.io/qt-5/index.html 6 7The Qt version 5.11 series is binary compatible with the 5.10.x series. 8Applications compiled for 5.10 will continue to run with 5.11. 9 10Some of the changes listed in this file include issue tracking numbers 11corresponding to tasks in the Qt Bug Tracker: 12 13https://bugreports.qt.io/ 14 15Each of these identifiers can be entered in the bug tracker to obtain more 16information about a particular change. 17 18**************************************************************************** 19* Important Behavior Changes * 20**************************************************************************** 21 22 - [QTBUG-63150] Characters invalid in XML, such as 0x0 or 0xfffe, as well 23 as strings containing unmatched UTF-16 surrogates are now suppressed 24 from the output of QXmlStreamWriter and cause the error flag to be set. 25 26 - Logging (including qDebug and qWarning): 27 * The QT_LOGGING_TO_CONSOLE environment variable has been deprecated. 28 Use the more specific QT_ASSUME_STDERR_HAS_CONSOLE or 29 QT_FORCE_STDERR_LOGGING, depending on your usecase. 30 31**************************************************************************** 32* General Notes * 33**************************************************************************** 34 35Deprecation Notices 36------------------- 37 38 - Microsoft Visual Studio 2013 (compiler version 12.0) is no longer 39 supported with this Qt version. 40 - macOS 10.10 is no longer supported with this Qt version. 41 42Third-Party Code 43---------------- 44 45 - Removed attribution for QTemporaryFile: The original code got rewritten. 46 - Documented use of "Unicode Character Database (UCD)" in Qt Core. 47 - Clarified use of "Unicode Common Local Data Repository (CLDR)" in the 48 documentation. Also updated SPDX license name / ID. 49 - Sqlite was updated to version 3.23.1 50 - Libdbus-1 code in Qt D-Bus is now properly documented. The code is 51 licensed under AFL-2.1 OR GPL-2.0-or-later. 52 - Bundled HarfBuzz-NG copy updated to 1.7.4. 53 54**************************************************************************** 55* Library * 56**************************************************************************** 57 58QtCore 59------ 60 61 - [QTBUG-38156] Apple Unified Logging is now supported on Apple platforms. 62 63 - QAbstractItemModel: 64 * Added QAbstractItemModel::checkIndex(), a debugging function for 65 QAbstractItemModel subclasses. 66 67 - QBitArray: 68 * Added fromBits(), which creates a QBitArray from a dense bit array, 69 and bits(), which returns that. 70 71 - QDateTime: 72 * [QTBUG-64401] Years up to 9999 can now be parsed without error 73 (previously 8000 and beyond were treated as invalid) in all formats 74 (not only in ISO format). Widgets handling dates now support dates to 75 9999, likewise. 76 * [QTBUG-63072] When parsing dates and times from strings, fixed-width 77 date-time fields, such as a "dd" for day, QDateTime now rejects all 78 values that should be padded, rather than only doing so when the value 79 is a prefix of some value that would fill the field-width. Use a 80 single letter for the field, e.g. "d" for day, if you want to accept 81 short values. (QDateTimeEdit is not affected.) 82 83 - QJsonValue: 84 * fromVariant() conversion now converts from QUrl and QUuid using 85 special encoding forms to ensure best JSON compatibility. 86 87 - QLockFile: 88 * [QTBUG-63425] QLockFile can now properly conclude that a lock file 89 from a previous boot of the same device is stale and can be removed. 90 This is implemented only for Linux and Apple operating systems. 91 92 - QMetaObject: 93 * [QTBUG-66744] It is now possible to use template class instances 94 inheriting from a Q_GADGET in Qml. 95 96 - QSaveFile: 97 * [QTBUG-66268] Fixed an issue that would cause QSaveFile::commit() to 98 fail if Unix signals were delivered at the same time. 99 100 - QScopedPointer: 101 * Added get(), for compatibility with std::shared_ptr. 102 103 - QSharedPointer: 104 * Added get(), for compatibility with std::shared_ptr. 105 106 - QString: 107 * Added remove() overload taking QLatin1String. 108 109 - QStringBuilder: 110 * Added support for char16_t characters and strings. 111 * Added support for QStringView. 112 113 - QSysInfo: 114 * [QTBUG-63425] Added machineUniqueId() and bootUniqueId(). 115 116 - QThread: 117 * [QTBUG-53357] Changed how Qt thread priorities are mapped to QNX 118 system thread priorities. 119 120 - QUrl: 121 * Fixed a bug in parsing IPv6 addresses with more than 4 hex digits in a 122 component. 123 124 - QUuid: 125 * Added a parameter to both toString() and toByteArray() to allow 126 controlling the use or not of the braces and dashes in the string 127 form. 128 129 - QVarLengthArray: 130 * Added rvalue overloads of prepend and insert. 131 * QVarLengthArray can now contain movable but non-copyable types, such as 132 std::unique_ptr. 133 * Added missing rvalue overload of operator+=() and operator<<(). 134 135 - QVariant: 136 * Conversions of QDateTime to strings now contain the millisecond 137 components. 138 139 - QVector: 140 * Added rvalue overloads of prepend and insert. 141 * Added missing rvalue overload of operator+=() and operator<<() 142 143QtGui 144----- 145 146 - [QTBUG-59762] The QT_QPA_PLATFORM environment variable and the -platform 147 argument now support a list of platform plugins in prioritized 148 order. Platforms are separated by semicolons. 149 150 - QGuiApplication: 151 * Added fontChanged() signal. 152 153 - QIcon: 154 * [QTBUG-33123] Added fallbackSearchPaths() that will be used to find 155 icons missing in the current icon theme. 156 157 - QStaticText: 158 * [QTBUG-65836] Fixed explicitly set width not being respected. 159 160 - Text: 161 * [QTBUG-45957] Fixed a bug where QStaticText would not use the 162 QPainter's pen color for text when other text colors were also in use. 163 Internally this reserves QColor(0, 0, 0, 0) for use with QStaticText. 164 * Added QFontMetrics::horizontalAdvance() and 165 QFontMetricsF::horizontalAdvance() to replace the confusingly named 166 width() function. The latter has now been deprecated. 167 * [QTBUG-65345] Fixed an issue where changing the letter spacing type of 168 a QTextCharFormat would not cause its font to update. 169 170QtNetwork 171--------- 172 173 - QHostAddress: 174 * Added isGlobal(), isLinkLocal(), isSiteLocal(), 175 isUniqueLocalUnicast(), and isBroadcast() classification functions to 176 complement isLoopback() and isMulticast(). 177 * Fixed a bug in parsing IPv6 addresses with more than 4 hex digits in a 178 component. 179 180- QNetworkAccessManager: 181 * [QTBUG-61397] Added Http2DirectAttribute to enable 'direct' HTTP/2 182 protocol without ALPN/NPN and without protocol upgrade negotiations. 183 * [QTBUG-66913] Fixed a crash in HTTP/2 protocol handler (when server 184 responds with redirect or some error status code early, not wating 185 for a stream to be closed on client side). 186 187 - QNetworkInterface: 188 * Added type(). 189 * Added maximumTransmissionUnit(). 190 * Added preferredLifetime() and validityLifetime() to 191 QNetworkAddressEntry that report the remaining lifetime of the address 192 in the network interface. 193 * Added dnsEligibility() to QNetworkAddressEntry to indicate whether the 194 address is eligible or not for publication in DNS or similar 195 mechanisms. 196 * [QTBUG-67226] Fixed a regression in reporting the local address of a 197 point-to-point tunnel network interface. 198 199 - QSslSocket: 200 * [QTBUG-67584] When using OpenSSL 1.1, it now correctly sets protocol 201 version for QSsl::TlsV1_0, QSsl::TlsV1_1 and QSsl::TlsV1_2. 202 * [QTBUG-67112] On WinRT QSsl::SecureProtocols (default) now enables 203 TLSv1.1 and TLSv1.2. 204 * On WinRT QSsl::TlsV1SslV3 now enables SSLv3 and not just TLSv1. 205 206QtPrintSupport 207-------------- 208 209 - Larger improvements to the CUPS print dialog. 210 * Added an advanced options tab in the printer properties, containing 211 all the printer options exposed through the CUPS API. 212 * Implemented support for installable options (add-ons to the printer). 213 * Added support for storing the selected settings between application runs. 214 * Added support for localized options in the advanced tab. 215 * The CUPS print dialog now supports printing of arbitrary ranges. 216 217 - QPrintDialog 218 * [QTBUG-58733] Fixed handling of custom page sizes. 219 220QtSql 221----- 222 223 - OCI support: 224 * [QTBUG-23] Added support for the TIMESTAMP data type. 225 226 - PostgreSQL support: 227 * [QTBUG-63714] Added support for forward-only queries (requires libpq 228 version 9.2 or later). 229 * Added support for multiple result sets. 230 231 - QSqlDatabase: 232 * [QTBUG-216] QSqlDatabase::database() will return an invalid 233 QSqlDatabase if the calling thread does not own the requested 234 QSqlDatabase. 235 236QtTest 237------ 238 239 - The qtest_global.h header is now deprecated. Include qttestglobal.h 240 instead. 241 - Added QAbstractItemModelTester, a class to help testing item models. 242 243QtWidgets 244--------- 245 246 - [QTBUG-62094] QDesktopWidget has been deprecated. Use the corresponding 247 QScreen functions instead. 248 - [QTBUG-49374][QTBUG-65237][QTBUG-49374] Fixed several issues related 249 to HiDPI support in QStyle. 250 251 - Item views: 252 * [QTBUG-48725] QTreeView now calls canFetchMore() and fetchMore() when 253 the bottom of the QTreeView is scrolled to. 254 * [QTBUG-65082] Add ability to show QJsonValue::Bool/Double to 255 QTreeView, QTableView and QListView. 256 257 - QAbstractItemModel: 258 * Implemented improved support for the optional "role" parameter in the 259 "dataChanged" signal. 260 261 - QColorDialog: 262 * [QTBUG-64500] Fixed persistence of custom colors when relaunching an 263 application. 264 265 - QHeaderView: 266 * Flat treeviews can now allow the user to move the first column (like 267 in Qt 4.x) using the new method QHeaderView::setFirstSectionMovable(). 268 * MinimumSectionSize/MaximumSectionSize is now respected when calling 269 resizeSection(). 270 271 - QLineEdit: 272 * Implemented quick text selection by mouse in QLineEdit. 273 * Placeholder text is now used as accessible description if the latter 274 has not been set. 275 276 - QListView: 277 * QListView now honors css :first/:middle/:last Pseudo-States. 278 279 - QMenu: 280 * [QTBUG-25669] Fixed a bug in QMenu that caused QMenuBar::triggered() to 281 be fired multiple times. 282 283 - QMenuBar: 284 * Added overloads of addAction() using Qt 5 signals and slots. 285 286 - QStandardItemModel: 287 * [QTBUG-45114][QTBUG-10872] Fixed setItemData() incorrectly deleting 288 unmodified data. That behavior is not following QAbstractItemModel's 289 documented behavior which is no modification of data not provided in 290 parameter. 291 292 - QStyle: 293 * [QTBUG-53094] Added SH_ComboBox_AllowWheelScrolling as a style hint to 294 enable/disable the use of the mouse wheel in a QComboBox. This 295 defaults to true in all styles except the macOS one so there is no 296 change in existing behavior. 297 298 - QTextEdit/QPlainTextEdit 299 * [QTBUG-63868] context menus will now open on right mouse click even if 300 the focus policy is Qt::NoFcous (allowing text copy). 301 302 - QTreeWidgetItem: 303 * QTreeWidgetItem::insertChildren now ignores insertions happening at 304 invalid indices, for consistency with QTreeWidgetItem::insertChild. 305 306**************************************************************************** 307* Platform-specific Changes * 308**************************************************************************** 309 310Android 311------- 312 313 - The application and dependent Qt libraries are now loaded on the same 314 thread as main() is run on, ensuring that global static initializers, 315 constructor functions, and main() are all run on the same thread. The 316 same applies during application shutdown, for destructors of global 317 objects, and destructor functions. 318 319Linux/EGLFS 320----------- 321 322 - [QTBUG-63088] The DRM+GBM backend now exposes the DRM/GBM device handle 323 under the key "dri_fd", queriable via nativeResourceForIntegration(). 324 325Linux/XCB 326--------- 327 328 - [QTBUG-56452] Added missing dead key symbols, enabling their use with 329 the "compose" input module. 330 - Added support for flatpak portals. Flatpak is a software utility for 331 software deployment and package management. It provides a sandbox 332 environment in which users can run applications in isolation from the 333 rest of the system. To communicate with the system flatpak uses portals, 334 which are designed to be a bridge between sandboxed applications and 335 desktop/system running on user's computer. Flatpak runs automatically 336 this as service, called xdg-desktop-portal, which exports portals on DBus 337 and which are by default visible to all applications running under 338 Flatpak. 339 - [QTBUG-44938] Qt now falls back to X11 core keycode information if an XKB 340 keymap could not be determined through the connection. 341 342 - ibus: 343 * Support ForwardKeyEvent signal 344 345Windows 346------- 347 348 - [QTPM-487][QTBUG-53024][QTBUG-43190][QTBUG-61926][QTBUG-38499] 349 [QTBUG-38337][QTBUG-38501][QTBUG-38502][QTBUG-38504][QTBUG-38505] 350 [QTBUG-38507] The Windows Accessibility back end, formerly based on 351 Microsoft Active Accessibility, was replaced with a new implementation 352 based on Microsoft UI Automation. 353 354 - [QTBUG-44594] Added support for End-User Defined Characters in Qt. 355 356iOS 357--- 358 359 - [QTBUG-59042] The Apple Pencil now generates QTabletEvents, with the 360 complete feature set (tilt, rotation, pressure). 361 362macOS 363----- 364 365 - QMacStyle does no longer depend on HITheme — or Carbon for that matter. 366 Its implementation now relies exclusively on AppKit and custom code for 367 rendering and pixel metrics. 368 369**************************************************************************** 370* Tools * 371**************************************************************************** 372 373configure & build system 374------------------------ 375 376 - [QTBUG-61260] Fixed build with -sanitize address. 377 - [QTBUG-61373][Windows] Restored default -prefix to C:\Qt\Qt-<version>\. 378 - [QTBUG-66355] pkg-config is now tried first to find system pcre2-16. 379 - [QTBUG-66675] Fixed -debug-and-release builds with qtquickcompiler. 380 - [Windows] OpenSSL 1.1 detection is now automatic. 381 - [X11] The -xkb-config-root command line switch has been removed as it 382 is no longer needed when configuring with -qt-xkbcommon-x11. 383 - Added the -gdb-index option to speed up debugging with GDB. 384 - More Qt features were made optional as part of the Qt Lite project. 385 - Removed compatibility of the modules with CMake < 3.1. 386 387qmake 388----- 389 390 - [QTBUG-35131][Xcode] Fixed build breakage when an extra compiler's 391 output directory (OBJECTS_DIR, MOC_DIR, etc.) contains "/../". 392 - [QTBUG-45211][iOS] Fixed building of QML based test cases. 393 - [QTBUG-66265][VS2017] Fixed building projects with Windows 8.1 SDK. 394 - [QTBUG-66770][Android][x86] The clang makespec now adds -mstackrealign. 395 - [QTBUG-67011] Fixed immediate RESOURCES when using an absolute RCC_DIR. 396 - [QTBUG-67286][Darwin] Fixed error messages when SDK cannot be resolved. 397 - [Darwin] Fixed the selected SDK's compilers not being used for plain C 398 sources. 399 - [Darwin] Fixed QMAKE_BUNDLE_DATA with extra compiler generated files. 400