summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--doc/config/qtdoc.qdocconf14
-rw-r--r--doc/images/qtlocation-mapviewer-demo.jpgbin0 -> 35511 bytes
-rw-r--r--doc/src/classes.qdoc2
-rw-r--r--doc/src/classes/exportedfunctions.qdoc127
-rw-r--r--doc/src/configure.qdoc7
-rw-r--r--doc/src/connectivity.qdoc20
-rw-r--r--doc/src/deployment/deployment-plugins.qdoc2
-rw-r--r--doc/src/deployment/deployment.qdoc10
-rw-r--r--doc/src/development/rcc.qdoc15
-rw-r--r--doc/src/developmenttools.qdoc7
-rw-r--r--doc/src/examples.qdoc15
-rw-r--r--doc/src/external-resources.qdoc44
-rw-r--r--doc/src/frameworks-technologies/threads.qdoc20
-rw-r--r--doc/src/getting-started/controls-texteditor.qdoc20
-rw-r--r--doc/src/getting-started/gettingstartedqt.qdoc2
-rw-r--r--doc/src/getting-started/installation.qdoc6
-rw-r--r--doc/src/getting-started/known-issues.qdoc2
-rw-r--r--doc/src/graphics.qdoc6
-rw-r--r--doc/src/highdpi.qdoc48
-rw-r--r--doc/src/howtos/accelerators.qdoc2
-rw-r--r--doc/src/howtos/appicon.qdoc13
-rw-r--r--doc/src/howtos/session.qdoc28
-rw-r--r--[-rwxr-xr-x]doc/src/images/tree.pngbin27074 -> 27074 bytes
-rw-r--r--doc/src/index.qdoc3
-rw-r--r--doc/src/internationalization/i18n.qdoc5
-rw-r--r--doc/src/legal/licenses.qdoc2
-rw-r--r--doc/src/mobile.qdoc11
-rw-r--r--doc/src/platforms/android.qdoc42
-rw-r--r--doc/src/platforms/emb-linux.qdoc326
-rw-r--r--doc/src/platforms/ios.qdoc1
-rw-r--r--doc/src/platforms/linux.qdoc30
-rw-r--r--doc/src/platforms/osx.qdoc33
-rw-r--r--doc/src/platforms/platform-notes-android.qdoc4
-rw-r--r--doc/src/platforms/platform-notes-qtee.qdoc38
-rw-r--r--doc/src/platforms/platform-notes-rtos.qdoc6
-rw-r--r--doc/src/platforms/supported-platforms.qdoc1
-rw-r--r--doc/src/platforms/wince-introduction.qdoc6
-rw-r--r--doc/src/platforms/windows.qdoc143
-rw-r--r--doc/src/platforms/winrt.qdoc8
-rw-r--r--doc/src/portingcppapps_toqt5.qdoc32
-rw-r--r--doc/src/portingguide.qdoc3
-rw-r--r--doc/src/qmlapp/applicationdevelopers.qdoc14
-rw-r--r--doc/src/qmlapp/performance.qdoc13
-rw-r--r--doc/src/qmlapp/usecases/text.qdoc2
-rw-r--r--doc/src/qt5-intro.qdoc32
-rw-r--r--doc/src/qtmodules.qdoc47
-rw-r--r--doc/src/reference.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_exportedfunctions.qdoc57
-rw-r--r--doc/src/source-breaks.qdoc2
-rw-r--r--doc/src/userinterfaces.qdoc57
-rw-r--r--doc/src/web-content.qdoc54
-rw-r--r--doc/src/whatsnew/whatsnew50.qdoc2
-rw-r--r--doc/src/whatsnew/whatsnew51.qdoc4
-rw-r--r--doc/src/whatsnew/whatsnew52.qdoc2
-rw-r--r--doc/src/whatsnew/whatsnew53.qdoc2
-rw-r--r--doc/src/whatsnew/whatsnew54.qdoc2
-rw-r--r--doc/src/whatsnew/whatsnew55.qdoc1
-rw-r--r--doc/src/whatsnew/whatsnew56.qdoc246
-rw-r--r--examples/texteditor/documenthandler.cpp123
-rw-r--r--examples/texteditor/documenthandler.h87
-rw-r--r--examples/texteditor/images/editcopy.pngbin1468 -> 0 bytes
-rw-r--r--examples/texteditor/images/editcut.pngbin1512 -> 0 bytes
-rw-r--r--examples/texteditor/images/editpaste.pngbin1906 -> 0 bytes
-rw-r--r--examples/texteditor/images/filenew.pngbin1172 -> 0 bytes
-rw-r--r--examples/texteditor/images/fileopen.pngbin2168 -> 0 bytes
-rw-r--r--examples/texteditor/images/filesave.pngbin1206 -> 0 bytes
-rw-r--r--examples/texteditor/images/qt-logo.pngbin3960 -> 0 bytes
-rw-r--r--examples/texteditor/main.cpp58
-rw-r--r--examples/texteditor/main.qml203
-rw-r--r--examples/texteditor/qml.qrc12
-rw-r--r--examples/texteditor/texteditor.pro17
-rw-r--r--sync.profile5
73 files changed, 935 insertions, 1215 deletions
diff --git a/.qmake.conf b/.qmake.conf
index e5439818..66a0241e 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION = 5.5.1
+MODULE_VERSION = 5.6.0
diff --git a/doc/config/qtdoc.qdocconf b/doc/config/qtdoc.qdocconf
index 4693fb1c..d2910f08 100644
--- a/doc/config/qtdoc.qdocconf
+++ b/doc/config/qtdoc.qdocconf
@@ -43,6 +43,7 @@ depends += \
qtscript \
qtscripttools \
qtsensors \
+ qtserialbus \
qtserialport \
qtsql \
qtsvg \
@@ -52,6 +53,7 @@ depends += \
qtwebchannel \
qtwebengine \
qtwebenginewidgets \
+ qtwebenginecore \
qtwebsockets \
qtwidgets \
qtwinextras \
@@ -60,21 +62,21 @@ depends += \
qtx11extras \
qtxml \
qtxmlpatterns \
- qt3dcore \
- qt3drender
+ qt3d \
+ qtcanvas3d \
+ qtwebview \
+ qtlabscontrols
headerdirs += ../src
imagedirs += ../src/images \
../images
sourcedirs += \
- ../src \
- ../../examples
+ ../src
exampledirs += \
../src \
- ../snippets \
- ../../examples
+ ../snippets
# Don't parse files in snippets directory
excludedirs += \
diff --git a/doc/images/qtlocation-mapviewer-demo.jpg b/doc/images/qtlocation-mapviewer-demo.jpg
new file mode 100644
index 00000000..c93a0050
--- /dev/null
+++ b/doc/images/qtlocation-mapviewer-demo.jpg
Binary files differ
diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc
index 94ceb568..f67a72c5 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.5}
+ \li \l{New Classes and Functions in Qt 5.6}
\endlist
For more reference pages including QML types, visit \l{Qt Reference Pages}.
diff --git a/doc/src/classes/exportedfunctions.qdoc b/doc/src/classes/exportedfunctions.qdoc
deleted file mode 100644
index 33b18f7e..00000000
--- a/doc/src/classes/exportedfunctions.qdoc
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 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$
-**
-****************************************************************************/
-
-/*!
- \page exportedfunctions.html
- \title Platform-Specific Functions
- \ingroup funclists
-
- \brief Exported functions for fine tuning Qt applications.
-
- Qt provides a few low-level global functions for fine-tuning
- applications. Most of these perform very specific tasks and are
- platform-specific. In general, we recommend that you try using
- Qt's public API before resorting to using any functions mentioned
- here.
-
- These functions are exported by \l QtCore and \l QtGui, but most
- of them aren't declared in Qt's header files. To use them in your
- application, you must declare them before calling them. For
- example:
-
- \snippet snippets/code/doc_src_exportedfunctions.qdoc 0
-
- These functions will remain as part of Qt for the lifetime of Qt
- 4.
-
- Functions:
-
- \tableofcontents
-
- \section1 void qt_set_library_config_file(const QString &\e{fileName})
-
- Specifies the location of the Qt configuration file. You must
- call this function before constructing a QApplication or
- QCoreApplication object. If no location is specified, Qt
- automatically finds an appropriate location.
-
- \section1 void qt_set_sequence_auto_mnemonic(bool \e{enable})
-
- Specifies whether mnemonics for menu items, labels, etc., should
- be honored or not. On Windows and X11, this feature is
- on by default; on OS X, it is off. When this feature is off,
- the QKeySequence::mnemonic() function always returns an empty
- string. This feature is also enabled on embedded Linux.
-
- \section1 void qt_x11_wait_for_window_manager(QWidget *\e{widget})
-
- Blocks until the X11 window manager has shown the widget after a
- call to QWidget::show().
-
- \section1 void qt_mac_secure_keyboard(bool \e{enable})
-
- Turns the OS X secure keyboard feature on or off. QLineEdit
- uses this when the echo mode is QLineEdit::Password or
- QLineEdit::NoEcho to guard the editor against keyboard sniffing.
- If you implement your own password editor, you might want to turn
- on this feature in your editor's
- \l{QWidget::focusInEvent()}{focusInEvent()} and turn it off in
- \l{QWidget::focusOutEvent()}{focusOutEvent()}.
-
- \section1 void qt_mac_set_dock_menu(QMenu *\e{menu})
-
- Sets the menu to display in the OS X Dock for the
- application. This menu is shown when the user attempts a
- press-and-hold operation on the application's dock icon or
- \key{Ctrl}-clicks on it while the application is running.
-
- The menu will be turned into a Mac menu and the items added to the default
- Dock menu. There is no merging of the Qt menu items with the items that are
- in the Dock menu (i.e., it is not recommended to include actions that
- duplicate functionality of items already in the Dock menu).
-
- \section1 void qt_mac_set_menubar_icons(bool \e{enable})
-
- Specifies whether icons associated to menu items for the
- application's menu bar should be shown on OS X. By default,
- icons are shown on OS X just like on the other platforms.
-
- In Qt 4.4, this is equivalent to
- \c { QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus); }.
-
- \section1 void qt_mac_set_menubar_merge(bool \e{enable})
-
- Specifies whether Qt should attempt to relocate standard menu
- items (such as \gui Quit, \gui Preferences, and \gui About) to
- the application menu on OS X. This feature is on by default.
- See \l{Qt for OS X - Specific Issues} for the list of menu items for
- which this applies.
-
- \section1 void qt_mac_set_native_menubar(bool \e{enable})
-
- Specifies whether the application should use the native menu bar
- on OS X or be part of the main window. This feature is on by
- default.
-
- In Qt 4.6, this is equivalent to
- \c { QApplication::instance()->setAttribute(Qt::AA_DontUseNativeMenuBar); }.
-
- \section1 void qt_mac_set_press_and_hold_context(bool \e{enable})
-
- Turns emulation of the right mouse button by clicking and holding
- the left mouse button on or off. This feature is off by default.
-*/
diff --git a/doc/src/configure.qdoc b/doc/src/configure.qdoc
index 79184d57..5c72e444 100644
--- a/doc/src/configure.qdoc
+++ b/doc/src/configure.qdoc
@@ -35,8 +35,7 @@
as determine how Qt builds and deploys applications onto host platforms.
This page discusses some of the configure options, but for
the full list of options, enter the command \c{configure -h}. Configure
- is located in \e qtbase but is also available from the main Qt source
- directory.
+ should be run from the main Qt source directory.
Unless stated otherwise, the commands in this page are for the Linux
platforms. On OS X and on Windows, the \c PATH and directory structure
@@ -167,7 +166,7 @@
\li \c -qt-pcre
\li \c -system-pcre
\row
- \li HarfBuzz-NG (experimental)
+ \li HarfBuzz-NG
\li \c -qt-harfbuzz
\li \c -system-harfbuzz
\endtable
@@ -237,7 +236,7 @@
\li \l{Building Qt 5 for Android} Wiki page
\li \l{Qt for iOS - Building from Source}
\li \l{Qt for WinRT#Building from source}{Qt for WinRT - Building from Source}
- \li \l{Qt for Embedded Linux#Configuring for a Specific Device}{Qt for Embedded Linux - Building from Source}
+ \li \l{Qt for Embedded Linux#Configuring a Specific Device}{Qt for Embedded Linux - Building from Source}
\li \l{http://wiki.qt.io/Qt_RaspberryPi}{Qt for Raspberry Pi} - a community-driven site for
Raspberry devices
\li \l{http://wiki.qt.io/Category:Devices}{Devices} - a list of other devices and chipsets
diff --git a/doc/src/connectivity.qdoc b/doc/src/connectivity.qdoc
index 6ef9c5af..4da7198f 100644
--- a/doc/src/connectivity.qdoc
+++ b/doc/src/connectivity.qdoc
@@ -47,8 +47,8 @@ can start or stop network interfaces and roam between access points. It does
however not take care of the network configurations itself. The platform needs
to take care of that.
-\l{Qt WebKit} offers a web browser engine that makes it possible to use web
-content in your application. \l{Qt WebKit} can render HTML, XHTML,
+\l{Qt WebEngine} offers a Chromium-based web engine that enables using
+web content in your application. \l{Qt WebEngine} can render HTML5, XHTML,
and SVG documents, and execute Javascript.
Qt also offers functionalities for \e{inter-process communication} (IPC). The
@@ -116,19 +116,15 @@ in addition to several examples to demonstrate its use.
\section1 World Wide Web Support
Qt makes it easy to embed web content into your Qt application using features of
-the Qt WebKit layout engine. The Qt WebKit module equips Qt with support for a
-broad range of standard web technologies that make it possible to embed HTML
-content styled with CSS and scripted with JavaScript into your Qt application.
-\l{Qt WebKit} facilitates both integration with traditional QWidget based desktop
-applications as well as embedding into Qt Quick QML applications.
+the Qt WebEngine layout engine. The Qt WebEngine module equips Qt with support
+for a broad range of standard web technologies that make it possible to embed
+HTML content styled with CSS and scripted with JavaScript into your Qt
+application. \l{Qt WebEngine} facilitates both integration with traditional
+QWidget based desktop applications as well as embedding into Qt Quick QML
+applications.
For more information see \l {Integrating Web Content}.
-\section1 Qt WebSockets Module
-
-The \l {Qt WebSockets} Module provides a WebSocket implementation (\l{http://tools.ietf.org/html/rfc6455} {RFC 6455}).
-
-
\section1 Inter-Process Communication
Qt provides several ways to implement Inter-Process Communication
diff --git a/doc/src/deployment/deployment-plugins.qdoc b/doc/src/deployment/deployment-plugins.qdoc
index e1a37928..e28162ad 100644
--- a/doc/src/deployment/deployment-plugins.qdoc
+++ b/doc/src/deployment/deployment-plugins.qdoc
@@ -60,6 +60,8 @@
is to set the \c QT_PLUGIN_PATH environment variable before running
the application. If set, Qt will look for plugins in the
paths (separated by the system path separator) specified in the variable.
+ \note \c QT_PLUGIN_PATH should not be exported as a system-wide
+ environment variable since it can interfere with other Qt installations.
\section1 Loading and Verifying Plugins Dynamically
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index 1e012ab3..0982b48f 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -84,8 +84,8 @@
\li \l{Qt Quick}{QtQuick}
\row
\li \l{Qt Multimedia}{QtMultimedia}
- \li \l{Qt WebKit}{QtWebKit}
- \li \l{Qt WebKit Widgets}{QtWebKitWidgets}
+ \li \l{Qt WebEngine}{QtWebEngine}
+ \li \l{Qt WebEngine Widgets}{QtWebEngineWidgets}
\li \l{Qt XML}{QtXml}
\row
\li \l{Qt XML Patterns}{QtXmlPatterns}
@@ -156,12 +156,6 @@
More information can be found in the \l{Secure Sockets Layer (SSL) Classes}
documentation.
- \row \li \l{QtWebKit} \li WebKit
- \li WebKit is licensed under the GNU LGPL version 2 or later.
- This has implications for developers of closed source applications.
- Please see the \l{Qt WebKit Widgets#License Information}{Qt WebKit Widgets}
- documentation for more information.
-
\endtable
\section1 Platform-Specific Notes
diff --git a/doc/src/development/rcc.qdoc b/doc/src/development/rcc.qdoc
index ea277767..2285dc75 100644
--- a/doc/src/development/rcc.qdoc
+++ b/doc/src/development/rcc.qdoc
@@ -79,6 +79,21 @@
\row \li \c{-help} \li \li Display usage information.
+ \row \li \c{-t, --temp <file>} \li \li Use temporary <file> for big resources.
+
+ \row \li \c{--namespace} \li \li Turn off namespace macros.
+
+ \row \li \c{--verbose} \li \li Enable verbose mode.
+
+ \row \li \c{--list} \li \li Only list .qrc file entries, do not generate code.
+
+ \row \li \c{-project} \li \li Output a resource file containing all files from the
+ current directory.
+
+
+
+
+
\endtable
See also \l{The Qt Resource System} for more information about embedding
diff --git a/doc/src/developmenttools.qdoc b/doc/src/developmenttools.qdoc
index 829c809e..601da74f 100644
--- a/doc/src/developmenttools.qdoc
+++ b/doc/src/developmenttools.qdoc
@@ -93,6 +93,11 @@
\row \li \l{D-Bus Viewer}
\li A tool to introspect D-Bus objects and messages. Available from
the Qt SDK or the Qt 5 qttools repository.
+ \row \li \l{Qt Quick Compiler}
+ \li A compiler for QML that enables building Qt Quick applications
+ without having to deploy the QML sources on to the target.
+ \row \li \l{Qt Visual Studio Add-in}
+ \li Intended for developers who wish to develop Qt applications using
+ the Visual Studio IDE instead of Qt Creator.
\endtable
-
*/
diff --git a/doc/src/examples.qdoc b/doc/src/examples.qdoc
index d678a2b0..2e1c49b0 100644
--- a/doc/src/examples.qdoc
+++ b/doc/src/examples.qdoc
@@ -132,7 +132,6 @@
\li \l{Qt WebEngine Examples}
\li \l{Qt WebEngine Widgets Examples}
\li \l{Qt WebSockets Examples}{WebSocket Examples}
- \li \l{Qt WebKit Examples}{WebKit Examples}
\endlist
\enddiv
\div {class="doc-column"}
@@ -173,6 +172,7 @@
\li \l{Qt Positioning Examples}{Positioning Examples}
\li \l{Qt Sensors Examples}{Sensor Examples}
\li \l{Qt Serial Port Examples}{Serial Port Examples}
+ \li \l{Qt SerialBus Examples}{Serial Bus Examples}
\endlist
\enddiv
\div {class="doc-column"}
@@ -191,4 +191,17 @@
To view and run examples provided through the Qt Project, visit the
\l{http://wiki.qt.io/Category:Learning::Demos_and_Examples}{Community Examples} page.
+
+ \section1 All Examples
+
+ \l{All Qt Examples} lists all examples categorized by the Qt module they
+ belong to.
+*/
+
+/*!
+\page qtexamples.html
+\title All Qt Examples
+\brief List of all the Qt examples
+
+\generatelist annotatedexamples
*/
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index 9ac7854f..69d79e14 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -189,7 +189,7 @@
\title Building and Running Example
*/
/*!
- \externalpage http://doc.qt.io/qtcreator/creator-mobile-app-tutorial.html
+ \externalpage http://doc.qt.io/qtcreator/qtcreator-accelbubble-example.html
\title Creating a Mobile Application
*/
/*!
@@ -248,16 +248,6 @@
*/
/*!
- \externalpage http://doc.qt.io/qt-5/qtwebview-index.html
- \title Qt WebView
-*/
-
-/*!
- \externalpage http://doc.qt.io/qt-5/qtcanvas3d-index.html
- \title Qt Canvas 3D
-*/
-
-/*!
\externalpage http://doc.qt.io/QtSupportedPlatforms/index.html
\title Officially Supported Platforms
*/
@@ -276,3 +266,35 @@
\externalpage http://doc.qt.io/vs-addin
\title Qt Visual Studio Add-in
*/
+/*!
+ \externalpage http://doc.qt.io/emulator/index.html
+ \title Emulator
+*/
+/*!
+ \externalpage http://wiki.qt.io/QtWebEngine
+ \title Qt WebEngine Wiki
+*/
+/*!
+ \externalpage http://wiki.qt.io/QtWebEngineOnWindows
+ \title Qt WebEngine on Windows
+*/
+/*!
+ \externalpage http://doc.qt.io/archives/qt-5.3/qtwebkit-index.html
+ \title Qt WebKit
+*/
+/*!
+ \externalpage http://doc.qt.io/archives/qt-5.3/qtwebkitwidgets-index.html
+ \title Qt WebKit Widgets
+*/
+/*!
+ \externalpage http://www.opengl.org/wiki/Vertex_Rendering#Instancing
+ \title OpenGL Instanced Rendering
+*/
+/*!
+ \externalpage http://www.opengl.org/wiki/Vertex_Rendering#Primitive_Restart
+ \title OpenGL Primitive Restart
+*/
+/*!
+ \externalpage http://www.khronos.org/gltf/
+ \title OpenGL glTF
+*/
diff --git a/doc/src/frameworks-technologies/threads.qdoc b/doc/src/frameworks-technologies/threads.qdoc
index 618e16bb..6a4bb198 100644
--- a/doc/src/frameworks-technologies/threads.qdoc
+++ b/doc/src/frameworks-technologies/threads.qdoc
@@ -177,11 +177,11 @@
computation across all available processor cores, so applications written today
will continue to scale when deployed later on a system with more cores.
- This module also provides the QtConcurrent::run() function, which can run any
- function in another thread. However, QtConcurrent::run() only supports a subset
+ This module also provides the \l {QtConcurrent::run}() function, which can run any
+ function in another thread. However, \l {QtConcurrent::run}() only supports a subset
of features available to the map, filter and reduce functions. The QFuture
can be used to retrieve the function's return value and to check if the thread
- is running. However, a call to QtConcurrent::run() uses one thread only, cannot
+ is running. However, a call to \l{QtConcurrent::run}() uses one thread only, cannot
be paused/resumed/canceled, and cannot be queried for progress.
See the \l{Qt Concurrent} module documentation for details on the individual functions.
@@ -219,7 +219,7 @@
\li Feature
\li QThread
\li QRunnable and QThreadPool
- \li QtConcurrent::run()
+ \li \l {QtConcurrent::run}()
\li Qt Concurrent (Map, Filter, Reduce)
\li WorkerScript
\row
@@ -292,13 +292,13 @@
\li Place the function in a reimplementation of QRunnable::run() and
add the QRunnable to a QThreadPool. Write to a \l{Synchronizing
Threads}{thread-safe variable} to update progress. OR
- \li Run the function using QtConcurrent::run(). Write to a \l{Synchronizing
+ \li Run the function using \l {QtConcurrent::run}(). Write to a \l{Synchronizing
Threads}{thread-safe variable} to update progress.
\endlist
\row
\li One call
\li Run an existing function within another thread and get its return value.
- \li Run the function using QtConcurrent::run(). Have a QFutureWatcher emit
+ \li Run the function using \l{QtConcurrent::run}(). Have a QFutureWatcher emit
the \l{QFutureWatcher::}{finished()} signal when the function has
returned, and call QFutureWatcher::result() to get the function's return
value.
@@ -306,11 +306,11 @@
\li One call
\li Perform an operation on all items of a container, using all available
cores. For example, producing thumbnails from a list of images.
- \li Use Qt Concurrent's \l{QtConcurrent::}{filter()} function to select
- container elements, and the \l{QtConcurrent::}{map()} function to apply
+ \li Use Qt Concurrent's \l{QtConcurrent::filter}() function to select
+ container elements, and the \l{QtConcurrent::map}() function to apply
an operation to each element. To fold the output into a single result,
- use \l{QtConcurrent::}{filteredReduced()} and
- \l{QtConcurrent::}{mappedReduced()} instead.
+ use \l{QtConcurrent::filteredReduced}() and
+ \l{QtConcurrent::mappedReduced}() instead.
\row
\li One call/Permanent
\li Perfrom a long computation in a pure QML application, and update the GUI
diff --git a/doc/src/getting-started/controls-texteditor.qdoc b/doc/src/getting-started/controls-texteditor.qdoc
index b5a4d748..8b9c8601 100644
--- a/doc/src/getting-started/controls-texteditor.qdoc
+++ b/doc/src/getting-started/controls-texteditor.qdoc
@@ -59,7 +59,7 @@ the application.
The files are part of the Qt package and are available when searched for
\uicontrol{Qt Quick Text Editor} in Qt Creator's \uicontrol{Welcome mode}.
All files used in the application are listed for viewing in the
-\l{Qt Quick Controls Text Editor Example} page.
+\l{Qt Quick Controls - Text Editor Example} page.
\section1 Setting Up the Environment and Project
@@ -105,7 +105,7 @@ later in the guide:
The text editor uses several icons to represent various actions. The icons are
in the \e images directory which is directly under the \e TextEditor project
directory. The images as well as the project files are also listed in the
-reference documentation on the \l{Qt Quick Controls Text Editor Example} page.
+reference documentation on the \l{Qt Quick Controls - Text Editor Example} page.
We first need to register the image files into the project's resource file,
\e qml.qrc. The resource files compact the images into the binary packages.
@@ -128,13 +128,13 @@ We will use these images later in the guide.
Qt Creator then packages the images alongside your application in a single
binary. For more information about resource files, see the
\l{Managing Resource Files with the Qt Resource System} and the
-\l{Qt Resource System} pages.
+\l{The Qt Resource System} pages.
\section1 Example Files
The accompanying examples files are listed in the following page:
\list
-\li \l{Qt Quick Controls Text Editor Example}
+\li \l{Qt Quick Controls - Text Editor Example}
\endlist
*/
@@ -244,7 +244,7 @@ In the \uicontrol Navigator window, make sure that the tool bar is a child of th
application window. To make the tool bar a child of the window, simply drag the tool bar
underneath the application window.
-Within the tool bar, we need a \e{row} layout. Drag the \l{Row Layout} into the
+Within the tool bar, we need a \e{row} layout. Drag the \e{row} layout into the
\uicontrol Navigator window and set it to be a child of the tool bar.
Similarly, set these layout properties:
@@ -331,7 +331,7 @@ QML type and \l{Signal and Handler Event System}.
The accompanying examples files are found in the following page:
\list
-\li \l{Qt Quick Controls Text Editor Example}
+\li \l{Qt Quick Controls - Text Editor Example}
\endlist
*/
@@ -345,7 +345,7 @@ The accompanying examples files are found in the following page:
This part of the guide is about adding logic and backend to the
text editor example. At this stage, the user interface is
-set up from the \l{Qt Quick Text Editor - Logic}{previous} stage.
+set up from the \l{Qt Quick Text Editor Guide - Logic}{previous} stage.
\section1 Implementing the Logic and C++ Backend
@@ -374,7 +374,7 @@ The wizard creates a \uicontrol DocumentHandler class in two files,
There are two functionalities we can expose to QML, the file loading and
saving. We can do this by creating \e properties and binding them to C++
-functions through \l{Qt Property System}.
+functions through the \l{The Property System}{Qt Property System}.
In the \e documenthandler.h header file, add the following functions with their
respective access modifier:
@@ -521,7 +521,7 @@ these C++ functions in QML files.
The accompanying examples files are found in the following page:
\list
-\li \l{Qt Quick Controls Text Editor Example}
+\li \l{Qt Quick Controls - Text Editor Example}
\endlist
*/
@@ -679,7 +679,7 @@ and QML file are already packaged into the binary file.
The accompanying examples files are found in the following page:
\list
-\li \l{Qt Quick Controls Text Editor Example}
+\li \l{Qt Quick Controls - Text Editor Example}
\endlist
*/
diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc
index 4ff8536c..7ae37aef 100644
--- a/doc/src/getting-started/gettingstartedqt.qdoc
+++ b/doc/src/getting-started/gettingstartedqt.qdoc
@@ -441,7 +441,7 @@
The code defines the private function that is executed when QPushButton
emits the \l{QPushButton::}{clicked()} signal.
- We now complement the code to have the \l{QApplication::}{quit()} slot of
+ We now complement the code to have the \l{QCoreApplication::}{quit()} slot of
QApplication exit Notepad:
\snippet snippets/widgets-tutorial/notepad/notepad.cpp 1
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 11d4f36a..69f160ff 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -78,7 +78,7 @@ visit the following page:
\section1 Embedded Linux
\list
-\li \l{Qt for Embedded Linux#Configuring for a Specific Device}
+\li \l{Qt for Embedded Linux#Configuring a Specific Device}
{Qt for Embedded Linux - Building from Source}
\endlist
@@ -157,6 +157,10 @@ in the \l{Qt for Windows CE Requirements} document.
options. See the \c README file for the list of supported
platforms.
+ \note The \c configure option -qtlibinfix cannot take a version number as an argument.
+ For example:
+ \c{-qtlibinfix 5.6.0} should be specified as \c{-qtlibinfix QtCore5.6.0.dll}.
+
\section1 Step 4: Build Qt Library
To build Qt type:
diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc
index 2ee37062..4c45b7c2 100644
--- a/doc/src/getting-started/known-issues.qdoc
+++ b/doc/src/getting-started/known-issues.qdoc
@@ -32,7 +32,7 @@
\list
\li An up-to-date list of known issues can be found at the \l{Qt Bug Tracker}.
- \li An overview of known issues may also be found at: \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}
+ \li An overview of known issues may also be found at: \l{http://wiki.qt.io/QtKnownIssues}
{Known Issues Wiki}.
\endlist
*/
diff --git a/doc/src/graphics.qdoc b/doc/src/graphics.qdoc
index ce958b90..3f6de2c5 100644
--- a/doc/src/graphics.qdoc
+++ b/doc/src/graphics.qdoc
@@ -169,7 +169,9 @@ Qt Quick scene graph is rendered, respectively. There signals are
emitted from the render thread (when applicable), and the connections
need to be direct.
-
+Qt Quick can also be rendered using \l{Qt Quick 2D Renderer}. This raster
+paint engine enables rendering Qt Quick applications on platforms that
+do not have OpenGL.
\section1 Printing
@@ -177,8 +179,6 @@ Qt supports printing both directly to actual printers, locally or on the
network, as well as producing PDF output. How to do printing with
Qt is described in detail on the \l {Qt Print Support} page.
-
-
\section1 Images
Qt supports convenient reading, writing, and manipulating of images through the
diff --git a/doc/src/highdpi.qdoc b/doc/src/highdpi.qdoc
index cc9bd290..d8fb4e44 100644
--- a/doc/src/highdpi.qdoc
+++ b/doc/src/highdpi.qdoc
@@ -124,21 +124,55 @@
\li Ability to provide pixmaps or artwork for high resolution:
see \l{Drawing High Resolution Versions of Pixmaps and Images}.
- \li Qt 5.4 introduces experimental support for scaling by by device pixel ratio
- similar to OS X to the platform plugins for Windows and Unix (XCB).
- This is controlled by the environment variable \c QT_DEVICE_PIXEL_RATIO.
- It can be set to a numerical value to be used as scale factor or \c "auto"
- which causes the scale factor to be determined by checking the monitor size.
+ \li Qt 5.6 supports cross-platform high-DPI scaling for legacy applications,
+ similar to the scaling done natively by OS X. This allows applications written
+ for low-DPI screens to run unchanged on high-DPI devices. This feature is
+ opt-in, and can be enabled by the following environment variables:
+ \list
+
+ \li \c QT_AUTO_SCREEN_SCALE_FACTOR [boolean] enables automatic scaling,
+ based on the pixel density of the monitor. This will not change the size
+ of point sized fonts, since point is a physical unit of measure. Multiple
+ screens may get different scale factors.
+
+ \li \c QT_SCALE_FACTOR [numeric] defines a global scale
+ factor for the whole application, including point sized fonts.
+
+ \li \c QT_SCREEN_SCALE_FACTORS [list] specifies scale factors
+ for each screen. This will not change the size
+ of point sized fonts. This environment variable is
+ mainly useful for debugging, or to work around monitors with wrong
+ \l {https://en.wikipedia.org/wiki/Extended_Display_Identification_Data}
+ {EDID information}(Extended Display Identification Data).
+
+ The format can be either a semicolon-separated list of scale
+ factors in the same order as QGuiApplication::screens(), or a
+ semicolon-separated list of \c name=value pairs, where \c
+ name is the same as QScreen::name().
+
+ \endlist
It is recommended to use the \c Fusion style.
- \endlist
+
+ \note Non-integer scale factors may cause significant
+ scaling/painting artifacts.
+
+ \li The application attribute \c Qt::AA_NoHighDpiScaling, introduced in Qt 5.6,
+ turns off all scaling. This is intended for applications that need to use
+ actual window system coordinates, regardless of environment variables.
+
+ \li An experimental implementation of high-DPI scaling was introduced in Qt 5.4.
+ It was enabled by the environment variable \c QT_DEVICE_PIXEL_RATIO, which
+ could be set to a numerical scale factor or \c "auto". This variable is
+ deprecated in Qt 5.6.
+ \endlist
\section2 Migration of Existing Applications
In order to get an application designed for low DPI values running on a high
resolution monitors quickly, consider one of the scaling options (let the
application run as \e{DPI Unaware} on Windows or set the environment
- variable \c QT_DEVICE_PIXEL_RATIO to \c "auto". These options may incur
+ variable \c QT_AUTO_SCREEN_SCALE_FACTOR to \c "1". These options may incur
some scaling or painting artifacts, though.
In the longer term, the application should be adapted to run unmodified:
diff --git a/doc/src/howtos/accelerators.qdoc b/doc/src/howtos/accelerators.qdoc
index 71879d46..d4adcc08 100644
--- a/doc/src/howtos/accelerators.qdoc
+++ b/doc/src/howtos/accelerators.qdoc
@@ -43,7 +43,7 @@
The emboldened letter plus Alt is Microsoft's recommended choice, and
we recommend supporting it. For an Apply button, for example, we
- recommend QAbstractButton::setText(\link QWidget::tr() tr \endlink("&Apply"));
+ recommend QAbstractButton::setText(\link QObject::tr() tr \endlink("&Apply"));
If you have conflicting commands (e.g. About and Apply buttons in the
same dialog), you must decide for yourself.
diff --git a/doc/src/howtos/appicon.qdoc b/doc/src/howtos/appicon.qdoc
index 5d182174..cea3561b 100644
--- a/doc/src/howtos/appicon.qdoc
+++ b/doc/src/howtos/appicon.qdoc
@@ -34,7 +34,7 @@
The application icon, typically displayed in the top-left corner of an
application's top-level windows, is set by calling the
- QWindow::setWindowIcon() method.
+ QWindow::setIcon() method.
In order to change the icon of the executable application file
itself, as it is presented on the desktop (i.e., prior to
@@ -90,12 +90,11 @@
platform-dependent technique.
Although many programs can create icon files (\c .icns), the
- recommended approach is to use the \e{Icon Composer} program
- supplied by Apple (in the \c Developer/Application folder).
- \e{Icon Composer} allows you to import several different sized
- icons (for use in different contexts) as well as the masks that
- go with them. Save the set of icons to a file in your project
- directory.
+ recommended approach is to use the \e{iconutil} program
+ supplied by Apple. \e{iconutil} is a command-line tool that
+ converts iconset folders to deployment-ready, high-resolution
+ icns files. Using this tool also compresses the resulting icns file,
+ so there is no need for you to perform additional compression.
If you are using qmake to generate your makefiles, you only need
to add a single line to your \c .pro project file. For example,
diff --git a/doc/src/howtos/session.qdoc b/doc/src/howtos/session.qdoc
index 90329ada..f2ff7c08 100644
--- a/doc/src/howtos/session.qdoc
+++ b/doc/src/howtos/session.qdoc
@@ -69,17 +69,17 @@
restored when the machine is restarted.) They do support graceful
logouts where applications have the opportunity to cancel the process
after getting confirmation from the user. This is the functionality
- that corresponds to the QApplication::commitData() method.
+ that corresponds to the QGuiApplication::commitDataRequest() signal.
X11 has supported complete session management since X11R6.
\section1 Getting Session Management to Work with Qt
- Start by reimplementing QApplication::commitData() to
- enable your application to take part in the graceful logout process. If
- you are only targeting the Microsoft Windows platform, this is all you can
- and must provide. Ideally, your application should provide a shutdown
- dialog similar to the following:
+ Start by connecting a slot to the QGuiApplication::commitDataRequest()
+ signal to enable your application to take part in the graceful logout
+ process. If you are only targeting the Microsoft Windows platform, this
+ is all you can and must provide. Ideally, your application should provide
+ a shutdown dialog similar to the following:
\img session.png A typical dialog on shutdown
@@ -89,18 +89,18 @@
For complete session management (only supported on X11R6 at present),
you must also take care of saving the application's state, and
potentially of restoring the state in the next life cycle of the
- session. This saving is done by reimplementing
- QApplication::saveState(). All state data you are saving in this
- function, should be marked with the session identifier
- QApplication::sessionId(). This application specific identifier is
+ session. This saving is done by implementing a slot connected to the
+ QGuiApplication::saveStateRequest() signal. All state data you are saving in
+ this function, should be marked with the session identifier
+ QGuiApplication::sessionId(). This application specific identifier is
globally unique, so no clashes will occur. (See QSessionManager for
information on saving/restoring the state of a particular Qt
application.)
Restoration is usually done in the application's main()
- function. Check if QApplication::isSessionRestored() is \c true. If
+ function. Check if QGuiApplication::isSessionRestored() is \c true. If
that's the case, use the session identifier
- QApplication::sessionId() again to access your state data and restore
+ QGuiApplication::sessionId() again to access your state data and restore
the state of the application.
\b{Important:} In order to allow the window manager to
@@ -153,10 +153,10 @@
\li Use the session manager's \e Checkpoint and \e Shutdown buttons
with different settings and see how your application behaves. The save
type \e local means that the clients should save their state. It
- corresponds to the QApplication::saveState() function. The \e
+ corresponds to the QGuiApplication::saveStateRequest() signal. The \e
global save type asks applications to save their unsaved changes in
permanent, globally accessible storage. It invokes
- QApplication::commitData().
+ QGuiApplication::commitDataRequest().
\li Whenever something crashes, blame \c xsm and not Qt. \c xsm is far
from being a usable session manager on a user's desktop. It is,
however, stable and useful enough to serve as testing environment.
diff --git a/doc/src/images/tree.png b/doc/src/images/tree.png
index 3f046c9b..3f046c9b 100755..100644
--- a/doc/src/images/tree.png
+++ b/doc/src/images/tree.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index 6f81ddb7..49afa47c 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -32,7 +32,7 @@
\div {class="landing"}
\div {class="col-1"}
\div {class="heading"}
- \title Qt 5.5
+ \title Qt 5.6
\enddiv
Qt is a full development framework with tools designed to streamline
@@ -116,6 +116,7 @@
\endlist
\list
\li \l{Qt Overviews}{All Qt Overviews}
+ \li \l{All Qt Examples}
\endlist
\enddiv
\enddiv
diff --git a/doc/src/internationalization/i18n.qdoc b/doc/src/internationalization/i18n.qdoc
index 5b55202d..0bb967af 100644
--- a/doc/src/internationalization/i18n.qdoc
+++ b/doc/src/internationalization/i18n.qdoc
@@ -35,12 +35,11 @@
*/
/*!
- \page internationalization.html
+ \group internationalization
\title Internationalization with Qt
\brief Information about Qt's support for internationalization and multiple languages.
\nextpage Writing Source Code for Translation
- \group internationalization
\keyword internationalization
\keyword i18n
@@ -359,6 +358,8 @@
For details on OS X-specific translation, refer to the Qt for OS X issues
document \l{Qt for OS X - Specific Issues#Translating the Application Menu and Native Dialogs}{here}.
+
+ \section1 Related Pages
*/
/*!
diff --git a/doc/src/legal/licenses.qdoc b/doc/src/legal/licenses.qdoc
index 3f2d6154..788da704 100644
--- a/doc/src/legal/licenses.qdoc
+++ b/doc/src/legal/licenses.qdoc
@@ -265,7 +265,7 @@
\row \li {1,4} Qt WebEngine
- \row \li \l {Qt WebEngine Widgets#License Information}{License information}
+ \row \li \l[QtWebEngineCore]{Qt WebEngine Core}
\li \li LGPL v3 or\br GPL v2 + Qt commercial license \li
\row \li \li \li \li
\row \li \li \li \li
diff --git a/doc/src/mobile.qdoc b/doc/src/mobile.qdoc
index 26cc79a3..8bc2bafd 100644
--- a/doc/src/mobile.qdoc
+++ b/doc/src/mobile.qdoc
@@ -96,4 +96,15 @@
\li \l{Qt NFC}
\endlist
+ \section1 In-App Purchasing
+
+ The Qt Purchasing module enables mobile developers to generate revenue from
+ their applications on Android and iOS platforms. The module provides C++ and
+ QML alternatives to support the In-App purchasing use case in Qt
+ applications.
+
+ \list
+ \li \l{Qt Purchasing}
+ \endlist
+
*/
diff --git a/doc/src/platforms/android.qdoc b/doc/src/platforms/android.qdoc
index 33a75a40..20dadaa1 100644
--- a/doc/src/platforms/android.qdoc
+++ b/doc/src/platforms/android.qdoc
@@ -29,10 +29,11 @@
\page android_support.html
\title Qt for Android
\brief Provides information about Android support in Qt.
+\ingroup supportedplatform
Qt for Android enables you to run Qt 5 applications on devices with Android
v2.3.3 (API level 10) or later. All Qt modules (essential and add-on) are
-supported except Qt WebKit, Qt NFC, Qt Serial Port, and the
+supported except Qt WebEngine, Qt Serial Port, and the
platform-specific ones (Qt Mac Extras, Qt Windows Extras, and Qt X11 Extras).
The following list summarizes what you can do with Qt for Android:
@@ -48,8 +49,10 @@ The following list summarizes what you can do with Qt for Android:
\li Get \l{Qt Sensors}{sensor} readings and react to the changes.
\li Retrieve current position data using satellite and network
information.
- \li Establish a serial connection to other \l{Qt Bluetooth}{Bluetooth}
- devices.
+ \li Connect and exchange data with \l{Qt Bluetooth}{Bluetooth}
+ and \l{Qt NFC}{NFC}-enabled devices.
+ \li Integrate Java code into your application using
+ \l{Qt Android Extras}.
\li Develop secure applications using OpenSSL library.
\li Create and deploy Application Package (APK) using Qt Creator.
\endlist
@@ -117,7 +120,7 @@ The following topics provide more details about how to use Qt for Android:
In our example, we would create \c{$PROJECT_ROOT/android/project.properties} and add the
following contents:
- \code
+ \badcode
android.library.reference.1=google-play-services_lib/
\endcode
@@ -164,7 +167,7 @@ starts the \l{http://developer.android.com/sdk/installing/adding-packages.html}
{Android SDK Manager}, which enables you to select the packages you want
to install:
-\code
+\badcode
./android update sdk
\endcode
@@ -172,7 +175,7 @@ to install:
following dependencies in order to run 32-bit executables like \c adb, which
allows Qt Creator to find devices to deploy to:
-\code
+\badcode
sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386
\endcode
@@ -293,7 +296,7 @@ the APK:
\li Set the following environment variables to point to the ARM compiler
toolchain and sysroot you want to use:
- \code
+ \badcode
CC=<ANDROID_NDK_PATH>/toolchains/arm-linux-androideabi-<VER>/prebuilt/<NDK_HOST>/bin/arm-linux-androideabi-gcc
AR=<ANDROID_NDK_PATH>/toolchains/arm-linux-androideabi-<VER>/prebuilt/<NDK_HOST>/bin/arm-linux-androideabi-ar
ANDROID_DEV=<ANDROID_NDK_PATH>/platforms/android-9/arch-arm/usr
@@ -302,7 +305,7 @@ the APK:
\li Configure the OpenSSL sources to build for Android (ARMv5 or ARMv7) using
the following command:
- \code
+ \badcode
./Configure shared android or android-armv7
\endcode
@@ -311,6 +314,27 @@ the APK:
See the \l{OpenSSL Configure Options}{SSL configure options} for details about
the configurable features.
+ \li Edit the \e Makefile created by \e Configure to avoid having shared
+ library names with the version number. Android does not load a library
+ with version number in the \c .so file name.
+
+ \list a
+ \li Open the \e Makefile using an editor.
+ \li Replace the following two lines that appear under "\e{link-shared}"
+ and "\e{do_$(SHLIB_TARGET)}" make targets:
+ \badcode
+LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
+LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
+ \endcode
+
+ with
+
+ \badcode
+LIBNAME=$$i \
+ \endcode
+ \li Save changes to the \e Makefile and close it.
+ \endlist
+
\li Run \c{make build_libs} to build the \c libcrypto and \c libssl shared
libraries.
@@ -339,7 +363,7 @@ deployment are handled by Qt Creator providing rich developer experience.
Every time you run the application using Qt Creator, an Android Application
Package (APK) is created and deployed onto the target (device or emulator) you
choose. With some minor changes to how the \e .apk is created, you can publish
-your application on Google Play and monetize from it. The following
+your application on Google Play and monetize. The following
step-by-step instructions guide you to create an \e{.apk} that can go live
on Google Play:
\list 1
diff --git a/doc/src/platforms/emb-linux.qdoc b/doc/src/platforms/emb-linux.qdoc
index 0dee782d..3673cf3d 100644
--- a/doc/src/platforms/emb-linux.qdoc
+++ b/doc/src/platforms/emb-linux.qdoc
@@ -28,64 +28,83 @@
/*!
\page embedded-linux.html
\title Qt for Embedded Linux
+ \brief Provides information about Embedded Linux support in Qt.
+ \ingroup supportedplatform
- With the release of Qt 5.0, Qt no longer contains its own window system
- implementation: QWS is no longer a supported platform. For single-process use
- cases, the \l{Qt Platform Abstraction} is a superior solution. Multiple
- graphical processes will be supported through Wayland.
+ Since the Qt 5.0 release, Qt no longer contains its own window system (QWS)
+ implementation. For single-process use cases, the \l{Qt Platform Abstraction}
+ is a superior solution. Multiple graphical processes can be supported
+ through Wayland.
There are multiple platform plugins that are potentially usable on Embedded
Linux systems: EGLFS, LinuxFB, KMS, DirectFB, Wayland. The availability of
these depend on the configuration of Qt. The default platform plugin is also
- device specific. For instance, on many boards eglfs will be chosen as the
+ device-specific. For instance, 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 be used to request another
plugin. Alternatively, for quick tests, the \c -platform command-line can be
used with the same syntax.
- \section1 Configuring for a Specific Device
+ \section1 Configuring a Specific Device
- Building Qt for a given device requires a toolchain and a
- sysroot. Additionally, some devices require vendor specific adaptation code
- for EGL and OpenGL ES 2.0 support. This is not relevant for non-accelerated
- platforms, for example the ones using the LinuxFB plugin, however neither
- OpenGL nor Qt Quick 2 will be functional in such a setup.
+ Building Qt for a given device requires a toolchain and a sysroot.
+ Additionally, some devices require vendor-specific adaptation code for EGL
+ and OpenGL ES 2.0 support. This is not relevant for non-accelerated
+ platforms, for example the ones using the LinuxFB plugin, which is meant for
+ software-based rendering only. This means Qt Quick 2 is not functional in
+ such a setup as it depends on OpenGL for rendering.
The directory \e qtbase/mkspecs/devices contains configuration and graphics
- adaptation code for a number of devices. For example, \c linux-rasp-pi2-g++
- contains build settings, such as the optimal compiler and linker flags, for
- the \l {http://www.raspberrypi.org}{Raspberry Pi 2}, and either an
- implementation of the eglfs hooks (vendor-specific adaptation code), or a
- reference to a suitable eglfs device integration plugin. The device is
- selected through the \l{Qt Configure Options}{configure} tool's \c -device
- parameter. The name that follows after this argument must, at least partially,
+ adaptation code for a number of devices. For example, the
+ \c linux-rasp-pi2-g++ mkspec contains build settings such as the optimal
+ compiler and linker flags for the
+ \l{http://www.raspberrypi.org}{Raspberry Pi 2} device. The mkspec also
+ contains information about either an implementation of the \e eglfs hooks
+ (vendor-specific adaptation code), or a reference to the suitable \e eglfs
+ device integration plugin. The device is selected through the
+ \l{Qt Configure Options}{configure} tool's \c -device parameter. The name
+ that follows after this argument must, at least partially,
match one of the subdirectories under \e devices.
- Below is an example configuration for the Raspberry Pi 2. For most Embedded
- Linux boards the configure command will look very similar.
+ The following is an example configuration for the Raspberry Pi 2. For most
+ Embedded Linux boards, the configure command looks similar:
- \code
+ \badcode
./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5
\endcode
The most important parameters are \c -device and \c -sysroot. By specifying
\c -sysroot, the include files and libraries used by \c {configure}'s feature
- detection tests, as well as Qt itself, will be taken from the specified
+ detection tests, as well as Qt itself, is taken from the specified
location, instead of the host PC's standard locations. This means that
- installing development packages on the host machine has no relevance: for
- example, to get libinput support it is not sufficient or necessary to have the
- libinput development headers and libraries installed on the host
+ installing development packages on the host machine has no relevance. For
+ example, to get \c libinput support it is not sufficient or necessary to have
+ the \c libinput development headers and libraries installed on the host
environment. Instead, the headers and the libraries for the target
- architecture (e.g. ARM) have to be present in the sysroot.
+ architecture (e.g. ARM) must be present in the \c sysroot.
\c pkg-config is supported also when performing cross-compilation.
- \c configure will automatically set \c PKG_CONFIG_LIBDIR to make \c pkg-config
- report compiler and linker settings based on the sysroot instead of the host
- machine. This will usually function well without any further
- adjustments. However, environment variables such as \c PKG_CONFIG_PATH should
- be unset for the host machine before running \c configure. Otherwise the Qt
- build may attempt to use inappropriate headers and libraries from the host
- system.
+ \c configure automatically sets \c PKG_CONFIG_LIBDIR to make \c pkg-config
+ report compiler and linker settings based on the \c sysroot instead of the host
+ machine. This usually functions well without any further adjustments. However,
+ environment variables such as \c PKG_CONFIG_PATH must be unset for the host
+ machine before running \c configure. Otherwise, the Qt build may attempt to
+ use inappropriate headers and libraries from the host system.
+
+ Specifying \c -sysroot results in automatically setting the \c --sysroot
+ argument when invoking the compiler. In some cases this is not desirable and
+ can be disabled by passing \c -no-gcc-sysroot to \c configure.
+
+ \c -prefix, \c -extprefix and \c -hostprefix control the intended destination
+ directory of the Qt build. In the above example the ARM build of Qt is
+ expected to be placed in \c{/usr/local/qt5} on the target device. Note that
+ running \c{make install} does not deploy anything to the device. Instead, the
+ \c install step targets the directory specified by \c extprefix which defaults
+ to \c sysroot + \c prefix and is therefore optional. However, in many cases
+ "polluting" the sysroot is not desirable and thus specifying \c -extprefix
+ becomes important. Finally, \c -hostprefix allows separating host tools like
+ qmake, rcc, uic from the binaries for the target. When given, such tools will
+ be installed under the specified directory instead of \c extprefix.
See \l {Qt Configure Options} for more information.
@@ -95,53 +114,55 @@
\l {http://www.khronos.org/egl}{EGL} is an interface between OpenGL and the
native windowing system. Qt can use EGL for context and surface management,
- however the API contains no platform specifics: The creation of a \e {native
+ however the API contains no platform-specifics: The creation of a \e {native
window} (which will not necessarily be an actual window on the screen) must
- still be done by platform-specific means. Hence the need for the board or GPU
- specific adaptation code. Such adaptations are provided either as \e {eglfs
- hooks}, a single source file compiled in to the platform plugin, or as
- dynamically loaded \e {EGL device integration} plugins.
-
- EGLFS is a platform plugin for running Qt5 applications on top of EGL and
- OpenGL ES 2.0 without an actual windowing system (like X11 or Wayland). In
- addition to Qt Quick 2 and native OpenGL applications it supports
+ still be done by platform-specific means. Hence the need for the board or
+ GPU-specific adaptation code. Such adaptations are provided either as
+ \e {eglfs hooks}, which can be a single source file compiled into the
+ platform plugin, or as dynamically loaded \e {EGL device integration}
+ plugins.
+
+ \e EGLFS is a platform plugin for running Qt5 applications on top of EGL
+ and OpenGL ES 2.0 without an actual windowing system (like X11 or Wayland).
+ In addition to Qt Quick 2 and native OpenGL applications, it supports
software-rendered windows (for example QWidget) too. In the latter case the
- widgets' contents are rendered using the CPU into images which are then
+ widgets' contents are rendered using the CPU into images, which are then
uploaded into textures and composited by the plugin.
This is the recommended plugin for modern Embedded Linux devices that include
a GPU.
- EGLFS forces the first top-level window (be it either a QWidget or a
+ \e EGLFS forces the first top-level window (be it either a QWidget or a
QQuickView) to become fullscreen. This window is also chosen to be the \e root
widget window into which all other top-level widgets (for example dialogs,
popup menus or combobox dropdowns) are composited. This is necessary because
- with EGLFS there is always exactly one native window and EGL window surface,
+ with \e EGLFS there is always exactly one native window and EGL window surface,
and these belong to the widget or window that is created first. This approach
works well when there is a main window that exists for the entire lifetime of
the application and all other widgets are either non top-levels or are created
afterwards, once the main window is shown.
- There are further restrictions for OpenGL-based windows. As of Qt 5.3, eglfs
- supports a single, fullscreen GL window (for example, an OpenGL-based QWindow,
+ There are further restrictions for OpenGL-based windows. As of Qt 5.3, \c eglfs
+ supports a single fullscreen GL window (for example, an OpenGL-based QWindow,
a QQuickView or a QGLWidget). Opening additional OpenGL windows or mixing such
- windows with QWidget-based content is not supported and will terminate the
+ windows with QWidget-based content is not supported and terminates the
application with an error message.
- If necessary, eglfs can be configured via environment variables:
+ If necessary, \c eglfs can be configured using the following environment
+ variables:
\list
\li \c {QT_QPA_EGLFS_FB} - Overrides the framebuffer device. The default is
\c /dev/fb0. On most embedded platforms this is not very relevant because the
framebuffer is used only for querying settings like the display dimensions.
- On certain devices however this parameter provides the ability to specify
- which display to use in multiple display setups, similarly to the \c fb
+ On certain devices however, this parameter provides the ability to specify
+ the display to be used in multiple display setups, similarly to the \c fb
parameter in LinuxFB.
\li \c {QT_QPA_EGLFS_WIDTH} and \c {QT_QPA_EGLFS_HEIGHT} - Contain the screen
- width and height in pixels. While eglfs will try to determine the dimensions
- from the framebuffer device \e{/dev/fb0}, this will not always work and
+ width and height in pixels. While \c eglfs tries to determine the dimensions
+ from the framebuffer device \e{/dev/fb0}, but this does not work always and
manually specifying the sizes may become necessary.
\li \c {QT_QPA_EGLFS_PHYSICAL_WIDTH} and \c {QT_QPA_EGLFS_PHYSICAL_HEIGHT} -
@@ -152,7 +173,7 @@
\li \c {QT_QPA_EGLFS_DEPTH} - Overrides the color depth for the screen. On
platforms where the framebuffer device \e{/dev/fb0} is not available or the
- query is not successful, the default of 32 is used. This variable can be used
+ query is not successful, the default of \c 32 is used. This variable can be used
to override any such defaults. Note that this affects only the color depth
value reported by QScreen. It has no connection to EGL configurations and the
color depth used for OpenGL rendering.
@@ -163,21 +184,21 @@
0 will disable blocking on swap, resulting in running as fast as possible
without any synchronization.
- \li \c {QT_QPA_EGLFS_FORCEVSYNC} - When set, eglfs requests
+ \li \c {QT_QPA_EGLFS_FORCEVSYNC} - When set, \c eglfs requests
\c FBIO_WAITFORVSYNC on the framebuffer device.
- \li \c {QT_QPA_EGLFS_FORCE888} - When set, the red, green and blue color
+ \li \c {QT_QPA_EGLFS_FORCE888} - When set, the red, green, and blue color
channel sizes are ignored whenever creating a new context, window or offscreen
- surface. Instead, the plugin will request a configuration with 8 bits per
+ surface. Instead, the plugin requests a configuration with 8 bits per
channel. This can be helpful on devices where configurations with less than 32
- or 24 bits per pixel are chosen by default but are known not to be suitable,
+ or 24 bits per pixel are chosen by default but are known to be not suitable,
for example, due to banding effects. Instead of changing all the applications,
this variable provides an easier shortcut to force 24/32 bpp configurations
for a given device.
\li \c {QT_QPA_EGLFS_DEBUG} - When set, some debugging information is printed
on the debug output. For example, the input QSurfaceFormat and the properties
- of the chosen EGL configuration are printed whenever creating a new
+ of the chosen EGL configuration are printed while creating a new
context. Together with Qt Quick's \c {QSG_INFO} variable, this can provide
useful information for troubleshooting issues related to the EGL
configuration.
@@ -185,23 +206,23 @@
\li \c {QT_QPA_EGLFS_INTEGRATION} - In addition to the compiled-in \e hooks,
it is also possible to provide device or vendor-specific adaptation in the
form of dynamically loaded plugins. This environment variable enforces a
- specific plugin. For example, setting it to \e{eglfs_kms} will use the KMS/DRM
- backend. This is only an option when no static, compiled-in hooks were
- specified in the device makespecs. In practice the traditional compiled-in
+ specific plugin. For example, setting it to \e{eglfs_kms} uses the KMS/DRM
+ backend. This is only an option when no static or compiled-in hooks were
+ specified in the device makespecs. In practice, the traditional compiled-in
hooks are rarely used, almost all backends are now migrated to plugins. The
device makespecs still contain a relevant \c EGLFS_DEVICE_INTEGRATION entry:
the name of the preferred backend for that particular device. This is
optional, but very useful to avoid the need to set this environment variable
in case there are more than one plugins present in the target system. In a
- desktop environment the KMS or the X11 backends are prioritized, depending on
+ desktop environment the KMS or X11 backends are prioritized, depending on
the presence of the \c DISPLAY environment variable. Note that on some boards
- the special value of \c none will be used instead of an actual plugin. This
+ the special value of \c none is used instead of an actual plugin. This
indicates that no special integration is necessary to use EGL with the
- framebuffer and so no plugins should be loaded.
+ framebuffer and so no plugins must be loaded.
\endlist
- In addition to \c {QT_QPA_EGLFS_DEBUG}, eglfs also supports the more modern
+ In addition to \c {QT_QPA_EGLFS_DEBUG}, \c eglfs also supports the more modern
categorized logging system of Qt. The following logging categories are
available:
@@ -210,8 +231,8 @@
\li \c qt.qpa.egldeviceintegration – Enables logging for dynamically loaded
backends. Very useful to check what backend is in use.
- \li \c qt.qpa.input – Enables debug output both from the evdev and libinput
- input handlers. Very useful to check if a given input device was correctly
+ \li \c qt.qpa.input – Enables debug output both from the \c evdev and
+ \c libinput input handlers. Very useful to check if a given input device was
recognized and opened.
\li \c qt.qpa.eglfs.kms – Enables verbose logging in the KMS/DRM backend.
@@ -227,23 +248,23 @@
The \c linuxfb plugin allows specifying additional settings by passing them
in the \c QT_QPA_PLATFORM environment variable or \c -platform command-line
option. For example, \c {QT_QPA_PLATFORM=linuxfb:fb=/dev/fb1} specifies that
- the framebuffer device \c /dev/fb1 should be used instead of the default
- \c fb0. Multiple settings can be specfified by separating them with a colon.
+ the framebuffer device \c /dev/fb1 must be used instead of the default
+ \c fb0. Multiple settings can be specified by separating them with a colon.
\list
\li \c {fb=/dev/fbN} - Specifies the framebuffer devices. On multiple display
- setups this will typically allow running the application on different
+ setups this typically allows running the application on different
displays. For the time being there is no way to use multiple framebuffers from
one Qt application.
\li \c{size=}\e{<width>}\c{x}\e{<height>} - Specifies the screen size in
- pixels. The plugin will try to query the display dimensions, both physical and
+ pixels. The plugin tries to query the display dimensions, both physical and
logical, from the framebuffer device. This may not always lead to proper
results however, and therefore it may become necessary to explicitly specify
the values.
- \li \c{mmSize=}\e{<width>}\c{x}\e{<height>} - Physical width and height in
+ \li \c{mmsize=}\e{<width>}\c{x}\e{<height>} - Physical width and height in
millimeters.
\li \c{offset=}\e{<width>}\c{x}\e{<height>} - Offset in pixels specifying the
@@ -259,55 +280,57 @@
\endlist
- \section2 KMS
-
- An experimental platform plugin using kernel modesetting and \l
- {http://dri.freedesktop.org/wiki/DRM}{drm} (Direct Rendering Manager).
+ \section1 Input
- \note This plugin is obsolete. eglfs has its own KMS/DRM support
- which provides all the functionality of the kms plugin and also adds
- features, like multiple display support, that were not previously
- available in the standalone plugin. Using the kms plugin is
- therefore strongly discouraged.
+ When no windowing system is present, the mouse, keyboard, and touch input are
+ read directly via \c evdev or using helper libraries such as \c libinput or
+ \c tslib. Note that this requires that device nodes \c {/dev/input/event*} are
+ readable by the user. \c eglfs and \c linuxfb have all the input handling code
+ compiled-in.
- \section1 Input
+ \section2 Using libinput
- When no windowing system is present, the mouse, keyboard and touch input are
- read directly via \c evdev or using helper libraries like \c tslib. Note that
- this requires that devices nodes \c {/dev/input/event*} are readable by the
- user. eglfs and linuxfb has all the evdev input handling code built-in.
+ \l{http://www.freedesktop.org/wiki/Software/libinput}{libinput} is a library
+ to handle input devices. It offers an alternative to the Qt's own \c evdev
+ input support. To enable using \c libinput, make sure the development files
+ for \c libudev and \c libinput are available when configuring and building
+ Qt. \c xkbcommon is also necessary if keyboard support is desired. With
+ \c eglfs and \c linuxfb no further actions are necessary as these plugins use
+ \c libinput by default. If \c libinput support is not available or the
+ environment variable \c QT_QPA_EGLFS_NO_LIBINPUT is set, Qt's own evdev
+ handlers come in to play.
- \section2 Input on eglfs and linuxfb
+ \section2 Input on eglfs and linuxfb without libinput
Parameters like the device node name can be set in the environment variables
\c QT_QPA_EVDEV_MOUSE_PARAMETERS, \c QT_QPA_EVDEV_KEYBOARD_PARAMETERS and
\c QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS. Additionally, the built-in input handlers
can be disabled by setting \c QT_QPA_EGLFS_DISABLE_INPUT or
- \c QT_QPA_FB_DISABLE_INPUT to \c 1. On some touch screens the coordinates will
- need to be rotated. This can be enabled by setting
+ \c QT_QPA_FB_DISABLE_INPUT to \c 1. On some touch screens the coordinates must
+ be rotated, which is done by setting
\c QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to \c {rotate=180}.
\section2 Mouse
- The mouse cursor will show up whenever \c QT_QPA_EGLFS_HIDECURSOR (for eglfs)
+ The mouse cursor shows up whenever \c QT_QPA_EGLFS_HIDECURSOR (for eglfs)
or \c QT_QPA_FB_HIDECURSOR (for linuxfb) is not set and Qt's libudev-based
- device discovery reports that at least one mouse is available. When libudev
- support is not present, the mouse cursor will always show up unless explicitly
+ device discovery reports that at least one mouse is available. When \c libudev
+ support is not present, the mouse cursor always show up unless explicitly
disabled via the environment variable.
- Hot plugging is supported, but only if Qt was configured with libudev support
+ Hot plugging is supported, but only if Qt was configured with \c libudev support
(that is, if the \e libudev development headers are present in the sysroot at
configure time). This allows connecting or disconnecting an input device while
the application is running.
\section2 Keyboard
- The evdev keyboard handler supports the following extra parameters:
+ The \e evdev keyboard handler supports the following extra parameters:
\list
\li \c {/dev/input/...} - Specifies the name of the input device. When not
- given, Qt will look for a suitable device either via \e libudev or by walking
+ given, Qt looks for a suitable device either via \e libudev or by walking
through the available nodes.
\li \c {grab} - Enables grabbing the input device.
\li \c {keymap} - Specifies the name of a custom keyboard map file.
@@ -317,37 +340,37 @@
\endlist
On Embedded Linux systems that do not have their terminal sessions disabled,
- the behavior when pressing a key can be confusing due to having the input
- event processed both by the Qt application and the tty. To overcome this, the
- following options are available:
+ the behavior on a key press can be confusing as input event is processed by
+ the Qt application and the tty. To overcome this, the following options are
+ available:
\list
- \li EGLFS, LinuxFB and KMS attempt to disable the terminal keyboard on
+ \li \e EGLFS and \e LinuxFB attempt to disable the terminal keyboard on
application startup by setting the tty's keyboard mode to \c K_OFF. This
prevents keystrokes from going to the terminal. If the standard behavior needs
to be restored for some reason, set the environment variable
- \c QT_QPA_ENABLE_TERMINAL_KEYBOARD to \c 1. Note that this will not work when the
+ \c QT_QPA_ENABLE_TERMINAL_KEYBOARD to \c 1. Note that this works only when the
application is launched from a remote console (for example, via \c ssh) and
- the terminal keyboard input will remain enabled.
+ the terminal keyboard input remains enabled.
- \li An alternative approach is to use the evdev keyboard handler's \c grab
+ \li An alternative approach is to use the \e evdev keyboard handler's \c grab
parameter by passing \e{grab=1} in \c QT_QPA_EVDEV_KEYBOARD_PARAMETERS. This
- results in trying to get a grab on the input device which, if successful,
- means that no other components in the system receive events from it as long as
+ results in trying to get a grab on the input device. If the \c grab is
+ successful, no other components in the system receive events from it as long as
the Qt application is running. This approach is more suitable for applications
started remotely as it does not need access to the tty device.
- \li Finally, for many specialized Embedded Linux images it will not make sense
+ \li Finally, for many specialized Embedded Linux images it does not make sense
to have the standard terminal sessions enabled in the first place. Refer to
your build environment's documentation on how to disable them. For example,
when generating images using the \l {http://www.yoctoproject.org}{Yocto
- Project}, unsetting \c SYSVINIT_ENABLED_GETTYS will result in having no
+ Project}, unsetting \c SYSVINIT_ENABLED_GETTYS results in having no
\c getty process running, and thus no input, on any of the virtual terminals.
\endlist
- If the default, built-in keymap is not sufficient, a different one can be
+ If the default built-in keymap is not sufficient, a different one can be
specified either via the \c keymap parameter or by using the eglfs-specific
\l{QEglFSFunctions::loadKeymap()}{loadKeymap()} function. The latter allows
switching the keymap at runtime. Note however that this requires using eglfs'
@@ -356,23 +379,23 @@
\note Special system key combinations, such as console switching
(\e{Ctrl+Alt+Fx}) or zap (\e{Ctrl+Alt+Backspace}) are not currently supported
- and will get ignored.
+ and are ignored.
To generate a custom keymap, the \e kmap2qmap utility can be used. This can be
found in the \e qttools module. The source files have to be in standard Linux
- \c kmap format that is e.g. understood by the kernel's \c loadkeys command.
+ \c kmap format, which is understood by the kernel's \c loadkeys command.
This means one can use the following sources to generate \c qmap files:
\list
\li The \l {http://lct.sourceforge.net/}{Linux Console Tools (LCT)} project.
\li \l {http://www.x.org/}{Xorg} X11 keymaps can be converted to the
\c kmap format with the \c ckbcomp utility.
- \li As \c kmap files are plain text files, they can also be hand crafted.
+ \li As \c kmap files are plain-text files, they can also be hand crafted.
\endlist
\c kmap2qmap is a command line program, that needs at least 2 files as
- parameters. The last one will be the generated \c .qmap file, while all the
- others will be parsed as input \c .kmap files. For example:
+ parameters. The last one is the generated \c .qmap file, while all the
+ others are parsed as input \c .kmap files. For example:
\badcode
kmap2qmap i386/qwertz/de-latin1-nodeadkeys.kmap include/compose.latin1.inc de-latin1-nodeadkeys.qmap
@@ -386,37 +409,26 @@
\section2 Touch
For some resistive, single-touch touch screens it may be necessary to fall
- back to using tslib instead of relying on the Linux multitouch protocol and
- the event devices. For modern touch screens this should not be
- necessary. tslib support can be enabled by setting the environment variable
+ back to using \c tslib instead of relying on the Linux multi-touch protocol and
+ the event devices. For modern touch screens this is not necessary. \c tslib
+ support can be enabled by setting the environment variable
\c QT_QPA_EGLFS_TSLIB or \c QT_QPA_FB_TSLIB to 1. To change the device, set the
environment variable \c TSLIB_TSDEVICE or pass the device name on the
- command-line. Note that the tslib input handler generates mouse events and
- supports single touch only, as opposed to evdevtouch which generates true
+ command-line. Note that the \c tslib input handler generates mouse events and
+ supports single touch only, as opposed to \c evdevtouch which generates true
multi-touch QTouchEvent events too.
\section2 Pen-based tablets
The \c evdevtablet plugin provides basic support for Wacom and similar,
- pen-based tablets. It will only generate QTabletEvent events. To enable it,
+ pen-based tablets. It generates QTabletEvent events only. To enable it,
pass \c {QT_QPA_GENERIC_PLUGINS=evdevtablet} in the environment or,
- alternatively, \c {-plugin evdevtablet} on the command-line. The plugin can
- take a device node parameter, for example
+ alternatively, pass \c {-plugin evdevtablet} argument on the command-line.
+ The plugin can take a device node parameter, for example
\c{QT_QPA_GENERIC_PLUGINS=evdevtablet:/dev/event1}, in case the Qt's automatic
device discovery (based either on \e libudev or a walkthrough of
\c{/dev/input/event*}) is not functional or misbehaving.
- \section2 Using libinput
-
- \l{http://www.freedesktop.org/wiki/Software/libinput}{libinput} is a library to
- handle input devices. It offers an alternative to the default evdev input
- support. To switch to using libinput, first make sure the development files
- for libudev and libinput are available when configuring and building Qt. This
- will result in building the libinput plugin. Then, if using eglfs or linuxfb,
- disable the built-in input handlers by setting \c QT_QPA_EGLFS_DISABLE_INPUT
- or \c QT_QPA_FB_DISABLE_INPUT to \c 1. Finally, launch the application with
- \c{-plugin libinput}.
-
\section2 Debugging Input Devices
It is possible to print some information to the debug output by enabling
@@ -424,9 +436,9 @@
environment variable to \c{qt.qpa.input=true}. This is useful for detecting
which device is being used, or to troubleshoot device discovery issues.
- \section2 Using custom mouse cursor images
+ \section2 Using Custom Mouse Cursor Images
- eglfs comes with its own set of 32x32 sized mouse cursor images. If these are
+ \c eglfs comes with its own set of 32x32 sized mouse cursor images. If these are
not sufficient, a custom cursor atlas can be provided by setting the \c
QT_QPA_EGLFS_CURSOR environment variable to the name of a JSON file. The file
can also be embedded into the application via Qt's resource system.
@@ -452,7 +464,7 @@
the \c cursorsPerRow setting. Atlases have to provide an image for all the
supported cursors.
- \section1 Display output
+ \section1 Display Output
When having multiple displays connected, the level of support for targeting
one or more of these from one single Qt application varies between the
@@ -460,7 +472,7 @@
\section2 eglfs
- When the KMS/DRM backend is in use, eglfs will report all available screens in
+ When the KMS/DRM backend is in use, eglfs reports all available screens in
QGuiApplication::screens(). Applications can target different screens with
different windows via QWindow::setScreen(). Note however that the restriction
of one single fullscreen window per screen still applies.
@@ -469,12 +481,12 @@
necessary to verify the behavior of the device and drivers, and that the
connected displays are working as they should. One easy way is to use the
hellowindow example. Launching it with \c{-platform eglfs --multiscreen
- --timeout} will show a rotating Qt logo on each connected screen for a few
+ --timeout} arguments shows a rotating Qt logo on each connected screen for a few
seconds.
The KMS/DRM backend also supports custom configurations via a JSON file. Set
the environment variable \c QT_QPA_EGLFS_KMS_CONFIG to the name of the file to
- enable this. The file can also be embedded in the application via the Qt
+ enable this. The file can also be embedded into the application via the Qt
resource system. An example configuration is below:
\badcode
@@ -500,7 +512,7 @@
\list
\li it will not use the hardware cursor (falls back to rendering the mouse
- cursor via OpenGL; by default hardware cursors are enabled since they are more
+ cursor via OpenGL; by default hardware cursors are enabled as they are more
efficient),
\li it will back QOffscreenSurface with standard EGL pbuffer surfaces (by
@@ -511,16 +523,16 @@
\endlist
- Additionally, such a configuration will also disable looking for a device via
- \c libudev and instead the specified device will be used.
+ Additionally, such a configuration also disables looking for a device via
+ \c libudev and instead the specified device is used.
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.
+ backend. To do this, enable the categorized logging rule, \c qt.qpa.eglfs.kms.
Other backends, that are typically based on targeting the framebuffer
- directly via the vendor's EGL implementation, will usually provide limited or
+ directly via the vendor's EGL implementation, usually provides limited or
no support for multiple displays. In some cases the \c {QT_QPA_EGLFS_FB}
- environment variable can be used to control which framebuffer to target,
+ environment variable can be used to specify the framebuffer to target,
similarly to linuxfb. Alternatively, driver-specific environment variables or
kernel parameters may also be available to control the used framebuffer. Refer
to the embedded board's documentation.
@@ -531,9 +543,9 @@
before running Qt application based on Qt Quick or classes like
QOpenGLWidget. The default setting may be insufficient for such applications,
especially when they are displayed on a high resolution (for example, full HD)
- screen. In this case they may start failing in unexpected ways. It is
- therefore recommended to ensure that there is at least 128 MB of GPU memory
- available. For systems that do not have a fixed amount of memory reserved for
+ screen. In this case, they may start failing in unexpected ways. It is
+ recommended to ensure that there is at least 128 MB of GPU memory available.
+ For systems that do not have a fixed amount of memory reserved for
the GPU this is not an issue.
\section2 linuxfb
@@ -546,13 +558,13 @@
This is the X11 plugin used on regular desktop Linux platforms. In some
embedded environments, that provide X and the necessary development files for
- \l {http://xcb.freedesktop.org}{xcb}, this plugin will function just like it
+ \l {http://xcb.freedesktop.org}{xcb}, this plugin functions just like it
does on a regular PC desktop.
\note On some devices there is no EGL and OpenGL support available under X
because the EGL implementation is not compatible with Xlib. In this case the
- XCB plugin will be built without EGL support, meaning that Qt Quick 2 or other
- OpenGL-based applications will not work with this platform plugin. It can
+ XCB plugin is built without EGL support, meaning that Qt Quick 2 or other
+ OpenGL-based applications does not work with this platform plugin. It can
still be used however to run software-rendered applications (based on QWidget
for example).
@@ -569,8 +581,16 @@
The Qt Wayland module provides a \c wayland platform plugin that allows Qt
application to connect to a Wayland compositor.
- \note Please note that you may experience issues with touch screen input with
- the \l{http://wayland.freedesktop.org/}{Weston} reference compositor. Please
- refer to the \l{https://wiki.qt.io/WestonTouchScreenIssues}{Qt Wiki} for
+ \note You may experience issues with touch screen input while using
+ the \l{http://wayland.freedesktop.org/}{Weston} reference compositor.
+ Refer to the \l{https://wiki.qt.io/WestonTouchScreenIssues}{Qt Wiki} for
further information.
+
+ \section1 Related Topics
+
+ \list
+ \li \l{Qt for Device Creation}
+ \li \l Emulator
+ \li \l{Qt Virtual Keyboard}
+ \endlist
*/
diff --git a/doc/src/platforms/ios.qdoc b/doc/src/platforms/ios.qdoc
index 4cbcc431..6a0a77be 100644
--- a/doc/src/platforms/ios.qdoc
+++ b/doc/src/platforms/ios.qdoc
@@ -29,6 +29,7 @@
\page ios_support.html
\title Qt for iOS
\brief Provides insight into Qt's iOS port and how to use it.
+ \ingroup supportedplatform
Qt's iOS port allows you to run Qt applications on iOS devices,
such as iPhones and iPads.
diff --git a/doc/src/platforms/linux.qdoc b/doc/src/platforms/linux.qdoc
index 2c5653c2..0a2204e6 100644
--- a/doc/src/platforms/linux.qdoc
+++ b/doc/src/platforms/linux.qdoc
@@ -342,26 +342,16 @@
Linux distributions; try searching for \c gstreamer or \c libgstreamer in your distribution's
package repository to find suitable packages.
- \section1 Qt WebKit Dependencies
+ \section1 Qt WebEngine Dependencies
- \l{Qt WebKit} depends on some extra development tools in addition to those required for the rest of Qt.
+ \l{Qt WebEngine} depends on some extra development tools in addition to
+ those required for the rest of Qt.
\note These dependencies are only needed if you use a source version of Qt.
They are not required when using a prebuilt library.
- \list
- \li gperf
- \li bison
- \li flex (v2.5.33 or later)
- \li sqlite (development version)
- \li fontconfig (development version)
- \li xrender (development version)
- \li gstreamer (development version)
- \endlist
-
- These should be available in most major Linux distributions, but the exact install instructions will vary.
-
- For the most up to date information about \l{Qt WebKit} dependencies, please refer to the \l{http://trac.webkit.org/wiki/BuildingQtOnLinux}{Qt WebKit wiki for Linux}
+ For the most up-to-date information about \l{Qt WebEngine} dependencies,
+ see the \l{Qt WebEngine Wiki}{Qt WebEngine} wiki.
*/
@@ -734,6 +724,10 @@
above. Do this by adding them to the \c LIBS variable in your
project file.
+ From Qt version 5.2 onwards, the officially supported version for
+ OpenSSL is 1.0.0 or later. Versions >= 0.9.7 and < 1.0.0 might work,
+ but are not guaranteed to.
+
\section2 Qt Plugins
All Qt GUI applications require a plugin that implements the \l {Qt
@@ -750,10 +744,6 @@
within a specific subdirectory (such as \c imageformats or \c sqldrivers)
within your distribution directory.
- \note If you are deploying an application that uses \l{Qt WebKit} to display
- HTML pages from the World Wide Web, you should include all text codec
- plugins to support as many HTML encodings possible.
-
The search path for Qt plugins (as well as a few other paths) is
hard-coded into the QtCore library. By default, the first plugin
search path will be hard-coded as \c /path/to/Qt/plugins. As
@@ -833,7 +823,7 @@
mode.
\li Versions 10.1.008 to 10.1.015 for both IA-32 and Intel 64 are
known crash with "(0): internal error: 0_47021" when compiling
- \l{Qt XML Patterns}, \l{Qt WebKit}, and \l{Qt Designer} in release mode. Version
+ \l{Qt XML Patterns} and \l{Qt Designer} in release mode. Version
10.1.017 compiles these modules correctly in release mode.
\endlist
diff --git a/doc/src/platforms/osx.qdoc b/doc/src/platforms/osx.qdoc
index 0f5ddde5..7bc3d683 100644
--- a/doc/src/platforms/osx.qdoc
+++ b/doc/src/platforms/osx.qdoc
@@ -195,15 +195,6 @@
You can download the Qt 5 sources from the \l{Downloads} page. For
more information, visit the \l{Getting Started with Qt} page.
- For the binary package, simply double-click on the Qt.mpkg
- and follow the instructions to install Qt. You can later run the \c{uninstall-qt.py}
- script to uninstall the binary package. The script is located in /Developer/Tools and
- must be run as root.
-
- \note Do not run the iPhone simulator while installing Qt. The
- \l{http://openradar.appspot.com/7214991}
- {iPhone simulator conflicts with the package installer}.
-
\section1 Step 1: Install the License File (Commercial Editions Only)
If you have the commercial edition of Qt, install your license
file as \c{$HOME/.qt-license}.
@@ -230,11 +221,9 @@
\snippet snippets/code/doc_src_installation.qdoc 12
- Specify \c{-universal} if you want to build universal binaries, and also
- supply a path to the \c{-sdk} option if your development machine has a
- PowerPC CPU. By default, Qt is built as a framework, but you can built
- it as a set of dynamic libraries (dylibs) by specifying the \c{-no-
- framework} option.
+ By default, Qt is built as a framework, but you can built
+ it as a set of dynamic libraries (dylibs) by specifying the
+ \c{-no-framework} option.
Qt can also be configured to be built with debugging symbols. This
process is described in detail in the \l{Debugging Techniques}
@@ -243,14 +232,13 @@
The \l{Qt Configure Options}{Configure Options} page contains more
information about the configure options.
- To create the library and compile all the examples, tools,
- and tutorials, type:
+ To create the library and compile all the examples and tools, type:
\snippet snippets/code/doc_src_installation.qdoc 13
If \c{-prefix} is outside the build directory, you need to install
- the library, examples, tools, and tutorials in the appropriate
- place. To do this, type:
+ the library, examples, and tools in the appropriate place. To do this,
+ type:
\snippet snippets/code/doc_src_installation.qdoc 14
@@ -260,11 +248,6 @@
\note There is a potential race condition when running make install with multiple
jobs. It is best to only run one make job (-j1) for the install.
- If you later need to reconfigure and rebuild Qt from the
- same location, ensure that all traces of the previous configuration are
- removed by entering the build directory and typing \c{make confclean}
- before running \c configure again.
-
\section1 Step 3: Set the Environment Variables
In order to use Qt, some environment variables need to be
@@ -1037,10 +1020,6 @@
each type of plugin must be located within a specific subdirectory (such as
\c imageformats or \c sqldrivers) in your distribution directory.
- When deploying an application that uses Qt WebKit to display HTML pages from
- the World Wide Web, you must include all text codec plugins to support as
- many HTML encodings possible.
-
The search path for Qt plugins (as well as a few other paths) is
hard-coded into the QtCore library. By default, the first plugin
search path will be hard-coded as \c /path/to/Qt/plugins. But
diff --git a/doc/src/platforms/platform-notes-android.qdoc b/doc/src/platforms/platform-notes-android.qdoc
index 0b501d0d..9cf572ec 100644
--- a/doc/src/platforms/platform-notes-android.qdoc
+++ b/doc/src/platforms/platform-notes-android.qdoc
@@ -156,7 +156,9 @@
or later. This affects camera preview and video player features.
Additionally, the \l{Qt Multimedia Widgets} module is not supported on Android, which means
- video display is only available using the VideoOutput and \l{QtMultimedia::Video}{Video} QML items.
+ video display is only available using the VideoOutput and the \l [QML]{QtMultimedia::}{Video}
+ QML Type.
+
\section1 Assets File System
diff --git a/doc/src/platforms/platform-notes-qtee.qdoc b/doc/src/platforms/platform-notes-qtee.qdoc
deleted file mode 100644
index f935929f..00000000
--- a/doc/src/platforms/platform-notes-qtee.qdoc
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 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$
-**
-****************************************************************************/
-
-/*!
- \page platform-notes-qtee.html
- \title Qt Enterprise Embedded
-
- Qt Enterprise Embedded, available under a commercial license,
- supports Qt development on embedded Linux and embedded Android
- devices.
-
- See \l http://qt.io/qt-for-device-creation/ for
- more information.
-*/
diff --git a/doc/src/platforms/platform-notes-rtos.qdoc b/doc/src/platforms/platform-notes-rtos.qdoc
index 55116186..4b5bc632 100644
--- a/doc/src/platforms/platform-notes-rtos.qdoc
+++ b/doc/src/platforms/platform-notes-rtos.qdoc
@@ -29,7 +29,7 @@
\page platform-notes-vxworks.html
\title Platform and Compiler Notes - VxWorks
\contentspage Platform and Compiler Notes
- \target VxWorks
+ \keyword VxWorks
Qt for VxWorks is available only under a commercial license.
@@ -42,7 +42,7 @@
\page platform-notes-qnx.html
\title Platform and Compiler Notes - QNX
\contentspage Platform and Compiler Notes
- \target QNX
+ \keyword QNX
\section1 Supported Architectures and QNX Releases
@@ -329,7 +329,7 @@
\page platform-notes-integrity.html
\title Platform Notes - INTEGRITY
\contentspage Platform Notes
- \target INTEGRITY
+ \keyword INTEGRITY
\note \l {http://www.ghs.com/products/rtos/integrity.html}{INTEGRITY} is a community supported platform
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 7afb2a18..516d1917 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -73,7 +73,6 @@
\section1 Embedded Platforms
You can develop with Qt for the following embedded platforms:
\list
- \li \l{Qt Enterprise Embedded}{Embedded Android}
\li \l{Qt for Embedded Linux}{Embedded Linux}
\li \l{Windows CE - Introduction to using Qt}{Windows Embedded (Compact and Standard)}
\li Real-Time Operating Systems, such as \l{QNX}, VxWorks and INTEGRITY
diff --git a/doc/src/platforms/wince-introduction.qdoc b/doc/src/platforms/wince-introduction.qdoc
index 2779536d..1047e41e 100644
--- a/doc/src/platforms/wince-introduction.qdoc
+++ b/doc/src/platforms/wince-introduction.qdoc
@@ -26,10 +26,10 @@
****************************************************************************/
/*!
- \group qtce
+ \page qtce.html
\title Qt for Windows CE
- \ingroup qt-embedded
\brief Documents related to Qt for Windows CE
+ \ingroup supportedplatform
Qt for Windows CE is a C++ framework for GUI and application development
for embedded devices running Windows CE. It runs on a variety of processors,
@@ -54,6 +54,8 @@
\li \l {Qt for Windows CE and OpenGL ES}{Hardware Accelerated Graphics}
\endlist
\endtable
+
+ \annotatedlist qtce
*/
/*!
diff --git a/doc/src/platforms/windows.qdoc b/doc/src/platforms/windows.qdoc
index c3d033f5..03fc8368 100644
--- a/doc/src/platforms/windows.qdoc
+++ b/doc/src/platforms/windows.qdoc
@@ -110,9 +110,8 @@
\section1 Libraries
- The following libraries may be used when running Qt 5 applications in Windows.
- These are not mandatory, but some components (for example, Qt WebKit) may depend
- on them.
+ The following third-party libraries may be used when running Qt 5
+ applications on Windows.
\list
\li \l{ICU}: Qt 5 can make use of the ICU library for enhanced UNICODE and Globalization
@@ -127,13 +126,7 @@
\li \l{ANGLE}: This library converts OpenGL ES 2.0 API calls to DirectX 11 or DirectX 9
calls (depending on availability), removing the need to install graphics drivers on
the target machines.
- Building the library requires the installation of the \l{Direct X SDK}.
- More information is available at \l{http://code.google.com/p/angleproject/wiki/DevSetup}
-
- \note When building for 64-bit environments, de-activate the
- \c WarnAsError option in every project file, otherwise, integer
- conversion warnings will break the build.
- \endlist
+ \endlist
Support for Secure Sockets Layer (SSL) communication is provided by the
\l {OpenSSL Toolkit}, which must be obtained separately. See
@@ -142,13 +135,9 @@
\section2 ICU
- Qt WebKit, and applications using it, always need the ICU libraries. Qt Core
- can be configured to either rely on ICU functionality, or fall back to Windows API
- and internal algorithms with somewhat reduced functionality.
-
From Qt 5.3 and onwards, configure does not link Qt Core against ICU libraries
anymore by default. This reduces the size of a self-contained
- application package considerably, as long as Qt WebKit is not used.
+ application package considerably.
Letting Qt Core utilize the ICU libraries however has following advantages:
\list
@@ -291,10 +280,23 @@
The following feature keywords are relevant for choosing the OpenGL implementation:
\list
- \li \c disable_desktopgl - Disables Desktop OpenGL
- \li \c disable_angle - Disables ANGLE
- \li \c disable_d3d11 - Disables the D3D11 rasterizer in ANGLE
+ \li \c disable_desktopgl - Disables OpenGL. This ensures that Qt does not attempt
+ to use regular OpenGL (opengl32.dll), and that it starts with ANGLE right
+ away. This is useful to prevent bad OpenGL drivers from crashing the application.
+
+ \li \c disable_angle - Disables ANGLE. Ensures that Qt does not attempt to use
+ ANGLE (and so Direct3D).
+
+ \li \c disable_d3d11 - Disables the D3D11 rasterizer in ANGLE. Instead, the next
+ D3D rendering option is tried first. The default order is: D3D11, D3D9, WARP,
+ reference implementation.
+
\li \c disable_d3d9 - Disables the D3D9 rasterizer in ANGLE
+
+ \li \c disable_rotation - Forces the application to run in landscape orientation
+ always. It applies to OpengGL only and has no effect when using ANGLE or Software
+ OpenGL implementations. This is intended for drivers that have issues with rotation.
+ This feature keyword was introduced in Qt 5.6.
\endlist
A sample file looks like:
@@ -326,6 +328,42 @@
\c disable_desktopgl set, in order to prevent Qt from using their unstable
desktop OpenGL implementations and instead fall back to ANGLE right away.
+ In practice the most common combinations are expected to be the following:
+
+ \list
+ \li \c disable_desktopgl - In case the system provides OpenGL 2.0 or newer, but
+ the driver is known to be unstable and prone to crash.
+
+ \li \c disable_desktopgl, disable_angle - When no accelerated path is
+ desired. This ensures that the only option Qt tries is the sofware rasterizer
+ (opengl32sw.dll). Can be useful in virtual machines and applications that are
+ deployed on a wide range of old systems.
+
+ \li \c disable_d3d11, disable_d3d9 - When the accelerated D3D options are known to
+ be unstable and WARP is desired (when available). Can be useful in virtual machines.
+ \endlist
+
+ The supported keys for matching a given card or driver are the following. Note that
+ some of these are specific to Qt.
+
+ \list
+ \li \c os.type - Operating system: \c win, \c linux, \c macosx, \c android
+ \li \c os.version - Kernel version
+ \li \c os.release - Specifies a list of operating system releases on Windows:
+ \c xp, \c vista, \c 7, \c 8, \c 8.1, \c 10.
+
+ \li \c vendor_id - Vendor from the adapter identifier
+
+ \li \c device_id - List of PCI device IDs.
+
+ \li \c driver_version - Driver version from the adapter identifier
+
+ \li \c driver_description - Matches when the value is a substring of the driver
+ description from the adapter identifier
+
+ \li \c gl_vendor - Matches when the value is a substring of the \c GL_VENDOR string
+ \endlist
+
\section1 Building from Source
These tools are not needed to run Qt 5 applications, but they are required
@@ -336,13 +374,7 @@
(\l{http://www.activestate.com/activeperl}{download page}) and add
the installation location to your \c PATH.
\li Python - Install Python from the \l{http://www.python.org/download/}{here}
- and add the installation location to your PATH in order to be able
- to build Qt WebKit.
-
- \li Install \l{http://www.ruby-lang.org}{Ruby} from \l{http://rubyinstaller.org/}{here}
- and add the installation location to your PATH in order to be able
- to build Qt WebKit.
-
+ and add the installation location to your PATH.
\endlist
\note Please make sure that the \c perl executable from ActivePerl is found
@@ -350,7 +382,7 @@
latter is outdated.
- Qt WebKit and ANGLE depend on these extra tools from the \l{GnuWin32 Project}{GnuWin32} and
+ ANGLE depends on these extra tools from the \l{GnuWin32 Project}{GnuWin32} and
\l {http://sourceforge.net/projects/winflexbison/}{Win flex-bison}
projects, which are provided for your convenience in the \e gnuwin32/bin
folder:
@@ -398,8 +430,8 @@
\endlist
- For the most up to date information about the \l{Qt WebKit} dependencies,
- please refer to the \l{http://trac.webkit.org/wiki/BuildingQtOnWindows}{Qt WebKit Wiki for Windows}.
+ For the most up-to-date information about the \l{Qt WebEngine} dependencies,
+ see the \l{Qt WebEngine on Windows}{Qt WebEngine} wiki for Windows.
*/
@@ -436,6 +468,10 @@
nmake
\endcode
+ \note The \c configure option -qtlibinfix cannot take a version number as an argument.
+ For example:
+ \c{-qtlibinfix 5.6.0} should be specified as \c{-qtlibinfix QtCore5.6.dll}.
+
Also compile your own application in the above environment if compiling
on the command line. If you use Visual Studio, set the \c v110_xp toolset in the project's
property pages.
@@ -460,7 +496,7 @@
The minimum version of MinGW-builds supported is GCC 4.7.2.
\l{http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev8.7z}
{MinGW-builds GCC 4.7.2 32 bit, rev 8} and later should be able
- to build Qt including Qt WebKit.
+ to build Qt.
For more information about the MinGW builds, visit the
\e{Reference Configuration} section of the
@@ -497,6 +533,36 @@
Consult the \l{Qt for Windows - Requirements} page for specific versions
of the Windows SDK.
+
+ \section1 Fullscreen OpenGL Based Windows
+
+ When a window is using an OpenGL based surface and is appearing in full
+ screen mode, problems can occur with other top-level windows which are
+ part of the application. Due to limitations of the Windows DWM,
+ compositing is not handled correctly for OpenGL based windows when going
+ into full screen mode. As a result, other top-level windows are not placed
+ on top of the full screen window when they are made visible. For example,
+ menus may not appear correctly, or dialogs fail to show up.
+
+ A window can use an OpenGL based surface either explicitly when
+ \l {QWindow::}{setSurfaceType()} is called, or when something that
+ requires OpenGL is used inside the window, causing the whole window to be
+ OpenGL based. For example, QOpenGLWidget or QQuickWidget can trigger this.
+ However, if the surface is contained in a QWindow which is hosted with
+ \l {QWidget::}{createWindowContainer()}, or the obsoleted QGLWidget is
+ used and it does cover the entire full screen window, then this problem
+ does not occur.
+
+ To solve this problem, a QWindowsWindowFunction can be used to enable a
+ native Windows flag which will set \c WS_BORDER when showing in full
+ screen mode. This can be utilized as follows:
+
+ \code
+ QWindowsWindowFunctions::setHasBorderInFullScreen(tlwWindow->windowHandle(), true);
+ \endcode
+
+ This will give the full screen window a 1-pixel border, thus enabling the
+ other top level windows to appear on top.
*/
/*!
@@ -896,6 +962,10 @@
When looking at the plugin DLLs the exact same dependencies
are listed.
+ From Qt version 5.2 onwards, the officially supported version
+ for OpenSSL is 1.0.0 or later. Versions >= 0.9.7 and < 1.0.0 might
+ work, but are not guaranteed to.
+
\section2 Qt Plugins
All Qt GUI applications require a plugin that implements the \l {Qt
@@ -912,10 +982,6 @@
be located within a specific subdirectory (such as \c printsupport,
\c imageformats or \c sqldrivers) within your distribution directory.
- \note If you are deploying an application that uses Qt WebKit to display
- HTML pages from the World Wide Web, you should include all text codec
- plugins to support as many HTML encodings possible.
-
The search path for Qt plugins is hard-coded into the QtCore library.
By default, the plugins subdirectory of the Qt installation is the first
plugin search path. However, pre-determined paths like the default one
@@ -971,7 +1037,7 @@
\badcode
Usage: windeployqt [options] [files]
-Qt Deploy Tool 5.4.0
+Qt Deploy Tool 5.6.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:
@@ -988,6 +1054,7 @@ Options:
--debug Assume debug binaries.
--release Assume release binaries.
--release-with-debug-info Assume release binaries with debug information.
+ --pdb Deploy .pdb files (MSVC).
--force Force updating files.
--dry-run Simulation mode. Behave normally, but do not
copy/update any files.
@@ -999,11 +1066,10 @@ Options:
--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
@@ -1020,9 +1086,10 @@ the name prepended by --no- (--no-xml). Available libraries:
bluetooth clucene 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 webkit webkitwidgets
+script scripttools sensors serialport sql svg test
websockets widgets winextras xml xmlpatterns webenginecore webengine
-webenginewidgets
+webenginewidgets 3dcore 3drenderer 3dquick 3dquickrenderer 3dinput geoservices
+webchannel
Arguments:
[files] Binaries or directory containing the binary.
diff --git a/doc/src/platforms/winrt.qdoc b/doc/src/platforms/winrt.qdoc
index aab134ff..4a015727 100644
--- a/doc/src/platforms/winrt.qdoc
+++ b/doc/src/platforms/winrt.qdoc
@@ -29,6 +29,7 @@
\page winrt_support.html
\title Qt for WinRT
\brief Provides insight into Qt's WinRT port and how to use it.
+ \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
@@ -135,6 +136,13 @@
this will only create binaries for WinRT. You will need Visual Studio for
Windows Desktop as well to create those desktop tools.
+ 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
+ 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
diff --git a/doc/src/portingcppapps_toqt5.qdoc b/doc/src/portingcppapps_toqt5.qdoc
index 9217217e..e1b5dbe6 100644
--- a/doc/src/portingcppapps_toqt5.qdoc
+++ b/doc/src/portingcppapps_toqt5.qdoc
@@ -29,7 +29,7 @@
\title Porting C++ Applications to Qt 5
\brief Provides instructions to migrate a Qt 4 C++ application to Qt 5.
-This topic talks about the Qt Widgets and Qt WebKit changes in Qt 5. The
+This topic talks about the Qt Widgets changes in Qt 5. The
following step-by-step instructions take you through the changes required to
port the \l{Animated Tiles Example}{Animated Tiles} application to Qt 5:
@@ -49,31 +49,11 @@ Once you see the application running, check whether it behaves as expected.
\image animatedtiles_snapshot.png "A snapshot of the \c animatedtiles application running on Ubuntu v12.04"
-A similar change is needed to port Qt 4 C++ applications using Qt WebKit. The following
-step-by-step instructions take you through the changes required to achieve this:
+It is also possible to keep the project compiling with Qt 4 and Qt 5. This requires:
\list 1
- \li Open your project using Qt Creator.
- \li Replace all \c {#include <QtWebKit>} instances with
- \c {#include <QtWebKitWidgets>} in your project source.
- \li Edit the \c{.pro} file and add \c {QT += webkitwidgets}.
-
- \note If the \c {QT +=} statement already exists, append \c webkitwidgets
- to it.
- \li Save changes and run your application.
-\endlist
-
-For larger projects, we recommend initially enabling deprecated API by adding the define
-\code
-DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
-\endcode
-to the \c{.pro} file. In a second step, the define can be removed.
-
-It is possible to keep the project compiling with Qt 4 and Qt 5. This requires:
-
-\list 1
- \li Omitting the module name from all includes. This is done by passing
- the command line option \c --strip-modules to \c fixqt4headers.pl.
+ \li Omitting the module name from all includes by running the
+ \c fixqt4headers.pl script with the \c --strip-modules option.
\li Adding scopes depending on the version of Qt to the \c{.pro} files:
\code
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
@@ -88,6 +68,10 @@ It is possible to keep the project compiling with Qt 4 and Qt 5. This requires:
\endcode
\endlist
+if you are using Qt WebKit, see
+\l{Porting from Qt WebKit to Qt WebEngine}{Qt WebKit to Qt WebEngine} porting
+instructions.
+
\section1 Related Topics
\list
\li \l {C++ API Changes}
diff --git a/doc/src/portingguide.qdoc b/doc/src/portingguide.qdoc
index 1f8057c0..7ffdd165 100644
--- a/doc/src/portingguide.qdoc
+++ b/doc/src/portingguide.qdoc
@@ -56,8 +56,7 @@ The following list summarizes the changes in Qt 5:
Quick (2.0) from now on to avoid binary breaks in the future.
\li Qt3Support - This module is removed in Qt 5, so you must move away from
this module before porting your codebase to Qt 5.
- \li Qt WebKit - This module has been split into two, there is now a \l{Qt WebKit}
- and a \l{Qt WebKit Widgets} module.
+ \li Qt WebKit - This module has been replaced with \l{Qt WebEngine}.
\li Multimedia - In Qt 5, multimedia support is provided by the \l{Qt Multimedia}
module. Phonon framework is no longer part of Qt, but it continues to be
maintained by the Phonon developers and has support for Qt 5. See
diff --git a/doc/src/qmlapp/applicationdevelopers.qdoc b/doc/src/qmlapp/applicationdevelopers.qdoc
index a368d06b..99fa1b7d 100644
--- a/doc/src/qmlapp/applicationdevelopers.qdoc
+++ b/doc/src/qmlapp/applicationdevelopers.qdoc
@@ -102,6 +102,7 @@ native behavior found in different platforms such as Windows, OS X, and Linux.
\li \l{Qt Quick Controls Styles}{Styles}
\li \l{Qt Quick Dialogs}{Dialogs}
\li \l{Qt Quick Layouts}{Layouts}
+\li \l{Qt Quick Extras}{Extras}
\endlist
\section2 Special Effects
@@ -116,9 +117,11 @@ Their respective pages contain more information about specific uses.
\section2 Viewing Web Content in QML Applications
-The QML type, \l{WebView}, renders and displays dynamic web content. It can load
-a URL or an HTML string. To read more about WebView and view code samples, visit
-the \l{Qt WebKit} page.
+The QML types, \l WebEngineView and \l WebView, render and display dynamic
+web content. The only difference between the two is that the later uses a
+native web view if available. Both these types can load a URL or an HTML
+string. To read more about them and view code
+samples, see \l{Qt WebEngine} and \l{Qt WebView}.
\section2 Sensors, Gestures, and Touch Interfaces
@@ -153,11 +156,12 @@ in C++.
\section1 Mobile Devices
Several Qt modules provide QML APIs for networked and mobile devices. The QML
-types access Bluetooth, Near-Field Communications (NFC), and GPS-enabled
-devices.
+types provide access to the Bluetooth, Near-Field Communications (NFC), and
+GPS-enabled devices.
\list
\li \l{Qt Positioning}
+\li \l{Qt Location}
\li \l{Qt Bluetooth}
\li \l{Qt NFC}
\endlist
diff --git a/doc/src/qmlapp/performance.qdoc b/doc/src/qmlapp/performance.qdoc
index d5bbb270..3e55fbfb 100644
--- a/doc/src/qmlapp/performance.qdoc
+++ b/doc/src/qmlapp/performance.qdoc
@@ -101,9 +101,6 @@ Things to avoid in binding expressions to maximize optimizability:
\li writing to other properties as side effects
\endlist
-The QML_COMPILER_STATS environment variable may be set when running a QML application
-to print statistics about how many bindings were able to be optimized.
-
Bindings are quickest when they know the type of objects and properties they are working
with. This means that non-final property lookup in a binding expression can be slower
in some cases, where it is possible that the type of the property being looked up has
@@ -1084,14 +1081,12 @@ or by utilizing a memory-managed runtime with garbage collection (such as JavaSc
JavaScript provides garbage collection. Memory which is allocated on the JavaScript
heap (as opposed to the C++ heap) is owned by the JavaScript engine. The engine will
-periodically collect all unreferenced data on the JavaScript heap, and if fragmentation
-becomes an issue, it will compact its heap by moving all "living" data into a contiguous
-region of memory (allowing the freed memory to be returned to the operating system).
+periodically collect all unreferenced data on the JavaScript heap.
\section4 Implications of Garbage Collection
-Garbage collection has advantages and disadvantages. It ensures that fragmentation is
-less of an issue, and it means that manually managing object lifetime is less important.
+Garbage collection has advantages and disadvantages. It means that manually managing
+object lifetime is less important.
However, it also means that a potentially long-lasting operation may be initiated by the
JavaScript engine at a time which is out of the application developer's control. Unless
JavaScript heap usage is considered carefully by the application developer, the frequency
@@ -1117,7 +1112,7 @@ garbage collection since the user will not notice any degradation of user experi
collector while activity is occurring.
The garbage collector may be invoked manually by calling \c{gc()} within JavaScript.
-This will cause a comprehensive collection and compaction cycle to be performed, which
+This will cause a comprehensive collection cycle to be performed, which
may take from between a few hundred to more than a thousand milliseconds to complete, and
so should be avoided if at all possible.
diff --git a/doc/src/qmlapp/usecases/text.qdoc b/doc/src/qmlapp/usecases/text.qdoc
index 76fc5cd8..181043d0 100644
--- a/doc/src/qmlapp/usecases/text.qdoc
+++ b/doc/src/qmlapp/usecases/text.qdoc
@@ -29,7 +29,7 @@
\title Use Case - Displaying Text In QML
\brief Example of how to display text in QML
To display text the Text type is provided by the \l {Qt Quick} module. For related uses, the \l{TextInput} and
-\l{TextEdit} types provide editable text controls. For full HTML markup, see the \l {Qt WebKit} module.
+\l{TextEdit} types provide editable text controls. For full HTML markup, see the \l {Qt WebEngine} module.
\section1 Displaying and Formatting Text
diff --git a/doc/src/qt5-intro.qdoc b/doc/src/qt5-intro.qdoc
index 19d0b811..fd17c05a 100644
--- a/doc/src/qt5-intro.qdoc
+++ b/doc/src/qt5-intro.qdoc
@@ -155,7 +155,7 @@
\raw HTML
<div class="table">
<table style="background:transparent; border: none;">
- <tr><td style="width:50%; border-bottom:0px;">
+ <tr><td style="width:50%; vertical-align:top;">
\endraw
\l{Qt Quick} provides the necessary infrastructure to develop QML
applications. The latest version (v2.0) of this technology also
@@ -211,9 +211,6 @@
\section1 Designing UI Made Simpler
-
-
-
\raw HTML
<div class="table">
<table style="background:transparent; border: none">
@@ -393,6 +390,32 @@
Designing the UI for widget-based applications can be quick with
\l{Qt Designer Manual}{Qt Designer}.
+ \section1 Provide Map-based Solutions with Qt
+
+ \raw HTML
+ <div class="table">
+ <table style="background:transparent; border: none">
+ <tr><td style="width:50%; vertical-align:top;border: none;">
+ \endraw
+ In today's world, location and maps information is more widely used, be it
+ to look up nearby restaurants or plan commute to the office. With Qt,
+ it is now possible to cater to these usecases by consuming map data
+ provided by the third-party vendors. The \l{QtLocation}{Qt Location} module
+ provides the APIs and the necessary backend to fetch map data from some of
+ the popular third-party mapping solutions. Here is a snapshot of the demo
+ application running on Android, presenting OpenStreetMap data from
+ \l www.mapquest.com.
+ \raw HTML
+ </td><td style="width:50%; border: none; vertical-align: top">
+ \endraw
+ \image qtlocation-mapviewer-demo.jpg
+ \caption Mapviewer example screenshot
+ \raw HTML
+ </td></tr>
+ </table>
+ </div>
+ \endraw
+
\section1 Qt Platform Abstraction
The windowing system dependent parts of Qt have been completely
@@ -502,6 +525,7 @@
\section1 Related Topics
\list
+ \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}
diff --git a/doc/src/qtmodules.qdoc b/doc/src/qtmodules.qdoc
index 6572af3e..5d01a5f6 100644
--- a/doc/src/qtmodules.qdoc
+++ b/doc/src/qtmodules.qdoc
@@ -92,13 +92,6 @@
\li \l[QtTestLib]{Qt Test}
\li Classes for unit testing Qt applications and libraries.
\row
- \li \l[QtWebKit]{Qt WebKit} (Deprecated)
- \li Classes for a WebKit2 based implementation and a QML API.
- Deprecated in favor of \l[QtWebEngine]{Qt WebEngine}.
- \row
- \li \l[QtWebKit]{Qt WebKit Widgets} (Deprecated)
- \li WebKit1 and QWidget-based classes from Qt 4.
- \row
\li \l[QtWidgets]{Qt Widgets}
\li Classes to extend Qt GUI with C++ widgets.
\endtable
@@ -184,6 +177,11 @@
\li
\li Plugins for additional image formats: TIFF, MNG, TGA, WBMP.
\row
+ \li \l[QtLocation]{Qt Location}
+ \li All
+ \li All
+ \li Displays map, navigation, and place content in a QML application.
+ \row
\li \l[QtMacExtras]{Qt Mac Extras}
\li All
\li \l{Qt for OS X}{OS X}
@@ -191,7 +189,7 @@
\row
\li \l[QtNfc]{Qt NFC}
\li All
- \li \l{Qt for Linux/X11}{Linux}
+ \li \l{Qt for Android}{Android} and \l{Qt for Linux/X11}{Linux}
\li Provides access to Near-Field communication (NFC) hardware.
\row
\li \l[QtOpenGL]{Qt OpenGL}
@@ -210,7 +208,8 @@
\row
\li \l[QtPositioning]{Qt Positioning}
\li All
- \li
+ \li \l{Qt for Android}{Android}, \l{Qt for iOS}{iOS}, \l{Qt for OS X}{OS X},
+ \l{Qt for Linux/X11}{Linux}, \l{Qt for WinRT}{WinRT}.
\li Provides access to position, satellite and area monitoring classes.
\row
\li \l[QtPrintSupport]{Qt Print Support}
@@ -243,7 +242,7 @@
compatibility. Please use the QJS* classes in the \l{Qt QML} module for
new code.
\row
- \li \l[QtScriptTools]{Qt Script Tools}
+ \li \l[QtScriptTools]{Qt Script Tools} (Deprecated)
\li All
\li
\li Additional components for applications that use \l{Qt Script}.
@@ -280,10 +279,20 @@
\li \l{Qt for Windows}{Windows}, \l{Qt for Linux/X11}{Linux}, and \l{Qt for OS X}{OS X}.
\li Provides a C++ API to run web applications using the \l{http://www.chromium.org/Home}{Chromium browser project}.
\row
+ \li \l[QtWebEngineCore]{Qt WebEngine Core}
+ \li All
+ \li \l{Qt for Windows}{Windows}, \l{Qt for Linux/X11}{Linux}, and \l{Qt for OS X}{OS X}.
+ \li Provides a public API shared by both \l[QtWebEngine]{Qt WebEngine} and \l[QtWebEngineWidgets]{Qt WebEngine Widgets}.
+ \row
\li \l[QtWebSockets]{Qt WebSockets}
\li All
\li All
\li Provides WebSocket communication compliant with \l{http://tools.ietf.org/html/rfc6455} {RFC 6455}.
+ \row \li \l[QtWebView]{Qt WebView}
+ \li All
+ \li Platforms with a native web engine.
+ \li Displays web content in a QML application by using APIs native to the platform,
+ without the need to include a full web browser stack.
\row
\li \l[QtWinExtras]{Qt Windows Extras}
\li All
@@ -348,15 +357,19 @@
\header
\li Module
\li Description
-
- \row \li \l{Qt Location}
- \li Displays map, navigation, and place content in a QML application.
- \row \li \l{Qt WebView}
- \li Displays web content in a QML application by using APIs native to the platform,
- without the need to include a full web browser stack.
- \row \li \l[Qt3DCore]{Qt3D Module}{Qt3D}
+ \row \li \l[Qt3D]{Qt 3D}
\li Functionality for near-realtime simulation systems with support
for 2D and 3D rendering.
+ \row \li \l[QtSerialBus]{Qt Serial Bus}
+ \li Provides access to serial industrial bus interface. Currently the module supports
+ the CAN bus and Modbus protocols.
+ \row \li \l{Qt Labs Controls}
+ \li Provides lightweight QML types for creating performant user
+ interfaces for embedded and mobile devices. These controls achieve
+ improved efficiency by employing a simplified styling architecture
+ when compared to \l {Qt Quick Controls}, on which the module is based.
+ These types work in conjunction with \l{Qt Quick} and \l{Qt Quick
+ Layouts}.
\endtable
\section1 Qt Tools
diff --git a/doc/src/reference.qdoc b/doc/src/reference.qdoc
index f76dbf0c..adf33acc 100644
--- a/doc/src/reference.qdoc
+++ b/doc/src/reference.qdoc
@@ -50,6 +50,8 @@
\li \l{Qt Assistant Manual}{Qt Assistant}
\li \l{Qt Designer Manual}{Qt Designer}
\li \l{qmake Manual}{qmake}
+ \li \l{CMake Manual}{Using Qt with CMake}
+ \li \l{QDoc Manual}{qdoc}
\endlist
\section2 Value-Add Features
diff --git a/doc/src/snippets/code/doc_src_exportedfunctions.qdoc b/doc/src/snippets/code/doc_src_exportedfunctions.qdoc
deleted file mode 100644
index 6456a8bb..00000000
--- a/doc/src/snippets/code/doc_src_exportedfunctions.qdoc
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
-#ifdef Q_WS_X11
-void qt_x11_wait_for_window_manager(QWidget *widget);
-#endif
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- ...
- window.show();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&window);
-#endif
- ...
- return app.exec();
-}
-//! [0]
diff --git a/doc/src/source-breaks.qdoc b/doc/src/source-breaks.qdoc
index 3d9cb630..bf8e6809 100644
--- a/doc/src/source-breaks.qdoc
+++ b/doc/src/source-breaks.qdoc
@@ -556,7 +556,7 @@ recommendations for handling those changes.
\li \c QMotifStyle, \c QPlastiqueStyle, \c QCleanlooksStyle, and \c QCDEStyle are
replaced with a new \e fusion style. If your application depends
on any of these removed styles, you can either use the
- \l{http://qt.gitorious.org/qt/qtstyleplugins}{qtstyleplugins} project
+ \l{http://code.qt.io/cgit/qt/qtstyleplugins.git/}{qtstyleplugins} project
to get these styles or update your application to use the new fusion style.
For more details about this change, see
\l{https://blog.qt.io/blog/2012/10/30/cleaning-up-styles-in-qt5-and-adding-fusion/}.
diff --git a/doc/src/userinterfaces.qdoc b/doc/src/userinterfaces.qdoc
index 0e98380e..ab9890f5 100644
--- a/doc/src/userinterfaces.qdoc
+++ b/doc/src/userinterfaces.qdoc
@@ -28,17 +28,16 @@
/*!
\page topics-ui.html
\title User Interfaces
-\brief Qt's features for creating user interfaces
+\brief Qt's features for Creating User Interfaces
Qt features multiple technologies for creating user interfaces. While it is
possible to mix and match these different technologies as needed, one approach
is often better suitable for a certain type of user interface than the others.
\l {Qt Creator Manual}{Qt Creator} is a good example of an application that mixes different user
-interface technologies. In fact, it uses all of the three different approaches
+interface technologies. In fact, it uses the two different approaches
described below. \l {Qt Creator Manual}{Qt Creator} uses the traditional \l {Qt Widgets} such as
menus and dialogs as a basis of the user interface, \l {Qt Quick} amongst others
-for the welcome screen, and \l {Qt WebKit} for presenting the Qt reference
-documentation. The following sections provide brief introductions to the
+for the welcome screen. The following sections provide brief introductions to the
available technologies for creating user interfaces, and a comparison table
to help choosing the best suitable technology.
@@ -102,14 +101,23 @@ type applications.
\li \l{richtext.html}{Rich Text Processing}
\li \l{dnd.html}{Drag and Drop}
\li \l{Internationalization with Qt}{Internationalization}
+\li \l{C++ Documentation Style}
+\li \l{QML Documentation Style}
\endlist
-\section1 Displaying Web Content
+\section1 Visualizing Data
+
+Qt provides ready-made C++ classes and QML types for visualizing data in the
+form of charts and graphs, which are known to be best ways of analyzing data.
+\l{Qt Charts} and \{Qt Data Visualization} are the two Qt add-ons that make
+data visualization using 2D and 3D models a reality.
+\section1 Displaying Web Content
-Qt provides both \l{http://www.webkit.org/}{WebKit}-based and Chromium-based
-(\l{Qt WebEngine}{WebEngine}) layout engines, which enable you to embed web content
-into the Qt application. These engines provide both QML and C++ alternatives.
+Qt provides the Chromium-based
+\l{Qt WebEngine}{WebEngine} layout engine, which enable you to embed web content
+into the Qt application. The engine can be integrated into both Qt Widget-based
+and Qt Quick-based applications.
For more information about support for web content in Qt, see
\l{Integrating Web Content}.
@@ -117,10 +125,10 @@ For more information about support for web content in Qt, see
\section1 Comparison
Notice that choosing the appropriate technology for building an user interface
-is not always black and white, but may depend on several criterias, such as other
+is not always black and white. It depends on several criteria, such as other
existing technologies used in a project or even target platform constraints. To
some extent, many items in the following table can be implemented using any of
-the three available technologies. The following table merely aims to help you
+the three available technologies. The following table aims to help you
choose the best suited tool for the job.
\table
@@ -128,7 +136,7 @@ choose the best suited tool for the job.
\li
\li Qt Quick / Qt Quick Controls
\li Qt Widgets
- \li Qt WebKit
+ \li Qt WebEngine
\li Comments
\row
\li Used language(s)
@@ -155,16 +163,15 @@ choose the best suited tool for the job.
\li Fluid animated UIs
\li X
\li
- \li
- \li Qt Widgets do not scale well for animations, and Qt WebKit's CSS3
- animations are not as powerful as Qt Quick animations. Qt Quick
+ \li X
+ \li Qt Widgets do not scale well for animations. Qt Quick
offers a convenient and natural way to implement animations in a
declarative manner.
\row
\li Touch screen
\li X
\li
- \li
+ \li X
\li Qt Widgets often require a mouse cursor for good interaction, whereas
Qt Quick only provides primitive building blocks that were designed
with touch interaction in mind.
@@ -177,16 +184,16 @@ choose the best suited tool for the job.
\li
\li Qt Widgets provide all the bells and whistles, developed over two
decades, needed for building standard industry type applications.
- Qt WebKit Widgets provide widgets and additional classes to render
+ Qt WebEngine Widgets provide widgets and additional classes to render
and interact with web content.
\row
\li Model/View programming
\li (X)
\li X
\li
- \li Some MVC like concepts exist in Qt WebKit, Qt Quick provides convenient
- views, but Qt Widgets provide more convenient and complete frameworks.
- In addition to Qt Quick views, Qt Quick Controls provide a TableView.
+ \li Qt Quick provides convenient views, but Qt Widgets provide more
+ convenient and complete framework. In addition to Qt Quick views,
+ Qt Quick Controls provide a TableView.
\row
\li Rapid UI development
\li X
@@ -198,9 +205,9 @@ choose the best suited tool for the job.
\li HW accelerated graphics
\li X
\li
- \li
+ \li X
\li Qt Widgets provide QGLWidget for rendering OpenGL graphics,
- and Qt WebKit supports WebGL, but the OpenGL ES 2.0 or OpenGL 2.0
+ and Qt WebEngine supports WebGL, but the OpenGL ES 2.0 or OpenGL 2.0
based \l {Qt Quick Scene Graph} has proven to provide the best
performance for UIs and for integrating with OpenGL content.
\row
@@ -209,8 +216,7 @@ choose the best suited tool for the job.
\li
\li
\li The particle system and shader effects available in Qt Quick
- are more flexible compared to CSS Effects and Shaders available
- in Qt WebKit. Qt Widgets offer very little in this area.
+ are more flexible. Qt Widgets offer very little in this area.
\row
\li Rich text processing
\li X
@@ -225,8 +231,8 @@ choose the best suited tool for the job.
\li
\li
\li X
- \li Both Qt Quick and Qt Widgets prodive components for presenting
- \l {richtext-html-subset.html}{simple rich text}, but Qt WebKit
+ \li Both Qt Quick and Qt Widgets provide components for presenting
+ \l {richtext-html-subset.html}{simple rich text}, but Qt WebEngine
is the right choice for presenting full-blown web content.
\endtable
@@ -242,5 +248,4 @@ accomplish their tasks.
localized applications.
\li \l{Qt Linguist Manual} - manual of Qt's translation tool
\endlist
-
*/
diff --git a/doc/src/web-content.qdoc b/doc/src/web-content.qdoc
index 8ccb61b6..94f8b3a9 100644
--- a/doc/src/web-content.qdoc
+++ b/doc/src/web-content.qdoc
@@ -28,57 +28,31 @@
/*!
\page topics-web-content.html
\title Integrating Web Content
-\brief Qt's WebKit integration
+\brief Qt enables web content integration.
-To create Qt-based web applications, Qt provides both
-\l {http://www.webkit.org/}{WebKit}-based and Chromium-based
-(\l{Qt WebEngine}{WebEngine}) layout engines with support for a wide range of
-standard web techologies such as HTML, CSS, and JavaScript, that make it possible
-to embed content from the World Wide Web into your Qt application.
+To create Qt-based web applications, Qt provides interfaces that support a wide
+range of standard web techologies such as HTML, CSS, and JavaScript. These
+interfaces enable applications to embed content from the World Wide Web.
It is also possible to combine Qt C++ and QML code with HTML and JavaScript to
-create web applications. Through Qt WebChannel, several of Qt's APIs are
+create web applications. Through \l{Qt WebChannel}, several of Qt's APIs are
accessible to remote clients.
-\section1 WebKit in Qt
-
-\l{Qt WebKit} allows WebKit 2 functionality in QML applications by
-importing the \l{WebView} QML type. \l WebView has a minimalistic QML API for
-web content visualization. While it is not as feature-rich as the C++ API of the
-widget classes, it has multi-touch support and employs a multi-process
-architecture to render web content in a separate helper process (QtWebProcess).
-WebView makes it possible to interact with content using touch gestures such as
-panning with inertia (flick), pinch-zoom, tap and double- tap-to-zoom. The
-underlying split-process model (\l
-{http://trac.webkit.org/wiki/WebKit2}{WebKit2}) assures smooth animations in the
-embedding application (UI process) as well as increases stability.
-
-These pages have more information about QML:
-\list
-\li \l{Qt WebKit Examples}
-\li \l{QML Applications}
-\endlist
-
-\section2 WebKit Widgets
-
-The \l{Qt WebKit Widgets} module provides a feature-rich C++ API that
-facilitates loading, viewing, and editing web documents. Qt WebKit Widgets
-provides facilities for rendering of HyperText Markup Language (HTML),
-Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG)
-documents, styled using Cascading Style Sheets (CSS) and scripted with
-JavaScript.
-
\section1 WebEngine in Qt
-As with Qt WebKit, \l{Qt WebEngine} allows web content to be displayed in
-Qt applications. This module is new in Qt 5.4 and in future releases will serve
-as a replacement to Qt WebKit.
+Qt provides the Chromium-based Qt WebEngine module for applications
+targeting desktop and embedded platforms. For example, a web browser
+application for Linux platform.
+
+It also provides the Qt WebView module, which uses the native web engine
+of the platform. For example, a RSS feed reader Qt Quick application for
+Android and iOS.
These pages contain information about porting applications to use Qt WebEngine
and the various APIs:
\list
-\li \l{Qt WebEngine} - provides a QML API
-\li \l{Qt WebEngine Widgets} - provides a C++ API
+\li \l{Qt WebEngine Overview}
+\li \l{Qt WebView}
\li \l{Porting from Qt WebKit to Qt WebEngine}
\endlist
diff --git a/doc/src/whatsnew/whatsnew50.qdoc b/doc/src/whatsnew/whatsnew50.qdoc
index b6ddb7e7..da1473c4 100644
--- a/doc/src/whatsnew/whatsnew50.qdoc
+++ b/doc/src/whatsnew/whatsnew50.qdoc
@@ -378,6 +378,8 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \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}
diff --git a/doc/src/whatsnew/whatsnew51.qdoc b/doc/src/whatsnew/whatsnew51.qdoc
index 40ec74b2..01102873 100644
--- a/doc/src/whatsnew/whatsnew51.qdoc
+++ b/doc/src/whatsnew/whatsnew51.qdoc
@@ -94,7 +94,7 @@
\li Added support for SHA3 to QCryptographicHash
\li Added toInt(), toUInt(), and similar functions to QStringRef
\li A new threadsafe initialization of global statics through refactored
- \l Q_GLOBAL_STATIC().
+ \l Q_GLOBAL_STATIC.
\li A new class, QLockFile, provides locking between processes using a
file. This lock enables applications to check that there is only one
instance of it running.
@@ -228,6 +228,8 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \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}
diff --git a/doc/src/whatsnew/whatsnew52.qdoc b/doc/src/whatsnew/whatsnew52.qdoc
index c7771d36..39aa9f16 100644
--- a/doc/src/whatsnew/whatsnew52.qdoc
+++ b/doc/src/whatsnew/whatsnew52.qdoc
@@ -243,6 +243,8 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \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.1}
diff --git a/doc/src/whatsnew/whatsnew53.qdoc b/doc/src/whatsnew/whatsnew53.qdoc
index b12143b3..5b1f318d 100644
--- a/doc/src/whatsnew/whatsnew53.qdoc
+++ b/doc/src/whatsnew/whatsnew53.qdoc
@@ -244,6 +244,8 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \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.2}
\li \l{What's New in Qt 5.1}
diff --git a/doc/src/whatsnew/whatsnew54.qdoc b/doc/src/whatsnew/whatsnew54.qdoc
index 958207a1..47b69a16 100644
--- a/doc/src/whatsnew/whatsnew54.qdoc
+++ b/doc/src/whatsnew/whatsnew54.qdoc
@@ -205,6 +205,8 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \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.3}
\li \l{What's New in Qt 5.2}
\li \l{What's New in Qt 5.1}
diff --git a/doc/src/whatsnew/whatsnew55.qdoc b/doc/src/whatsnew/whatsnew55.qdoc
index 22510555..44f57dd7 100644
--- a/doc/src/whatsnew/whatsnew55.qdoc
+++ b/doc/src/whatsnew/whatsnew55.qdoc
@@ -246,6 +246,7 @@
\section1 Additions to Other Qt 5 Releases
\list
+ \li \l{What's New in Qt 5.6}
\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}
diff --git a/doc/src/whatsnew/whatsnew56.qdoc b/doc/src/whatsnew/whatsnew56.qdoc
new file mode 100644
index 00000000..575b9863
--- /dev/null
+++ b/doc/src/whatsnew/whatsnew56.qdoc
@@ -0,0 +1,246 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 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$
+**
+****************************************************************************/
+
+/*!
+ \page whatsnew56.html
+ \title What's New in Qt 5.6
+ \brief Lists the new features in Qt 5.6.
+
+ \section1 New Modules
+
+ \list
+ \li \l{Qt Labs Controls}
+ \li \l{Qt Speech}
+ \li \l{Qt SerialBus}
+ \list
+ \li Included as a technology preview.
+ \li Provides a framework for accessing serial bus backends in general, and a plugin for
+ accessing the SocketCAN backend in particular.
+ \endlist
+ \li \l{Qt Wayland Compositor}{Qt Compositor}(Qt Wayland)
+ \list
+ \li Included as a technology preview.
+ \li Provides a framework to develop Wayland compositor.
+ \endlist
+ \li \l[QtWebEngineCore]{Qt WebEngine Core}
+ \list
+ \li Provides a public API shared by both \l [QtWebEngine]{Qt WebEngine}
+ and \l [QtWebEngineWidgets]{Qt WebEngine Widgets}.
+ \endlist
+ \endlist
+
+ \section1 New Features in Qt 5.6
+
+ \section2 Qt 3D
+ \list
+ \li New buffer and attribute API.
+ \li Support for \l{OpenGL Instanced Rendering}{OpenGL instanced rendering}
+ where supported.
+ \li Support for \l{OpenGL primitive restart}.
+ \li Support for clip planes, stencil operations, and many more OpenGL
+ features.
+ \li Support for easily generating buffer data from C++ and QML (using
+ JavaScript typed arrays).
+ \li \e qgltf tool to compile scenes into \l{OpenGL glTF}{glTF}.
+ \li Support for loading glTF scenes via SceneLoader.
+ \li Support for controlling multi-sampling with Scene3D.
+ \li More standard materials: per-vertex colors and Gooch shading.
+ \li New APIs for mouse input and collision detection.
+ \li New Logic aspect to have QML/C++ code executed synchronously with the
+ Qt 3D aspect engine. Useful for prototyping future Qt 3D features.
+ \endlist
+
+ \section2 Qt Core Module
+ \list
+ \li Reduced memory usage of dynamic properties.
+ \li Allow logging directly to syslog on Linux systems.
+ \li Added QStorageInfo::blockSize().
+ \li Added QVersionNumber class.
+ \li Added key_iterator to QHash and QMap.
+ \li Added const_iterator to QByteArray.
+ \li Added reverse iterator support to all sequential containers.
+ \li added QDir::listSeparator().
+ \li Optimized performance in QString.
+ \endlist
+
+ \section2 Qt Canvas3D Module
+ \list
+ \li Support for using Qt Quick items as textures.
+ \li Support for rendering directly to Qt Quick scene background or
+ foreground.
+ \endlist
+
+ \section2 Qt GUI Module
+ \list
+ \li Improved cross-platform OpenGL ES 3.0 and 3.1 support to enable
+ developing mobile/embedded applications utilizing GLES3 features.
+ \li Improved cross-platform high-dpi support.
+ \li Raster engine support for rendering internally with
+ 16bits-per-color.
+ \li QImageReader now exports gamma values and other meta data for some
+ image formats.
+ \endlist
+
+ \section2 Qt Multimedia Module
+ \list
+ \li New Playlist QML type.
+ \li New audio role API for the media player (C++ and QML).
+ \li Support for camera focus and video probe on WinRT.
+ \li New functions in QML AudioEngine to support dynamic object creation.
+ \endlist
+
+ \section2 Qt NFC Module
+ \list
+ \li Added support for Android.
+ \endlist
+
+ \section2 Qt Network Module
+ \list
+ \li Added QHostAddress::isMulticast().
+ \li Support HTTP redirection in QNetworkAccessManager.
+ \endlist
+
+ \section2 Qt Platform Abstraction (QPA)
+ \list
+ \li Optional support for using FreeType on OS X.
+ \li Added support for NVIDIA Jetson TK1 Pro boards running Vibrante
+ Linux via a new eglfs backend utilizing DRM, EGLDevice, and
+ EGLStream.
+ \li Added support for Intel Atom-based NUCs.
+ \li Added support for WEC2013.
+ \li Windows 10 fully supported (classic and WinRT app)
+ \li Windows Store apps are now composited inside a XAML layer, allowing
+ better integration with the native UI layer.
+ \li Use \c libinput, if available, as the default on \c eglfs and
+ \c linuxfb.
+ \endlist
+
+ \section2 Qt Positioning Module
+ \list
+ \li Added support for OS X.
+ \li Added support for GPS receivers exposed as a serial port on Windows
+ desktop (all versions).
+ \li Removed libgeoclue dependency for the GeoClue backend.
+ \endlist
+
+ \section2 Qt QML Module
+ \list
+ \li Support for writing JavaScript function names to Linux's perf
+ output.
+ \li Reduced overall memory consumption.
+ \endlist
+
+ \section2 Qt Testlib Module
+ \list
+ \li More stable input event handling.
+ \endlist
+
+ \section2 Qt WebView Module
+ \list
+ \li Added support for WinRT.
+ \endlist
+
+ \section2 Qt WebEngine Module
+ \list
+ \li Based on Chromium 45.
+ \li Support for pepper plugins including Flash.
+ \li Support for unbundling and linking with system libraries on Linux.
+ \li Support for following global Qt proxy settings.
+ \li More WebActions from QtWebKit and WebAction API in QML.
+ \li New QtWebEngineCore module for shared low-level API.
+ \li New core API for custom URL schemes.
+ \li New core API for intercepting and blocking network requests.
+ \li New core API for tracking or blocking cookies.
+ \endlist
+
+ \section2 Qt Widgets Module
+ \list
+ \li Allow programmatic resizing of dock widgets.
+ \li Allow dropping dock widgets into floating docks.
+ \li Allow the user to re-arrange tabbed docks.
+ \li Allow horizontal scrolling using a mouse wheel in QListView.
+ \li Support QOpenGLWidget and QQuickWidget on WinRT.
+ \endlist
+
+ \section1 Removed Functionality
+ \list
+ \li Qt WebKit
+ \li Qt Declarative (Qt Quick 1)
+ \endlist
+
+ \section1 Deprecated Functionality
+ \list
+ \li Qt Script
+ \endlist
+
+ These modules are still included in Qt 5.6, 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.6:
+ \list
+ \li \l{New Classes and Functions in Qt 5.6}
+ \li \l{Obsolete Classes}
+ \endlist
+
+ \section1 Additions to Other Qt 5 Releases
+
+ \list
+ \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 newclasses56.html
+ \title New Classes and Functions in Qt 5.6
+ \brief A list of new APIs in Qt 5.6.
+
+ This page contains a comprehensive list of all new classes and functions
+ introduced in Qt 5.6. Links to new APIs in previous Qt 5 releases are found
+ at the bottom of this page.
+
+ \sincelist 5.6
+
+ \section1 Additions to Other Qt 5 Releases
+
+ \list
+ \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
+*/
+
diff --git a/examples/texteditor/documenthandler.cpp b/examples/texteditor/documenthandler.cpp
deleted file mode 100644
index fd2aa2ba..00000000
--- a/examples/texteditor/documenthandler.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "documenthandler.h"
-
-DocumentHandler::DocumentHandler(QObject *parent) :
- QObject(parent)
-{
-}
-
-/*
- * Returns the current file's URL.
- */
-QUrl DocumentHandler::fileUrl() const
-{
- return m_fileUrl;
-}
-
-/*
- * Returns the currently opened document's content.
- */
-QString DocumentHandler::text() const
-{
- return m_text;
-}
-
-/*
- * Returns the currently opened document's title.
- */
-QString DocumentHandler::documentTitle() const
-{
- return m_documentTitle;
-}
-
-/*
- * Saves the current content with the given file URL.
- */
-void DocumentHandler::saveFile(const QUrl &arg) const
-{
- QFile file(arg.toLocalFile());
- if (file.open(QFile::WriteOnly | QFile::Truncate)) {
- QTextStream out(&file);
- out << text();
- }
-}
-
-/*
- * Sets the file's URL. Called when a file is opened.
- */
-void DocumentHandler::setFileUrl(const QUrl &arg)
-{
- if (m_fileUrl != arg) {
- m_fileUrl = arg;
- QString fileName = arg.fileName();
- QFile file(arg.toLocalFile());
- if (file.open(QFile::ReadOnly)) {
- setText(QString(file.readAll()));
- if (fileName.isEmpty())
- m_documentTitle = QStringLiteral("untitled");
- else
- m_documentTitle = fileName;
- emit textChanged();
- emit documentTitleChanged();
- }
- emit fileUrlChanged();
- }
-}
-
-/*!
- * Sets the currently opened document's content.
- *
- */
-void DocumentHandler::setText(const QString &arg)
-{
- m_text = arg;
- emit textChanged();
-}
-
-/*
- * Sets the currently opened document's title.
- */
-void DocumentHandler::setDocumentTitle(QString arg)
-{
- m_documentTitle = arg;
- emit documentTitleChanged();
-}
diff --git a/examples/texteditor/documenthandler.h b/examples/texteditor/documenthandler.h
deleted file mode 100644
index 74c0992d..00000000
--- a/examples/texteditor/documenthandler.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DOCUMENTHANDLER_H
-#define DOCUMENTHANDLER_H
-
-#include <QObject>
-#include <QUrl>
-#include <QString>
-#include <QQuickTextDocument>
-
-#include <QtGui/QTextCharFormat>
-#include <QtCore/QTextCodec>
-
-#include <qqmlfile.h>
-
-class DocumentHandler : public QObject
-{
- Q_OBJECT
-public:
- explicit DocumentHandler(QObject *parent = 0);
-
- Q_PROPERTY(QUrl fileUrl READ fileUrl WRITE setFileUrl NOTIFY fileUrlChanged)
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
- Q_PROPERTY(QString documentTitle READ documentTitle WRITE setDocumentTitle NOTIFY documentTitleChanged)
-
-public:
- QUrl fileUrl() const;
- QString text() const;
- QString documentTitle() const;
-
-public Q_SLOTS:
- void setFileUrl(const QUrl &arg);
- void setText(const QString &arg);
- void setDocumentTitle(QString arg);
-
- void saveFile(const QUrl &arg) const;
-
-Q_SIGNALS:
- void fileUrlChanged();
- void textChanged();
- void documentTitleChanged();
-
-private:
- QUrl m_fileUrl;
- QString m_text;
- QString m_documentTitle;
-};
-
-#endif // DOCUMENTHANDLER_H
diff --git a/examples/texteditor/images/editcopy.png b/examples/texteditor/images/editcopy.png
deleted file mode 100644
index f5513644..00000000
--- a/examples/texteditor/images/editcopy.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/editcut.png b/examples/texteditor/images/editcut.png
deleted file mode 100644
index a784fd57..00000000
--- a/examples/texteditor/images/editcut.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/editpaste.png b/examples/texteditor/images/editpaste.png
deleted file mode 100644
index 64c0b2d6..00000000
--- a/examples/texteditor/images/editpaste.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/filenew.png b/examples/texteditor/images/filenew.png
deleted file mode 100644
index d3882c7b..00000000
--- a/examples/texteditor/images/filenew.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/fileopen.png b/examples/texteditor/images/fileopen.png
deleted file mode 100644
index fc06c5ec..00000000
--- a/examples/texteditor/images/fileopen.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/filesave.png b/examples/texteditor/images/filesave.png
deleted file mode 100644
index b41ecf53..00000000
--- a/examples/texteditor/images/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/images/qt-logo.png b/examples/texteditor/images/qt-logo.png
deleted file mode 100644
index 6dedc8bf..00000000
--- a/examples/texteditor/images/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/texteditor/main.cpp b/examples/texteditor/main.cpp
deleted file mode 100644
index 4083e185..00000000
--- a/examples/texteditor/main.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QQmlApplicationEngine>
-#include "documenthandler.h"
-#include <QQmlEngine>
-
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- QQmlApplicationEngine engine;
-
- //register the DocumentHandler QML type from the org.qtproject.example namespace
- qmlRegisterType<DocumentHandler>("org.qtproject.example", 1, 0, "DocumentHandler");
- engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
-
- return app.exec();
-}
diff --git a/examples/texteditor/main.qml b/examples/texteditor/main.qml
deleted file mode 100644
index 085e4c7d..00000000
--- a/examples/texteditor/main.qml
+++ /dev/null
@@ -1,203 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//QML import statements
-import QtQuick 2.3
-import QtQuick.Controls 1.2
-import QtQuick.Window 2.1
-import QtQuick.Layouts 1.0
-import org.qtproject.example 1.0
-import QtQuick.Dialogs 1.2
-
-//main window
-ApplicationWindow {
- id: applicationWindow1
- visible: true
- width: 640
- height: 480
- title: qsTr(document.documentTitle + " Text Editor Example")
-
- menuBar: MenuBar {
- Menu {
- title: qsTr("File")
- MenuItem {
- text: qsTr("&Open")
- action: fileOpenAction
- }
- MenuItem {
- text: qsTr("&Save")
- action: fileSaveAction
- }
- MenuItem {
- text: qsTr("Exit")
- onTriggered: Qt.quit();
- }
- }
- }
- toolBar: ToolBar {
- id: toolBar
-
- RowLayout {
- id: rowToolBar
- spacing: 0.3
-
- ToolButton {
- id: newToolButton
- anchors.left: parent.left
- iconName: "new_icon"
- iconSource: "images/filenew.png"
- action: newAction
- }
-
- ToolButton {
- id: openToolButton
- anchors.left: newToolButton.right
- transformOrigin: Item.Center
- iconSource: "images/fileopen.png"
- iconName: "open_icon"
- action: fileOpenAction
- }
-
- ToolButton {
- id: saveToolButton
- text: qsTr("")
- iconSource: "images/filesave.png"
- iconName: "save_icon"
- isDefault: false
- visible: true
- checkable: false
- anchors.left: openToolButton.right
- action: fileSaveAction
- }
-
- ToolButton {
- id: cutToolButton
- iconSource: "images/editcut.png"
- iconName: "cut_icon"
- anchors.left: saveToolButton.right
- action: cutAction;
- }
-
- ToolButton {
- id: copyToolButton
- iconSource: "images/editcopy.png"
- iconName: "copy_icon"
- anchors.left: cutToolButton.right
- action: copyAction
- }
-
- ToolButton {
- id: pasteToolbutton
- iconSource: "images/editpaste.png"
- iconName: "paste_icon"
- anchors.left: copyToolButton.right
- action: pasteAction
- }
- }
- }
-
- TextArea {
- id: textArea
- text: document.text
- anchors.fill: parent
- }
-
- DocumentHandler {
- id: document
- }
-
- Action {
- id: newAction
- text: "New"
- shortcut: StandardKey.New
- onTriggered: textArea.text = qsTr("")
- }
-
- Action {
- id: cutAction
- text: "Cut"
- shortcut: StandardKey.Cut
- onTriggered: textArea.cut()
- }
-
- Action {
- id: copyAction
- text: "Copy"
- shortcut: StandardKey.Copy
- onTriggered: textArea.copy()
- }
-
- Action {
- id: pasteAction
- text: "Paste"
- shortcut: StandardKey.Paste
- onTriggered: textArea.paste()
- }
-
- Action {
- id: fileOpenAction
- text: "Open"
- shortcut: StandardKey.Open
- onTriggered: fileOpenDialog.open()
- }
-
- Action {
- id: fileSaveAction
- text: "Open"
- shortcut: StandardKey.Save
- onTriggered: fileSaveDialog.open()
- }
-
- FileDialog {
- id: fileOpenDialog
- title: "Please choose a file to open"
- nameFilters: ["Text files (*.txt)"]
- onAccepted: document.fileUrl = fileUrl
- }
-
- FileDialog {
- id: fileSaveDialog
- title: "Please enter the file to save"
- nameFilters: ["Text files (*.txt)"]
- selectExisting: false
- onAccepted: document.saveFile(fileUrl)
- }
-
-}
diff --git a/examples/texteditor/qml.qrc b/examples/texteditor/qml.qrc
deleted file mode 100644
index 455b940d..00000000
--- a/examples/texteditor/qml.qrc
+++ /dev/null
@@ -1,12 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>main.qml</file>
- <file>images/editcopy.png</file>
- <file>images/editcut.png</file>
- <file>images/editpaste.png</file>
- <file>images/filenew.png</file>
- <file>images/fileopen.png</file>
- <file>images/filesave.png</file>
- <file>images/qt-logo.png</file>
- </qresource>
-</RCC>
diff --git a/examples/texteditor/texteditor.pro b/examples/texteditor/texteditor.pro
deleted file mode 100644
index f0a2e4aa..00000000
--- a/examples/texteditor/texteditor.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = app
-
-QT += qml quick widgets
-
-SOURCES += main.cpp \
- documenthandler.cpp
-
-RESOURCES += qml.qrc
-
-# Additional import path used to resolve QML modules in Qt Creator's code model
-QML_IMPORT_PATH =
-
-# Default rules for deployment.
-include(deployment.pri)
-
-HEADERS += \
- documenthandler.h
diff --git a/sync.profile b/sync.profile
index 95da937d..736ba271 100644
--- a/sync.profile
+++ b/sync.profile
@@ -7,9 +7,4 @@
#
%dependencies = (
"qtbase" => "",
- "qtscript" => "",
- "qtsvg" => "",
- "qtxmlpatterns" => "",
- "qttools" => "",
- "qtdeclarative" => "",
);