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