| 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. |