Qt 5.11 introduces many new features and improvements as well as bugfixes over the 5.10.x series. 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.11 series is binary compatible with the 5.10.x series. Applications compiled for 5.10 will continue to run with 5.11. 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 * **************************************************************************** - [QTBUG-63150] Characters invalid in XML, such as 0x0 or 0xfffe, as well as strings containing unmatched UTF-16 surrogates are now suppressed from the output of QXmlStreamWriter and cause the error flag to be set. - Logging (including qDebug and qWarning): * The QT_LOGGING_TO_CONSOLE environment variable has been deprecated. Use the more specific QT_ASSUME_STDERR_HAS_CONSOLE or QT_FORCE_STDERR_LOGGING, depending on your usecase. **************************************************************************** * General Notes * **************************************************************************** Deprecation Notices ------------------- - Microsoft Visual Studio 2013 (compiler version 12.0) is no longer supported with this Qt version. - macOS 10.10 is no longer supported with this Qt version. Third-Party Code ---------------- - Removed attribution for QTemporaryFile: The original code got rewritten. - Documented use of "Unicode Character Database (UCD)" in Qt Core. - Clarified use of "Unicode Common Local Data Repository (CLDR)" in the documentation. Also updated SPDX license name / ID. - Sqlite was updated to version 3.23.1 - Libdbus-1 code in Qt D-Bus is now properly documented. The code is licensed under AFL-2.1 OR GPL-2.0-or-later. - Bundled HarfBuzz-NG copy updated to 1.7.4. **************************************************************************** * Library * **************************************************************************** QtCore ------ - [QTBUG-38156] Apple Unified Logging is now supported on Apple platforms. - QAbstractItemModel: * Added QAbstractItemModel::checkIndex(), a debugging function for QAbstractItemModel subclasses. - QBitArray: * Added fromBits(), which creates a QBitArray from a dense bit array, and bits(), which returns that. - QDateTime: * [QTBUG-64401] Years up to 9999 can now be parsed without error (previously 8000 and beyond were treated as invalid) in all formats (not only in ISO format). Widgets handling dates now support dates to 9999, likewise. * [QTBUG-63072] When parsing dates and times from strings, fixed-width date-time fields, such as a "dd" for day, QDateTime now rejects all values that should be padded, rather than only doing so when the value is a prefix of some value that would fill the field-width. Use a single letter for the field, e.g. "d" for day, if you want to accept short values. (QDateTimeEdit is not affected.) - QJsonValue: * fromVariant() conversion now converts from QUrl and QUuid using special encoding forms to ensure best JSON compatibility. - QLockFile: * [QTBUG-63425] QLockFile can now properly conclude that a lock file from a previous boot of the same device is stale and can be removed. This is implemented only for Linux and Apple operating systems. - QMetaObject: * [QTBUG-66744] It is now possible to use template class instances inheriting from a Q_GADGET in Qml. - QSaveFile: * [QTBUG-66268] Fixed an issue that would cause QSaveFile::commit() to fail if Unix signals were delivered at the same time. - QScopedPointer: * Added get(), for compatibility with std::shared_ptr. - QSharedPointer: * Added get(), for compatibility with std::shared_ptr. - QString: * Added remove() overload taking QLatin1String. - QStringBuilder: * Added support for char16_t characters and strings. * Added support for QStringView. - QSysInfo: * [QTBUG-63425] Added machineUniqueId() and bootUniqueId(). - QThread: * [QTBUG-53357] Changed how Qt thread priorities are mapped to QNX system thread priorities. - QUrl: * Fixed a bug in parsing IPv6 addresses with more than 4 hex digits in a component. - QUuid: * Added a parameter to both toString() and toByteArray() to allow controlling the use or not of the braces and dashes in the string form. - QVarLengthArray: * Added rvalue overloads of prepend and insert. * QVarLengthArray can now contain movable but non-copyable types, such as std::unique_ptr. * Added missing rvalue overload of operator+=() and operator<<(). - QVariant: * Conversions of QDateTime to strings now contain the millisecond components. - QVector: * Added rvalue overloads of prepend and insert. * Added missing rvalue overload of operator+=() and operator<<() QtGui ----- - [QTBUG-59762] The QT_QPA_PLATFORM environment variable and the -platform argument now support a list of platform plugins in prioritized order. Platforms are separated by semicolons. - QGuiApplication: * Added fontChanged() signal. - QIcon: * [QTBUG-33123] Added fallbackSearchPaths() that will be used to find icons missing in the current icon theme. - QStaticText: * [QTBUG-65836] Fixed explicitly set width not being respected. - Text: * [QTBUG-45957] Fixed a bug where QStaticText would not use the QPainter's pen color for text when other text colors were also in use. Internally this reserves QColor(0, 0, 0, 0) for use with QStaticText. * Added QFontMetrics::horizontalAdvance() and QFontMetricsF::horizontalAdvance() to replace the confusingly named width() function. The latter has now been deprecated. * [QTBUG-65345] Fixed an issue where changing the letter spacing type of a QTextCharFormat would not cause its font to update. QtNetwork --------- - QHostAddress: * Added isGlobal(), isLinkLocal(), isSiteLocal(), isUniqueLocalUnicast(), and isBroadcast() classification functions to complement isLoopback() and isMulticast(). * Fixed a bug in parsing IPv6 addresses with more than 4 hex digits in a component. - QNetworkAccessManager: * [QTBUG-61397] Added Http2DirectAttribute to enable 'direct' HTTP/2 protocol without ALPN/NPN and without protocol upgrade negotiations. * [QTBUG-66913] Fixed a crash in HTTP/2 protocol handler (when server responds with redirect or some error status code early, not wating for a stream to be closed on client side). - QNetworkInterface: * Added type(). * Added maximumTransmissionUnit(). * Added preferredLifetime() and validityLifetime() to QNetworkAddressEntry that report the remaining lifetime of the address in the network interface. * Added dnsEligibility() to QNetworkAddressEntry to indicate whether the address is eligible or not for publication in DNS or similar mechanisms. * [QTBUG-67226] Fixed a regression in reporting the local address of a point-to-point tunnel network interface. - QSslSocket: * [QTBUG-67584] When using OpenSSL 1.1, it now correctly sets protocol version for QSsl::TlsV1_0, QSsl::TlsV1_1 and QSsl::TlsV1_2. * [QTBUG-67112] On WinRT QSsl::SecureProtocols (default) now enables TLSv1.1 and TLSv1.2. * On WinRT QSsl::TlsV1SslV3 now enables SSLv3 and not just TLSv1. QtPrintSupport -------------- - Larger improvements to the CUPS print dialog. * Added an advanced options tab in the printer properties, containing all the printer options exposed through the CUPS API. * Implemented support for installable options (add-ons to the printer). * Added support for storing the selected settings between application runs. * Added support for localized options in the advanced tab. * The CUPS print dialog now supports printing of arbitrary ranges. - QPrintDialog * [QTBUG-58733] Fixed handling of custom page sizes. QtSql ----- - OCI support: * [QTBUG-23] Added support for the TIMESTAMP data type. - PostgreSQL support: * [QTBUG-63714] Added support for forward-only queries (requires libpq version 9.2 or later). * Added support for multiple result sets. - QSqlDatabase: * [QTBUG-216] QSqlDatabase::database() will return an invalid QSqlDatabase if the calling thread does not own the requested QSqlDatabase. QtTest ------ - The qtest_global.h header is now deprecated. Include qttestglobal.h instead. - Added QAbstractItemModelTester, a class to help testing item models. QtWidgets --------- - [QTBUG-62094] QDesktopWidget has been deprecated. Use the corresponding QScreen functions instead. - [QTBUG-49374][QTBUG-65237][QTBUG-49374] Fixed several issues related to HiDPI support in QStyle. - Item views: * [QTBUG-48725] QTreeView now calls canFetchMore() and fetchMore() when the bottom of the QTreeView is scrolled to. * [QTBUG-65082] Add ability to show QJsonValue::Bool/Double to QTreeView, QTableView and QListView. - QAbstractItemModel: * Implemented improved support for the optional "role" parameter in the "dataChanged" signal. - QColorDialog: * [QTBUG-64500] Fixed persistence of custom colors when relaunching an application. - QHeaderView: * Flat treeviews can now allow the user to move the first column (like in Qt 4.x) using the new method QHeaderView::setFirstSectionMovable(). * MinimumSectionSize/MaximumSectionSize is now respected when calling resizeSection(). - QLineEdit: * Implemented quick text selection by mouse in QLineEdit. * Placeholder text is now used as accessible description if the latter has not been set. - QListView: * QListView now honors css :first/:middle/:last Pseudo-States. - QMenu: * [QTBUG-25669] Fixed a bug in QMenu that caused QMenuBar::triggered() to be fired multiple times. - QMenuBar: * Added overloads of addAction() using Qt 5 signals and slots. - QStandardItemModel: * [QTBUG-45114][QTBUG-10872] Fixed setItemData() incorrectly deleting unmodified data. That behavior is not following QAbstractItemModel's documented behavior which is no modification of data not provided in parameter. - QStyle: * [QTBUG-53094] Added SH_ComboBox_AllowWheelScrolling as a style hint to enable/disable the use of the mouse wheel in a QComboBox. This defaults to true in all styles except the macOS one so there is no change in existing behavior. - QTextEdit/QPlainTextEdit * [QTBUG-63868] context menus will now open on right mouse click even if the focus policy is Qt::NoFcous (allowing text copy). - QTreeWidgetItem: * QTreeWidgetItem::insertChildren now ignores insertions happening at invalid indices, for consistency with QTreeWidgetItem::insertChild. **************************************************************************** * Platform-specific Changes * **************************************************************************** Android ------- - The application and dependent Qt libraries are now loaded on the same thread as main() is run on, ensuring that global static initializers, constructor functions, and main() are all run on the same thread. The same applies during application shutdown, for destructors of global objects, and destructor functions. Linux/EGLFS ----------- - [QTBUG-63088] The DRM+GBM backend now exposes the DRM/GBM device handle under the key "dri_fd", queriable via nativeResourceForIntegration(). Linux/XCB --------- - [QTBUG-56452] Added missing dead key symbols, enabling their use with the "compose" input module. - Added support for flatpak portals. Flatpak is a software utility for software deployment and package management. It provides a sandbox environment in which users can run applications in isolation from the rest of the system. To communicate with the system flatpak uses portals, which are designed to be a bridge between sandboxed applications and desktop/system running on user's computer. Flatpak runs automatically this as service, called xdg-desktop-portal, which exports portals on DBus and which are by default visible to all applications running under Flatpak. - [QTBUG-44938] Qt now falls back to X11 core keycode information if an XKB keymap could not be determined through the connection. - ibus: * Support ForwardKeyEvent signal Windows ------- - [QTPM-487][QTBUG-53024][QTBUG-43190][QTBUG-61926][QTBUG-38499] [QTBUG-38337][QTBUG-38501][QTBUG-38502][QTBUG-38504][QTBUG-38505] [QTBUG-38507] The Windows Accessibility back end, formerly based on Microsoft Active Accessibility, was replaced with a new implementation based on Microsoft UI Automation. - [QTBUG-44594] Added support for End-User Defined Characters in Qt. iOS --- - [QTBUG-59042] The Apple Pencil now generates QTabletEvents, with the complete feature set (tilt, rotation, pressure). macOS ----- - QMacStyle does no longer depend on HITheme — or Carbon for that matter. Its implementation now relies exclusively on AppKit and custom code for rendering and pixel metrics. **************************************************************************** * Tools * **************************************************************************** configure & build system ------------------------ - [QTBUG-61260] Fixed build with -sanitize address. - [QTBUG-61373][Windows] Restored default -prefix to C:\Qt\Qt-\. - [QTBUG-66355] pkg-config is now tried first to find system pcre2-16. - [QTBUG-66675] Fixed -debug-and-release builds with qtquickcompiler. - [Windows] OpenSSL 1.1 detection is now automatic. - [X11] The -xkb-config-root command line switch has been removed as it is no longer needed when configuring with -qt-xkbcommon-x11. - Added the -gdb-index option to speed up debugging with GDB. - More Qt features were made optional as part of the Qt Lite project. - Removed compatibility of the modules with CMake < 3.1. qmake ----- - [QTBUG-35131][Xcode] Fixed build breakage when an extra compiler's output directory (OBJECTS_DIR, MOC_DIR, etc.) contains "/../". - [QTBUG-45211][iOS] Fixed building of QML based test cases. - [QTBUG-66265][VS2017] Fixed building projects with Windows 8.1 SDK. - [QTBUG-66770][Android][x86] The clang makespec now adds -mstackrealign. - [QTBUG-67011] Fixed immediate RESOURCES when using an absolute RCC_DIR. - [QTBUG-67286][Darwin] Fixed error messages when SDK cannot be resolved. - [Darwin] Fixed the selected SDK's compilers not being used for plain C sources. - [Darwin] Fixed QMAKE_BUNDLE_DATA with extra compiler generated files.