309 lines
13 KiB
Plaintext
309 lines
13 KiB
Plaintext
|
Qt 5.13 introduces many new features and improvements as well as bugfixes
|
||
|
over the 5.12.x series. For more details, refer to the online documentation
|
||
|
included in this distribution. The documentation is also available online:
|
||
|
|
||
|
https://doc.qt.io/qt-5/index.html
|
||
|
|
||
|
The Qt version 5.13 series is binary compatible with the 5.12.x series.
|
||
|
Applications compiled for 5.12 will continue to run with 5.13.
|
||
|
|
||
|
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 Source Incompatible Changes *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Moc generated files include the standard <memory> header file now.
|
||
|
A side effect of this is that code including the Moc output from within
|
||
|
a namespace will fail to compile.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Important Behavior Changes *
|
||
|
****************************************************************************
|
||
|
|
||
|
- The Qt resource system now supports compressing content using the
|
||
|
Zstandard (https://zstd.net) algorithm. Compared to zlib, it compresses
|
||
|
better for the same CPU time, so this algorithm is the default.
|
||
|
QResource::isCompressed() returns true for either compression algorithm.
|
||
|
Use QResource::compressionAlgorithm() to find out which algorithm to
|
||
|
decompress. QFile will automatically decompress using the correct
|
||
|
algorithm.
|
||
|
|
||
|
- QDataStream version bumped up to 19 to account for changes in the
|
||
|
serialization of QFont.
|
||
|
|
||
|
- [QTBUG-73048] Qt now enables by default warnings when using APIs
|
||
|
marked as deprecated. It is possible to disable such warnings by
|
||
|
defining the QT_NO_DEPRECATED_WARNINGS macro. The old
|
||
|
QT_DEPRECATED_WARNINGS macro which was used to enable this warning
|
||
|
now has no effect (warnings are automatically enabled).
|
||
|
|
||
|
****************************************************************************
|
||
|
* Third-Party Code *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Updated bundled SQLite to version 3.28.0.
|
||
|
- [QTBUG-72623] Updated DNS public suffix list
|
||
|
- [QTBUG-73883] libjpeg-turbo was updated to version 2.0.2
|
||
|
- Bundled libpng was updated to version 1.6.37
|
||
|
|
||
|
****************************************************************************
|
||
|
* Platform-Specific Changes *
|
||
|
****************************************************************************
|
||
|
|
||
|
- X11 / XCB:
|
||
|
* [QTBUG-45375] QTabletEvent coordinates now come from AbsX/AbsY
|
||
|
valuators in the X11 event, in more precise 32.32 fixed-point format,
|
||
|
scaled to fit the virtual desktop. It's possible to revert to using
|
||
|
the legacy 16.16-format event_x/event_y coordinates as in previous
|
||
|
releases by setting the QT_XCB_TABLET_LEGACY_COORDINATES environment
|
||
|
variable.
|
||
|
* [plugins] platforminputcontexts now use libxkbcommon-compose APIs for
|
||
|
compose key input, instead of Qt's own implementation.
|
||
|
|
||
|
- Android
|
||
|
* Increased the minimum supported Android version to Android 5.0
|
||
|
(API level 21).
|
||
|
|
||
|
- Windows
|
||
|
* [QTBUG-47247][QTBUG-71855] Add a default setting for
|
||
|
hasBorderInFullScreen in QtPlatformHeaders, QWindowsWindowFunctions
|
||
|
* [QTBUG-57180] Removed confusing DirectWrite warning when loading
|
||
|
bitmap fonts.
|
||
|
|
||
|
- macOS
|
||
|
* Accessibility: VoiceOver now reads all lines in multiline text
|
||
|
components when navigating by lines.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Tools *
|
||
|
****************************************************************************
|
||
|
|
||
|
- configure & build system:
|
||
|
* Added --linker=[bfg,lld,gold] configure flag.
|
||
|
* The default OpenGL configuration changed from ANGLE to dynamic OpenGL.
|
||
|
* Added -schannel option to enable Schannel support on Desktop Windows.
|
||
|
* Added -coverage option for recording coverage data during execution
|
||
|
|
||
|
- CMake
|
||
|
* Added support for automatic linking of transitive dependencies in
|
||
|
static builds
|
||
|
|
||
|
- qmake
|
||
|
* [QTBUG-53654] Introduced the variables WINDOWS_TARGET_PLATFORM_VERSION
|
||
|
and WINDOWS_TARGET_PLATFORM_MIN_VERSION for overriding the default
|
||
|
values of WindowsTargetPlatformVersion and
|
||
|
WindowsTargetPlatformMinVersion in Visual Studio project files.
|
||
|
|
||
|
- RCC now supports compressing content using the Zstandard
|
||
|
(https://zstd.net) algorithm. Compared to zlib, it compresses better for
|
||
|
the same CPU time, so this algorithm is the default. To go back to the
|
||
|
previous algorithm, pass command-line option --compress-algo=zlib.
|
||
|
Compression levels range from 1 (fastest, least compression) to 19
|
||
|
(slowest, best compression). Level 0 tells the library to choose an
|
||
|
implementation-defined default. The default compression level is
|
||
|
"heuristic" (level -1): under this mode, RCC will attempt a very fast
|
||
|
compression (level 1) and check if the file was sufficiently compressed.
|
||
|
If it was, then RCC will compress again using an implementation-defined
|
||
|
level.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtCore *
|
||
|
****************************************************************************
|
||
|
|
||
|
- New class QConcatenateTablesProxyModel, to concatenate the rows from
|
||
|
multiple source models.
|
||
|
- New class QTransposeProxyModel to swap rows and columns of the source
|
||
|
model.
|
||
|
- Added macros Q_DISABLE_MOVE and Q_DISABLE_COPY_MOVE complementing
|
||
|
Q_DISABLE_COPY.
|
||
|
- Qt Containers and meta type system now use C++11 type traits
|
||
|
(std::is_trivial, std::is_trivially_copyable and
|
||
|
std::is_trivially_destructible) to detect the class of a type not
|
||
|
explicitly set by Q_DECLARE_TYPEINFO. (Q_DECLARE_TYPEINFO is still
|
||
|
needed for QList.)
|
||
|
|
||
|
- QCommandLineParser:
|
||
|
* [QTBUG-58490] The application name (if set in QCoreApplication) is now
|
||
|
shown in error messages.
|
||
|
|
||
|
- QDateTime:
|
||
|
* [QTBUG-71030] Fixed race conditions in getting the local time zone. Qt now
|
||
|
has a mutex lock around all calls to tzset() and mktime(). Application
|
||
|
code should avoid calling those functions directly.
|
||
|
|
||
|
- QFile:
|
||
|
* Made QFile::copy() issue a filesystem-synchronization system call,
|
||
|
which would make it less likely to result in incomplete or corrupt
|
||
|
files if the system reboots or uncleanly shuts down soon after the
|
||
|
function returns. New code is advised to use QSaveFile instead, which
|
||
|
also allows display of a progress report while copying.
|
||
|
|
||
|
- QFileInfo:
|
||
|
* [QTBUG-63970][QTBUG-30401][QTBUG-20791] Fixed resolving of symbolic
|
||
|
links to UNC shares on NTFS file systems.
|
||
|
|
||
|
- QJsonArray:
|
||
|
* [QTBUG-32793] Added cbegin() and cend() methods for compatibility with
|
||
|
the Standard Library container concepts.
|
||
|
|
||
|
- QJsonDocument:
|
||
|
* [QTBUG-71445] Added the ability to stream QJsonDocument into and from
|
||
|
QDataStream if it is contained in a QVariant.
|
||
|
|
||
|
- QLocale:
|
||
|
* Added support for Western Balochi, Ido, Lojban, Sicilian and
|
||
|
Southern Kurdish.
|
||
|
* [QTBUG-71445] Added a const overload for formattedDataSize().
|
||
|
* [QTBUG-782] Added toLong() and toULong().
|
||
|
|
||
|
- QMetaObject:
|
||
|
* Non-copyable lambdas can now be used with invokeMethod(). For
|
||
|
consistency reasons, the functor object is now always moved.
|
||
|
|
||
|
- QMimeDatabase:
|
||
|
* Added configure option -no-mimetype-database that tells Qt not to
|
||
|
bundle its own copy of the XDG MIME database. If this option is
|
||
|
passed, QMimeDatabase will only work if there's a system copy in
|
||
|
$XDG_DATA_DIRS/mime. This option is useful for Linux distributions
|
||
|
that ensure the data is always present.
|
||
|
|
||
|
- QSettings:
|
||
|
* Added QSettings(Scope...) constructor to avoid using #ifdef in Qt
|
||
|
applications.
|
||
|
|
||
|
- QStringListModel:
|
||
|
* [QTBUG-69807] Implemented moveRows
|
||
|
|
||
|
- QUrlQuery:
|
||
|
* QUrlQuery now provides an initializer list constructor. It can be
|
||
|
created using a list of key/value pairs.
|
||
|
|
||
|
- QVector:
|
||
|
* QVector no longer requires a default constructor for its template
|
||
|
argument.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtDBus *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Matching namespace prefixes using QDBusServiceWatcher (instead of full
|
||
|
service names) is now possible. For example, "com.example.backend1*"
|
||
|
will match "com.example.backend1", "com.example.backend1.foo" and
|
||
|
"com.example.backend1.foo.bar", but not "com.example.backend12".
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtGui *
|
||
|
****************************************************************************
|
||
|
|
||
|
- CSS:
|
||
|
* Added support for HSL/HSLA colors.
|
||
|
* Fix the range of the hue parameter when parsing a color given in HSL
|
||
|
or HSV.
|
||
|
|
||
|
- QFont:
|
||
|
* Add setFamilies()/families() to support use of font families with
|
||
|
commas and quotes in their name.
|
||
|
|
||
|
- QImage:
|
||
|
* [QTBUG-41176] Added support for 16-bit grayscale format.
|
||
|
* A new method convertTo has been added to change the format of a QImage
|
||
|
in place.
|
||
|
|
||
|
- QPainterPath:
|
||
|
* Added clear(), reserve(), capacity(). clear() removes allocated
|
||
|
QPainterPath elements but preserves allocated memory, which can be
|
||
|
useful for application with complex paths that are often recreated.
|
||
|
reserve() and capacity() follow QVector semantics.
|
||
|
|
||
|
- QWindow:
|
||
|
* [QTBUG-67903][QTBUG-52944] QWindow::transientParent is now a property.
|
||
|
|
||
|
- Text:
|
||
|
* [QTBUG-60813] Deprecated QFont::lastResortFamily() and
|
||
|
QFont::lastResortFont() which are not in use in Qt 5 and did not
|
||
|
provide any useful information.
|
||
|
* [QTBUG-22813] Added support for setting the font's style name in
|
||
|
QTextCharFormat.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtNetwork *
|
||
|
****************************************************************************
|
||
|
|
||
|
- TLS (SSL):
|
||
|
* Support for SSLv2 and SSLv3 sockets has been dropped, as per RFC 6176
|
||
|
(2011) and RFC 7568 (2015).
|
||
|
* The Schannel backend now supports ALPN and thus HTTP/2.
|
||
|
* [QTBUG-62637] Added support for Schannel on Desktop Windows. To build
|
||
|
Qt with Schannel support use '-schannel' during configure.
|
||
|
* Added class QOcspResponse as a part of OCSP stapling support.
|
||
|
* [QTBUG-12812][QTBUG-17158] Added OCSP-stapling support for OpenSSL
|
||
|
backend
|
||
|
* [QTBUG-71828][QTBUG-73289] Fixed SSL verification when connecting to IP
|
||
|
address (no host name) if that IP address is listed in the certificate.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtTestLib *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Added QTest::toString(const QModelIndex &idx)
|
||
|
|
||
|
- Removed support for GPU_BLACKLIST files. Reimplementations or
|
||
|
equivalents of QTEST_MAIN() should remove their uses of
|
||
|
QTEST_ADD_GPU_BLACKLIST_SUPPORT and its _DEFS; they are still vacuously
|
||
|
defined, but serve no remaining purpose and shall be undefined in due
|
||
|
course.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtWidgets *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QAbstractScrollArea:
|
||
|
* [QTBUG-69120] QTableView/QTreeView, when reporting their
|
||
|
viewportSizeHint(), now correctly take into account their scroll
|
||
|
bars' visibility and visibilityPolicy.
|
||
|
|
||
|
- QHeaderView:
|
||
|
* dataChanged now respects the given roles to avoid useless
|
||
|
recomputations.
|
||
|
|
||
|
- QLabel:
|
||
|
* Minor performance improvement when painting a label with an image.
|
||
|
|
||
|
- QListWidget:
|
||
|
* [QTBUG-69807] Implemented moveRows in model
|
||
|
* [QTBUG-68977] Sped up handling of hidden items when working with large
|
||
|
data sets.
|
||
|
|
||
|
- QPlainTextEdit:
|
||
|
* Added QRegularExpression find() method overload.
|
||
|
|
||
|
- QTextEdit:
|
||
|
* Added QRegularExpression find() method overload.
|
||
|
|
||
|
- QTreeView:
|
||
|
* Added expandRecursively() to expand all items below a given index.
|
||
|
|
||
|
- QWidgetTextControlPrivate:
|
||
|
* [QTBUG-69735] Moved cursor selection to start.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtSql *
|
||
|
****************************************************************************
|
||
|
|
||
|
- SQLite:
|
||
|
* [QTBUG-63498] The json1-extension for the SQLite3 plugin is now enabled
|
||
|
by default.
|
||
|
|
||
|
- PostgreSQL:
|
||
|
* QSqlDatabase is now stricter about table names when used with record()
|
||
|
and primaryIndex(). If the tablename was not quoted when it was
|
||
|
created, then the table name passed to record() and primaryIndex()
|
||
|
needs to be in lower case so that PostgreSQL is able to find it.
|