mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2024-11-23 12:07:03 +08:00
587 lines
25 KiB
Plaintext
587 lines
25 KiB
Plaintext
|
Qt 5.9 introduces many new features and improvements as well as bugfixes
|
||
|
over the 5.8.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.9 series is binary compatible with the 5.8.x series.
|
||
|
Applications compiled for 5.8 will continue to run with 5.9.
|
||
|
|
||
|
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-48658][QTBUG-56306] The linuxfb and bsdfb platform plugins now
|
||
|
follow the behavior of eglfs by making the first window fullscreen. This
|
||
|
provides consistency and avoids applications having to make their
|
||
|
windows match the screen size manually. The new behavior can be disabled
|
||
|
by setting the environment variable QT_QPA_FB_FORCE_FULLSCREEN=0.
|
||
|
- [QTBUG-59391] A QVariant containing a std::nullptr_t is now streamable
|
||
|
to/from QDataStream.
|
||
|
- Whitespace inside identifiers in logging rule files is not ignored
|
||
|
anymore. That is, "[my category]" and "[mycategory]" are now two different
|
||
|
categories.
|
||
|
- [QTBUG-59849] QSysInfo::productType() and QFileSelector behavior on
|
||
|
macOS was restored to match what Qt used to return in version 5.7.0 and
|
||
|
earlier. The behavior found in Qt 5.6.2, 5.7.1 and 5.8.0 is removed.
|
||
|
- [QTBUG-60771] Reverted a change that caused Qt 5.6 through 5.8 not to
|
||
|
connect to QSystemSemaphore and QSharedMemory created by running
|
||
|
applications using Qt earlier than 5.6. Unfortunately, this means that Qt
|
||
|
5.9 will not connect to 5.6-5.8.
|
||
|
|
||
|
- QTouchEvent
|
||
|
* Touch point ids are now unique even between different devices. As a
|
||
|
consequence of that, you cannot anymore assume that
|
||
|
QTouchEvent::TouchPoint::id has the same value as given by the native
|
||
|
platform nor the same value as given by synthesized touch points.
|
||
|
|
||
|
****************************************************************************
|
||
|
* General Notes *
|
||
|
****************************************************************************
|
||
|
|
||
|
Deprecation Notice
|
||
|
------------------
|
||
|
|
||
|
- QSysInfo::windowsVersion() and QSysInfo::macVersion() are deprecated and
|
||
|
are replaced by the newly introduced class QOperatingSystemVersion.
|
||
|
- [QTBUG-57288] Removed support for WinRT/Windows Phone 8.1.
|
||
|
- Support for CMake < 3.1 is deprecated and will be removed in Qt 5.10.
|
||
|
|
||
|
Future Compatibility Notice
|
||
|
---------------------------
|
||
|
|
||
|
- [QTBUG-59849] The identifiers that QSysInfo::productType() and
|
||
|
QFileSelector will use to identify macOS systems will change in Qt 6.0
|
||
|
to match the Apple naming guidelines which will be current then.
|
||
|
|
||
|
Potentially Source-Incompatible Changes
|
||
|
---------------------------------------
|
||
|
|
||
|
- The internal Q_COMPILER_UNICODE_STRINGS macro is now defined if the
|
||
|
compiler supports charNN_t, even if the standard library does not. To
|
||
|
check for availability of std::uNNstring, use the new
|
||
|
Q_STDLIB_UNICODE_STRINGS macro.
|
||
|
|
||
|
Third-Party Code
|
||
|
----------------
|
||
|
|
||
|
- Sqlite was updated to version 3.16.1.
|
||
|
- libpng was updated to version 1.6.28.
|
||
|
- Bundled HarfBuzz-NG copy updated to 1.4.1
|
||
|
- Gradle wrapper 3.4.1 was added as a third-party component (see
|
||
|
src/3rdparty/gradle). The code is licensed under Apache License 2.0, and is
|
||
|
used to create Android packages.
|
||
|
- PCRE 8.39 (src/3rdparty/pcre) was removed as a third-party component.
|
||
|
- PCRE 2 10.22 was added in src/3rdparty/pcre2 as a third-party
|
||
|
component. The code is licensed under the BSD 3-clause "New" or "Revised"
|
||
|
License, and is required by QRegularExpression (at least version 10.20).
|
||
|
|
||
|
****************************************************************************
|
||
|
* Library *
|
||
|
****************************************************************************
|
||
|
|
||
|
QtCore
|
||
|
------
|
||
|
|
||
|
- QProcessEnvironment is now available on iOS, tvOS, watchOS, and VxWorks.
|
||
|
- [QTBUG-57715] QCoreApplication::applicationVersion now defaults to an
|
||
|
appropriate platform-specific value. On Windows, it defaults to the
|
||
|
PRODUCTVERSION parameter of the VERSIONINFO resource for classic desktop
|
||
|
apps, and the version attribute of the application package manifest for
|
||
|
Univeral Windows Platform apps. On Apple Platforms (macOS, iOS, tvOS,
|
||
|
watchOS), it defaults to the CFBundleVersion property of the information
|
||
|
property list (Info.plist) file. On Android, it defaults to the
|
||
|
android:versionName attribute of the AndroidManifest.xml manifest
|
||
|
element. On other platforms, the default remains an empty string.
|
||
|
- Added QStaticByteArrayMatcher.
|
||
|
- Added new qfloat16 class.
|
||
|
- QStringLiteral is now guaranteed to be evaluated at compile-time. The
|
||
|
last platform (QNX) to use the QString::fromUtf8() fallback has been
|
||
|
ported to allocate the string data statically, too.
|
||
|
|
||
|
- Event loop:
|
||
|
* [QTBUG-33489][QTBUG-48717] QCoreApplication::flush() is now
|
||
|
deprecated. Use QCoreApplication::processEvents() and
|
||
|
QCoreApplication::sendPostedEvents() instead.
|
||
|
|
||
|
- QByteArray:
|
||
|
* Added toHex() overload to insert a separator character between the hex
|
||
|
bytes.
|
||
|
|
||
|
- QChar:
|
||
|
* Disambiguated comparisons with nullptr constants such as '\0', which
|
||
|
5.8.0 broke. As a consequence, QChar<->int comparisons are no longer
|
||
|
deprecated, as this was a failed attempt at fixing the ambiguity.
|
||
|
|
||
|
- QCryptographicHash:
|
||
|
* [QTBUG-59770] QCryptographicHash now properly calculates SHA3 message
|
||
|
digests. Before, when asked to calculate a SHA3 digest, it calculated
|
||
|
a Keccak digest instead.
|
||
|
|
||
|
- QDataStream:
|
||
|
* Added operator<< and operator>> overloads that take std::nullptr_t, to
|
||
|
facilitate generic code.
|
||
|
* Added operator<< and operator>> for streaming QFlags into and out of
|
||
|
QDataStreams.
|
||
|
|
||
|
- QDateTime:
|
||
|
* [QTBUG-52284][QTBUG-56397][QTBUG-56460][QTBUG-56345] Fixed a number of
|
||
|
bugs related to handling of timezone offsets close to or during daylight
|
||
|
savings changeovers, as well as timezones changing their standard
|
||
|
offset.
|
||
|
* [QTBUG-57298][QTBUG-57320] Fixed the handling of time zones in the
|
||
|
toString() overload taking Qt::TextDate.
|
||
|
|
||
|
- QDir:
|
||
|
* Fixed a bug that caused QDir::mkpath() to create the wrong directory
|
||
|
if the requested path contained a symbolic link and "../".
|
||
|
* Added isEmpty(), that can help determining if a directory listing would
|
||
|
be empty.
|
||
|
|
||
|
- QFileInfo:
|
||
|
* [QTBUG-48306] Made sure that all file lifecycle times are in local
|
||
|
time. This was probably true before, but is now explicit.
|
||
|
|
||
|
- QFileSelector:
|
||
|
* [QTBUG-51230] Removed the requirement for an unused default base file
|
||
|
in case you want to load only a variant.
|
||
|
|
||
|
- QFlags:
|
||
|
* Added operator<< and operator>> for streaming QFlags into and out of
|
||
|
QDataStreams.
|
||
|
|
||
|
- QHash / QMultiHash:
|
||
|
* [QTBUG-60395] Fixed a bug that caused operator== to fail in the presence
|
||
|
of duplicated keys.
|
||
|
|
||
|
- QLocale:
|
||
|
* Additional flags in QLocale::NumberOption allow generating strings
|
||
|
from doubles in accordance to EcmaScript's Number.toPrecision(n).
|
||
|
* Qt functions now always use the system time zone on Apple platforms,
|
||
|
the same that low-level C APIs like localtime() does. Previously,
|
||
|
converting dates and times to strings would use the "default" time
|
||
|
zone (which is almost always the same as the "system" time zone but
|
||
|
could be changed with the Apple API).
|
||
|
|
||
|
- QLockFile:
|
||
|
* [QTBUG-49640] Fixed a bug that caused QLockFile not to recognize a
|
||
|
stale lock file if the machine's hostname contained non-US-ASCII
|
||
|
characters, on Unix. A Windows fix is still pending.
|
||
|
* Fixed a deadlock occurring if a corrupted lock file's modification
|
||
|
time is in the future.
|
||
|
|
||
|
- QMetaObject:
|
||
|
* [QTBUG-60185] Fixed crash in QMetaObject::invokeMethod() and
|
||
|
QMetaMethod::invoke() with QueuedConnection and types whose metatype gets
|
||
|
automatically registered.
|
||
|
|
||
|
- QObject:
|
||
|
* QObject::dumpObjectInfo and QObject::dumpObjectTree are now fully
|
||
|
functional even in a non-debug build of Qt.
|
||
|
* QObject::dumpObjectInfo and QObject::dumpObjectTree now have const
|
||
|
overloads.
|
||
|
* Added a startTimer() overload taking std::chrono values.
|
||
|
* [QTBUG-58054] Fixed an incompatibility with using noexcept functions as
|
||
|
connect() targets in C++17 mode.
|
||
|
|
||
|
- QSettings:
|
||
|
* [QTBUG-34919] Added proper support for system-wide configuration file
|
||
|
lookup based on XDG spec (XDG_CONFIG_DIRS) on Unix based systems.
|
||
|
* [QTBUG-58531] Fixed data corruption when reading byte arrays on macOS.
|
||
|
|
||
|
- QSharedPointer:
|
||
|
* [QTBUG-49824] Fixed undefined behavior when creating an object with
|
||
|
QSharedPointer::create() and its constructor throws an exception.
|
||
|
|
||
|
- QStorageInfo:
|
||
|
* Added QStorageInfo::subvolume(), which returns the name of the
|
||
|
subvolume of a volume that was mounted, if one was detected. This is
|
||
|
currently implemented only for btrfs on Linux.
|
||
|
|
||
|
- QString:
|
||
|
* toLocal8Bit() now preserves nullness of the input QString (outputs
|
||
|
null QByteArray).
|
||
|
* QString::null is now deprecated. When used to construct a QString, use
|
||
|
QString() instead. When used to compare to a QString, replace with
|
||
|
QString::isNull().
|
||
|
|
||
|
- QStringRef:
|
||
|
* toLocal8Bit() and toLatin1() now preserve nullness of the input
|
||
|
QStringRef (output null QByteArrays).
|
||
|
|
||
|
- QThreadPool:
|
||
|
* The cancel() function suffers from several subtle issues and has been
|
||
|
replaced with a new tryTake() function.
|
||
|
|
||
|
- QUrl:
|
||
|
* The temporary compatibility in QUrl::resolved() that treated the base
|
||
|
URL as relative if its scheme matched the current URL's scheme has
|
||
|
been removed.
|
||
|
* [QTBUG-60364] Fixed a bug that caused certain domain names that look
|
||
|
like Internationalized Domain Names to become corrupt in decoded forms
|
||
|
of QUrl, notably toString() and toDisplayString().
|
||
|
|
||
|
- QVarLengthArray:
|
||
|
* Fixed a bug involving appending an item already in the container to
|
||
|
the container again.
|
||
|
* Added rvalue overloads of append() and push_back().
|
||
|
|
||
|
- QVariant:
|
||
|
* [QTBUG-56073] Fixed a bug that caused wrong results for comparisons of
|
||
|
QVariants containing either NaN or infinite numbers.
|
||
|
* Can now convert QUuid to and from QByteArray, not just QString.
|
||
|
* [QTBUG-58296] isNull() now returns true if the QVariant contains nullptr.
|
||
|
|
||
|
QtGui
|
||
|
-----
|
||
|
|
||
|
- OpenGL:
|
||
|
* [QTBUG-55496] QOpenGLShaderProgram now offers a built-in program binary
|
||
|
disk cache for systems with OpenGL ES 3.x or GL_ARB_get_program_binary.
|
||
|
This can lead to significant increases in performance when it comes to
|
||
|
application startup times for example. Usage is opt-in for direct C++
|
||
|
users of the class, however Qt's own main users of shaders, including Qt
|
||
|
Quick and QPainter's OpenGL engine, are migrated to use the new,
|
||
|
cache-enabled APIs. Opting out on application level is always possible
|
||
|
via Qt::AA_DisableShaderDiskCache.
|
||
|
|
||
|
- QIcon:
|
||
|
* [QTBUG-49820] Implemented support for Scale directory key according to
|
||
|
Icon Theme Spec. Icons created via QIcon::fromTheme() now have high
|
||
|
DPI support by specifying the Scale in the appropriate entry of the
|
||
|
relevant index.theme file.
|
||
|
|
||
|
- QImage:
|
||
|
* A new method reinterpretAsFormat() is has been added to change the
|
||
|
format of a QImage without converting the data.
|
||
|
|
||
|
- QMatrix4x4:
|
||
|
* operator*=() now calculates the correct result even if the RHS and LHS
|
||
|
are the same object.
|
||
|
|
||
|
- QPA:
|
||
|
* QPlatformScreen: Added an API to list available modes for a screen,
|
||
|
that is resolution and refresh rate.
|
||
|
* [QTBUG-58383] The function createForeignWindow() has been added to
|
||
|
QPlatormIntegration and is now responsible for creating foreign
|
||
|
windows. The function isForeignWindow() in QPlatformWindow has been
|
||
|
added, and platforms should implement this to return true for windows
|
||
|
created by createForeignWindow().
|
||
|
|
||
|
- QPainter:
|
||
|
* [QTBUG-28851] Fixed fills of negatively sized QRects.
|
||
|
|
||
|
- QRgba64:
|
||
|
* The default constructor on Clang and GCC builds now no longer
|
||
|
initializes with 0s, but leaves the value uninitialized. This is
|
||
|
consistent with MSVC behavior and pre-C++11 behavior of GCC and Clang.
|
||
|
|
||
|
- QScreen:
|
||
|
* Added manufacturer, model and serialNumber properties.
|
||
|
|
||
|
- QTextLine:
|
||
|
* Fixed a possible undefined behavior in the calculation of glyph right
|
||
|
bearing when a QTextLine layout is performed.
|
||
|
|
||
|
- QTouchEvent:
|
||
|
* TouchPoint::rect(), sceneRect() and screenRect() are deprecated; a
|
||
|
touchpoint is now modeled as an ellipse centered on a point, so please
|
||
|
use pos(), scenePos(), screenPos(), and ellipseDiameters() instead.
|
||
|
* QTouchEvent::TouchPoint::id values are now unique even between
|
||
|
different devices.
|
||
|
|
||
|
- QWindow:
|
||
|
* [QTBUG-58383] The "_q_foreignWinId" dynamic property is no longer set
|
||
|
nor read.
|
||
|
|
||
|
- Text:
|
||
|
* [QTBUG-56538] Added QTextDocument::toRawText() function.
|
||
|
* [QTBUG-48005] Fixed clipping errors and too small bounding rects for
|
||
|
some right-to-left text.
|
||
|
* [QTBUG-57241] Fixed crash for very tall glyphs
|
||
|
|
||
|
QtNetwork
|
||
|
---------
|
||
|
|
||
|
- The connect timeout from QAbstractSocket is now configurable through
|
||
|
QNetworkConfiguration.
|
||
|
- Added redirects policy to QNAM.
|
||
|
- Added HTTP Strict Transport Security to QNAM.
|
||
|
|
||
|
- Bearer management:
|
||
|
* [QTBUG-56228][QTBUG-52988] Fixed a bug that could cause a crash on
|
||
|
application exit, depending on the order of destruction of the
|
||
|
QCoreApplication object and the QtDBus manager thread.
|
||
|
|
||
|
- QHostAddress:
|
||
|
* QHostAddress is now implicitly shared.
|
||
|
* Added operator!=(SpecialAddress, QHostAddress).
|
||
|
|
||
|
- QSslSocket:
|
||
|
* Fixed connection to international domains (IDN) by normalizing to
|
||
|
ASCII equivalent before comparing the host name in the certificate.
|
||
|
* [QTBUG-56102] Allow QSslSocket (Secure Transport back-end) to use a temporary
|
||
|
keychain on macOS instead of a default one; this can be enabled via a special
|
||
|
environment variable QT_SSL_USE_TEMPORARY_KEYCHAIN (this feature is disabled
|
||
|
by default).
|
||
|
* [QTBUG-60233] QSslSocket (Secure Transport back-end) now respects CA
|
||
|
certificates set in QSslConfiguration (before was always implicitly using
|
||
|
the built-in anchor certificates in addition to a user provided configuration).
|
||
|
* [QTBUG-59480] Added a missing cipher (Secure Transport).
|
||
|
* [QTBUG-59930] Fixed spurious socket notifications in QCFSocketNotifer.
|
||
|
* [QTBUG-58214] Fixed spurious socket notifications on Windows.
|
||
|
|
||
|
QtTest
|
||
|
------
|
||
|
|
||
|
- QUuids are now printed on failure.
|
||
|
- Added QTest::addRow(), which is like newRow(), but can take printf-style
|
||
|
formatted strings.
|
||
|
|
||
|
QtWidgets
|
||
|
---------
|
||
|
|
||
|
- [QTBUG-26116] QWidget now has a tabletTracking property, analogous to
|
||
|
mouseTracking, which will enable TabletMove events while the stylus is
|
||
|
hovering, even if no button is pressed. This allows applications to show
|
||
|
feedback based on the other tablet event properties such as rotation and
|
||
|
tilt.
|
||
|
|
||
|
- Input:
|
||
|
* [QTBUG-42074][QTBUG-57003] Characters in the Unicode Private Use Area, as
|
||
|
well as zero-width joiners and zero-width non-joiners, are now accepted
|
||
|
as input in QLineEdit and QTextEdit.
|
||
|
|
||
|
- Qt::WA_WindowPropagation:
|
||
|
* [QTBUG-59106] Locale is now propagated consistently, along with font and
|
||
|
palette, within the widget hierarchy. Previously, setLocale() propagated
|
||
|
the new locale from parents to children (recursively) but new children
|
||
|
didn't inherit from their parents.
|
||
|
|
||
|
- QColorDialog:
|
||
|
* [QTBUG-58424] Fixed long standing bug that prevented custom colors in
|
||
|
QColorDialog to be stored in the settings.
|
||
|
|
||
|
- QDialog:
|
||
|
* [QTBUG-6018][QTBUG-12156][QTBUG-14430] Fixed a bug where accessing the
|
||
|
result of QDialog's result could yield an incorrect value in some
|
||
|
situation like using it as a delegate for item views.
|
||
|
|
||
|
- QErrorMessage:
|
||
|
* Critical (QtCriticalMsg) and informational (QtInfoMsg) messages are now
|
||
|
displayed properly. Previously, they appeared as if they were debug
|
||
|
(QtDebugMsg) ones.
|
||
|
|
||
|
- QFormLayout:
|
||
|
* [QTBUG-58693][QTBUG-15990] The functions takeRow() and removeRow(),
|
||
|
new in 5.8.0, now take and remove the correct row.
|
||
|
|
||
|
- QMacStyle:
|
||
|
* [QTBUG-57470] PE_IndicatorMenuCheckMark now looks for State_On instead of
|
||
|
the State_Selected to set its highlighted state. Its color is picked from
|
||
|
the style option palette.
|
||
|
|
||
|
- QPixmapStyle:
|
||
|
* Now handles progress bars with minimum != 0 correctly.
|
||
|
|
||
|
- QSizePolicy:
|
||
|
* Added transposed() method.
|
||
|
|
||
|
- QSystemTrayIcon:
|
||
|
* [QTBUG-49283] Support for custom icons in showMessage() was added.
|
||
|
|
||
|
- QTextEdit:
|
||
|
* [QTBUG-59196] Fixed initial char format of input method text as it is
|
||
|
in pre-edit mode.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Platform-specific Changes *
|
||
|
****************************************************************************
|
||
|
|
||
|
Android
|
||
|
-------
|
||
|
|
||
|
- [QTBUG-44697] Removed old work-around which was causing OpenGL shader
|
||
|
compilation to fail on updated Android emulators.
|
||
|
- QTouchEvent::TouchPoints have correct ellipseDiameters() and rotation().
|
||
|
|
||
|
XCB/X11
|
||
|
-------
|
||
|
- [QTBUG-60389] Every QTouchEvent includes up-to-date keyboard modifiers.
|
||
|
- [QTBUG-59415] Every QTabletEvent includes up-to-date keyboard modifiers.
|
||
|
|
||
|
Linux
|
||
|
-----
|
||
|
|
||
|
- Added an option to switch from mailbox to FIFO mode in eglfs' EGLStream
|
||
|
backend. This is done by setting the environment variable
|
||
|
QT_QPA_EGLFS_STREAM_FIFO_LENGTH to a >= 1 value, the desired length of the
|
||
|
FIFO queue.
|
||
|
- [QTBUG-57411] Added support for cross-compilation for the MIPS CI20.
|
||
|
- Added support for cross-compilation targeting 64-bit Jetson TX1 systems.
|
||
|
- Added support for cross-compilation targeting Renesas R-Car H2 (Lager)
|
||
|
systems.
|
||
|
- The Raspberry Pi 3 device specs have been renamed from linux-rpi3-* to
|
||
|
linux-rasp-pi3-* in order to follow the pattern of the RPi 1 and 2 specs.
|
||
|
- [QTBUG-57980] Added support for specifying the primary screen in the
|
||
|
JSON config file in QT_QPA_EGLFS_KMS_CONFIG when running on DRM/KMS with
|
||
|
eglfs.
|
||
|
- The evdevtouch plugin now has the option to apply filtering and
|
||
|
prediction. Enabled by passing "filtered" as an argument. Prediction can
|
||
|
be specified by passing "prediction=X" as an argument, where X is in
|
||
|
milliseconds.
|
||
|
|
||
|
- linuxfb:
|
||
|
* [QTBUG-56306] Added experimental support for DRM dumb buffers. Enable
|
||
|
by setting the environment variable QT_QPA_FB_DRM to 1.
|
||
|
|
||
|
macOS
|
||
|
-----
|
||
|
|
||
|
- Extra mouse buttons are now correctly be mapped to correct Qt::MouseButton
|
||
|
values.
|
||
|
|
||
|
- Accessibility:
|
||
|
* [QTBUG-39008][QTBUG-54776][QTBUG-56043][QTBUG-57146] A common crash in
|
||
|
accessibility on macOS was fixed.
|
||
|
|
||
|
Solaris
|
||
|
-------
|
||
|
|
||
|
- [QTBUG-56293] Support for the Illumos distribution OpenIndiana (release
|
||
|
"Hipster") has been added. This is a community-supported partial port.
|
||
|
|
||
|
Windows
|
||
|
-------
|
||
|
|
||
|
- Support for Visual Studio 2017 has been added.
|
||
|
- Fixed frameMargins for WM_NCCALCSIZE when handled inside with
|
||
|
QAbstractNativeEventFilter.
|
||
|
- [QTBUG-55510][QTBUG-48242] Windows are now automatically resized when they
|
||
|
are moved on a screen to adapt to the new pixel ratio.
|
||
|
- [QTBUG-58446] Fixed a bug that caused applications to crash with
|
||
|
"Illegal instruction" faults when compiled with Visual Studio and run on
|
||
|
some older processors.
|
||
|
- [QTBUG-57023] Fixed a bug that caused QFile to create files with
|
||
|
truncated names if the file name was invalid. Now, QFile::open correctly
|
||
|
fails to create such files.
|
||
|
|
||
|
- PDF:
|
||
|
* [QTBUG-58954] Fixed a bug in PDF output when using high-dpi scaling
|
||
|
which was causing the display of warnings when opening the file in
|
||
|
Adobe Reader.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Tools *
|
||
|
****************************************************************************
|
||
|
|
||
|
moc
|
||
|
---
|
||
|
|
||
|
- [QTBUG-59351] Fixed parsing errors in presence of C++14 digit separators.
|
||
|
- Added Support for C++17 nested namespaces
|
||
|
- Move-only types are now supported as return types of signals and slots.
|
||
|
|
||
|
configure & build system
|
||
|
------------------------
|
||
|
|
||
|
- [QTBUG-30083] Generalized command line overrides of installation
|
||
|
paths of external dependencies; see configure -help. Use configure
|
||
|
-list-libraries to find about known libraries.
|
||
|
- [QTBUG-42937][iOS] Added support for the configure -shared flag.
|
||
|
- [QTBUG-56225] Re-introduced creation of config.summary.
|
||
|
- [QTBUG-57908][QTBUG-59062] Fixed parsing of configure --xxx options.
|
||
|
- [QTBUG-57656][macOS] Fixed installation of header-only modules like
|
||
|
QtUiPlugin in framework builds of Qt.
|
||
|
- [QTBUG-58321] Switching to a different qmakespec for user projects will
|
||
|
now properly enable C++11 support if necessary.
|
||
|
- [QTBUG-58411] Added configure -list-features option. This is useful
|
||
|
for finding unnecessary features to disable with -no-feature-XXX.
|
||
|
- [QTBUG-58511] Fixed QMAKE_CXXFLAGS, etc. assignments on the configure
|
||
|
command line being ignored when building bootstrapped Qt tools while
|
||
|
not cross-building (in cross-builds, they are intentionally ignored).
|
||
|
- [QTBUG-60016] configure will now refuse to run if it finds variables
|
||
|
in its environment which are known to cause trouble.
|
||
|
- [QTBUG-60382] Fixed query of library paths from pkg-config.
|
||
|
- Added possibility to merge ANGLE's libEGL and libGLESv2 into QtANGLE;
|
||
|
configure option -combined-angle-lib.
|
||
|
- [Windows] The -no-rtti configure option was removed, as Qt fails
|
||
|
to build under that condition. To disable RTTI in user code, add
|
||
|
CONFIG+=rtti_off to your project file.
|
||
|
- [GCC] Debug builds of Qt are now optimized with -Og if available;
|
||
|
use -no-optimize-debug to disable. This is also applicable to user
|
||
|
projects; add CONFIG+=optimize_debug to your project file.
|
||
|
- Added possibility to optimize release builds for size instea of speed;
|
||
|
configure option -optimize-size.
|
||
|
|
||
|
qmake
|
||
|
-----
|
||
|
|
||
|
- [QTBUG-51598] Libs.private is now written to .pc files only when building
|
||
|
static libraries.
|
||
|
- [QTBUG-55279] Static plugins are now imported also into dynamic libraries,
|
||
|
not only executables. Various other improvements to static linking.
|
||
|
- [QTBUG-56965][Darwin] Fixed overriding QMAKE_*_DEPLOYMENT_TARGET from
|
||
|
within project files.
|
||
|
- [QTBUG-57343] Fixed execution of extra compilers' depend_commands in build
|
||
|
directories containing shell meta characters in their names,.
|
||
|
- [QTBUG-57276] Fixed QMAKE_PRE_LINK (always) and QMAKE_POST_LINK (in one
|
||
|
case) being ignored when building static libraries for Unix.
|
||
|
- [QTBUG-57435][VS] Fixed capitalization of <PlatformToolset> tags in the
|
||
|
generated vcxproj files.
|
||
|
- [QTBUG-57694][VS] Fixed bogus ToolsVersion attributes in the generated
|
||
|
vcxproj files.
|
||
|
- [QTBUG-57914][VS] Fixed handling of RC_FILE when generating single-
|
||
|
configuration vcxproj files.
|
||
|
- [QTBUG-59630][VS] Fixed uninitialized value of GenerateDebugInformation,
|
||
|
which was particularly bad if DebugFastLink was emitted for VS < 2015.
|
||
|
- [QTBUG-58710][MSVC/nmake] Fixed overlong lines in response files generated
|
||
|
for link.exe and lib.exe.
|
||
|
- [QTBUG-57502][Darwin] Added support for launch images in asset catalogs.
|
||
|
- [QTBUG-58126] Fixed the target compiler's default include and library paths
|
||
|
interfering with the build of host tools when cross-building.
|
||
|
- [QTBUG-58764] Fixed building of moc'able files with a Qt installation
|
||
|
in a path containing spaces.
|
||
|
- [QTBUG-58857] Added the ability to use CONFIG+=no_moc_predefs to suppress
|
||
|
the collection of the compiler's predefined macros for moc's use.
|
||
|
- [QTBUG-59004][Windows] '(n)make install' will now copy the timestamps of
|
||
|
the installed files, like it was already done on Unix.
|
||
|
- [QTBUG-59319] Fixed $$shadowed() function for the case where the source
|
||
|
tree lives in a symlinked or substituted path.
|
||
|
- [QTBUG-59779][Android][MinGW] Fixed CONFIG+=separate_debug_info.
|
||
|
- [QTBUG-38782][iOS] Added support for setting the Xcode development team
|
||
|
and provisioning profile.
|
||
|
- [QTBUG-58754][iOS] Fixed handling of bitcode.
|
||
|
- [Darwin] Binaries now automatically get @executable_path/Frameworks
|
||
|
added to RPATH, and libraries additionally @loader_path/Frameworks.
|
||
|
Suppress with CONFIG+=no_default_rpath.
|
||
|
- [Darwin][Xcode] QMAKE_BUNDLE_DATA now supports embedding Frameworks
|
||
|
and PlugIns.
|
||
|
- [macOS] Support for universal binaries has been re-introduced.
|
||
|
- Added the command line options -early and -late, plus -before (which is
|
||
|
the default) for symmetry with -after.
|
||
|
- The $$prompt() function will now exit qmake upon EOF on stdin.
|
||
|
- The touch() function now uses nanosecond precision if available.
|
||
|
- [MSVC] Qt now has a common mkspec for all Visual Studio versions, called
|
||
|
"win32-msvc". The old names which contained the version number are now
|
||
|
gone (but qmake scopes based on the old names continue to work).
|
||
|
In qmake project files, the version of the compiler can be obtained from
|
||
|
the MSC_VER and MSVC_VER variables (for example, for Visual Studio 2015,
|
||
|
those contain the values 1900 and 14.0, respectively). Those variables
|
||
|
are also available with the Intel compiler (win32-icc) and with Clang
|
||
|
(win32-clang-msvc).
|
||
|
- [Windows] The win32-clang-msvc qmakespec will now adjust the emulated
|
||
|
MSVC version to match that of the cl.exe found in PATH.
|
||
|
- [Windows] Fixed make 'install' targets to be idempotent.
|
||
|
- [Windows] '(n)make install' will not fail on file names containing the
|
||
|
plus sign any more.
|
||
|
- Numerous obsolete qmakespecs have been pruned.
|