mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2024-10-30 15:57:52 +08:00
470 lines
20 KiB
Plaintext
470 lines
20 KiB
Plaintext
|
Qt 5.12 introduces many new features and improvements as well as bugfixes
|
||
|
over the 5.11.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.12 series is binary compatible with the 5.11.x series.
|
||
|
Applications compiled for 5.11 will continue to run with 5.12.
|
||
|
|
||
|
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 *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QtCore:
|
||
|
* [QTBUG-34460] qFatal() no longer uses std::abort() on Windows, as
|
||
|
there are circumstances where global destructors are still run after
|
||
|
that call, leading to possible deadlocks.
|
||
|
- QRegularExpression:
|
||
|
* [QTBUG-66781] Regular expressions are now automatically optimized
|
||
|
(including JIT compiling) on their first usage. The pattern options
|
||
|
OptimizeOnFirstUsageOption and DontAutomaticallyOptimizeOption no
|
||
|
longer have any effect, and will get removed in a future version of
|
||
|
Qt. QRegularExpression::optimize() can be still used to compile and
|
||
|
optimize the regular expression in advance (before any match), if
|
||
|
needed.
|
||
|
- QDataStream:
|
||
|
* [QTBUG-59978][QTBUG-67995] version bumped up to 18 to account for
|
||
|
changes in the serialization of QGradient.
|
||
|
- Dialogs:
|
||
|
* QFileSystemModel now uses QRegularExpression internally for wildcard
|
||
|
matching. Note that QRegularExpression might not give the exact same
|
||
|
result as QRegExp as its implementation follows strictly the glob
|
||
|
patterns definition for wildcard expressions.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Third-Party Code *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Sources of xcb-xinput 1.13 were bundled and are available via -qt-xcb.
|
||
|
- The minimal required version of libxcb is now 1.9. Bundled xcb sources
|
||
|
were updated to libxcb 1.9.1 built with xcb-proto 1.8.
|
||
|
- [QTBUG-67654] Updated CLDR to version 33.1
|
||
|
- [QTBUG-71144] Updated CLDR to version 34
|
||
|
- [QTBUG-66561][QTBUG-70008] double-conversion got updated to upstream
|
||
|
version 3.1.1.
|
||
|
- libjpeg-turbo was updated to version 2.0.0
|
||
|
- libpng was updated to version 1.6.35
|
||
|
- Sqlite was updated to version 3.25.2
|
||
|
- [QTBUG-71109] updated bundled libxkbcommon 0.4.1 -> 0.8.2 (up to
|
||
|
31f1f355700870c6615399fbfa7934934b3a9a57)
|
||
|
- PCRE2 was updated to version 10.32.
|
||
|
- Added documentation for the SLJIT part of pcre2, which is available
|
||
|
under the BSD-2-Clause license.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Tools *
|
||
|
****************************************************************************
|
||
|
|
||
|
- rcc:
|
||
|
* Added a --list-mapping option which shows a mapping of resource paths
|
||
|
to file system paths.
|
||
|
|
||
|
- qmake
|
||
|
* New CONFIG options lrelease and embed_translations were added.
|
||
|
CONFIG+=lrelease does run lrelease on translation files listed in
|
||
|
TRANSLATIONS and EXTRA_TRANSLATIONS. CONFIG+=embed_translations does
|
||
|
include the generated .qm files as resources under :/i18n/.
|
||
|
|
||
|
- uic
|
||
|
* [QTBUG-65251][QTBUG-51602] The -no-stringliteral option is now
|
||
|
deprecated and UIC will not generate QStringLiteral anymore.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtCore *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Added support for CBOR:
|
||
|
* Added QCborStreamReader and QCborStreamWriter, classes for low-level
|
||
|
reading and writing of CBOR streams.
|
||
|
* Added QCborValue, QCborArray and QCborMap, classes that permit DOM-like
|
||
|
access to CBOR data. The API is similar to QJsonValue, QJsonArray and
|
||
|
QJsonObject, respectively.
|
||
|
|
||
|
- QByteArray:
|
||
|
* Added QByteArray::isUpper() and QByteArray::isLower() to check if a
|
||
|
byte array contains only uppercase or only lowercase Latin1 letters.
|
||
|
* Added compare(), which takes Qt::CaseSensitivity as one of the
|
||
|
parameters. This function is more efficient than using toLower() or
|
||
|
toUpper() and then comparing.
|
||
|
* [QTBUG-66187] QByteArray::toInt(), QByteArray::toDouble() and the
|
||
|
other number conversion functions now ignore leading and trailing
|
||
|
whitespaces, as their QString counterparts already did. For
|
||
|
consistency reasons, the same behavior was added to
|
||
|
qEnvironmentVariableIntValue() also.
|
||
|
|
||
|
- QCommandLineParser:
|
||
|
* [QTBUG-70174] Fixed a bug that caused the help output to show two
|
||
|
options or more in the same line if the options didn't have a
|
||
|
description.
|
||
|
|
||
|
- QCryptographicHash:
|
||
|
* Add a static method, hashLength, which returns the length of the
|
||
|
output of a hash function in bytes.
|
||
|
|
||
|
- QDir:
|
||
|
* QDir now uses QRegularExpression internally for wildcard matching.
|
||
|
Note that QRegularExpression might not give the exact same result as
|
||
|
QRegExp as its implementation follows strictly the glob patterns
|
||
|
definition for wildcard expressions. Nevertheless, the tests for QDir
|
||
|
return the same results as before.
|
||
|
* QDir::tempPath() now reports the canonical path of the temporary
|
||
|
directory, with any symlinks resolved.
|
||
|
* On Windows, QDir::drives() no longer returns drives whose media were
|
||
|
ejected.
|
||
|
|
||
|
- QExplicitlySharedDataPointer:
|
||
|
* [QTBUG-66635][QTBUG-66946] Added operator== for nullptr.
|
||
|
|
||
|
- QFile:
|
||
|
* [QTBUG-13470] When opening a file, if Truncate is asked for, or
|
||
|
implied by other flags, it shall be attempted, regardless of what
|
||
|
other options are selected. We previously did this on Windows; now we
|
||
|
do so also on Unix (even when appending).
|
||
|
|
||
|
- QFileSystemWatcher:
|
||
|
* [QTBUG-69320] Fixed a bug that caused addPaths() to crash on Windows
|
||
|
if adding a path to be watched on removable storage, if that
|
||
|
addPaths() was called on a thread not created by QThread and no
|
||
|
QEventLoop has been created yet.
|
||
|
|
||
|
- QFlags's operator| for enum types in the Qt namespace are now declared
|
||
|
in the Qt namespace itself.
|
||
|
|
||
|
- QLocale:
|
||
|
* [QTBUG-57802] Added support for World and Europe as (numeric)
|
||
|
"country" codes ("territory" in CLDR terms), thereby enabling support
|
||
|
for Yiddish and Esperanto, among other locales using such codes.
|
||
|
|
||
|
- Logging:
|
||
|
* [QTBUG-69548] Qt will now accept qtlogging.ini files written by
|
||
|
QSettings.
|
||
|
|
||
|
- QMetaType can now register constructor for a set of dynamic types.
|
||
|
|
||
|
- QRegularExpression:
|
||
|
* Implemented support for wildcard patterns through a static method.
|
||
|
* QRegularExpression now provides anchoredPattern() which is a helper
|
||
|
function to build regular expressions used for exact matching.
|
||
|
* Implemented support for wildcard patterns. Warning: QRegularExpression
|
||
|
might not give the exact same result as QRegExp as its implementation
|
||
|
follows strictly the glob patterns definition for the wildcard
|
||
|
expressions.
|
||
|
|
||
|
- [QTBUG-62894] Introduced QScopeGuard.
|
||
|
|
||
|
- QSharedDataPointer:
|
||
|
* [QTBUG-66635][QTBUG-66946] Added operator== for nullptr.
|
||
|
|
||
|
- QSortFilterProxyModel:
|
||
|
* [QTBUG-46810] QSortFilterProxyModel now supports QRegularExpression.
|
||
|
* Setters of both the filterRegExp and filterRegularExpression
|
||
|
properties are now slots and can be used with the old as well as the
|
||
|
new syntax.
|
||
|
|
||
|
- QString:
|
||
|
* Added the functions QString::isUpper() and QString::isLower() to check
|
||
|
if a string contains only uppercase or only lowercase letters.
|
||
|
|
||
|
- QTextCodec:
|
||
|
* [QTBUG-56203] QTextCodec automatically deregisters on destruction now.
|
||
|
|
||
|
- QTimer:
|
||
|
* [QTBUG-69800] Fixed singleShot() methods that lacked proper "const"
|
||
|
qualification to QObject context receivers.
|
||
|
* Added QTimer::connectTo(), a shorthand way of connecting to the
|
||
|
timeout() signal.
|
||
|
|
||
|
- QTranslator:
|
||
|
* [QTBUG-31031] It is now possible to load qm files without any
|
||
|
translations. This is particularly useful for the language the
|
||
|
untranslated strings are written in; logic to load translations can
|
||
|
now handle the source language like all other languages.
|
||
|
|
||
|
- QUndoStack:
|
||
|
* [QTBUG-40040] Exposed canUndo, canRedo, undoText, redoText and clean as
|
||
|
Q_PROPERTYs.
|
||
|
|
||
|
- QUrl:
|
||
|
* Fixed a bug that caused QUrl::matches to incorrectly compare two URLs
|
||
|
with different hostnames or different usernames as equal, if certain
|
||
|
QUrl::RemoveXxx options were passed.
|
||
|
|
||
|
- other:
|
||
|
* Added an overload of q{To,From}{Big,Little}Endian that operates on a
|
||
|
memory region.
|
||
|
* Added the QT_TR_N_NOOP(), QT_TRANSLATE_N_NOOP(), and
|
||
|
QT_TRANSLATE_N_NOOP3() macros for numeral dependent delayed
|
||
|
translation.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtGui *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QBitmap:
|
||
|
* Added overloaded QBitmap::fromImage that takes QImage rvalue.
|
||
|
|
||
|
- QDocumentWriter:
|
||
|
* [QTBUG-63581] QDocumentWriter now supports table borders, table
|
||
|
alignment, table width, column widths, line height and image
|
||
|
resolution when exporting QTextDocuments to ODF files.
|
||
|
|
||
|
- QGradient:
|
||
|
* [QTBUG-59978][QTBUG-67995] Added ObjectMode coordinate mode.
|
||
|
|
||
|
- QGuiApplication:
|
||
|
* [QTBUG-26413] Fixed queryKeyboardModifiers() on macOS to actually return
|
||
|
the current modifier key state.
|
||
|
|
||
|
- QImage:
|
||
|
* [QTBUG-45858] QImage now supports 64bit image formats with 16 bits per
|
||
|
color channel, compatible with 16bpc PNG or RGBA16 OpenGL formats.
|
||
|
|
||
|
- QIntValidator:
|
||
|
* [QTBUG-59650] Input value with over the highest acceptable value, but
|
||
|
with no more digits than the maximum value, is now considered
|
||
|
intermediate.
|
||
|
|
||
|
- QOpenGLShader:
|
||
|
* [QTBUG-66074] QOpenGLShader has been fixed to expose geometry and
|
||
|
tessellation evaluation/control shaders with OpenGL ES 3.2.
|
||
|
|
||
|
- QPagedPaintDevice:
|
||
|
* The default constructor has been deprecated since that class is
|
||
|
not meant to be used standalone. The two public but internal
|
||
|
devicePageLayout() methods are now deprecated.
|
||
|
|
||
|
- QPainter:
|
||
|
* [QTBUG-67248] Fixed drawTiledPixmap() and texture-brush painting with
|
||
|
high-DPR images.
|
||
|
* QPainter::drawTiledPixmap() now tiles in the device independent
|
||
|
coordinate system.
|
||
|
|
||
|
- QPicture:
|
||
|
* [QTBUG-71208] Fixed a crash reading malformed picture file.
|
||
|
|
||
|
- QStandardItemModel:
|
||
|
* itemData does not return role 255 any more.
|
||
|
|
||
|
- QTextImageFormat:
|
||
|
* Added two new functions to the class: setQuality(int=100) and
|
||
|
quality(). They are currently used by QTextODFWriter to determine the
|
||
|
image type and quality when exporting images to ODT files.
|
||
|
|
||
|
- Text:
|
||
|
* [QTBUG-57479] Non-breaking spaces are now displayed as a degree symbol
|
||
|
when QTextOption::ShowTabsAndSpaces is used.
|
||
|
* [QTBUG-69085] Fixed position of text cursor set by clicking outside
|
||
|
the bounds of a text line that ends with a surrogate pair or ligature.
|
||
|
* [QTBUG-70293] Fixed a crash that can happen when calling a setter on a
|
||
|
QTextCursor after its QTextDocument has been deleted.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtNetwork *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Added DTLS over UDP support.
|
||
|
|
||
|
- QPasswordDigestor:
|
||
|
* [QTBUG-30550] Added QPasswordDigestor
|
||
|
|
||
|
- QSslKey:
|
||
|
* [QTBUG-17718] The OpenSSL backend can now load encrypted PKCS#8
|
||
|
DER-encoded keys.
|
||
|
* [QTBUG-59068] Added support for PKCS#8-encoded keys in the generic SSL
|
||
|
back-end (used for SecureTransport on macOS and for WinRT). Note that
|
||
|
it does not support keys encrypted with a PKCS#12 algorithm.
|
||
|
|
||
|
- QSslSocket:
|
||
|
* Enabled ALPN (and thus HTTP/2 negotiation) in SecureTransport backend
|
||
|
(macOS).
|
||
|
* [QTBUG-69420] Implemented renegotiation for SecureTransport backend.
|
||
|
|
||
|
- SSL:
|
||
|
* The OpenSSL 1.1 backend also works with OpenSSL 1.1.1 (and thus can
|
||
|
negotiate TLS 1.3).
|
||
|
* [QTBUG-68156] OpenSSL >= 1.0 is now required to build Qt with OpenSSL
|
||
|
support.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtSql *
|
||
|
****************************************************************************
|
||
|
|
||
|
- MySQL:
|
||
|
* Now supports MySQL versions >= 8.0.1.
|
||
|
* [QTBUG-57028] The TIME data type is now treated like a string-based
|
||
|
type in order to respect the full range of the TIME data type.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtTest *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QCOMPARE:
|
||
|
* Now outputs contents of std::tuple on failure.
|
||
|
* [QTBUG-65845] QtTest now prints values of QFlags that failed to compare.
|
||
|
|
||
|
****************************************************************************
|
||
|
* QtWidgets *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Itemviews:
|
||
|
* [QTBUG-12129][QTBUG-14949][QTBUG-57891] Fixed eliding of multi-line
|
||
|
items.
|
||
|
|
||
|
- QAbstractSpinBox:
|
||
|
* [QTBUG-67380] The Qt::ControlModifier now increases the number of steps a
|
||
|
QAbstractSpinBox takes for the following interactions: scrolling, up/down
|
||
|
keyboard keys and the spin box buttons. Previously, Qt::ControlModifier
|
||
|
only affected scrolling.
|
||
|
|
||
|
- QApplication:
|
||
|
* [QTBUG-67736] QApplication no longer sends a mouse move event to the
|
||
|
entered widget if it sends synthetic enter and leave events.
|
||
|
|
||
|
- QHeaderView:
|
||
|
* [QTBUG-23203] Padding/margin is now taken into account when the text gets
|
||
|
elided.
|
||
|
* [QTBUG-59501] The qss padding attribute is now honored in all cases.
|
||
|
* [QTBUG-62091] The size of the decoration is now taken into account in
|
||
|
paintSection().
|
||
|
* [QTBUG-65017] The drag'n'drop indicator is now using the correct font.
|
||
|
* [QTBUG-69431] setDefaultSectionSize() now checks if the given value is
|
||
|
inside min/max section size.
|
||
|
* [QTBUG-70084] The section indicator is now high-DPI-aware.
|
||
|
|
||
|
- QItemDelegate:
|
||
|
* [QTBUG-16134] Fixed text height calculation when the item has a
|
||
|
decoration or checkbox.
|
||
|
|
||
|
- QLineEdit:
|
||
|
* [QTBUG-44046] The textEdited() signal is now emitted even if the
|
||
|
QValidator has changed the user input.
|
||
|
* [QTBUG-57448] Added inputRejected() signal for when a key press is not
|
||
|
accepted by the QLineEdit. For instance, when an invalid key is
|
||
|
pressed for a validator set.
|
||
|
|
||
|
- QListView:
|
||
|
* [QTBUG-27110] The pseudo states :first/:middle/:last are now respected.
|
||
|
* [QTBUG-56606] Added itemAlignment property.
|
||
|
* [QTBUG-67440] Fixed a bug that caused items on internal move to be
|
||
|
deleted.
|
||
|
|
||
|
- QMenu:
|
||
|
* [QTBUG-69199] Removed icon highlight when a stylesheet was applied by
|
||
|
the application.
|
||
|
|
||
|
- QMessageBox:
|
||
|
* [QTBUG-35545] On Android and iOS it's now possible to show a
|
||
|
QMessageBox with custom buttons as a native dialog.
|
||
|
|
||
|
- QSpinBox/QDoubleSpinBox:
|
||
|
* Added an option for adaptive decimal step size.
|
||
|
|
||
|
- QSplashScreen:
|
||
|
* [QTBUG-43081] The alignment when the message is passed as HTML is now
|
||
|
correctly honored.
|
||
|
|
||
|
- QStyle:
|
||
|
* QStyle::SH_SpinBox_StepModifier allows the developer to pick which
|
||
|
keyboard modifier increases the number of steps a QAbstractSpinBox
|
||
|
takes for the following interactions: scrolling, up/down keyboard keys
|
||
|
and the spin box buttons. The Qt::ShiftModifier can now be used, or
|
||
|
the feature can be disabled using Qt::NoModifier. Previously, only
|
||
|
Qt::ControlModifier could be used as the modifier.
|
||
|
|
||
|
- QTabBar:
|
||
|
* [QTBUG-18146] Fixed mixed up CSS pseudo class for left and right.
|
||
|
|
||
|
- QTableView:
|
||
|
* [QTBUG-48244][QTBUG-49548] Fixed calculating geometries for editors.
|
||
|
* [QTBUG-70215] Fixed PageUp not getting to top when first row is hidden.
|
||
|
|
||
|
- QTableWidget:
|
||
|
* Fixed handling of Qt::EditRole and Qt::DisplayRole in setItemData().
|
||
|
|
||
|
- QTreeView:
|
||
|
* [QTBUG-39486] Sped up expanding items when pressing asterisk.
|
||
|
|
||
|
- QWidget:
|
||
|
* [QTBUG-68393][QTBUG-69619][QTBUG-10907] Fixed several bugs that
|
||
|
incorrectly reordered tabs for compound widgets under some special
|
||
|
circumstances.
|
||
|
* [QTBUG-65199] enterEvent() and leaveEvent() now occur when a hovering
|
||
|
drawing tablet stylus enters or leaves a widget.
|
||
|
* Added the Qt::WA_StyleSheetTarget attribute to indicate that a widget
|
||
|
was affected by a style sheet.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Android *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Added Android edit context menu.
|
||
|
- Removed old debugging bridge. To be able to debug Qt on Android apps the
|
||
|
user must use QtCreator 4.6.1+.
|
||
|
- [QTBUG-63735] The system no longer restarts the application when the user
|
||
|
replaces SIM card or changes the logical density of the screen.
|
||
|
- [QTBUG-70280] ARM64 builds now default to android-21 instead of failing.
|
||
|
- [QTBUG-35545] QMessageBox now supports buttons with custom labels.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Linux *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QFileDialog will use the native dialogs provided by the platform theme
|
||
|
instead of trying to use Flatpak portal to select directories.
|
||
|
|
||
|
****************************************************************************
|
||
|
* macOS *
|
||
|
****************************************************************************
|
||
|
|
||
|
- QtGui:
|
||
|
* [QTBUG-63800] Fixed display of condensed fonts when NoFontMerging is
|
||
|
in use.
|
||
|
|
||
|
- Text:
|
||
|
* [QTBUG-69955] Fixed font weights on macOS 10.14.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Windows *
|
||
|
****************************************************************************
|
||
|
|
||
|
- [QTBUG-55762] The dimensions of invisible margins inside the frames of
|
||
|
Windows 10 windows will now be disregarded in the positioning of Qt
|
||
|
windows to avoid a misplaced look (offset by a few pixels from the
|
||
|
expected position).
|
||
|
- [QTBUG-44964][QTBUG-60437] The application attributes
|
||
|
AA_CompressTabletEvents and AA_CompressHighFrequencyEvents are now
|
||
|
supported on Windows 8 and above for touch/pen input, with the same
|
||
|
defaults as on X11 (compress touch events, don't compress tablet events)
|
||
|
|
||
|
- QTimeZone:
|
||
|
* [QTBUG-42021] Changed MS-Win to use ICU for time-zone data, when
|
||
|
available, in preference to MS's TZ APIs. The choice is made when
|
||
|
building Qt. This will give reliable results when non-DST transitions
|
||
|
arise, or when a zone's DST is not simple (e.g. interrupted by
|
||
|
Ramadan).
|
||
|
|
||
|
****************************************************************************
|
||
|
* winrt *
|
||
|
****************************************************************************
|
||
|
|
||
|
- Added support to Windows UI Automation to the WinRT QPA, allowing
|
||
|
Qt-based UWP applications to operate with accessibility and
|
||
|
programmatic UI control tools.
|
||
|
|
||
|
****************************************************************************
|
||
|
* X11 *
|
||
|
****************************************************************************
|
||
|
|
||
|
- [QTBUG-39624] The xcb plugin was ported to use libxcb-xinput instead of
|
||
|
libXi for XInput2 support. The -xinput2 configure option was replaced by
|
||
|
-xcb-xinput.
|