summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--doc/config/qtdoc.qdocconf4
-rw-r--r--doc/src/classes.qdoc6
-rw-r--r--doc/src/deployment/deployment.qdoc23
-rw-r--r--doc/src/external-resources.qdoc14
-rw-r--r--doc/src/platforms/apple-getting-started.qdocinc107
-rw-r--r--doc/src/platforms/emb-linux.qdoc47
-rw-r--r--doc/src/platforms/ios.qdoc93
-rw-r--r--doc/src/platforms/osx.qdoc11
-rw-r--r--doc/src/platforms/porting-notes.qdocinc2
-rw-r--r--doc/src/platforms/supported-platforms.qdoc3
-rw-r--r--doc/src/platforms/supported-platforms.qdocinc82
-rw-r--r--doc/src/platforms/windows.qdoc96
-rw-r--r--doc/src/platforms/winrt.qdoc33
-rw-r--r--doc/src/qmlapp/debugging.qdoc5
-rw-r--r--doc/src/qmlapp/usecases/layouts.qdoc8
-rw-r--r--doc/src/qt5-intro.qdoc5
-rw-r--r--doc/src/qtmodules.qdoc12
-rw-r--r--doc/src/signalslotsyntaxes.qdoc15
-rw-r--r--doc/src/snippets/signalsandslots/signalslotsyntaxes.cpp28
-rw-r--r--doc/src/snippets/signalsandslots/signalslotsyntaxes.pro2
-rw-r--r--doc/src/whatsnew/whatsnew59.qdoc325
22 files changed, 702 insertions, 221 deletions
diff --git a/.qmake.conf b/.qmake.conf
index fec66b73e..b1c22d3b7 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION = 5.8.1
+MODULE_VERSION = 5.9.0
diff --git a/doc/config/qtdoc.qdocconf b/doc/config/qtdoc.qdocconf
index 33f836480..4368ea06f 100644
--- a/doc/config/qtdoc.qdocconf
+++ b/doc/config/qtdoc.qdocconf
@@ -71,7 +71,8 @@ depends += \
qtpurchasing \
qtvirtualkeyboard \
qtspeech \
- qtnetworkauth
+ qtnetworkauth \
+ qtremoteobjects
headerdirs += ../src
imagedirs += ../src/images \
@@ -121,3 +122,4 @@ qhp.QtDoc.extraFiles += images/qt-codesample.png
HTML.stylesheets += style/qt5-sidebar.html
macro.indextitle = "\\title Qt $QT_VER"
+macro.qtver = "$QT_VER"
diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc
index fedb59175..f86731152 100644
--- a/doc/src/classes.qdoc
+++ b/doc/src/classes.qdoc
@@ -58,7 +58,7 @@
\li \l{All Namespaces}
\li \l{All Classes by Module}
\li \l{Obsolete Classes}
- \li \l{New Classes and Functions in Qt 5.8}
+ \li \l{New Classes and Functions in Qt 5.9}
\endlist
For more reference pages including QML types, visit \l{Qt Reference Pages}.
@@ -82,7 +82,7 @@
\li \l{All QML Types}
\li \l{All QML APIs by Module}
\li \l{Obsolete QML Types}
- \li \l{New Classes and Functions in Qt 5.8}
+ \li \l{New Classes and Functions in Qt 5.9}
\endlist
For more reference pages including C++ APIs, visit \l{Qt Reference Pages}.
@@ -105,7 +105,7 @@
\li \l{All QML Basic Types}
\li \l{All QML APIs by Module}
\li \l{Obsolete QML Types}
- \li \l{New Classes and Functions in Qt 5.8}
+ \li \l{New Classes and Functions in Qt 5.9}
\endlist
For more reference pages including C++ APIs, visit \l{Qt Reference Pages}.
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index 432bf831b..ebfda3f40 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -104,28 +104,11 @@
care must be taken when deploying applications that use these
libraries, particularly when the application is statically linked
to them.
+ For more information, see \l{Third-Party Licenses Used in Qt}.
- The following table summarizes a few issues that
- you should be aware of.
-
- \table
- \header \li Qt Library \li Dependency
- \li Licensing Issue
- \row \li \l{QtHelp} \li CLucene
- \li The version of clucene distributed with Qt is licensed
- under the GNU LGPL version 2.1 or later. This has implications for
- developers of closed source applications. Please see the
- \l{Qt Help#License Information}{Qt Help} documentation for more information.
-
- \row \li \l{QtNetwork} \li OpenSSL
- \li Some configurations of QtNetwork use OpenSSL at run-time. Deployment
+ Some configurations of QtNetwork use OpenSSL at run-time. Deployment
of OpenSSL libraries is subject to both licensing and export restrictions.
- More information can be found in the \l{Secure Sockets Layer (SSL) Classes}
- documentation.
-
- \endtable
-
- For more information, see \l{Third-Party Licenses Used in Qt}.
+ For more information, see \l{Secure Sockets Layer (SSL) Classes}.
\section1 Platform-Specific Notes
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index 973c34aa1..b5f7932e8 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -46,8 +46,18 @@
*/
/*!
- \externalpage https://developer.apple.com/news/?id=12172013a
- \title Xcode5Req
+ \externalpage https://developer.apple.com/programs/
+ \title Apple Developer Program
+*/
+
+/*!
+ \externalpage http://help.apple.com/xcode/mac/8.0/#/dev10510b1f7
+ \title Create asset catalogs and sets
+*/
+
+/*!
+ \externalpage https://developer.apple.com/library/content/qa/qa1686/_index.html
+ \title App Icons on iPhone, iPad and Apple Watch
*/
/*!
diff --git a/doc/src/platforms/apple-getting-started.qdocinc b/doc/src/platforms/apple-getting-started.qdocinc
new file mode 100644
index 000000000..1f12a7399
--- /dev/null
+++ b/doc/src/platforms/apple-getting-started.qdocinc
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*
+//! [getting started]
+ \section1 Getting Started
+
+ Development and deployment is done using Xcode. The supported
+ workflow is to maintain a \c .pro file based project, which
+ generates an Xcode project. Building and deploying can be done
+ using either Xcode or Qt Creator. We will look at that in more
+ detail in the next section.
+
+ The minimum deployment target for Qt applications is specified in
+ \l {Supported Platforms}.
+
+ \section2 Setting Up the Development Environment
+
+ You can download the Qt 5 installers from the \l Downloads page.
+ For more information, see \l{Getting Started with Qt}.
+
+ Before installing Qt, you first need to install
+ Xcode. You will find it in the Mac App Store \l{Xcode}{here}.
+
+ \note As recommended by Apple, you should always use the latest
+ Xcode version when building your applications for the App Store.
+ In practice this means you also need the latest version of \macos to develop
+ apps with Qt, due to Xcode's system requirements.
+
+ For running Qt applications on your Mac or in the simulator that comes with
+ Xcode, this is all you need. However, for running applications on a
+ mobile device and/or publishing your applications in the App Store, you must
+ join the \l{Apple Developer Program}, and set up
+ developer certificates and provisioning profiles. The easiest
+ solution is to use a profile that takes any App ID (a \c *).
+
+ Before building any Qt applications, you should test that Xcode
+ is set up correctly, for example, by running one of the standard
+ Xcode application templates on your device.
+
+ \section2 Building Applications From the Command Line
+
+ As mentioned previously, the development workflow consists
+ of maintaining a normal \c .pro file project and exporting it to
+ Xcode.
+
+ Here is how to build a project with Xcode:
+
+ \list
+ \li run qmake (if you have not done so previously)
+ \li open the resulting \c .xcodeproj file in Xcode
+ \li build the application in Xcode
+ \endlist
+
+ Note that you must re-import the project if its setup changes, for
+ example, when adding or removing source files.
+
+ \section2 Building Applications with Qt Creator
+
+ You can find information on how to set up and run Apple mobile device
+ applications in Qt Creator's manual:
+
+ \list
+ \li \l{Qt Creator: Connecting iOS devices}{Connecting Apple Mobile Devices}.
+ \endlist
+
+ As mentioned previously, you must have Xcode installed.
+
+ \section1 Using Objective-C Code in Qt Applications
+
+ Clang, the compiler used for applications on Apple Platforms, allows mixing
+ C++ and Objective-C code. To enable this mode, suffix your source
+ files with \c .mm, and add them to \c OBJECTIVE_SOURCES instead of
+ \c SOURCES in the \c .pro file. This makes it possible to use
+ frameworks from Apple's Developer Library in Qt applications.
+ Most useful is perhaps the possibility for adding In-App
+ Purchasing with the StoreKit framework.
+
+ We currently have one example mixing Objective-C and C++ code. You
+ find it
+ \l{http://wiki.qt.io/Mixing_C_and_ObjectiveC_Code}{here}.
+//! [getting started]
+*/
diff --git a/doc/src/platforms/emb-linux.qdoc b/doc/src/platforms/emb-linux.qdoc
index 2da6923c0..203cc9b29 100644
--- a/doc/src/platforms/emb-linux.qdoc
+++ b/doc/src/platforms/emb-linux.qdoc
@@ -37,7 +37,7 @@
through Wayland.
There are multiple platform plugins that are potentially usable on
- Embedded Linux systems: EGLFS, LinuxFB, KMS, DirectFB, Wayland. The
+ Embedded Linux systems: EGLFS, LinuxFB, DirectFB, Wayland. The
availability of these depend on the configuration of Qt. On many
boards \e eglfs is chosen as the default one. If the default is not
suitable, the \c QT_QPA_PLATFORM environment variable parameter can
@@ -296,9 +296,22 @@
\section2 LinuxFB
- This plugin writes directly to the framebuffer. Only software-rendered content
- is supported. Note that on some setups the display performance is expected to
- be limited.
+ This plugin writes directly to the framebuffer via the fbdev subsystem of
+ Linux. Only software-rendered content is supported. Note that on some setups
+ the display performance is expected to be limited.
+
+ As of Qt 5.9, DRM dumb buffer support is also available due to fbdev being
+ deprecated in the Linux kernel. This must be requested by setting the
+ \c QT_QPA_FB_DRM environment variable to a non-zero value. When set, provided
+ that dumb buffers are supported by the system, legacy framebuffer devices like
+ \c{/dev/fb0} are never accessed. Instead, rendering is set up via the DRM
+ APIs, similarly to the \c{eglfs_kms} backend of eglfs. The output will be
+ double-buffered and page flipped, providing proper vsync for software-rendered
+ content as well.
+
+ \note when dumb buffers are in use, none of the options described below are
+ applicable since properties like physical and logical screen sizes are all
+ queried automatically.
The \c linuxfb plugin allows specifying additional settings by passing them
in the \c QT_QPA_PLATFORM environment variable or \c -platform command-line
@@ -335,6 +348,12 @@
\endlist
+ As of Qt 5.9, the behavior of eglfs and linuxfb has been synchronized when it
+ comes to the window sizing policy: the first top-level window is forced to
+ cover the entire screen with both platform plugins. If this is not desired,
+ set the environment variable \c{QT_QPA_FB_FORCE_FULLSCREEN} to \c 0 in order
+ to restore the behavior of earlier Qt versions.
+
\section1 Input
When no windowing system is present, the mouse, keyboard, and touch input are
@@ -716,6 +735,26 @@
not knowing about multiple screens and relying solely on the first screen's
values.
+ Each active output from the \c outputs array corresponds to one QScreen
+ instance reported from QGuiApplication::screens(). The primary screen reported
+ by QGuiApplication::primaryScreen() is by default the screen that gets
+ registered first. When not using \c virtualIndex, this means the decision is
+ based on the DRM connector order. To override this, set the property
+ \c primary to \c true on the desired entry in the \c outputs list. For example,
+ to ensure the screen corresponding to the VGA output will be the primary even
+ when the system happens to report the HDMI one first, one can do the following:
+
+ \badcode
+ {
+ "device": "/dev/dri/card0",
+ "outputs": [
+ { "name": "HDMI1" },
+ { "name": "VGA1", "mode": "1280x720", "primary": true },
+ { "name": "LVDS1", "mode": "off" }
+ ]
+ }
+ \endcode
+
For troubleshooting it might be useful to enable debug logs from the KMS/DRM
backend. To do this, enable the categorized logging rule, \c qt.qpa.eglfs.kms.
diff --git a/doc/src/platforms/ios.qdoc b/doc/src/platforms/ios.qdoc
index a404ebf30..2441188f3 100644
--- a/doc/src/platforms/ios.qdoc
+++ b/doc/src/platforms/ios.qdoc
@@ -32,80 +32,11 @@
\ingroup supportedplatform
Qt's iOS port allows you to run Qt applications on iOS devices,
- such as iPhones and iPads.
+ such as iPhones, iPads, and iPod Touches.
- \section1 Getting Started
+ \include apple-getting-started.qdocinc getting started
- Development and deployment is done using Xcode. The supported
- workflow is to maintain a \c .pro file based project, which
- generates an Xcode project. Building and deploying can be done
- using either Xcode or Qt Creator. We will look at that in more
- detail in the next section.
-
- The minimum deployment target for Qt applications is specified in
- \l {Supported Platforms}. Qt then supports the following device types
- (iOS might need to be upgraded on some devices).
-
- \list
- \li iPhone
- \li iPod Touch
- \li iPad
- \endlist
-
- \section2 Setting Up the Development Environment
-
- You can download the Qt 5 installers from the \l Downloads page.
- For more information, see \l{Getting Started with Qt}.
-
- Before installing Qt, you first need to install
- Xcode. You will find it in the Mac App Store \l{Xcode}{here}.
-
- \note As \l{Xcode5Req}{required by Apple}, you should always use the latest
- Xcode version when building your applications for the App Store.
- In practice this means you also need the latest version of \macos to develop
- iOS apps with Qt, due to Xcode's system requirements.
-
- For running Qt applications in the simulator that comes with Xcode,
- this is all you need. However, for running applications on a
- device and publishing your applications in the App Store, you must
- join the iOS Developer Program (see
- \l{https://developer.apple.com/programs/ios/}), and set up
- developer certificates and provisioning profiles. The easiest
- solution is to use a profile that takes any App ID (a \c *).
-
- Before building any Qt applications, you should test that Xcode
- is set up correctly, for example, by running one of the standard
- Xcode application templates on your device.
-
- \section2 Building Applications From the Command Line
-
- As mentioned previously, the development workflow on iOS consists
- of maintaining a normal \c .pro file project and export it to
- Xcode.
-
- Here is how to build a project with Xcode:
-
- \list
- \li run qmake (if you have not done so previously)
- \li open the resulting \c .xcodeproject file in Xcode
- \li build the application in Xcode
- \endlist
-
- Note that you must re-import the project if its setup changes, for
- example, when adding or removing source files.
-
- \section1 Building Applications with Qt Creator
-
- You can find information on how to set up and run iOS applications
- in Qt Creator's manual:
-
- \list
- \li \l{Qt Creator: Connecting iOS devices}{Connecting iOS Devices}.
- \endlist
-
- As mentioned previously, you must have Xcode installed.
-
- \section2 Examples for iOS
+ \section1 Examples for iOS
In Qt Creator, tested examples on iOS can be looked up. Use the \c ios
keyword to search for examples in the Qt Creator Welcome mode. Note that
@@ -114,20 +45,6 @@
For a list of examples known to work on iOS devices, visit
\l{Qt for iOS Examples}.
- \section1 Using Objective-C Code in Qt Applications
-
- Clang, the compiler used for iOS applications, allows mixing C++
- and Objective-C code. To enable this mode, suffix your source
- files with \.c mm, and add them to \c OBJECTIVE_SOURCES instead of
- \c SOURCES in the \c .pro file. This makes it possible to use
- frameworks from Apple's iOS Developer Library in Qt applications.
- Most useful is perhaps the possibility for adding In-App
- Purchasing with the StoreKit framework.
-
- We currently have one example mixing Objective-C and C++ code. You
- find it
- \l{http://wiki.qt.io/Mixing_C_and_ObjectiveC_Code}{here}.
-
\section1 Related Topics
The following topics provide more details about Qt for iOS:
@@ -317,7 +234,7 @@
}
\endcode
- For image resources, an alternative way is to make use of \l {https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html}
+ For image resources, an alternative way is to make use of \l {Create asset catalogs and sets}
{asset catalogs} in Xcode, which can be added in a similar way:
\badcode
ios {
@@ -335,7 +252,7 @@
to set them in the .pro file.
To support all resolutions and devices, several images should be created.
- A detailed list of what is required is available at \l {https://developer.apple.com/library/ios/qa/qa1686/_index.html}{Icon files}.
+ A detailed list of what is required is available at \l {App Icons on iPhone, iPad and Apple Watch}{Icon files}.
The filename is not important, but the actual pixel size is.
Just a few icons are required.
However, to support both iPhone and iPad, the following images
diff --git a/doc/src/platforms/osx.qdoc b/doc/src/platforms/osx.qdoc
index d33046ae4..f57b300ab 100644
--- a/doc/src/platforms/osx.qdoc
+++ b/doc/src/platforms/osx.qdoc
@@ -64,14 +64,17 @@
See \l{Supported Platforms} for the list of \macos versions supported by Qt.
Qt can be built for either x86 or x86_64. 64-bit is used by default.
- To select a 32-bit build, use the \c macx-clang-32 or \c macx-g++32 mkspec.
+ To select a 32-bit build, use the \c QMAKE_APPLE_DEVICE_ARCHS \c qmake variable.
This is selectable at configure time:
\code
- ./configure -platform macx-clang-32
+ ./configure -platform macx-clang QMAKE_APPLE_DEVICE_ARCHS=i386
\endcode
- The Qt build system does not support building unversal binaries directly.
- Instead, use the \c lipo tool to glue two Qt builds together.
+ \c QMAKE_APPLE_DEVICE_ARCHS can also be specified as a space-delimited list
+ in order to build for multiple architectures simultaneously:
+ \code
+ ./configure -platform macx-clang QMAKE_APPLE_DEVICE_ARCHS="i386 x86_64 x86_64h"
+ \endcode
\note Qt 5 does not support OS X on PowerPC.
\note Static builds are not tested.
diff --git a/doc/src/platforms/porting-notes.qdocinc b/doc/src/platforms/porting-notes.qdocinc
index ddef24f2f..9f5364798 100644
--- a/doc/src/platforms/porting-notes.qdocinc
+++ b/doc/src/platforms/porting-notes.qdocinc
@@ -1,4 +1,4 @@
-pwd/****************************************************************************
+/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 4de548b80..9fb3ce04b 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -58,7 +58,10 @@
A \e {configuration} is a combination of an operating system version,
a compiler version, and a graphics system.
+ \b {Supported configurations for Qt \qtver}
+
\include supported-platforms.qdocinc latest
+
In the above table, the configurations in \b bold are \e {reference
configurations}.
diff --git a/doc/src/platforms/supported-platforms.qdocinc b/doc/src/platforms/supported-platforms.qdocinc
index d6b2ea74e..8cd9d4397 100644
--- a/doc/src/platforms/supported-platforms.qdocinc
+++ b/doc/src/platforms/supported-platforms.qdocinc
@@ -39,10 +39,86 @@ Mobile Platforms: \l {Qt for Android}{Android},
//! [mobile]
//! [all]
+\section1 Qt 5.9
+\b {Supported until one year after release}
+
+//! [5.9] //! [latest]
+
+ \table 80%
+ \header \li Platform \li Compiler \li Notes
+ \header \li {3,1} \l {Qt for Windows}{Windows}
+ \row \li Windows 10 (64-bit)
+ \li MSVC 2017, \b {MSVC 2015}, MSVC 2013, MinGW 5.3
+ \li
+ \row \li Windows 10 (32-bit)
+ \li MSVC 2017, \b {MSVC 2015}, MSVC 2013, MinGW 5.3
+ \li
+ \row \li Windows 8.1 (64-bit)
+ \li MSVC 2017, MSVC 2015, \b {MSVC 2013}, MinGW 5.3
+ \li
+ \row \li Windows 8.1 (32-bit)
+ \li MSVC 2017, MSVC 2015, \b {MSVC 2013}, MinGW 5.3
+ \li
+ \row \li Windows 7 (64-bit)
+ \li MSVC 2017, MSVC 2015, MSVC 2013, \b {MinGW 5.3}
+ \li
+ \row \li Windows 7 (32-bit)
+ \li MSVC 2017, MSVC 2015, MSVC 2013, MinGW 5.3
+ \li \l{https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/5.3.0/threads-posix/dwarf/i686-5.3.0-release-posix-dwarf-rt_v4-rev0.7z/download}{MinGW-builds gcc 5.3.0 (32-bit)}
+
+ \row \li {3,1} \header \li {3,1} \l {Qt for Linux/X11}{Linux/X11}
+ \row \li openSUSE 42.1 (64-bit)
+ \li \b {GCC 4.8.5}
+ \li
+ \row \li Red Hat Enterprise Linux 6.6 (64-bit)
+ \li \b {GCC 4.9.1}
+ \li devtoolset-3
+ \row \li Red Hat Enterprise Linux 7.2 (64-bit)
+ \li \b {GCC 5.3.1}
+ \li devtoolset-4
+ \row \li Ubuntu 14.04 (64-bit)
+ \li GCC 4.8.2
+ \li Ubuntu 4.8.2-19ubuntu1
+ \row \li Ubuntu 16.04 (64-bit)
+ \li \b {GCC as provided by Canonical}
+ \li
+ \row \li (Linux 32/64-bit)
+ \li GCC 4.8, GCC 4.9, GCC 5.3
+ \li
+
+ \row \li {3,1} \header \li {3,1} \l {Qt for macOS}{\macos}
+ \row \li \macos \b 10.10, \b 10.11, \b 10.12
+ \li \b {Clang as provided by Apple}
+ \li
+
+ \row \li {3,1} \header \li {3,1}
+ Embedded Platforms: \l {Qt for Embedded Linux}{Embedded Linux}, \l {QNX}
+ \row \li \l {Qt for Embedded Linux}{Embedded Linux}
+ \li GCC \li ARM Cortex-A, Intel boards with GCC-based toolchains
+ \row \li QNX 6.6.0, 7.0 (armv7le and x86)
+ \li \b {QCC as provided by QNX)
+ \li Hosts: \b {RHEL 6.6 (64-bit)}, \b {RHEL 7.2 (64-bit)}, Windows
+
+ \row \li {3,1} \header \li {3,1}
+ Mobile Platforms: \l {Qt for Android}{Android}, \l {Qt for iOS}{iOS},
+ Ubuntu Touch, Universal Windows Platform (UWP)
+ \row \li Universal Windows Platform (UWP) (x86, \b x86_64, armv7)
+ \li \b {MSVC 2017}, \b {MSVC 2015}
+ \li Hosts: \b {Windows 10}
+ \row \li iOS 8, 9, 10 (armv7, arm64)
+ \li \b {Clang as provided by Apple}
+ \li \b {\macos 10.12 host}
+ \row \li Android (API Level: 16)
+ \li \b {GCC as provided by Google}, \b {MinGW 5.3}
+ \li Hosts: \b {RHEL 7.2 (64-bit)}, \b{\macos 10.12}, \b {Windows 7 (64-bit)}
+ \endtable
+
+//! [5.9] //! [latest]
+
\section1 Qt 5.8
-//! [5.8] //! [latest]
- \b {Supported until one year after release}
+//! [5.8]
+ \b {Supported until Jan 23, 2018}
\table 80%
\header \li Platform \li Compiler \li Notes
@@ -117,7 +193,7 @@ Mobile Platforms: \l {Qt for Android}{Android},
\li Hosts: \b {Ubuntu 14.04 (64-bit)}, \macos, Windows
\endtable
-//! [5.8] //! [latest]
+//! [5.8]
\section1 Qt 5.7
diff --git a/doc/src/platforms/windows.qdoc b/doc/src/platforms/windows.qdoc
index bb9f79fde..71693ab7c 100644
--- a/doc/src/platforms/windows.qdoc
+++ b/doc/src/platforms/windows.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -221,7 +221,7 @@
When configured with \c{-opengl dynamic}, neither Qt nor the applications
built using \c qmake will link to the opengl32 (standard desktop OpenGL) or
- libGLESv2 (ANGLE) libraries. Instead, the appropriate library is chosen at
+ QtANGLE libraries. Instead, the appropriate library is chosen at
runtime. By default, Qt will determine whether the system's opengl32.dll
provides OpenGL 2 functions. If these are present, opengl32.dll is used,
otherwise the ANGLE libraries will be used. In case the ANGLE libraries are
@@ -243,7 +243,7 @@
The dynamic loading has a significant impact on applications that contain
native OpenGL calls: they may fail to link since \c qmake no longer
- automatically adds opengl32.lib or libglesv2.lib. Instead, applications are
+ automatically adds opengl32.lib or QtANGLE.lib. Instead, applications are
expected to use the OpenGL functions via the QOpenGLFunctions class. Thus
the direct dependency on the OpenGL library is removed and all calls will be
routed during runtime to the implementation chosen by Qt.
@@ -557,7 +557,7 @@
\badcode
Usage: windeployqt [options] [files]
- Qt Deploy Tool 5.6.0
+ Qt Deploy Tool 5.9.0
The simplest way to use windeployqt is to add the bin directory of your Qt
installation (e.g. <QT_DIR\bin>) to the PATH variable and then run:
@@ -567,54 +567,55 @@
windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>
Options:
- -?, -h, --help Displays this help.
- -v, --version Displays version information.
- --dir <directory> Use directory instead of binary directory.
- --libdir <path> Copy libraries to path.
- --plugindir <path> Copy plugins to path.
- --debug Assume debug binaries.
- --release Assume release binaries.
- --pdb Deploy .pdb files (MSVC).
- --force Force updating files.
- --dry-run Simulation mode. Behave normally, but do not
- copy/update any files.
- --no-plugins Skip plugin deployment.
- --no-libraries Skip library deployment.
- --qmldir <directory> Scan for QML-imports starting from directory.
- --no-quick-import Skip deployment of Qt Quick imports.
- --no-translations Skip deployment of translations.
- --no-system-d3d-compiler Skip deployment of the system D3D compiler.
- --compiler-runtime Deploy compiler runtime (Desktop only).
- --no-compiler-runtime Do not deploy compiler runtime (Desktop only).
- --webkit2 Deployment of WebKit2 (web process).
- --no-webkit2 Skip deployment of WebKit2.
- --json Print to stdout in JSON format.
- --angle Force deployment of ANGLE.
- --no-angle Disable deployment of ANGLE.
- --no-opengl-sw Do not deploy the software rasterizer library.
- --list <option> Print only the names of the files copied.
- Available options:
- source: absolute path of the source files
- target: absolute path of the target files
- relative: paths of the target files, relative
- to the target directory
- mapping: outputs the source and the relative
- target, suitable for use within an
- Appx mapping file
- --verbose <level> Verbose level.
+ -?, -h, --help Displays this help.
+ -v, --version Displays version information.
+ --dir <directory> Use directory instead of binary directory.
+ --libdir <path> Copy libraries to path.
+ --plugindir <path> Copy plugins to path.
+ --debug Assume debug binaries.
+ --release Assume release binaries.
+ --pdb Deploy .pdb files (MSVC).
+ --force Force updating files.
+ --dry-run Simulation mode. Behave normally, but do not
+ copy/update any files.
+ --no-patchqt Do not patch the Qt5Core library.
+ --no-plugins Skip plugin deployment.
+ --no-libraries Skip library deployment.
+ --qmldir <directory> Scan for QML-imports starting from directory.
+ --no-quick-import Skip deployment of Qt Quick imports.
+ --no-translations Skip deployment of translations.
+ --no-system-d3d-compiler Skip deployment of the system D3D compiler.
+ --compiler-runtime Deploy compiler runtime (Desktop only).
+ --no-compiler-runtime Do not deploy compiler runtime (Desktop only).
+ --webkit2 Deployment of WebKit2 (web process).
+ --no-webkit2 Skip deployment of WebKit2.
+ --json Print to stdout in JSON format.
+ --angle Force deployment of ANGLE.
+ --no-angle Disable deployment of ANGLE.
+ --no-opengl-sw Do not deploy the software rasterizer library.
+ --list <option> Print only the names of the files copied.
+ Available options:
+ source: absolute path of the source files
+ target: absolute path of the target files
+ relative: paths of the target files, relative
+ to the target directory
+ mapping: outputs the source and the relative
+ target, suitable for use within an
+ Appx mapping file
+ --verbose <level> Verbose level.
Qt libraries can be added by passing their name (-xml) or removed by passing
the name prepended by --no- (--no-xml). Available libraries:
- bluetooth clucene concurrent core declarative designer designercomponents
+ bluetooth concurrent core declarative designer designercomponents
enginio gui qthelp multimedia multimediawidgets multimediaquick network nfc
opengl positioning printsupport qml qmltooling quick quickparticles quickwidgets
- script scripttools sensors serialport sql svg test
+ script scripttools sensors serialport sql svg test webkit webkitwidgets
websockets widgets winextras xml xmlpatterns webenginecore webengine
webenginewidgets 3dcore 3drenderer 3dquick 3dquickrenderer 3dinput geoservices
- webchannel
+ webchannel texttospeech serialbus
Arguments:
- [files] Binaries or directory containing the binary.
+ [files] Binaries or directory containing the binary.
\endcode
\section1 Static Linking
@@ -716,9 +717,9 @@
additional information about plugins and how Qt searches for them.
If \l{ANGLE} (the default) is used, you additionally need to include both
- \c libEGL.dll and \c libGLESv2.dll from Qt's 'lib' directory as well as
+ \c QtANGLE.dll from Qt's 'lib' directory as well as
the HLSL compiler from DirectX. The HLSL compiler library,
- d3dcompiler_XX.dll, where XX is the version number that ANGLE (libGLESv2)
+ d3dcompiler_XX.dll, where XX is the version number that ANGLE
was linked against.
If Qt was configured to link against ICU or OpenSSL, the respective DLL's
@@ -819,10 +820,9 @@
\table 100%
\header
- \li{3,1} File Name
+ \li{2,1} File Name
\row
- \li libEGL.dll
- \li libGLESv2.dll
+ \li QtANGLE.dll
\li d3dcompiler_XX.dll
\endtable
diff --git a/doc/src/platforms/winrt.qdoc b/doc/src/platforms/winrt.qdoc
index b9c4f3dbd..d42839a9a 100644
--- a/doc/src/platforms/winrt.qdoc
+++ b/doc/src/platforms/winrt.qdoc
@@ -32,9 +32,8 @@
\ingroup supportedplatform
Qt for WinRT allows you to run Qt applications on devices supporting the
- Windows Store App APIs. This includes Modern UI applications in Windows 8.1
- and up, as well as devices running Windows RT 8.1 and Windows Phone 8.1
- and up.
+ Windows Store App APIs. This covers Modern UI applications on Windows 10,
+ Windows 10 Mobile and Windows 10 IoT.
Microsoft introduced a new design paradigm with the Windows 8 Modern UI. A
core part of this new approach is Windows Runtime (WinRT) that supports
@@ -48,7 +47,7 @@
\section1 Requirements
Development for Windows Runtime requires a Microsoft Windows development host.
- The minimum version supported is Windows 8.1.
+ The minimum version supported is Windows 10.
Depending on your device target you will need the following tools provided
by Microsoft to be installed:
@@ -58,25 +57,22 @@
\li Device Target
\li Environment
\row
- \li Windows 8.1 Modern UI
- \li Visual Studio 2013 for Windows
+ \li Windows 10 Mobile
+ \li Visual Studio 2015
\row
- \li Windows RT
- \li Visual Studio 2013 for Windows
+ \li Windows 10 Desktop
+ \li Visual Studio 2015
\row
- \li Windows Phone 8.1
- \li Visual Studio 2013 for Windows Phone
+ \li Windows 10 IoT
+ \li Visual Studio 2015
\row
- \li Windows 10
+ \li XBox One
\li Visual Studio 2015
\endtable
If you are targeting a remote device, please follow all instructions by
Visual Studio to set it up correctly.
- If you are targeting an emulator for Windows Phone, Windows 8.1 Pro is
- required by Microsoft to launch the emulator itself.
-
\section1 Getting Started
\section2 Notes to Desktop Users
@@ -164,15 +160,14 @@
Please make sure to use an x86 command prompt (either use the \e {VS x86 Native
Tools Command Prompt} or call \e vcvarsall.bat without any parameter or with \c x86)
- for every WinRT/Windows Phone build. While the toolchain which is used for the
+ for every WinRT build. While the toolchain which is used for the
target is set automatically, the command prompt decides what will be used for the
host tools like \e qmake or \e moc. Building these tools might fail if another
command prompt is used.
The WinRT mkspec format is \c {<platform>-<architecture>-<toolchain>}
- where \e platform can be \c winrt or \c winphone and architecture can be
- \c arm, \c x86, or \c x64. The following is an example of building qtbase
- for WinRT:
+ where architecture can be \c arm, \c x86, or \c x64. The following is an
+ example of building qtbase for WinRT:
\code
> ./configure -xplatform winrt-x64-msvc2013 -release
> nmake/jom
@@ -215,7 +210,7 @@
\endcode
\note \l{winrtrunner}{The WinRT Runner Tool} can perform the same operation with the --install option.
- If that worked, you should be able to find your application in Windows 8.1's
+ If that worked, you should be able to find your application in Windows'
start screen. To remove your application, use Windows' built-in way to
uninstall applications (right-click or tap and hold the application and
choose \c{Uninstall}).
diff --git a/doc/src/qmlapp/debugging.qdoc b/doc/src/qmlapp/debugging.qdoc
index 739e1b1e1..78ca1027d 100644
--- a/doc/src/qmlapp/debugging.qdoc
+++ b/doc/src/qmlapp/debugging.qdoc
@@ -45,8 +45,9 @@ function f(a, b) {
}
\endcode
-The output is generated using the qDebug, qWarning, qCritical methods in C++
-(see also \l {Debugging Techniques}).
+The output is generated using the qCDebug, qCWarning, qCCritical methods in C++,
+with a category of "qml" or "js", depending on the type of file doing the logging.
+See also \l {Debugging Techniques}.
\section2 Assert
\keyword console assert
diff --git a/doc/src/qmlapp/usecases/layouts.qdoc b/doc/src/qmlapp/usecases/layouts.qdoc
index 8802ccfcc..fe2098e55 100644
--- a/doc/src/qmlapp/usecases/layouts.qdoc
+++ b/doc/src/qmlapp/usecases/layouts.qdoc
@@ -50,9 +50,11 @@ accomplished by setting the x and y coordinates to the appropriate bindings.
\section1 Anchors
-The \c Item type provides the abilitiy to anchor to other \l Item types. There are six anchor lines for each item: \e left,
-\e right, \e{vertical center}, \e top, \e bottom and \e{horizontal center}. The three vertical anchor lines can be anchored to any of
-the three vertical anchor lines of another item, and the three horizontal anchor lines can be anchored to the
+The \c Item type provides the abilitiy to anchor to other \l Item types. There
+are seven anchor lines for each item: \e left, \e right, \e{vertical center},
+\e top, \e bottom, \e baseline and \e{horizontal center}. The three vertical
+anchor lines can be anchored to any of the three vertical anchor lines of
+another item, and the four horizontal anchor lines can be anchored to the
horizontal anchor lines of another item.
For full details, see \l {Positioning with Anchors} and the documentation of the \l{Item::anchors.top}{anchors property}.
diff --git a/doc/src/qt5-intro.qdoc b/doc/src/qt5-intro.qdoc
index d1941e435..c28ea7643 100644
--- a/doc/src/qt5-intro.qdoc
+++ b/doc/src/qt5-intro.qdoc
@@ -61,8 +61,8 @@
<table style="background:transparent; border: none">
<tr><td style="width:50%; border: none; vertical-align: top">
\endraw
- Qt now comes with production-ready ports for Android, iOS, and WinRT
- (including Windows Phone 8). Extensive work has gone into these platform
+ Qt now comes with production-ready ports for Android, iOS, and WinRT.
+ Extensive work has gone into these platform
ports, which now extend Qt’s multi-platform promise to cover desktop,
embedded, and mobile platforms.
\raw HTML
@@ -508,6 +508,7 @@
\section1 Related Topics
\list
+ \li \l{What's New in Qt 5.9}
\li \l{What's New in Qt 5.8}
\li \l{What's New in Qt 5.7}
\li \l{What's New in Qt 5.6}
diff --git a/doc/src/qtmodules.qdoc b/doc/src/qtmodules.qdoc
index 68c1a1a5e..fc874d5c2 100644
--- a/doc/src/qtmodules.qdoc
+++ b/doc/src/qtmodules.qdoc
@@ -173,6 +173,13 @@
\li
\li Classes for inter-process communication over the D-Bus protocol.
\row
+ \li \l[QtGamepad]{Qt Gamepad}
+ \li All
+ \li \l{Qt for Android}{Android}, \l{Qt for iOS}{iOS}, \l{Qt for macOS}{\macos},
+ tvOS (including the tvOS remote), \l{Qt for Linux/X11}{Linux},
+ \l{Qt for Windows}{Windows}
+ \li Enables Qt applications to support the use of gamepad hardware.
+ \row
\li \l[QtGraphicalEffects]{Qt Graphical Effects}
\li All
\li
@@ -386,12 +393,13 @@
\header
\li Module
\li Description
- \row \li \l{Qt Gamepad}
- \li Enables Qt applications to support the use of gamepad hardware.
\row \li \l{Qt Network Authorization}
\li Provides support for OAuth-based authorization to online services.
\row \li \l{Qt Speech}
\li Provides support for accessibility features such as text-to-speech.
+ \row \li \l{Qt Remote Objects}
+ \li Provides an easy to use mechanism for sharing a QObject's API
+ (Properties/Signals/Slots) between processes or devices.
\endtable
diff --git a/doc/src/signalslotsyntaxes.qdoc b/doc/src/signalslotsyntaxes.qdoc
index 546b18c00..14400b43c 100644
--- a/doc/src/signalslotsyntaxes.qdoc
+++ b/doc/src/signalslotsyntaxes.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2014 Sze Howe Koh <szehowe.koh@gmail.com>
+** Copyright (C) 2017 Sze Howe Koh <szehowe.koh@gmail.com>
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -192,16 +192,17 @@ result, the desired instance of an overloaded signal or slot is unambiguous.
In contrast, with the functor-based syntax, an overloaded signal or slot must
be casted to tell the compiler which instance to use.
-For example, \l QSignalMapper has four versions of the \c mapped() signal:
+For example, \l QLCDNumber has three versions of the \c display() slot:
\list 1
-\li \c QSignalMapper::mapped(int)
-\li \c QSignalMapper::mapped(QString)
-\li \c QSignalMapper::mapped(QWidget*)
-\li \c QSignalMapper::mapped(QObject*)
+\li \c QLCDNumber::display(int)
+\li \c QLCDNumber::display(double)
+\li \c QLCDNumber::display(QString)
\endlist
-To connect the \c int version to QSpinBox::setValue(), the two syntaxes are:
+To connect the \c int version to QSlider::valueChanged(), the two syntaxes are:
\snippet snippets/signalsandslots/signalslotsyntaxes.cpp overload
+\sa qOverload()
+
*/
diff --git a/doc/src/snippets/signalsandslots/signalslotsyntaxes.cpp b/doc/src/snippets/signalsandslots/signalslotsyntaxes.cpp
index dbdec7121..a6d9aa6f8 100644
--- a/doc/src/snippets/signalsandslots/signalslotsyntaxes.cpp
+++ b/doc/src/snippets/signalsandslots/signalslotsyntaxes.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2014 Sze Howe Koh <szehowe.koh@gmail.com>
+** Copyright (C) 2017 Sze Howe Koh <szehowe.koh@gmail.com>
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -136,20 +136,28 @@ DemoWidget::DemoWidget(QWidget *parent) : QWidget(parent) {
void DemoWidget::demoOverloadConnect()
{
//! [overload]
- auto mapper = new QSignalMapper(this);
- auto spinBox = new QSpinBox(this);
+ auto slider = new QSlider(this);
+ auto lcd = new QLCDNumber(this);
// String-based syntax
- connect(mapper, SIGNAL(mapped(int)),
- spinBox, SLOT(setValue(int)));
+ connect(slider, SIGNAL(valueChanged(int)),
+ lcd, SLOT(display(int)));
// Functor-based syntax, first alternative
- connect(mapper, static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped),
- spinBox, &QSpinBox::setValue);
+ connect(slider, &QSlider::valueChanged,
+ lcd, static_cast<void (QLCDNumber::*)(int)>(&QLCDNumber::display));
// Functor-based syntax, second alternative
- void (QSignalMapper::*mySignal)(int) = &QSignalMapper::mapped;
- connect(mapper, mySignal,
- spinBox, &QSpinBox::setValue);
+ void (QLCDNumber::*mySlot)(int) = &QLCDNumber::display;
+ connect(slider, &QSlider::valueChanged,
+ lcd, mySlot);
+
+ // Functor-based syntax, third alternative
+ connect(slider, &QSlider::valueChanged,
+ lcd, QOverload<int>::of(&QLCDNumber::display));
+
+ // Functor-based syntax, fourth alternative (requires C++14)
+ connect(slider, &QSlider::valueChanged,
+ lcd, qOverload<int>(&QLCDNumber::display));
//! [overload]
}
diff --git a/doc/src/snippets/signalsandslots/signalslotsyntaxes.pro b/doc/src/snippets/signalsandslots/signalslotsyntaxes.pro
index 1350c9f3d..b3b1b9be4 100644
--- a/doc/src/snippets/signalsandslots/signalslotsyntaxes.pro
+++ b/doc/src/snippets/signalsandslots/signalslotsyntaxes.pro
@@ -1,5 +1,5 @@
QT += widgets quickwidgets multimedia
-CONFIG += c++11
+CONFIG += c++14
HEADERS = signalslotsyntaxes.h
SOURCES = signalslotsyntaxes.cpp
OTHER_FILES = QmlGui.qml
diff --git a/doc/src/whatsnew/whatsnew59.qdoc b/doc/src/whatsnew/whatsnew59.qdoc
new file mode 100644
index 000000000..a54cc7051
--- /dev/null
+++ b/doc/src/whatsnew/whatsnew59.qdoc
@@ -0,0 +1,325 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page whatsnew59.html
+ \title What's New in Qt 5.9
+ \brief Lists the new features in Qt 5.9.
+
+ \section1 New Features in Qt 5.9
+
+ \section2 Qt Core Module
+ \list
+ \li Added the \c {qfloat16 f} and \c {qfloat16 &f} overload functions to
+ the QDataStream class for writing a floating point number to the
+ stream and reading it from the stream.
+ \li Made the QProcessEnvironment class available on iOS, tvOS, watchOS,
+ and VxWorks.
+ \li QRegularExpression now requires the PCRE2 library version 10.20, or
+ later. Support for the PCRE1 library was dropped. A copy of PCRE2
+ is shipped with Qt and will automatically be used on the platforms
+ that lack it.
+ \li Added the QOperatingSystemVersion class to provide convenient
+ access to the operating system and version.
+ \endlist
+
+ \section2 Qt GUI Module
+ \list
+ \li Made the QPainter class' GL engine functional with core profile
+ OpenGL contexts.
+ \li Added the QImage::reinterpretAsFormat() function to change the image
+ format without changing the data.
+ \li Added support for \e {compute shaders} in QOpenGLShader::ShaderType
+ and QOpenGLShaderProgram also with OpenGL ES 3.1 and newer.
+ \li Enabled stem-darkening and gamma-correction on OpenType fonts on
+ platforms that use FreeType, if supported.
+ \endlist
+
+ \section2 Qt Multimedia Module
+ Added the following QML properties:
+ \list
+ \li \l{CameraCapture::supportedResolutions}
+ {CameraCapture.supportedResolutions}
+ \li \l{CameraFlash::supportedModes}{CameraFlash.supportedModes}
+ \li \l{MediaPlayer::notifyInterval}{MediaPlayer.notifyInterval} (also
+ for the \l Audio and \l Video types)
+ \li \l{MediaPlayer::loops}{Video.loops}
+ \endlist
+
+ \section2 Qt Network Module
+ \list
+ \li Added the QNetworkAccessManager::addStrictTransportSecurityHosts()
+ function to support HSTS (HTTP Strict Transport Security) policies.
+ \li Added the QNetworkAccessManager::redirectPolicy() function and the
+ QNetworkRequest::RedirectPolicy enumeration to determine whether the
+ Network Access API should automatically follow a HTTP redirect
+ response.
+ \endlist
+
+ \section2 Qt QML Module
+ \list
+ \li Added support for ahead-of-time generation of QML type caches.
+ \endlist
+
+ \section2 Qt Quick Module
+ \list
+ \li Enabled caching OpenGL shader program binaries used by the Qt GUI
+ module (QPainter's GL paint engine) and the Qt Quick scenegraph on
+ disk to improve application-startup and view-initialization times.
+ \li Added an OpenVG backend for Qt Quick.
+ \li Enabled making window-screen associations directly from QML by using
+ \l {Window::screen}{Window.screen} and \l{Qt::application}
+ {Qt.application.screens}. This enables creating multi-screen aware
+ applications for desktop and embedded without involving C++ code.
+ \li Added a way to query information about the font actually used to
+ render a \l [QtQuick] Text type.
+ \li Added an image provider that can share decoded image data and memory
+ between processes.
+ \endlist
+
+ \section2 Qt Quick Controls 2 Module
+ \list
+ \li Introduced new QML types: \l DelayButton, \l ScrollView.
+ \li Added multi-touch support.
+ \li Made the \l ComboBox type editable.
+ \li Added the \l{Drawer::}{interactive} property for making a \l Drawer
+ type non-interactive and persistent.
+ \li Enabled live value updates (by default) for the \l Slider,
+ \l [QtQuickControls2] RangeSlider, and \l Dial types.
+ \li Added dedicated notification signals for user interaction:
+ AbstractButton::toggled(), Slider::moved(),
+ SpinBox::valueModified(), and so on.
+ \li Enabled incremental discrete scrolling with the \l ScrollBar type.
+ \li Added enabling and disabling the swipe for the \l SwipeDelegate
+ type. In addition, the swipe can now be opened programmatically.
+ \li Added support for the vertical orientation to the
+ \l {SwipeView::orientation}{SwipeView.orientation} property.
+ \endlist
+
+ \section2 Qt 3D Module
+ \list
+ \li Added rendering Qt Quick 2 scenes to a texture and interacting with
+ them within a 3D world.
+ \li Added a Technical Preview of a new animation subsystem that enables
+ non-blocking, keyframe animations on the threadpool and exporting
+ from animations from Blender.
+ \li Added Physics Based Rendering (PBR) material
+ (\l{Qt3DExtras::}{QMetalRoughMaterial} and
+ \l{Qt3DExtras::}{QTexturedMetalRoughMaterial}) to Qt3DExtras for
+ improved appearance when used with environment maps.
+ \li Added 3D text support to Qt3DExtras.
+ \li Added the LevelOfDetail type to control the representation of an
+ entity based on distance from the observer or size on the screen. It
+ comes with a convenience loader class that loads different QML
+ files.
+ \li Made the \l Mesh type plugin based. It comes with plugins for the
+ Wavefront OBJ, PLY and FBX formats and makes it easy to add other
+ formats.
+ \li Added distance field based 2D textured text that can be freely
+ rotated but is based on planar geometry.
+ \endlist
+
+ \section2 Qt Bluetooth Module
+ \list
+ \li Added Classic Bluetooth support for WinRT.
+ \li Added Bluetooth LE Peripheral support for Android.
+ \endlist
+
+ \section2 Qt Charts Module
+ \list
+ \li Added support for minor grid lines for logarithmic axes.
+ \li Added options for legend marker shapes to QLegend::MarkerShape.
+ \li Added support for adding more than one bar series to a chart.
+ \endlist
+
+ \section2 Qt Location Module
+ \list
+ \li Added support for rotating and tilting maps.
+ \li Added touch gestures for rotating and tilting maps.
+ \li Improved support for stacking multiple \l Map types.
+ \li Added the MapCopyrightNotice type to flexibly position the
+ copyrights of multiple map elements on top.
+ \li Enabled styling the HTML copyright using CSS.
+ \li Added support for handing the rendering of map items to the plugin.
+ \li Added the \e MapboxGL plugin that is based on the
+ \c mapbox-gl-native mapping engine.
+ \li Added the \l Map::fitViewportToVisibleMapItems() method to only
+ consider visible items when fitting the viewport.
+ \li Added the MapItemGroup type to combine multiple map items in a
+ separate QML file.
+ \li Added the \l{Map::fieldOfView}{Map.fieldOfView} property to control
+ the camera's field of view when the map is tilted.
+ \li Added the MapParameter type to expose and control plugin-specific
+ runtime functionality.
+ \endlist
+
+ \section2 Qt NFC Module
+ \list
+ \li Enabled using NFC when running as an Android service.
+ \li Added support for communicating with ISO-DEP, NFC-A, NFC-B, NFC-F,
+ and NFC-V tags or smartcards, such as the German eID card,
+ using QNearFieldTarget::sendCommand() on Android.
+ \endlist
+
+ \section2 Qt SerialBus Module
+ \list
+ \li Added the CAN FD Bitrate Switch (BRS) and Error State Indicator
+ (ESI) flags to QCanBusFrame (QCanBusFrame::hasBitrateSwitch() and
+ QCanBusFrame::hasErrorStateIndicator()).
+ \li Added QCanBusDeviceInfo for information about available CAN
+ interfaces.
+ \li Added a plugin to support SYS-TEC electronic CAN adapters on
+ Windows.
+ \endlist
+
+ \section2 Qt Virtual Keyboard Module
+ \list
+ \li Added support for selection handles for the dedicated (desktop)
+ keyboard.
+ \li Changed the behavior of the shift handler to only activate caps lock
+ if the shift key is double-clicked.
+ \li Added support for external keyboard layouts, which allows overriding
+ and exclusion of the built-in keyboard layouts.
+ \li Added a language selection popup for faster selection of the input
+ language.
+ \li Added support for the automatic selection of the only remaining word
+ in the suggestion list.
+ \li Made the word candidate list automatically hidden when inactive.
+ \li Added full screen input mode.
+ \endlist
+
+ \section2 Qt WebEngine Module
+ \list
+ \li Based on Chromium 56.
+ \li Switched internally to the new Chromium build-system GN.
+ \li Added loading with HTTP POST.
+ \li Added support for user scripts with QQuickWebEngineProfiles and for
+ using QQuickWebEngineUserScripts from C++.
+ \li DownloadItems now get a reason when they are interrupted or fail.
+ \endlist
+
+ \section2 Qt WebSockets Module
+ \list
+ \li Added support for handling external QTcpSocket objects.
+ \endlist
+
+ \section2 Embedded Platforms
+ \list
+ \li Added experimental DRM dumb buffer support to the \c linuxfb
+ platform plugin, to help devices that do not support the deprecated
+ \c fbdev model (or have problems with \c fbdev emulation).
+ \li Added support for filtering and prediction of touch events to the
+ \c evdevtouch plugin.
+ \endlist
+
+ \section1 New Modules
+ \list
+ \li \l {Qt Gamepad} - Enables Qt gaming applications to respond to
+ gamepad input.
+ \endlist
+
+ This module was previously released as a technology preview and is
+ now a fully supported Qt add-on module.
+
+ \section1 Technology Preview Modules
+ \list
+ \li \l {Qt Network Authorization} - Online authorization support with
+ OAuth protocol, versions 1 and 2.
+ \li \l {Qt Remote Objects} - Sharing QObject interfaces (signals, slots,
+ and properties) between processes or devices,
+ \li \l {Qt Speech} - Text to speech and speech recognition
+ functionality. Currently only the text to speech features are
+ released. Includes backends for several speech synthesizers on
+ Windows, Linux, macOS, and Android.
+ \endlist
+
+ \section1 Platform Changes
+ \list
+ \li Removed support for WinRT on Windows 8.1.
+ \li Debug builds on GCC platforms now use \c -Og optimizations by
+ default. This can be disabled with the configure flag
+ \c -no-optimize-debug.
+ \endlist
+
+ \section1 Deprecated Functionality
+ \list
+ \li Qt Script
+ \endlist
+
+ Deprecated modules are still included in Qt 5.9, but are considered for
+ removal in future releases.
+
+ \section1 List of API Changes
+
+ The pages below contain a list of API changes in Qt 5.9:
+ \list
+ \li \l{New Classes and Functions in Qt 5.9}
+ \li \l{Obsolete Classes}
+ \endlist
+
+ \section1 Additions to Other Qt 5 Releases
+
+ \list
+ \li \l{What's New in Qt 5.8}
+ \li \l{What's New in Qt 5.7}
+ \li \l{What's New in Qt 5.6}
+ \li \l{What's New in Qt 5.5}
+ \li \l{What's New in Qt 5.4}
+ \li \l{What's New in Qt 5.3}
+ \li \l{What's New in Qt 5.2}
+ \li \l{What's New in Qt 5.1}
+ \li \l{What's New in Qt 5.0}
+ \endlist
+
+*/
+
+/*!
+ \page newclasses59.html
+ \title New Classes and Functions in Qt 5.9
+ \brief A list of new APIs in Qt 5.9.
+
+ This page contains a comprehensive list of all new classes and functions
+ introduced in Qt 5.9. Links to new APIs in previous Qt 5 releases are found
+ at the bottom of this page.
+
+ \sincelist 5.9
+
+ \section1 Additions to Other Qt 5 Releases
+
+ \list
+ \li \l{What's New in Qt 5.8}
+ \li \l{What's New in Qt 5.7}
+ \li \l{What's New in Qt 5.6}
+ \li \l{What's New in Qt 5.5}
+ \li \l{What's New in Qt 5.4}
+ \li \l{What's New in Qt 5.3}
+ \li \l{What's New in Qt 5.2}
+ \li \l{What's New in Qt 5.1}
+ \li \l{What's New in Qt 5.0}
+ \endlist
+*/
+