mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2024-11-25 22:01:32 +08:00
562 lines
21 KiB
Plaintext
562 lines
21 KiB
Plaintext
Qt 5.3 introduces many new features and improvements as well as bugfixes
|
|
over the 5.2.x series. For more details, refer to the online documentation
|
|
included in this distribution. The documentation is also available online:
|
|
|
|
http://qt-project.org/doc/qt-5.3
|
|
|
|
The Qt version 5.3 series is binary compatible with the 5.2.x series.
|
|
Applications compiled for 5.2 will continue to run with 5.3.
|
|
|
|
Some of the changes listed in this file include issue tracking numbers
|
|
corresponding to tasks in the Qt Bug Tracker:
|
|
|
|
http://bugreports.qt-project.org/
|
|
|
|
Each of these identifiers can be entered in the bug tracker to obtain more
|
|
information about a particular change.
|
|
|
|
****************************************************************************
|
|
* Important Behavior Changes *
|
|
****************************************************************************
|
|
|
|
- SIMD support in CPUs:
|
|
* [QTBUG-30440] Qt no longer checks for support for the Neon FPU on
|
|
ARM platforms at runtime. Code optimized for Neon must be enabled
|
|
unconditionally at compile time by ensuring the compiler supports
|
|
Neon. You may need to edit your mkspec for that.
|
|
|
|
* Qt now automatically generates code for processors supporting SSE2
|
|
on i386 platforms. To disable this, pass the -no-sse2 option during
|
|
Qt configuration. Since this feature has been present on CPUs for
|
|
10 years and since Qt no longer checks for runtime support for
|
|
SSE2, we strongly encourage users to leave the default setting on
|
|
for best performance.
|
|
- For Linux distributions that must retain support for CPUs without
|
|
SSE2, we recommend doing two builds of Qt and installing the
|
|
SSE2-enabled libraries in the LIBDIR/sse2 directory (specially
|
|
QtGui, QtQml and QtQuick libraries). Tools, plugins, and examples
|
|
are not affected.
|
|
- See discussion on the Qt development mailing list:
|
|
http://lists.qt-project.org/pipermail/development/2013-November/014085.html
|
|
|
|
- SSL and security:
|
|
* The default set of ciphers used by QSslSocket has been changed to
|
|
exclude ciphers that are using key lengths smaller than 128
|
|
bits. These ciphers are still available and can be enabled by
|
|
applications if required.
|
|
* [QTBUG-20666] Support for DH and ECDH key exchange cipher suites
|
|
when acting as an SSL server has been made possible. This change
|
|
means the you can now implement servers that offer forward-secrecy
|
|
using Qt.
|
|
* Running Qt applications that are setuid is no longer allowed by
|
|
default. If you really need to do this then you can call
|
|
QCoreApplication::setSetuidAllowed(true) before creating the
|
|
QCoreApplication instance.
|
|
|
|
- UTF-8 decoding:
|
|
* The QString and QTextCodec UTF-8 decoder changed behavior slightly:
|
|
when it encounters invalid sequences, it will insert one
|
|
replacement character per byte that is invalid, instead of one
|
|
replacement character for the whole invalid length.
|
|
|
|
****************************************************************************
|
|
* Platform deprecation notice *
|
|
****************************************************************************
|
|
|
|
- The support for deployment on OS X 10.6 (Snow Leopard) is deprecated
|
|
in Qt 5.3, and will be removed in Qt 5.4. The platform is currently
|
|
not tested, and most likely has issues that are not fully documented.
|
|
|
|
****************************************************************************
|
|
* General *
|
|
****************************************************************************
|
|
|
|
- Support for the following platforms has been removed, due to lack of
|
|
interest in updating support: INTEGRITY, VxWorks, Solaris on UltraSPARC
|
|
(with the Sun Studio compiler suite), AIX on POWER processors (with IBM
|
|
Visual Age compiler suite).
|
|
- Builtin command-line options such as -reverse, -session, -style
|
|
-etc. now all support double dash, e.g. --reverse, --session,
|
|
--style...
|
|
|
|
****************************************************************************
|
|
* Library *
|
|
****************************************************************************
|
|
|
|
QtCore
|
|
------
|
|
|
|
- Added QSignalBlocker, a RAII-style wrapper around
|
|
QObject::blockSignals().
|
|
- QLibraryInfo provides information on how Qt was built.
|
|
- Added class QMarginsF to support handling margins with floating-point
|
|
values.
|
|
- The setSharable() and isSharable() functions in Qt containers has
|
|
been deprecated and will be removed in Qt 6. New applications should
|
|
not use this feature, while old applications that may be using this
|
|
(undocumented) feature should port away from it.
|
|
|
|
- Atomic support:
|
|
* Added more operations to the atomic classes, including operator T(),
|
|
operator=(T), operator++, operator--. For the QAtomicInteger,
|
|
bit-manipulation operations are also provided, both in operator and in
|
|
fetchAndXxxYyyyyy modes.
|
|
|
|
- Event loop:
|
|
* [QTBUG-36611] QCoreApplication::hasPendingEvents and
|
|
QAbstractEventDispatcher::hasPendingEvents are now deprecated. Please
|
|
refer to the documentation for more information.
|
|
|
|
- Logging:
|
|
* It is now possible for the qCDebug macros to be used in a printf
|
|
style.
|
|
* All qCDebug categories are enabled by default, except for Qt's own
|
|
categories.
|
|
* The logging framework can now be configured with an .ini file.
|
|
* Q_LOGGING_CATEGORY and Q_DECLARE_LOGGING_CATEGORY now return a const
|
|
object.
|
|
|
|
- QByteArray:
|
|
* Added NSData/CDataRef converters for QByteArray.
|
|
|
|
- QChar:
|
|
* Added JoiningType enum and joiningType() method that deprecates the
|
|
old QChar::Joining enum and joining() method.
|
|
|
|
- QFileSelector:
|
|
* [QTBUG-35073] The identifier for OS X has been changed back to
|
|
'osx' from 'mac', and 'mac' and 'darwin' have now been added as
|
|
selectors for Darwin OS (which is the base of both OS X and iOS).
|
|
|
|
- QHash/QSet:
|
|
* Added qHash overloads for float, double and long double.
|
|
|
|
- QJsonArray:
|
|
* Added convenience methods to QJsonArray for appending QJsonValues
|
|
|
|
- QJsonValue:
|
|
* Added constructor to QJsonValue for const char *
|
|
* QJsonValue::fromVariant() will now convert single-precision Floats
|
|
into Doubles instead of Strings
|
|
|
|
- QMargins:
|
|
* Added missing addition and subtraction operators.
|
|
|
|
- QProcess:
|
|
* [QTBUG-26136] Added processId() to QProcess. This function will,
|
|
unlike pid(), return the actual process identifier on both Windows
|
|
and Unix.
|
|
|
|
- QRect:
|
|
* Added QMargins subtraction operator.
|
|
|
|
- QSettings:
|
|
* [QTBUG-9824][QTBUG-21062][QTBUG-22745] QSettings now returns the
|
|
correct value for isWritable() when using SystemScope settings.
|
|
|
|
- QSortFilterProxyModel:
|
|
* [QTBUG-30662] Fixed sorting when a previously empty proxy model
|
|
becomes populated because of a change in the filter.
|
|
|
|
- QStandardPaths:
|
|
* [QTBUG-34631] Added QStandardPaths implementation for Android.
|
|
|
|
- QString:
|
|
* Added QLatin1String overload of contains()
|
|
* QString::toUcs4 now does not return invalid UCS-4 code units belonging
|
|
to the surrogate range (U+D800 to U+DFFF) when the QString contains
|
|
malformed UTF-16 data. Instead, U+FFFD is returned in place of the
|
|
malformed subsequence.
|
|
|
|
- QTextCodec:
|
|
* Encoding a QString in UTF-32 will now replace malformed UTF-16
|
|
subsequences in the string with the Unicode replacement character
|
|
(U+FFFD).
|
|
|
|
- QVarLengthArray:
|
|
* Added the indexOf, lastIndexOf and contains functions to
|
|
QVarLengthArray. These functions make the class more similar to
|
|
QVector.
|
|
|
|
- Windows:
|
|
* [QTBUG-35194] Now QStandardPaths::DownloadLocation returns the proper
|
|
path for Windows Vista and up
|
|
|
|
QtDBus
|
|
------
|
|
|
|
- QtDBus adaptors now include the PropertiesChanged signal in
|
|
introspection data
|
|
|
|
- QDBusServer:
|
|
* Added method to QDBusServer to allow anonymous client connections,
|
|
even if the connecting client is not authenticated as a user.
|
|
|
|
QtGui
|
|
-----
|
|
|
|
- Added setSwapInterval() to QSurfaceFormat. Platforms that support
|
|
setting the swap interval are now defaulting to the value of 1,
|
|
meaning vsync is enabled.
|
|
- [QTBUG-35220] Reading bmp images with alpha channel is now supported
|
|
- [QTBUG-36394] The main Embedded Linux platform plugins (eglfs, linuxfb,
|
|
kms) are changed to behave identically with regards to terminal keyboard
|
|
input: it is turned off by default on all of these platforms. If this
|
|
feature is not desired, it can be disabled by setting the environment
|
|
variable QT_QPA_ENABLE_TERMINAL_KEYBOARD.
|
|
- [QTBUG-36374] Mouse hotplugging is now fully supported in eglfs when
|
|
running on Embedded Linux systems with libudev support enabled.
|
|
- [QTBUG-36603] Windows Accessibility now handles the disabled state of
|
|
widgets correctly.
|
|
- Accessibility on Linux now reports the active state correctly.
|
|
- [QTBUG-36483] Qt builds on Windows can now be configured for dynamic
|
|
loading of the OpenGL implementation. This can be requested by passing
|
|
-opengl dynamic to configure. In this mode no modules will link to
|
|
opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will
|
|
dynamically choose between desktop and Angle during the first GL/EGL/WGL
|
|
call. This allows deploying applications with a single set of Qt
|
|
libraries with the ability of transparently falling back to Angle in
|
|
case the opengl32.dll is not suitable, due to missing graphics drivers
|
|
for example.
|
|
- Added class QPageLayout to support handling page layouts including the
|
|
page size, orientation and margins.
|
|
- [QTBUG-28813][QTBUG-29930][QTBUG-35836] Fixed regression in
|
|
arabic text rendering.
|
|
- [QTBUG-37332] GLES3 and desktop OpenGL are now fully supported with
|
|
EGL
|
|
- [QTBUG-36993] Native (that is, not distance field based) text
|
|
rendering is now functional on OpenGL 3.2+ core profiles too.
|
|
- The function QOpenGLShaderProgram::create() has been added. It is can
|
|
be used to force immediate allocation of the program's id.
|
|
- QFont::setRawName() and QFont::rawName() were deprecated.
|
|
|
|
- Accessibility:
|
|
* [QTBUG-37204] Implemented text attributes to enable VoiceOver to read
|
|
QTextEdit and QPlainTextEdit.
|
|
* Assistive apps such as VoiceOver can now set the focus on widgets
|
|
and controls.
|
|
|
|
- QColor:
|
|
* Exported highly optimized methods for premultiply and unpremultiply of
|
|
QRgb values.
|
|
|
|
- QFont:
|
|
* Added qHash overload for this class.
|
|
|
|
- QGuiApplication:
|
|
* Restored support for -title command line argument on X11 and added
|
|
-qwindowtitle on all platforms.
|
|
|
|
- QImage:
|
|
* Added rvalue-qualified overloads for mirrored(), rgbSwapped() and
|
|
convertToFormat(), allowing in-place conversion in some cases
|
|
|
|
- QOpenGLFramebufferObject:
|
|
* [QTBUG-35881] Added takeTexture() for retrieving and detaching the
|
|
texture from the framebuffer object.
|
|
|
|
- QPageSize:
|
|
* Added new QPageSize class to implement Adobe Postscript PPD standard
|
|
page sizes. This class supports the standard page sizes, names and
|
|
keys from the PPD standard, and provides convenient size and rect
|
|
conversion methods.
|
|
|
|
- QPagedPaintDevice:
|
|
* [QTBUG-27685][QTBUG-25744] Paged paint devices such as QPrinter and
|
|
QPdfWriter now support all Postscript standard page sizes.
|
|
|
|
- QPdfWriter:
|
|
* The QPdfWriter now supports setting the PDF orientation, layout and
|
|
resolution by using QPageSize and QPageLayout.
|
|
|
|
- QTextLayout:
|
|
* [QTBUG-18060] Fixed visual cursor movement in bidirectional text.
|
|
|
|
- QWindow:
|
|
* QWindow::icon() now defaults to the application icon, which can be set
|
|
with QGuiApplication::setWindowIcon().
|
|
|
|
QtNetwork
|
|
---------
|
|
|
|
- [QTBUG-18714] Added support for the SPDY protocol (version 3.0).
|
|
|
|
- QNetworkReply:
|
|
* [QTBUG-30880] Added more (specific) HTTP status codes to NetworkError
|
|
enum.
|
|
|
|
- QSslConfiguration:
|
|
* [QTBUG-33208] Added support for the Next Protocol Negotiation (NPN)
|
|
TLS extension.
|
|
|
|
QtPrintSupport
|
|
--------------
|
|
|
|
- CUPS 1.4 is now required for print support on Linux and other *nix
|
|
platforms.
|
|
|
|
- QPrintPreviewDialog:
|
|
* [QTBUG-36561] Fixed initialization of QPrintPreviewDialog's image
|
|
resources for static builds.
|
|
|
|
- QPrinter:
|
|
* QPrinter can now use QPageSize and QPageLayout in the public api to
|
|
control the page layout for a print job.
|
|
|
|
- QPrinterInfo:
|
|
* [QTBUG-35248] Added new public api for isRemote(), state(),
|
|
defaultPageSize(), supportedPageSizes(), supportsCustomPageSizes(),
|
|
minimumPhysicalPageSize(), maximumPhysicalPageSize(),
|
|
supportedResolutions(), availablePrinterNames(), and
|
|
defaultPrinterName(). The use of availablePrinters() is discouraged
|
|
due to performance concerns.
|
|
|
|
QtSql
|
|
-----
|
|
|
|
- QSqlError:
|
|
* Now handles alphanumeric error codes. Used by QPSQL. Old numeric
|
|
code is deprecated.
|
|
|
|
- QSqlQuery:
|
|
* isNull(field) now correctly returns true for "no such field".
|
|
* isNull(fieldname) is a new overload.
|
|
* [QTBUG-12186] Fixed order of values with positional binding.
|
|
|
|
- QSqlTableModel:
|
|
* [QTBUG-38509] Fix failure to refresh in selectRow()
|
|
|
|
- QIBASE:
|
|
* [QTBUG-37508] Fix QByteArray memory corruption in QIBaseDriver::open().
|
|
* Support for prepared queries in numRowsAffected().
|
|
|
|
- QODBC:
|
|
* [QTBUG-37831] Fix access of tmpStorage in QODBCResult::exec().
|
|
|
|
- QSQLITE:
|
|
* Creating temporary databases is now possible
|
|
* Empty database name now opens in-memory database.
|
|
|
|
QtTest
|
|
------
|
|
|
|
- Added test duration to xml output. When running tests with xml output a
|
|
new tag of the form
|
|
<duration msecs="123"/> is added to each test function and the test as a
|
|
whole.
|
|
- Added a CSV logging mode that is suitable for importing benchmark
|
|
results into spreadsheets. This can be enabled by the -csv option on the
|
|
command-line. The CSV logging mode will not print test failures, debug
|
|
messages, warnings, etc.
|
|
- QtTest now prints an escaped version of QStrings that failed to compare
|
|
with QCOMPARE. That is, instead of converting non-printable characters
|
|
to question marks, QtTest will print the Unicode representation of the
|
|
character in question.
|
|
|
|
- Windows:
|
|
* [QTBUG-35743] Use correct UTF-8 encoding for XML test results on
|
|
platforms with different console encoding.
|
|
|
|
QtWidgets
|
|
---------
|
|
|
|
- Accessibility:
|
|
* Fixed QTextEdit not reporting newlines to accessibility frameworks and
|
|
add editable text interface.
|
|
|
|
- QAbstractSpinBox:
|
|
* [QTBUG-5142] QSpinBox and QDoubleSpinBox widgets can now show the
|
|
group (thousands) separators.
|
|
|
|
- QColorDialog:
|
|
* Ensured QColorDialog::DontUseNativeDialog is respected when showing
|
|
the dialog.
|
|
|
|
- QDateEdit:
|
|
* [QTBUG-36692] Fixed incorrect appearance on OS X of QDateEdit with
|
|
calendarPopup enabled.
|
|
|
|
- QDrag
|
|
* Fixed Drag and Drop driven by touch-synthesized mouse events on
|
|
Windows.
|
|
|
|
- QListView:
|
|
* [QTBUG-4714] Fixed QListView ignoring the grid size for word
|
|
wrapping in icon mode
|
|
|
|
- QMdiSubWindow:
|
|
* [QTBUG-9933][QTBUG-27274] Fixed setWindowFlags() for QMdiSubWindow.
|
|
|
|
- QMenu:
|
|
* [QTBUG-20094] Enabled sloppy submenu mouse navigation.
|
|
* [QTBUG-36142] QMenu now correctly uses text color set by style
|
|
sheet for menu items on Windows.
|
|
* [QTBUG-36218] Fixed position of menu gutter on Windows when using a
|
|
custom widget action.
|
|
|
|
- QPlainTextEdit:
|
|
* Added find method overload using QRegExp
|
|
|
|
- QSpinBox:
|
|
* [QTBUG-3032] Fixed keyboard selection with multiple-character strings.
|
|
|
|
- QScrollArea:
|
|
* [QTBUG-36314] The setting for click position is now respected on OS X.
|
|
|
|
- QTextDocument:
|
|
* [QTBUG-33336] Added support for empty inline elements in block tags.
|
|
|
|
- QTextEdit:
|
|
* Added find method overload using QRegExp
|
|
|
|
- QWidget:
|
|
* [QTBUG-25831] Restored the Qt 4 behavior in the sequence of events
|
|
that are delivered to widget windows and their children when a
|
|
mouse double click happens: the second MouseButtonPress event from
|
|
Qt 5.0-5.2 is no longer sent.
|
|
* [QTBUG-33716] QWidgets embedded in QGraphicsProxyWidget are no longer
|
|
sent close events when the app is closed on OS X.
|
|
* [QTBUG-36178] Fixed an issue where stay-on-top widgets would cover
|
|
their own children on OS X.
|
|
|
|
- QWizard:
|
|
* [QTBUG-7484] Added NoCancelButtonOnLastPage option.
|
|
* [QTBUG-36192] Fixed frame when using Vista style/MSVC2012.
|
|
|
|
- Text support:
|
|
* [QTBUG-36444] Fixed off-by-one in the height of text background.
|
|
|
|
- Windows:
|
|
* [QTBUG-21371][QTBUG-4397] QWidget::restoreGeometry() now restores
|
|
maximized/full screen widgets to the correct screen.
|
|
|
|
****************************************************************************
|
|
* Compiler Specific Changes *
|
|
****************************************************************************
|
|
|
|
- Variadic macros are now enabled more liberally for gcc, clang, icc. If
|
|
you have warnings (because you e.g. compile with -pedantic), disable
|
|
them by -Wno-variadic-macros.
|
|
|
|
****************************************************************************
|
|
* Platform Specific Changes *
|
|
****************************************************************************
|
|
|
|
Android
|
|
-------
|
|
|
|
- [QTBUG-36074] Fixed crash on populating large combo boxes or menus.
|
|
- [QTBUG-36528] Fixed QDir::entryList() for assets scheme to no longer
|
|
skip the first file in the directory.
|
|
- [QTBUG-30652] It is now possible to define a splash screen which will be
|
|
visible until the first window is created.
|
|
- [QTBUG-33704] Sped up first time directory listing in assets by using
|
|
pregenerated entry list.
|
|
- [QTBUG-37738] Fixed font merging problem which caused e.g. missing
|
|
glyphs for Arabic numerals.
|
|
- [QTBUG-36025] Fixed a memory leak in the clipboard
|
|
|
|
- Fonts:
|
|
* [QTBUG-36789] Fixed support for Arabic text.
|
|
|
|
iOS
|
|
---
|
|
|
|
- Support for input methods added.
|
|
- Support for word completion and spell checking added.
|
|
- Support for QClipboard added.
|
|
- "Hide keyboard" gesture added.
|
|
- Keyboard input is now sendt as input method events instead of key events.
|
|
|
|
Linux
|
|
-----
|
|
|
|
- Systems with systemd may now pass -journald to configure to send
|
|
logging output to journald. Logging will still be sent to stderr for
|
|
interactive applications (run from a tty) or with QT_NO_JOURNALD_LOG
|
|
set to a non-empty value.
|
|
|
|
OS X
|
|
----
|
|
|
|
- [QTBUG-18980][QTBUG-38246] Use CoreText text shaping engine for
|
|
support of complex scripts. If required, the shaping engine used in
|
|
previous versions can be preferred by configuring Qt with
|
|
-no-harfbuzz. Alternatively, the QT_HARFBUZZ environment variable
|
|
could be set to "old".
|
|
|
|
Windows
|
|
-------
|
|
|
|
- Introduced experimental direct2d platform plugin for Windows. This
|
|
plugin shares most code with the current windows plugin, but
|
|
substitutes a direct2d-based paint engine for window backing stores
|
|
and pixmaps.
|
|
|
|
- QtWidgets / QFileDialog:
|
|
* Handled the case of having trailing spaces in a filename correctly so
|
|
if the filename ends up being empty that the parent path is used
|
|
instead.
|
|
|
|
- Windows Embedded:
|
|
* Fixed building issue when configuring Qt with -qtlibinfix
|
|
|
|
X11 / XCB
|
|
---------
|
|
|
|
- Qt now supports XInput2 smooth scrolling events
|
|
|
|
****************************************************************************
|
|
* Tools *
|
|
****************************************************************************
|
|
|
|
moc
|
|
---
|
|
|
|
- [QTBUG-33668] Fixed passing -D of a macro defined to something more
|
|
complex than a single identifier.
|
|
|
|
- QTBUG-36128:
|
|
* [QTBUG-36128] Fixed sign conversion warning in generated file.
|
|
|
|
qdbus
|
|
-----
|
|
|
|
- [QTBUG-36524] Fixed a bug that caused the qdbus tool to crash when
|
|
trying to display remote interfaces that had complex types without a
|
|
matching base Qt type.
|
|
|
|
configure & build system
|
|
------------------------
|
|
|
|
- Configure's -separate-debug-info option is now checked more strictly.
|
|
- Added configure [-no]-imf options for QNX.
|
|
- Added unsupported linux-libc++-clang and freebsd-clang mkspecs.
|
|
- Numerous configuration-specific build fixes.
|
|
|
|
qmake
|
|
-----
|
|
|
|
- QTPLUGIN will now be automatically populated with the plugins that are
|
|
typically needed by the used Qt modules.
|
|
- qmake will not create dependencies on system headers any more, provided it
|
|
detects the system include paths.
|
|
- Added DISTCLEAN_DEPS variable analogous to CLEAN_DEPS.
|
|
- Added function $$getenv() which is equivalent to using the $$() expansion,
|
|
but permits various qmake meta characters in the name.
|
|
- [MacOS] QMAKE_BUNDLEID_PREFIX is now recognized by the Makefile generator.
|
|
- [QTBUG-29939][MSVC2012+] Added Windows XP target support.
|
|
- [QTBUG-35570][VS2012+] Fixed bad ProgramDataBaseFileName.
|
|
- [QTBUG-38066][VS2010+] Fixed version suffix being appended to applications.
|
|
- [QTBUG-31185][VS] The PlatformToolset environment variable is now honored.
|
|
- [QTBUG-34781][Android] Fixed regression in "make install" on library projects
|
|
so they can be used inside subdirs projects again.
|
|
- [QTBUG-37113] Fixed creation of excessively long relative paths, which
|
|
would lead to errors with MSVC. Note that this does not fix all such cases.
|
|
|
|
qlalr
|
|
-----
|
|
|
|
- (Re-)added to Qt base. Added corresponding qmake feature file.
|
|
Caveat: the generated files are not scanned for dependencies.
|