| Qt 5.6 introduces many new features and improvements along with bug fixes |
| over the 5.5.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.6 |
| |
| The Qt version 5.6 series is binary compatible with the 5.5.x series. |
| Applications compiled for 5.5 will continue to run with 5.6. |
| |
| Some of the changes listed in this file include issue tracking numbers |
| corresponding to tasks in the Qt Bug Tracker: |
| |
| http://bugreports.qt.io/ |
| |
| Each of these identifiers can be entered in the bug tracker to obtain more |
| information about a particular change. |
| |
| **************************************************************************** |
| * Deprecation Notice * |
| **************************************************************************** |
| |
| The following platforms or toolchains are deprecated and will be |
| removed as of Qt 5.7: |
| * Apple OS X 10.7 (Lion) |
| * GNU Compiler Collection (GCC) versions 4.6 and earlier |
| * Microsoft Visual Studio compiler versions 2008, 2010 and 2012 |
| * Microsoft Windows XP, Windows Vista |
| * Microsoft Windows Embedded Compact 7 |
| * Microsoft Windows Embedded Compact 2013 |
| |
| Deprecated platforms and toolchains continue to work until removed. |
| |
| - The QtScript module is deprecated and will be removed from Qt's binary |
| packages starting with version 5.7. The 5.6 releases of QtScript |
| should continue to work along with Qt 5.7 and future versions. |
| |
| **************************************************************************** |
| * Future Direction Notice * |
| **************************************************************************** |
| |
| - In Qt 6, QCoreApplication::notify() will not be called for events being |
| delivered to objects outside the main thread. The reason for that is |
| that the main application object may begin destruction while those |
| threads are still delivering events, which is undefined behavior. |
| Applications that currently override notify() and use that function |
| outside the main thread are advised to find other solutions in the mean |
| time. |
| |
| - Qt 5.7 will begin requiring certain C++11 features in order to |
| compile. The minimum compiler versions for that release will be: |
| * Clang 3.4 (included in XCode 5.1) |
| * GCC 4.7 |
| * Intel C++ Composer XE 2013 SP1 (compiler version 14.0) |
| * Microsoft Visual Studio 2013 (compiler version 19.0) |
| |
| **************************************************************************** |
| * Important Behavior Changes * |
| **************************************************************************** |
| |
| - SecureTransport is the default SSL backend on OS X. Use the |
| -no-securetransport configure option to use OpenSSL. |
| - [QTBUG-34611] Arrow indicator is now consistent with platform styles |
| - QtDBus now uses threads to implement processing of incoming and outgoing |
| messages. This solves a number of thread safety issues and fixes an |
| architectural problem that would cause all processing to stop if a |
| particular thread (usually the main thread) is blocked in any |
| operation. On the flip side, application developers need to know that |
| modifications to a QDBusConnection may be visible immediately on the |
| connection, so they should be done in an order that won't allow for |
| incomplete states to be observed (for example, register all objects |
| before acquiring service names). |
| |
| configure & build system |
| ------------------------ |
| |
| - [Unix] Qt's .prl files do not expose private dependencies any more. |
| Projects must explicitly name their dependencies. |
| - [Windows] Enabling link-time code generation in Qt does not enable |
| it in user applications as well any more. |
| - [FreeBSD] The "freebsd-clang" mkspec is no longer in the unsupported/ |
| subdir. If you use scripts to build Qt, you'll need to update them to |
| include "-platform freebsd-clang" or remove the -platform argument. |
| |
| qmake |
| ----- |
| |
| - qmake now enables C++11 support by default if the compiler supports |
| it (unless the compiler defaults to C++14 or a later edition). |
| To disable this (not possible with Microsoft Visual Studio), add |
| "CONFIG -= c++11" to your .pro file. Note that Qt 5.7 requires C++11 |
| support, so it is a good idea to ensure your code works with that |
| compiler setting. |
| - [Windows] The .prl files written by earlier versions of Qt cannot |
| be used any more. This will affect you if you depend on 3rd party |
| libraries which come with .prl files. Patch up QMAKE_PRL_TARGET to |
| contain the complete file name of the library, and replace any |
| /LIBPATH: in QMAKE_PRL_LIBS with -L. |
| - [Windows] QMake is now a lot stricter about what may appear in LIBS. |
| Use -L instead of the Windows-specific /LIBPATH. Put flags other |
| than -l and -L into QMAKE_LFLAGS. |
| - The library lookup has been simplified. This includes the removal of |
| support for the QMAKE_<lib>_SUFFIX variables, and the removal of |
| attempts to locate libraries under slightly different names than |
| specified. |
| - [Unix] QMAKE_POST_LINK steps of static libraries are now required |
| to operate on $(TARGET) in $(DESTDIR) instead of $$OUT_PWD. |
| This matches the Windows backends. |
| - Makespecs must now define QMAKE_{PREFIX,EXTENSION}_{SH,STATIC}LIB. |
| |
| |
| Accessibility |
| ------------- |
| |
| - [QTBUG-44479] We now report text attributes correctly on Linux, so |
| ORCA+F now works properly in QTextEdit and other text controls. |
| |
| Widgets |
| ------- |
| |
| - [QTBUG-1049][QTBUG-2295][QTBUG-4532][QTBUG-18883][QTBUG-35148] The |
| tabs for the tabified docks can be moved by the user. |
| |
| QtTest |
| ------ |
| |
| - [QTBUG-47370] Crash/exception information is now logged to standard |
| output on Windows. |
| |
| **************************************************************************** |
| * Library * |
| **************************************************************************** |
| |
| QtCore |
| ------ |
| |
| - Types in the Q_PROPERTY macro can now contain commas (for example, |
| QMap<Foo, Bar>) |
| - Added QVersionNumber. |
| - All generic containers (with the exception of QVarLengthArray, but |
| including QSharedPointer) destroy the previous state as part of a |
| move-assignment. Previously, they would dump it into the |
| right-hand-side object. Note that this is only true for the generic |
| containers. Other implicitly-shared types, as well as the non-generic |
| containers such as QString, QByteArray, etc. still swap the contents with |
| the right-hand-side object when move-assigned into, and for performance |
| reasons, this does not change in the foreseeable future. |
| - All containers (with the exception of QVarLengthArray, but including |
| QSharedPointer) are now nothrow_default_constructible, |
| nothrow_move_constructible, nothrow_move_assignable, and |
| nothrow-swappable. |
| - [QTBUG-25919] Added rbegin(), crbegin(), rend(), crend(), and |
| reverse_iterator and const_reverse_iterator typedefs to |
| QByteArray, QString, QList, QLinkedList, QVector, QVarLengthArray, |
| and QSet. |
| - [QTBUG-46026] Added the convenience constFirst() and constLast() |
| functions to QList and QVector. |
| - Added relational operators <, <=, >, >= to QList, QVector, and |
| QVarLengthArray if the element type supports operator<. |
| - Added qHash() overloads for QList, QVector, QLocale, QMatrix, QTransform, |
| QMimeType, QRegExp, QRegularExpression, and QUrlQuery. |
| - Unicode data updated to v8.0 |
| |
| - Logging: |
| * QT_LOGGING_RULES now supports multiple rules separated by semicolons |
| * Systems with syslog may now pass -syslog to configure to send logging |
| output to syslog. |
| |
| - QCommandLineParser: |
| * [QTBUG-44298] Added support for hiding options from the --help output, |
| with QCommandLineOption::setHidden(true). |
| * Added parsing mode for options after arguments, to allow treating them |
| as more arguments. |
| |
| - QDebug: |
| * How verbose a single debug output should be can now be fine-tuned by |
| setting a verbosity on the debug stream. |
| * When streaming QWindow, QScreen, QWidget instances to a debug stream |
| that has increased verbosity set, detailed information about |
| geometries, states etc. is printed. |
| |
| - QDir: |
| * Added listSeparator(). |
| |
| - QHash/QMap: |
| * Added key iterators, accessible through keyBegin() and keyEnd(). |
| |
| - QLatin1String: |
| * Added default constructor. |
| |
| - QLocale: |
| * [QTBUG-4044][QTBUG-3068] The C locale does not use group separators |
| to format numbers any more. |
| * [QTBUG-49031] Fixed a bug that caused QLocale::textDirection() to |
| always return Qt::LeftToRight and QLocale::script() to return |
| QLocale::AnyScript for the Windows system locale. |
| |
| - QMap: |
| * Added const equal_range() overload. |
| |
| - QMetaProperty: |
| * write() now resets the property if an empty QVariant is given, or set |
| a default constructed object if the property is not resettable. |
| |
| - QPluginLoader: |
| * Fixed the search order of Qt plugins so that paths specified by the |
| QT_PLUGIN_PATH environment variable are searched before built-in |
| paths. |
| |
| - QProcess: |
| * [QTBUG-47271] Fixed a bug that caused QProcess to launch a child |
| process on Unix even if the directory specified with |
| setWorkingDirectory did not exist. |
| * Deprecated QProcess::error() signal in favor of the new |
| QProcess::errorOccurred() signal. |
| |
| - QProcessEnvironment: |
| * Fixed a bug in operator== involving different empty states. |
| |
| - QSet: |
| * Added intersects(). |
| |
| - QSharedPointer: |
| * [QTBUG-49748] Fixed a problem that causes a compilation error |
| when constructing a QSharedPointer of a const type that derives |
| from QEnableSharedFromThis. |
| |
| - QStorageInfo: |
| * Added QStorageInfo::blockSize(), which returns the optimal block size |
| for transferring data to and from the storage. |
| |
| - QString: |
| * fromLatin1(), fromAscii(), fromUtf8() and fromLocal8Bit() now return a |
| null QString when called with a null QByteArray. |
| * Added insert(int, QStringRef), insert(int, const char*), and |
| insert(int, QByteArray) overloads. |
| * Added prepend(QStringRef) and prepend(const QChar *, int) overloads. |
| * resize() no longer shrinks the capacity. That means resize(0) now |
| reliably preserves capacity(). |
| |
| - QStringRef: |
| * Added truncate(int). |
| |
| - QTemporaryDir: |
| * Added errorString() method that returns the string explaining why |
| creating the temporary directory failed. |
| |
| - QTextStream: |
| * Can now stream QStringRef without converting to a QString first. |
| |
| - QThread: |
| * [QTBUG-49870] Fixed a bug that would cause debug-mode applications to |
| live-lock on exit if they had a global static containing a QThread |
| that wasn't exited properly. |
| |
| - QVariant: |
| * [QTBUG-40644] Fixed crash when setting a QVariant of a different type to |
| a property of a custom type by attempting to do a conversion instead. |
| * [QTBUG-37851] QVariant(QColor)::toString() now uses QColor::HexArgb format |
| when the alpha component is different from 1. |
| |
| - QVector: |
| * [QTBUG-39293] resize() will no longer shrink the capacity. That means |
| resize(0) now reliably preserves capacity(). |
| |
| - QtAlgorithms: |
| * Added qFindFirstSetBit() and qFindLastSetBit(). |
| |
| QtDBus |
| ------ |
| |
| - [QTBUG-14131] The QtDBus library now links directly to the libdbus-1 |
| system library if it was detected at configure time. To force linking to |
| the library, pass option -dbus-linked to configure; to force dynamic |
| loading at runtime, use -dbus-runtime. |
| |
| QtGui |
| ----- |
| |
| - [QTBUG-43674] Linux accessibility (using XCB) works for |
| applications launched as root. |
| - Added ReturnKeyType enum that emulates the native return key press on |
| different mobile platforms, to indicate actions such as search, move to |
| next field, and so on. |
| |
| - Painting: |
| * Internal precision of solids and gradients is up to 16bit per color. |
| |
| - QFont: |
| * [QTBUG-15214] QFont now serializes the capitalization setting. |
| |
| - QGuiApplication: |
| * [QTBUG-47690] Fixed a regression where both sessionId and sessionKey were |
| empty on Windows. |
| |
| - QIcon: |
| * [QTBUG-42109] Added the ability for QIcons to be marked as template images. |
| This allows end users to create QSystemTrayIcons that are properly |
| displayed as monochrome images on OS X, which is especially important |
| on Yosemite and above when Dark Mode is turned on. |
| |
| - QKeySequence: |
| * Added qHash(QKeySequence). |
| |
| - QTextLayout: |
| * Added QVector-based alternatives setFormat(), format(), and |
| clearFormat() to setAdditionalFormats(), additionalFormats(), and |
| clearAdditionalFormats(), resp. |
| * [QTBUG-41197] Fixed an uncommon rendering error with fonts containing |
| overlapping contours. |
| * [QTBUG-47547] Fixed some instances of missing glyphs when drawing large |
| fonts. |
| * [QTBUG-47547] Fixed problem where fallback fonts for text with certain |
| styles would be reported as unscalable. |
| * Freetype: |
| * [QTBUG-45963] Fixed a divide-by-zero exception when accessing bitmap |
| fonts. |
| * [QTBUG-50715] QTextLayout::glyphRuns() now returns united bounding |
| rects for glyph runs that are merged. |
| |
| - OpenGL: |
| * [QTBUG-46161] Added QOpenGLExtraFunctions providing OpenGL ES 3.0 and |
| 3.1 function wrappers in a cross-platform manner. |
| * [QTBUG-39235] Added support for multiple render targets in |
| QOpenGLFramebufferObject. |
| * [QTBUG-42444] Made QInputMethod's visible more accurate. |
| |
| QtNetwork |
| --------- |
| |
| - QSslServer: |
| * In an SSL connection, the client socket now uses the server's cipher |
| preferences by default. This can be disabled using the QSslConfiguration. |
| |
| - QUdpSocket: |
| * [QTBUG-47011] Fixed a bug that caused the QAbstractSocket::ShareAddress |
| option not to work on Linux. |
| |
| QtPlatformSupport |
| ----------------- |
| |
| - QKdeTheme: |
| * Added support for KDE Plasma 5, which is also the default theme now. |
| |
| QtSql |
| ----- |
| |
| - [QTBUG-3500] SSL support for MySQL database connections has been added. |
| Option CLIENT_SSL replaced by SSL_KEY, SSL_CERT, SSL_CA, SSL_CAPATH and |
| SSL_CIPHER, so that the keys, certificates and cipher can be specified. |
| - Improved performance when reading integer values from MySQL databases via |
| prepared statements. |
| |
| QtTest |
| ------ |
| |
| - [QTBUG-47370] A stack trace is output on standard error if a test |
| crashes. |
| - Added macros QTRY_VERIFY2_WITH_TIMEOUT() and QTRY_VERIFY2(), making it |
| possible to output a message after the timeout has expired. |
| |
| QtWidgets |
| --------- |
| |
| - QComboBox: |
| * QComboBox::setView() no longer deletes the old view directly. It now |
| checks the ownership first. |
| |
| - QListView: |
| * [QTBUG-37007] Horizontal scrolling with a vertical mouse wheel |
| is now possible. |
| |
| - QMainWindow: |
| * Added GroupedDragging as a DockOption which allow users to drag all |
| the tabs together when dragging the title of a QDockWidget which is |
| tabbed with others. |
| |
| - QSizePolicy: |
| * Added qHash(QSizePolicy). |
| |
| - QTabBar: |
| * [QTBUG-45173][QTBUG-15128] Fixed moving tab when a stylesheet is |
| applied. |
| |
| - QFontDialog: |
| * Added supportedSchemes property. |
| |
| **************************************************************************** |
| * Platform-specific Changes * |
| **************************************************************************** |
| |
| Android |
| ------- |
| |
| - [QTBUG-38379] Stylus devices such as S Pen will generate QTabletEvents now. |
| - [QTBUG-40731] Implemented QInputMethod::keyboardRectangle. |
| - [QTBUG-45585] Fixed the opening of a local file using |
| QDesktopServices::openUrl(). |
| |
| Windows |
| ------- |
| |
| - [QTBUG-41309][QTBUG-41883][QTBUG-42410] Add a function to |
| QWindowsWindowFunctions to enable working around a limitation with |
| showing other top level windows while showing a fullscreen OpenGL-based |
| window. |
| - DirectWrite support is now the default if available. |
| |
| - DirectWrite: |
| * [QTBUG-48546] Added differentiation between vertical hinting and no |
| hinting in DirectWrite font engine. |
| * [QTBUG-49562] Fixed clipping bug when rendering unhinted text with |
| grayscale antialiasing. |
| * [QTBUG-49562] Added transformation support to DirectWrite engine when |
| using grayscale antialiasing. |
| * [QTBUG-50009] Fixed transformed text when using the DirectWrite font |
| engine. |
| |
| - Text: |
| * [QTBUG-47141] Made it possible to disable antialiasing for text when |
| drawing into images. |
| * [QTBUG-48546] Fixed uneven kerning for some fonts. |
| |
| X11/XCB |
| ------- |
| |
| - [QTBUG-42985] In case there are no physical screens attached, |
| QGuiApplication::screens() and QGuiApplication::primaryScreen() will |
| now return a placeholder QScreen object. |
| - [QTBUG-49071] Fixed focusIn event on hide/show being not delivered. |
| - Harmonized input context selection. QT_IM_MODULE environment variable |
| is taken into account now. |
| |
| QPA |
| --- |
| |
| - EGLFS/KMS: |
| * It is now possible to set the DPMS mode and get the current value for |
| each screen. |
| |
| - WinRT: |
| * Windows Store apps are now composited inside a XAML container, |
| allowing for tighter integration with the native UI layer. |
| * Application status bar is visible by default now. |
| |
| **************************************************************************** |
| * Tools * |
| **************************************************************************** |
| |
| configure & build system |
| ------------------------ |
| |
| - Qt's build system now detects whether the compiler supports C++14 and |
| experimental support for C++1z. If the compiler supports it, Qt is |
| compiled using that. This does not apply to user applications built |
| using qmake: those are still built with C++11 support only. To build |
| your application with C++14 support, add "CONFIG += c++14" |
| (similarly for C++1z) to your .pro file. |
| - [GCC][ELF] The Qt libraries now contain ELF versions. |
| - [QTBUG-48958][OS X] Configure with -no-rpath now yields dynamic Qt |
| libraries and frameworks with an absolute install name (based in |
| -libdir). This restores Qt 4 behavior. |
| - [MinGW] Fixed detection of DirectWrite. |
| - [iOS] The build process was significantly changed in several ways. |
| This doesn't matter unless you're doing Something Very Special. |
| - [Unix] -force-pkg-config is now just an alias for -pkg-config. |
| - [QTBUG-47840] Fixed pointer size detection when cross-building. |
| - [QTBUG-47920] GStreamer 1.0 is now preferred over 0.10. |
| - [QTBUG-48041][WinRT] Fixed -no-opengl not bailing out despite the |
| configuration causing a build error later on. |
| - [Linux] Qt is now built with relative rpaths, as was already the |
| case on OS X. |
| - [Windows] Configure now supports the -verbose option, like on Unix. |
| - [Unix] Added configure option to enable link-time code generation. |
| - Introduced the -optimized-tools option; supersedes -optimized-qmake. |
| Tools are by default not optimized in debug builds any more. |
| - Non-prefix builds don't have install targets any more. |
| |
| qmake |
| ----- |
| |
| - By default, GNU extensions are now enabled with Clang, GCC, and ICC |
| even in C++11 and C++14 modes. To disable the GNU extensions, add |
| CONFIG+=strict_c++ to your .pro file. |
| - In addition to .qrc files, it is now possible to list standalone files |
| and directories, and collections of files in RESOURCES. |
| - [QTBUG-17533] Fixed dependency scan being confused by directly adjacent |
| string literals without intermediate whitespace. The parser also got more |
| C++ compliant and now understands C++11 raw strings. |
| - [QTBUG-21854] Deprecated DEPLOYMENT in favor of INSTALLS. |
| - [QTBUG-30813] Makefile output no longer contains implicit suffix rules, |
| as all sources are built using explicit rules. |
| - [QTBUG-36575] Fixed handling of QMAKE_OBJECTIVE_CFLAGS for Objective-C |
| (as opposed to Objective-C++). OBJECTIVE_SOURCES was obsoleted; use just |
| SOURCES. This behavior matches Xcode. |
| - [QTBUG-44184][Windows] Added RC_DEFINES to allow overriding DEFINES. |
| This is a workaround for incompatible quoting requirements of rc.exe |
| compared to cl.exe. |
| - [QTBUG-46910][Unix] Fixed infinite recursion with link_prl (the default) |
| and .la files in a .libs/ subdirectory. |
| - [QTBUG-47951] Fixed QMAKE_CXX/CROSS_COMPILE verification with ccache. |
| - [QTBUG-48287][Unix] Fixed race in debug_and_release builds of static libs. |
| - [QTBUG-48648][VS2013] Fixed creation of empty (and thus invalid) |
| <Dependencies> sections in manifest files. |
| - [QTBUG-49665][VS] Fixed shadow builds of subdirs projects. |
| - [QTBUG-50442][VS] Added support for precompiled headers without (or with |
| an uncommon) file extension. |
| - 'make check' targets will now extend QT_PLUGIN_PATH instead of |
| overwriting it. |
| - Fixed support for certain versions of (f)lex and yacc. |
| - [Darwin] Info.plist is now correctly placed also in plugin bundles. |
| - [Darwin] CONFIG+=plugin_bundle now actually creates Mach-O bundles. |
| - [Unix] Added support for paths relative to the target in QMAKE_RPATHDIR. |
| - [Unix] Support for CONFIG+=compile_libtool was removed. Use |
| CONFIG+=create_libtool and/or custom compilers instead. |
| - [Windows] Libraries coming with .prl files can now have non-standard file |
| extensions and a major version of zero. |
| - [WEC2013][VS] Fixed support for VS2013 SDKs. |
| - [MSys] Added workaround for MinGW-make's magic handling of paths. |
| Prepend @msyshack@ to INSTALL_ROOT to prevent MSys root prefixing. |