b29b9041b5
Change-Id: Ie1185b165fc706f3fcc87014d4eefd1e2c6fb771 Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Done-with: Thiago Maciiera <thiago.macieira@intel.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
498 lines
20 KiB
Plaintext
498 lines
20 KiB
Plaintext
Qt 5.8 introduces many new features and improvements as well as bugfixes
|
|
over the 5.7.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.8 series is binary compatible with the 5.7.x series.
|
|
Applications compiled for 5.7 will continue to run with 5.8.
|
|
|
|
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.
|
|
|
|
This release contains all fixes included in the Qt 5.7.1 release.
|
|
|
|
****************************************************************************
|
|
* License Changes *
|
|
****************************************************************************
|
|
|
|
Static libraries that are linked into executables (winmain and
|
|
qopenglextensions) are now licensed under BSD _and_ commercial licenses.
|
|
|
|
****************************************************************************
|
|
* Deprecation Notice *
|
|
****************************************************************************
|
|
|
|
- The following platforms or toolchains are deprecated and will be
|
|
removed as of Qt 5.9:
|
|
* Apple OS X Mavericks (v10.9)
|
|
* Apple iOS 7.x
|
|
|
|
Deprecated platforms and toolchains continue to work until removed.
|
|
|
|
- The Q_OBJECT_CHECK macro is deprecated and will be removed in Qt 6. The
|
|
internal, template function qt_check_for_QOBJECT_macro that it created in
|
|
QObject-derived classes will be removed in Qt 5.9.
|
|
|
|
****************************************************************************
|
|
* Important Behavior Changes *
|
|
****************************************************************************
|
|
|
|
- Support for the following platforms was removed in this version:
|
|
* Apple OS X Mountain Lion (v10.8)
|
|
* Apple iOS 6.x
|
|
|
|
configure & build system
|
|
------------------------
|
|
|
|
- The configuration system has been rewritten almost from scratch. This
|
|
improved the consistency between builds on Unix and Windows, but some
|
|
subtle unintended behavior changes are also possible. Also, some
|
|
obsolete options have been entirely removed and will now cause errors.
|
|
- It is not permissible any more to manually #define QT_NO_<FEATURE>
|
|
anywhere. Instead, configure's -no-feature-* options must be used.
|
|
Note that this does not apply to defines which modify behavior rather
|
|
than entirely removing features.
|
|
- Configure test results are now cached. Use -recheck or -recheck-all
|
|
to discard them.
|
|
- [QTBUG-32530][QTBUG-42962] The Unix configure won't pick up CFLAGS and
|
|
related environment variables any more. Instead, it now accepts QMAKE_*
|
|
variable assignments on the command line.
|
|
- [QTBUG-52266] Configure won't pick up QMAKESPEC from the environment
|
|
any more. Use the -platform option instead.
|
|
- Device and simulator libraries are now combined on Apple device
|
|
platforms (iOS). This means that there will no longer be any
|
|
*_simulator.a libraries and the simulator architectures will simply
|
|
reside alongside the device architectures in a single Mach-O file.
|
|
- [Darwin] Project files may not override QMAKE_MAC_SDK any more.
|
|
|
|
QtCore
|
|
------
|
|
|
|
- qFatal will now use std::abort to terminate the application on all
|
|
operating systems. Previously, ::abort() or ::exit(1) were called,
|
|
depending on the operating system.
|
|
- QLibraryInfo::licensee()/licensedProducts() were deprecated and
|
|
return empty strings now.
|
|
- Destroying a QThread which is still running will now result in
|
|
immediate and abnormal program termination.
|
|
|
|
QtGui
|
|
-----
|
|
|
|
- [QTBUG-54936] QFont::toString() and QFont::key() were modified to save
|
|
the font's style name if one is set, invalidating any stored font
|
|
identifiers. QFont::fromString() was also adjusted to accommodate the
|
|
change.
|
|
|
|
QtNetwork
|
|
---------
|
|
|
|
- Proxies from system settings will now be used by default. Configure
|
|
with -no-system-proxies to disable.
|
|
- [QTBUG-53649] libproxy is now turned off by default. Configure with
|
|
-libproxy in order to enable it again.
|
|
|
|
****************************************************************************
|
|
* Library *
|
|
****************************************************************************
|
|
|
|
QtCore
|
|
------
|
|
|
|
- Disambiguated the relational operators comparing QByteArray with
|
|
QStringRef (and vice versa).
|
|
- Added qHash() overloads for QHash, QMultiHash.
|
|
- Added QDeadlineTimer, a counterpart to QElapsedTimer, used to mark a
|
|
time point in the future (a deadline) and determine whether such a
|
|
deadline has passed.
|
|
- Qt now relies on type traits from the C++11 standard library.
|
|
- [QTBUG-54981] Added Q_NAMESPACE, which can be used to add Q_ENUM_NS/
|
|
Q_ENUMS, Q_FLAG_NS/Q_FLAGS and Q_CLASSINFO to a namespace.
|
|
- Q_IS_ENUM was deprecated. Use std::is_enum<>::value instead.
|
|
|
|
- QChar:
|
|
* Added missing operator{<,>,<=,>=} comparing against QLatin1String and
|
|
QStringRef.
|
|
* Added missing operator{==,!=} comparing against QLatin1String.
|
|
|
|
- QCommandLineOption:
|
|
* Added flags() and setFlags() methods. Added ShortOptionStyle and
|
|
HiddenFromHelp flags.
|
|
|
|
- QDateTime:
|
|
* Introduced toSecsSinceEpoch, fromSecsSinceEpoch and setSecsSinceEpoch
|
|
functions, which use 64-bit integers to represent the number of
|
|
seconds.
|
|
* The toTime_t, fromTime_t and setTime_t functions are deprecated and
|
|
will be removed in Qt 6.0. For new code, use the equivalent functions
|
|
with "SecsSinceEpoch" in the name, or the equivalent ones with
|
|
millisecond accurancy that have existed since Qt 4.7.
|
|
* Added string formatting type Qt::ISODateWithMs.
|
|
|
|
- QFileInfo:
|
|
* QFileInfo now reports file times with millisecond precision on Unix
|
|
systems.
|
|
|
|
- QFileSystemWatcher:
|
|
* [QTBUG-55896] Fixed a bug that caused QFileSystemWatcher to mis-handle
|
|
file paths that contained non-US-ASCII characters on Apple platforms.
|
|
|
|
- QJsonDocument:
|
|
* [QTBUG-39751] fromVariant can now take a QVariantHash argument.
|
|
* Fixed a number of bugs that could cause crashes when loading corrupt
|
|
binary JSON data.
|
|
|
|
- QJsonValue:
|
|
* [QTBUG-43077] QJsonValue(Null).toVariant() now returns a QVariant of
|
|
type QMetaType::Nullptr instead of an invalid QVariant.
|
|
|
|
- QLatin1String:
|
|
* Added at(), operator[](), mid(), right(), left().
|
|
|
|
- QLibraryInfo:
|
|
* Added QLibraryInfo::version(), which returns the current version of
|
|
the Qt library as a QVersionNumber object.
|
|
|
|
- QLine/QLineF:
|
|
* Added center().
|
|
|
|
- QLockFile:
|
|
* Fixed a bug that caused QLockFile to over-sleep while waiting for the
|
|
lock file to become available.
|
|
|
|
- QMetaType:
|
|
* std::nullptr_t is now a built-in Qt metatype.
|
|
|
|
- QModelIndex:
|
|
* QModelIndex::child has been deprecated due to its lack of generality.
|
|
Use model->index(row, column, index) instead.
|
|
|
|
- QMutex:
|
|
* QMutex now fully models the TimedLockable concept by providing the
|
|
try_lock, try_lock_for and try_lock_until functions, therefore making
|
|
it usable in Standard Library lock management classes and functions.
|
|
|
|
- QObject:
|
|
* The QT_NO_NARROWING_CONVERSIONS_IN_CONNECT macro has been added. When
|
|
using the new connection syntax (PMF-based) this macro makes it
|
|
illegal to narrow the arguments carried by the signal, and/or to
|
|
perform floating point to integral implicit conversions on them. When
|
|
the macro is defined, depending on your compiler a QObject::connect()
|
|
statement triggering such conversions will now fail to compile.
|
|
|
|
- QPersistentModelIndex:
|
|
* QPersistentModelIndex::child has been deprecated due to its lack of
|
|
generality. Use model->index(row, column, index) instead.
|
|
|
|
- QStringList:
|
|
* Added join(QLatin1String) overload.
|
|
|
|
- QStringRef:
|
|
* Added missing operator{<,>,<=,>=} comparing against QLatin1String and
|
|
QString.
|
|
|
|
- QSysInfo:
|
|
* The output of QSysInfo::prettyProductName now includes the Windows
|
|
OS/kernel version number. In case of future versions of Windows, a
|
|
valid string is now returned.
|
|
|
|
- QSettings:
|
|
* [QTBUG-56124] Fixed a bug that caused QSettings to fail on Apple
|
|
platforms when strings with embedded null (\0) bytes were present
|
|
|
|
- QSharedPointer:
|
|
* [QTBUG-52369] Fixed a bug that caused QSharedPointer to fail to compile
|
|
if it was initialized with a nullptr literal.
|
|
* Fixed a bug that made QSharedPointer delete the pointer it held with the
|
|
wrong destructor if the type of the QSharedPointer and that of the object
|
|
passed on the constructor were different. Its behavior is now the same as
|
|
std::shared_ptr.
|
|
|
|
- QStandardPaths:
|
|
* [QTBUG-55507] Fixed the QStandardPaths::FontsLocation on XDG systems to
|
|
be $XDG_DATA_DIR/fonts.
|
|
* Fixed handling of potential paths that do not exist on Windows. Now,
|
|
QStandardPaths may return storage locations that may not exist on all
|
|
platforms.
|
|
|
|
- QTimer:
|
|
* Added support for std::chrono duration objects for QTimer methods,
|
|
like QTimer::singleShot and QTimer::setInterval.
|
|
|
|
- QWaitCondition:
|
|
* Added notify_one() and notify_all() to make QWaitCondition be usable from
|
|
algorithms that use the Standard Library naming convention.
|
|
|
|
QtDBus
|
|
------
|
|
|
|
- QDBusConnection:
|
|
* Fixed a bug that would cause QDBusConnection::connect() to return true
|
|
if a slot was already connected to the same D-Bus signal. QtDBus does
|
|
not support multiple connections.
|
|
|
|
QtGui
|
|
-----
|
|
|
|
- [QFileDialogOptions/QFontDialogOptions/QMessageDialogOptions/
|
|
QColorDialogOptions] These classes no longer have value semantics, but
|
|
need to be held in QSharedPointer (as they always were). To copy an
|
|
instance, use the clone() method.
|
|
- QOpenGLTextureBlitter, a utility class to draw textured quads, has been
|
|
made public.
|
|
- [QTBUG-38825] Fixed QTextEdit to match undo functionality of QLineEdit
|
|
to group two sequential inserts into one undo action.
|
|
- [QTBUG-51844] Added rotation and uniqueId properties to
|
|
QTouchEvent::TouchPoint. This is mainly for the benefit of the TUIO
|
|
plugin so far: it now supports tracking physical objects (fiducials)
|
|
on the touchscreen surface, as long as the object's ID can fit in a
|
|
64-bit integer. QPointingDeviceUniqueId is a wrapper for the ID,
|
|
designed to be extensible to support other types of IDs in the future.
|
|
- [QTBUG-52510] A stationary touchpoint event is delivered if its
|
|
velocity changes. This is to ensure that the application will be
|
|
notified when a TUIO fiducial object comes to rest.
|
|
- [QTBUG-53076] Add QGuiApplication::applicationDisplayNameChanged()
|
|
signal.
|
|
|
|
- QAbstractTextDocumentLayout:
|
|
* Added imageAt() and formatAt() methods, which respectively can be used
|
|
to retrieve the source link of the image under the cursor, or the
|
|
QTextFormat of the text under the cursor.
|
|
|
|
- QFont:
|
|
* [QTBUG-48043] The default value of QFont::stretch() is now 0 to
|
|
indicate any default stretch is acceptable.
|
|
|
|
- QRegion:
|
|
* Is now iterable as a container of QRects: added {c,}{r,}{begin,end}().
|
|
|
|
- Text handling:
|
|
* [QTBUG-51411] Fixed performance hit from showing large QTextDocuments
|
|
in a QTextEdit or QTextBrowser. (Regression introduced in Qt 5.3.0)
|
|
* [QTBUG-50090] Fixed line spacing with some scalable fonts containing
|
|
bitmaps with the Freetype font engine.
|
|
* [QTBUG-56346] Fixed QStaticText when manually breaking lines and no
|
|
text width was set.
|
|
* [QTBUG-56659] Fixed a regression where raster fonts on Windows were
|
|
detected as smoothly scalable and thus rendering with said fonts in Qt
|
|
Quick would break.
|
|
* [QTBUG-51223] Fixed synthesized oblique for non-latin text on
|
|
platforms using the basic font database, such as Android.
|
|
* [QTBUG-56672] Fixed list of supported sizes for bitmap fonts on
|
|
Windows.
|
|
* [QTBUG-56714] Fixed a bug where a no-break space would sometimes cause
|
|
the first character of the containing line to not be displayed.
|
|
* [QTBUG-55856] Fixed rendering of large fonts when a device pixel ratio
|
|
is set and the Freetype engine is used.
|
|
|
|
QtNetwork
|
|
---------
|
|
|
|
- Added QNetworkDatagram class, along with new function receiveDatagram()
|
|
in QUdpSocket that returns it, and an overload to writeDatagram() that
|
|
can accept it.
|
|
- Added QSctpServer and QSctpSocket classes. Note that these need to be
|
|
explicitly enabled via a configure option.
|
|
- [QTBUG-50956] Added support for HTTP/2 protocol
|
|
|
|
- QSslSocket:
|
|
* [QTBUG-39077] TLS PSK ciphers are possible in server sockets.
|
|
* It is now possible to set custom Diffie-Hellman parameters for
|
|
QSslSocket-based servers.
|
|
|
|
- QTcpServer:
|
|
* [QTBUG-51288] It is now possible to use QTcpServer with an externally
|
|
created QTcpSocket.
|
|
|
|
QtSql
|
|
-----
|
|
|
|
- QSqlDatabase:
|
|
* When connecting to a MySQL server whose version is 5.5.3 or higher,
|
|
the default connection charset is now utf8mb4 instead of utf8 to allow
|
|
4-byte UTF-8 encodings.
|
|
|
|
- SQLite:
|
|
* Added notification feature to SQLite driver
|
|
|
|
QTestLib
|
|
--------
|
|
|
|
- [QTBUG-44030] Added QTest::createTouchDevice() for use in autotests
|
|
which generate touch events.
|
|
- Added ref-cycles perf counter.
|
|
- QFETCH variables can now be declared const (QFETCH(const T, name)).
|
|
- It is now possible to use variables of types with an explicit operator
|
|
bool in the QVERIFY macro.
|
|
|
|
QtWidgets
|
|
---------
|
|
|
|
- QFormLayout:
|
|
* [QTBUG-15990] Added removeRow(), takeRow().
|
|
|
|
- QMainWindow:
|
|
* [QTBUG-56628] Fixed crash using takeCentralWidget when the central
|
|
widget was not set.
|
|
|
|
****************************************************************************
|
|
* Platform-specific Changes *
|
|
****************************************************************************
|
|
|
|
- Added technology preview support for Apple tvOS and Apple watchOS.
|
|
- Added initial support for Microsoft Visual Studio 2017, which uses the
|
|
mkspec "win32-msvc2017". Full support will happen after the final release
|
|
of that compiler.
|
|
|
|
Android
|
|
-------
|
|
|
|
- [QTBUG-48948] Show password while typing is now supported
|
|
- [QTBUG-55035][QTBUG-50759] Introduced a mechanism to forward
|
|
permission related callbacks on Activity objects to interested
|
|
parties.
|
|
|
|
Apple platforms
|
|
---------------
|
|
|
|
- Added QImage::toCGImage() that returns a CGImage.
|
|
- Added functions that convert Qt types QPoint/QPointF, QRect/QRectF and
|
|
QSize/QSizeF to and from CGPoint, CGRect and CGSize. Note that QPoint,
|
|
QRect and QSize do not provide fromCGXxx functions since that would
|
|
silently lose precision.
|
|
|
|
iOS
|
|
---
|
|
|
|
- Precompiled headers are now supported on iOS.
|
|
- Starting from iOS 10, Apple requires all apps that need access to photos
|
|
to have the key 'NSPhotoLibraryUsageDescription' in the Info.plist.
|
|
Therefore, to get the same support in Qt (when, e.g., using a file
|
|
dialog), the Info.plist assigned to QMAKE_INFO_PLIST will need this key
|
|
as well.
|
|
|
|
macOS
|
|
-----
|
|
|
|
- Speech to text dictation now works for Qt text input.
|
|
- [QTBUG-33708] Fixed underline position in font rendering.
|
|
|
|
Linux
|
|
-----
|
|
|
|
- [QTBUG-39959] QWidget-based applications running on the eglfs platform
|
|
plugin can now request 180 or 90 degrees rotated output by setting the
|
|
QT_QPA_EGLFS_ROTATION environment variable.
|
|
- KDE/Gnome themes now implement QPlatformTheme::fileIconPixmap(), showing
|
|
file icons.
|
|
|
|
Windows
|
|
-------
|
|
|
|
- [QTBUG-31476] QFactoryLoader now filters potential plugins by the
|
|
".dll" suffix.
|
|
- [QTBUG-56239] 'What's this' button is now shown by default only for
|
|
QWidget dialogs.
|
|
- [QTBUG-53833] QProcess::startDetached() changed behavior on Windows:
|
|
it no longer creates a new console window unconditionally, instead it
|
|
passes the same creation flags to CreateProcess as QProcess::start().
|
|
|
|
- Text handling:
|
|
* [QTBUG-54740] Fixed embedding fonts in PDF when dpi scaling is active
|
|
or when the hinting preference was none or vertical hinting.
|
|
* [QTBUG-47485] Fix selecting non-regular fonts when using the Freetype
|
|
engine.
|
|
* [QTBUG-49346] Fixed rendering error when using the MingLiU fonts at
|
|
certain combinations of pixel size and scale.
|
|
|
|
****************************************************************************
|
|
* Tools *
|
|
****************************************************************************
|
|
|
|
configure & build system
|
|
------------------------
|
|
|
|
- The -no-feature-* option family was integrated with the rest of the
|
|
configuration system. Numerous existing features were made optional,
|
|
and build problems in various reduced configurations were fixed.
|
|
This is an ongoing effort known as "Qt Lite".
|
|
- Numerous Qt modules outside qtbase now support configure options.
|
|
In a module-by-module build, these can be passed to qmake itself,
|
|
after a -- option.
|
|
- Introduced the qtConfig(<feature>) qmake function to replace the
|
|
patterns contains(QT_CONFIG, <feature>) and load(qfeatures)+
|
|
contains(QT_DISABLED_FEATURES, <feature>).
|
|
Likewise, the C++ macro QT_CONFIG(<feature>) was introduced to
|
|
replace the pattern !defined(QT_NO_<FEATURE>).
|
|
The old methods are effectively deprecated and will stop working at
|
|
some point in the near future.
|
|
- Use of -sysroot will now trigger a cross-build even if -platform and
|
|
-xplatform are the same.
|
|
- The JPEG & GIF handlers and the SQL drivers are now always built as
|
|
plugins, even in static builds (static "plugins" in this case).
|
|
- [GCC] Include paths from system libraries are now marked as such,
|
|
resulting in fewer warnings the user cannot do anything about.
|
|
- [Windows] config.status.bat is now created, like on Unix.
|
|
- [QTBUG-46974] Fixed location of config.status in top-level builds.
|
|
- [QTBUG-38792][Unix] The -redo option is now accepted, like on Windows.
|
|
- It's now possible to add more arguments when -redo is used. Note that
|
|
these arguments are not saved in turn. Likewise for config.status.
|
|
- [QTBUG-32896][iOS/clang] Added missing CFBundleIdentifier to library
|
|
template.
|
|
- [QTBUG-47624] Fixed abort when some, but not all, XCB dependencies
|
|
are met. The feature is now disabled instead, as expected.
|
|
- [QTBUG-50838] The Raspberry Pi EGL detection now uses pkg-config.
|
|
- [QTBUG-52112][Android] Plugins now have a SONAME, as required by
|
|
Android 6+.
|
|
- [QTBUG-54438] Fixed launching tests, examples, and build tools in
|
|
some configurations.
|
|
- [QTBUG-56289][GCC@Windows] Fixed -separate-debug-info.
|
|
- [QTBUG-57086] Added support for Visual Studio 2017.
|
|
|
|
qdbusxml2cpp
|
|
------------
|
|
|
|
- [QTBUG-34126] qdbusxml2cpp now supports the --verbose switch, which
|
|
provides more details when parsing invalid XML sources.
|
|
|
|
qmake
|
|
-----
|
|
|
|
- Added the $$take_first(), $$take_last(), $$num_add(), $$str_size(),
|
|
$$str_member(), and $$sorted() functions.
|
|
- The error() function can now be called without arguments to exit
|
|
silently. Use after write_file() and similar functions which already
|
|
print an error message.
|
|
- The $$system() function can return the command's exit code now.
|
|
- The $$prompt() function can now print the prompt verbatim.
|
|
- QMAKE_EXTRA_TARGETS will now consistently treat the target as a file
|
|
name (separator adjustment and quoting).
|
|
- [QTBUG-16904][VS] Fixed warning about circular dependencies when
|
|
Q_OBJECT is used in .cpp files.
|
|
- [QTBUG-36256] packageExists() and PKGCONFIG can now be used
|
|
regardless of whether Qt itself was built with pkg-config support.
|
|
- [QTBUG-43468][WinRT] Added option to use verbatim manifest files.
|
|
- [QTBUG-53905] Fixed OBJECTIVE_SOURCES being moc'd twice.
|
|
- [QTBUG-55591][VS2015] Added support for the /DEBUG:FASTLINK option.
|
|
- [QTBUG-56507] Fixed parallel builds when a lex source refers to a
|
|
file generated from a yacc source.
|
|
- [QTBUG-56594][MSVC] Fixed PDB files not being installed for static
|
|
libraries.
|
|
|
|
moc
|
|
---
|
|
|
|
- [MSVC] qmake and moc now cooperate to use the Visual Studio environment
|
|
variables (set by the VCVARSALL.BAT script) to find system include
|
|
files. A possible consequence is that moc parses application headers
|
|
slightly differently, depending on #if conditions that depended on
|
|
macros that previous versions had not seen #define'd. Implementers of
|
|
other buildsystems are advised to pass the --compiler-flavor=msvc option
|
|
to moc.
|