Merge remote-tracking branch 'origin/4.2'

Conflicts:
	doc/src/qtquick/creator-tutorial-create-qq-project.qdocinc
	doc/src/qtquick/qtquick-creating.qdoc
	doc/src/qtquick/qtquick-uiforms-tutorial.qdoc
	share/qtcreator/welcomescreen/qtcreator_tutorials.xml
	src/plugins/git/gitgrep.cpp
	src/shared/qbs

Change-Id: I6f4d168d888d9547c3af0819f79cc9ebb4186ca0
This commit is contained in:
Eike Ziller
2017-02-14 15:32:04 +01:00
40 changed files with 616 additions and 127 deletions

View File

@@ -17,5 +17,9 @@ Qbs Projects
Version Control Systems Version Control Systems
* Gerrit * Git
* Fixed crash when committing and pushing to Gerrit (QTCREATORBUG-17634) * Fixed crash when committing and pushing to Gerrit (QTCREATORBUG-17634)
* Fixed searching for patterns starting with dash in `Files in File System`
when using `git grep`
* Fixed discarding changes before performing other actions (such as Pull)
(QTCREATORBUG-17156)

View File

@@ -63,7 +63,7 @@
\li Select \uicontrol {Debug > Start Debugging > Start Debugging} or press \li Select \uicontrol {Debug > Start Debugging > Start Debugging} or press
\key{F5}. \key{F5}.
\li Once the Same Game application starts, select \uicontrol {1 Player} \li Once the Same Game application starts, select \uicontrol {Puzzle}
to start a new game. to start a new game.
\image samegame.png \image samegame.png

View File

@@ -168,7 +168,7 @@
You can look up any issue in the You can look up any issue in the
\l{https://bugreports.qt.io/}{Qt bug tracker}. \l{https://bugreports.qt.io/}{Qt bug tracker}.
\include widgets/creator-faq-qtdesigner.qdocinc \include widgets/creator-faq-qtdesigner.qdocinc qt designer faq
\section1 Help Questions \section1 Help Questions

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [running on embedded linux]
\section1 Running on Embedded Linux Devices \section1 Running on Embedded Linux Devices
To build and run the application for a device: To build and run the application for a device:
@@ -25,3 +53,6 @@
Debugging works transparently if GDB server is installed on the device and Debugging works transparently if GDB server is installed on the device and
it is compatible with the GDB on the host. it is compatible with the GDB on the host.
//! [running on embedded linux]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings embedded]
\section2 Specifying Run Settings for Embedded Devices \section2 Specifying Run Settings for Embedded Devices
To run and debug an application on an embedded device (commercial only), you To run and debug an application on an embedded device (commercial only), you
@@ -17,3 +45,6 @@
To execute custom commands, select \uicontrol {Add Deploy Step} > To execute custom commands, select \uicontrol {Add Deploy Step} >
\uicontrol {Custom Remote Command (via adb shell)} and enter the command to \uicontrol {Custom Remote Command (via adb shell)} and enter the command to
execute. execute.
//! [run settings embedded]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings linux]
\section2 Specifying Run Settings for Linux-Based Devices \section2 Specifying Run Settings for Linux-Based Devices
To run and debug an application on a Linux-based device, To run and debug an application on a Linux-based device,
@@ -19,3 +47,6 @@
You can specify command line arguments to pass to your application in the You can specify command line arguments to pass to your application in the
\uicontrol Arguments field. \uicontrol Arguments field.
//! [run settings linux]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [generating ssh keys]
\section2 Generating SSH Keys \section2 Generating SSH Keys
If you do not have an SSH public and private key pair, you can generate it If you do not have an SSH public and private key pair, you can generate it
@@ -25,3 +53,6 @@
keys at the specified locations. keys at the specified locations.
\endlist \endlist
//! [generating ssh keys]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [managing device processes]
\section2 Managing Device Processes \section2 Managing Device Processes
You can view processes running on devices and kill them. Select You can view processes running on devices and kill them. Select
@@ -11,3 +39,6 @@
To kill a process, select it in the list, and then select \uicontrol {Kill To kill a process, select it in the list, and then select \uicontrol {Kill
Process}. Process}.
//! [managing device processes]
*/

View File

@@ -133,6 +133,6 @@
\endlist \endlist
\include linux-mobile/linuxdev-keys.qdocinc \include linux-mobile/linuxdev-keys.qdocinc generating ssh keys
\include linux-mobile/linuxdev-processes.qdocinc \include linux-mobile/linuxdev-processes.qdocinc managing device processes
*/ */

View File

@@ -123,5 +123,5 @@
To build \QC from the source, see the requirements and instructions in the To build \QC from the source, see the requirements and instructions in the
readme file that is located in the source repository. readme file that is located in the source repository.
\include overview/creator-target-platforms.qdocinc \include overview/creator-target-platforms.qdocinc target platforms
*/ */

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [target platforms]
\section1 Target Platforms \section1 Target Platforms
You can develop applications for the following platforms: You can develop applications for the following platforms:
@@ -81,3 +109,5 @@
\note BlackBerry 10 support has been removed from \QC 3.5. Use \QC 3.4 instead. \note BlackBerry 10 support has been removed from \QC 3.5. Use \QC 3.4 instead.
//! [target platforms]
*/

View File

@@ -176,8 +176,11 @@
\li Qt Quick UI \li Qt Quick UI
Use a single QML file that contains the main view. You can Use a single QML file that contains the main view. You can
review Qt Quick UI projects in a \l{Previewing QML Files} review \l{Creating Qt Quick UI Projects}{Qt Quick UI projects}
{preview tool} and you need not build them. in a \l{Previewing QML Files}{preview tool} and you need not
build them. Qt Quick UI projects cannot be deployed to embedded
or mobile target platforms. For those platforms, create a
Qt Quick application instead.
\li Qt Custom Designer Widgets \li Qt Custom Designer Widgets

View File

@@ -64,6 +64,6 @@
For more information on the options you have, see For more information on the options you have, see
\l{Specifying Run Settings}. \l{Specifying Run Settings}.
\include linux-mobile/creator-projects-running-generic-linux.qdocinc \include linux-mobile/creator-projects-running-generic-linux.qdocinc running on embedded linux
\include qnx/creator-projects-running-qnx.qdocinc \include qnx/creator-projects-running-qnx.qdocinc running on qnx
*/ */

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [settings valgrind]
\section2 Specifying Valgrind Settings \section2 Specifying Valgrind Settings
\QC integrates \l{Analyzing Code}{Valgrind code analysis tools} for \QC integrates \l{Analyzing Code}{Valgrind code analysis tools} for
@@ -34,3 +62,5 @@
To specify global Valgrind settings, select \uicontrol {Tools > Options > To specify global Valgrind settings, select \uicontrol {Tools > Options >
Analyzer}. Analyzer}.
//! [settings valgrind]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings debugger]
\section2 Specifying Debugger Settings \section2 Specifying Debugger Settings
\image qtquick-debugging-settings.png "Debugger Settings" \image qtquick-debugging-settings.png "Debugger Settings"
@@ -11,3 +39,6 @@
port is properly protected by a firewall. port is properly protected by a firewall.
For more information about debugging, see \l{Debugging}. For more information about debugging, see \l{Debugging}.
//! [run settings debugger]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings desktop]
\section2 Specifying Run Settings for Desktop Device Types \section2 Specifying Run Settings for Desktop Device Types
You can specify command line arguments to be passed to the executable You can specify command line arguments to be passed to the executable
@@ -26,3 +54,6 @@
You can also create custom executable run configurations where you You can also create custom executable run configurations where you
can set the executable to be run. For more information, see can set the executable to be run. For more information, see
\l{Specifying a Custom Executable to Run}. \l{Specifying a Custom Executable to Run}.
//! [run settings desktop]
*/

View File

@@ -61,12 +61,12 @@
\QC creates run configurations only for subprojects that also have \QC creates run configurations only for subprojects that also have
\c {CONFIG += qtc_runnable} set in their .pro files. \c {CONFIG += qtc_runnable} set in their .pro files.
\include projects/creator-projects-settings-run-desktop.qdocinc \include projects/creator-projects-settings-run-desktop.qdocinc run settings desktop
\include projects/creator-projects-settings-run-analyze.qdocinc \include projects/creator-projects-settings-run-analyze.qdocinc settings valgrind
\include projects/creator-projects-settings-run-debug.qdocinc \include projects/creator-projects-settings-run-debug.qdocinc run settings debugger
\include linux-mobile/creator-projects-settings-run-linux.qdocinc \include linux-mobile/creator-projects-settings-run-linux.qdocinc run settings linux
\include qnx/creator-projects-settings-run-qnx.qdocinc \include qnx/creator-projects-settings-run-qnx.qdocinc run settings qnx
\include linux-mobile/creator-projects-settings-run-b2qt.qdocinc \include linux-mobile/creator-projects-settings-run-b2qt.qdocinc run settings embedded
\section1 Selecting the Run Environment \section1 Selecting the Run Environment
@@ -105,5 +105,5 @@
\image qmldesigner-run-custom-exe.png "Run settings for custom executables" \image qmldesigner-run-custom-exe.png "Run settings for custom executables"
\include qtquick/creator-projects-settings-run-qtquick.qdocinc \include qtquick/creator-projects-settings-run-qtquick.qdocinc run settings qt quick ui
*/ */

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [running on qnx]
\section1 Running on QNX Devices \section1 Running on QNX Devices
\list 1 \list 1
@@ -28,3 +56,6 @@
If these conditions are not met, you will get an error message saying debug If these conditions are not met, you will get an error message saying debug
output cannot be shown. output cannot be shown.
//! [running on qnx]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings qnx]
\section2 Specifying Run Settings for QNX Devices \section2 Specifying Run Settings for QNX Devices
To run and debug an application on a QNX device, you must To run and debug an application on a QNX device, you must
@@ -7,3 +35,6 @@
Specifying run settings for QNX Neutrino devices is very similar to Specifying run settings for QNX Neutrino devices is very similar to
\l{Specifying Run Settings for Linux-Based Devices}. \l{Specifying Run Settings for Linux-Based Devices}.
//! [run settings qnx]
*/

View File

@@ -66,7 +66,7 @@
Program certificate that you receive from Apple. For more information, see Program certificate that you receive from Apple. For more information, see
\l{Connecting iOS Devices}. \l{Connecting iOS Devices}.
\include creator-tutorial-create-qq-project.qdocinc \include creator-tutorial-create-qq-project.qdocinc qt quick application
\section1 Creating the Accelbubble Main View \section1 Creating the Accelbubble Main View

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [run settings qt quick ui]
\section1 Specifying Run Settings for Qt Quick UI Projects \section1 Specifying Run Settings for Qt Quick UI Projects
You can specify run settings for \l{glossary-buildandrun-kit}{kits} You can specify run settings for \l{glossary-buildandrun-kit}{kits}
@@ -14,3 +42,6 @@
\endlist \endlist
\image qmldesigner-run-settings.png "Run settings for Qt Quick UI projects" \image qmldesigner-run-settings.png "Run settings for Qt Quick UI projects"
//! [run settings qt quick ui]
*/

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [qt quick application]
\section1 Creating Qt Quick Controls 2 Applications \section1 Creating Qt Quick Controls 2 Applications
\list 1 \list 1
@@ -38,3 +66,6 @@
\QMLD \uicontrol {Form Editor} and two QML files, \e Page1.qml and \QMLD \uicontrol {Form Editor} and two QML files, \e Page1.qml and
\e main.qml, that you can modify in the \uicontrol {Text Editor} to add the \e main.qml, that you can modify in the \uicontrol {Text Editor} to add the
application logic. application logic.
//! [qt quick application]
*/

View File

@@ -54,7 +54,7 @@
For examples of using Qt Quick Controls 2, see For examples of using Qt Quick Controls 2, see
\l{Qt Quick Controls 2 Examples}. \l{Qt Quick Controls 2 Examples}.
\include creator-tutorial-create-qq-project.qdocinc \include creator-tutorial-create-qq-project.qdocinc qt quick application
\section1 Creating the Main View \section1 Creating the Main View

View File

@@ -60,10 +60,14 @@
\l{http://threejs.org}{three.js}. \l{http://threejs.org}{three.js}.
\li \uicontrol {Qt Quick 2 UI} (in the \uicontrol {Other Project} \li \uicontrol {Qt Quick 2 UI} (in the \uicontrol {Other Project}
category) creates a Qt Quick UI project with a single QML file that category) creates a \l{Creating Qt Quick UI Projects}
{Qt Quick UI project} with a single QML file that
contains the main view. You can review Qt Quick 2 UI projects in the contains the main view. You can review Qt Quick 2 UI projects in the
\l{Previewing QML Files}{QML Scene preview tool}. You do not need to \l{Previewing QML Files}{QML Scene preview tool}. You do not need to
build them, because they do not contain any C++ code. build them, because they do not contain any C++ code.
Qt Quick UI projects cannot be deployed to embedded or mobile
target platforms. For those platforms, create a Qt Quick application
instead.
\li \uicontrol {Qt Quick 2 Extension Plugin} (in the \uicontrol Library category) \li \uicontrol {Qt Quick 2 Extension Plugin} (in the \uicontrol Library category)
create C++ plugins that make it possible to offer extensions that create C++ plugins that make it possible to offer extensions that
@@ -121,6 +125,18 @@
\section1 Creating Qt Quick UI Projects \section1 Creating Qt Quick UI Projects
Qt Quick UI projects are useful for testing or prototyping user interfaces,
or for setting up a separate project just for QML editing, for example. You
cannot use them for application development, because they do not contain:
\list
\li C++ code
\li Resource files (.qrc)
\li Code needed for deploying applications to mobile or embedded devices
\endlist
To create a Qt Quick UI project:
\list 1 \list 1
\li Select \uicontrol File > \uicontrol {New File or Project} > \li Select \uicontrol File > \uicontrol {New File or Project} >

View File

@@ -279,10 +279,17 @@
\image qmldesigner-text-property-tr.png "Text properties" \image qmldesigner-text-property-tr.png "Text properties"
The text string is enclosed in a \c qsTr call. By default, the text string is enclosed in a \c qsTr() call.
\image qml-translate.png "Text marked for translation" \image qml-translate.png "Text marked for translation"
If you use text IDs instead of plain text, change the default call to
\c qsTrId(). Select \uicontrol Tools > \uicontrol Options >
\uicontrol {Qt Quick} > \uicontrol {Qt Quick Designer}, and then select the
\uicontrol {qsTrId()} radio button in the \uicontrol Internationalization
group. For more information about text ID based translations, see
\l {Qt Linguist Manual: Text ID Based Translations}.
\section2 Loading Placeholder Data \section2 Loading Placeholder Data
\QMLD supports views, models, and delegates, so that when you add a Grid \QMLD supports views, models, and delegates, so that when you add a Grid

View File

@@ -1,3 +1,31 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [qt designer faq]
\section1 Qt Designer Integration Questions \section1 Qt Designer Integration Questions
\b {Why are custom widgets not loaded in Design mode even though it \b {Why are custom widgets not loaded in Design mode even though it
@@ -8,3 +36,6 @@
integrated Qt Designer. integrated Qt Designer.
For more information, see \l{Adding Qt Designer Plugins}. For more information, see \l{Adding Qt Designer Plugins}.
//! [qt designer faq]
*/

View File

@@ -2830,6 +2830,8 @@ class DumperBase:
def integer(self): def integer(self):
if self.type.code == TypeCodeTypedef: if self.type.code == TypeCodeTypedef:
return self.detypedef().integer() return self.detypedef().integer()
elif self.type.code == TypeCodeBitfield:
return self.lvalue
unsigned = self.type.name.startswith('unsigned') unsigned = self.type.name.startswith('unsigned')
bitsize = self.type.bitsize() bitsize = self.type.bitsize()
return self.extractInteger(bitsize, unsigned) return self.extractInteger(bitsize, unsigned)

View File

@@ -380,10 +380,30 @@ class Dumper(DumperBase):
def nativeTypeEnumDisplay(self, nativeType, intval): def nativeTypeEnumDisplay(self, nativeType, intval):
try: try:
val = gdb.parse_and_eval('(%s)%d' % (nativeType, intval)) enumerators = []
return '%s (%d)' % (val, intval) for field in nativeType.fields():
# If we found an exact match, return it immediately
if field.enumval == intval:
return '%s (%d)' % (field.name, intval)
enumerators.append((field.name, field.enumval))
# No match was found, try to return as flags
enumerators.sort(key = lambda x: x[1])
flags = []
v = intval
found = False
for (name, value) in enumerators:
if v & value != 0:
flags.append(name)
v = v & ~value
found = True
if not found or v != 0:
# Leftover value
flags.append('unknown:%d' % v)
return "(%s) (%d)" % (" | ".join(flags), intval)
except: except:
return '%d' % intval pass
return '%d' % intval
def nativeTypeId(self, nativeType): def nativeTypeId(self, nativeType):
name = str(nativeType) name = str(nativeType)

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -455,6 +455,7 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
// Draw the actual pixmap... // Draw the actual pixmap...
cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px); cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px);
cachePainter.end();
cache.setDevicePixelRatio(devicePixelRatio); cache.setDevicePixelRatio(devicePixelRatio);
QPixmapCache::insert(pixmapName, cache); QPixmapCache::insert(pixmapName, cache);
} }

View File

@@ -128,6 +128,21 @@ static const QString pidScript = QStringLiteral("for p in /proc/[0-9]*; "
"do cat <$p/cmdline && echo :${p##*/}; done"); "do cat <$p/cmdline && echo :${p##*/}; done");
static const QString pidPollingScript = QStringLiteral("while true; do sleep 1; " static const QString pidPollingScript = QStringLiteral("while true; do sleep 1; "
"cat /proc/%1/cmdline > /dev/null; done"); "cat /proc/%1/cmdline > /dev/null; done");
static const QString regExpLogcat = QStringLiteral("[0-9\\-]*" // date
"\\s+"
"[0-9\\-:.]*"// time
"\\s*"
"(\\d*)" // pid 1. capture
"\\s+"
"\\d*" // unknown
"\\s+"
"(\\w)" // message type 2. capture
"\\s+"
"(.*): " // source 3. capture
"(.*)" // message 4. capture
"[\\n\\r]*"
);
static int APP_START_TIMEOUT = 45000; static int APP_START_TIMEOUT = 45000;
static bool isTimedOut(const chrono::high_resolution_clock::time_point &start, static bool isTimedOut(const chrono::high_resolution_clock::time_point &start,
@@ -199,8 +214,6 @@ public:
const QString &packageName, const QStringList &selector); const QString &packageName, const QStringList &selector);
~AndroidRunnerWorker(); ~AndroidRunnerWorker();
void init();
void asyncStart(const QString &intentName, const QVector<QStringList> &adbCommands); void asyncStart(const QString &intentName, const QVector<QStringList> &adbCommands);
void asyncStop(const QVector<QStringList> &adbCommands); void asyncStop(const QVector<QStringList> &adbCommands);
@@ -246,7 +259,6 @@ private:
QString m_gdbserverPath; QString m_gdbserverPath;
QString m_gdbserverSocket; QString m_gdbserverSocket;
QString m_adb; QString m_adb;
bool m_isBusyBox = false;
QStringList m_selector; QStringList m_selector;
QRegExp m_logCatRegExp; QRegExp m_logCatRegExp;
DebugHandShakeType m_handShakeMethod = SocketHandShake; DebugHandShakeType m_handShakeMethod = SocketHandShake;
@@ -261,6 +273,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(AndroidRunConfiguration *runConfig, Cor
: m_adbLogcatProcess(nullptr, deleter) : m_adbLogcatProcess(nullptr, deleter)
, m_psIsAlive(nullptr, deleter) , m_psIsAlive(nullptr, deleter)
, m_selector(selector) , m_selector(selector)
, m_logCatRegExp(regExpLogcat)
, m_packageName(packageName) , m_packageName(packageName)
{ {
Debugger::DebuggerRunConfigurationAspect *aspect Debugger::DebuggerRunConfigurationAspect *aspect
@@ -328,41 +341,6 @@ AndroidRunnerWorker::~AndroidRunnerWorker()
m_pidFinder.cancel(); m_pidFinder.cancel();
} }
// This is run from the worker thread.
void AndroidRunnerWorker::init()
{
QTC_ASSERT(!m_adbLogcatProcess, /**/);
m_adbLogcatProcess.reset(new QProcess);
// Detect busybox, as we need to pass -w to ps to get wide output.
Utils::SynchronousProcess psProc;
psProc.setTimeoutS(5);
Utils::SynchronousProcessResponse response = psProc.runBlocking(
m_adb, selector() << "shell" << "readlink" << "$(which ps)");
const QString which = response.allOutput();
m_isBusyBox = which.startsWith("busybox");
connect(m_adbLogcatProcess.get(), &QProcess::readyReadStandardOutput,
this, &AndroidRunnerWorker::logcatReadStandardOutput);
connect(m_adbLogcatProcess.get(), &QProcess::readyReadStandardError,
this, &AndroidRunnerWorker::logcatReadStandardError);
m_logCatRegExp = QRegExp(QLatin1String("[0-9\\-]*" // date
"\\s+"
"[0-9\\-:.]*"// time
"\\s*"
"(\\d*)" // pid 1. capture
"\\s+"
"\\d*" // unknown
"\\s+"
"(\\w)" // message type 2. capture
"\\s+"
"(.*): " // source 3. capture
"(.*)" // message 4. capture
"[\\n\\r]*"
));
}
void AndroidRunnerWorker::forceStop() void AndroidRunnerWorker::forceStop()
{ {
runAdb(selector() << "shell" << "am" << "force-stop" << m_packageName, nullptr, 30); runAdb(selector() << "shell" << "am" << "force-stop" << m_packageName, nullptr, 30);
@@ -383,8 +361,14 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
{ {
forceStop(); forceStop();
// Its assumed that the device or avd serial returned by selector() is online. // Start the logcat process before app starts.
m_adbLogcatProcess->start(m_adb, selector() << "logcat"); std::unique_ptr<QProcess, decltype(&deleter)> logcatProcess(new QProcess, deleter);
connect(logcatProcess.get(), &QProcess::readyReadStandardOutput,
this, &AndroidRunnerWorker::logcatReadStandardOutput);
connect(logcatProcess.get(), &QProcess::readyReadStandardError,
this, &AndroidRunnerWorker::logcatReadStandardError);
// Its assumed that the device or avd returned by selector() is online.
logcatProcess->start(m_adb, selector() << "logcat");
QString errorMessage; QString errorMessage;
@@ -481,9 +465,6 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
break; break;
} }
if (!wasSuccess)
emit remoteProcessFinished(tr("Failed to contact debugging port."));
if (!m_customPort) { if (!m_customPort) {
// increment running port to avoid clash when using multiple // increment running port to avoid clash when using multiple
// debug sessions at the same time // debug sessions at the same time
@@ -492,6 +473,11 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
if (m_socketHandShakePort == MAX_SOCKET_HANDSHAKE_PORT) if (m_socketHandShakePort == MAX_SOCKET_HANDSHAKE_PORT)
m_socketHandShakePort = MIN_SOCKET_HANDSHAKE_PORT; m_socketHandShakePort = MIN_SOCKET_HANDSHAKE_PORT;
} }
if (!wasSuccess) {
emit remoteProcessFinished(tr("Failed to contact debugging port."));
return;
}
} else { } else {
// Handling ping. // Handling ping.
for (int i = 0; ; ++i) { for (int i = 0; ; ++i) {
@@ -517,6 +503,9 @@ void AndroidRunnerWorker::asyncStart(const QString &intentName,
} }
} }
QTC_ASSERT(!m_adbLogcatProcess, /**/);
m_adbLogcatProcess = std::move(logcatProcess);
m_pidFinder = Utils::onResultReady(Utils::runAsync(&findProcessPID, m_adb, selector(), m_pidFinder = Utils::onResultReady(Utils::runAsync(&findProcessPID, m_adb, selector(),
m_packageName), m_packageName),
bind(&AndroidRunnerWorker::onProcessIdChanged, this, _1)); bind(&AndroidRunnerWorker::onProcessIdChanged, this, _1));
@@ -578,16 +567,11 @@ void AndroidRunnerWorker::asyncStop(const QVector<QStringList> &adbCommands)
if (!m_pidFinder.isFinished()) if (!m_pidFinder.isFinished())
m_pidFinder.cancel(); m_pidFinder.cancel();
m_adbLogcatProcess.reset();
m_psIsAlive.reset();
if (m_processPID != -1) { if (m_processPID != -1) {
forceStop(); forceStop();
} }
foreach (const QStringList &entry, adbCommands) foreach (const QStringList &entry, adbCommands)
runAdb(selector() << entry); runAdb(selector() << entry);
emit remoteProcessFinished(QLatin1String("\n\n") + tr("\"%1\" terminated.").arg(m_packageName));
} }
void AndroidRunnerWorker::setAdbParameters(const QString &packageName, const QStringList &selector) void AndroidRunnerWorker::setAdbParameters(const QString &packageName, const QStringList &selector)
@@ -645,9 +629,11 @@ void AndroidRunnerWorker::onProcessIdChanged(qint64 pid)
QTC_ASSERT(QThread::currentThread() == thread(), return); QTC_ASSERT(QThread::currentThread() == thread(), return);
m_processPID = pid; m_processPID = pid;
if (m_processPID == -1) { if (m_processPID == -1) {
emit remoteProcessFinished(QLatin1String("\n\n") + tr("\"%1\" died.") emit remoteProcessFinished(QLatin1String("\n\n") + tr("\"%1\" died.")
.arg(m_packageName)); .arg(m_packageName));
m_psIsAlive.reset(); // App died/killed. Reset log and monitor processes.
m_adbLogcatProcess.reset();
m_psIsAlive.reset();
} else { } else {
if (m_useCppDebugger) { if (m_useCppDebugger) {
// This will be funneled to the engine to actually start and attach // This will be funneled to the engine to actually start and attach
@@ -720,8 +706,6 @@ AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig
AndroidDeviceInfo::adbSelector(m_androidRunnable.deviceSerialNumber))); AndroidDeviceInfo::adbSelector(m_androidRunnable.deviceSerialNumber)));
m_worker->moveToThread(&m_thread); m_worker->moveToThread(&m_thread);
connect(&m_thread, &QThread::started, m_worker.data(), &AndroidRunnerWorker::init);
connect(this, &AndroidRunner::asyncStart, m_worker.data(), &AndroidRunnerWorker::asyncStart); connect(this, &AndroidRunner::asyncStart, m_worker.data(), &AndroidRunnerWorker::asyncStart);
connect(this, &AndroidRunner::asyncStop, m_worker.data(), &AndroidRunnerWorker::asyncStop); connect(this, &AndroidRunner::asyncStop, m_worker.data(), &AndroidRunnerWorker::asyncStop);
connect(this, &AndroidRunner::adbParametersChanged, connect(this, &AndroidRunner::adbParametersChanged,

View File

@@ -325,6 +325,7 @@ void FancyToolButton::hoverOverlay(QPainter *painter, const QRect &spanRect)
p.setPen(QPen(grad, 1.0)); p.setPen(QPen(grad, 1.0));
p.drawLine(borderRect.topLeft(), borderRect.topRight()); p.drawLine(borderRect.topLeft(), borderRect.topRight());
p.drawLine(borderRect.bottomLeft(), borderRect.bottomRight()); p.drawLine(borderRect.bottomLeft(), borderRect.bottomRight());
p.end();
QPixmapCache::insert(cacheKey, overlay); QPixmapCache::insert(cacheKey, overlay);
} }

View File

@@ -273,6 +273,7 @@ static void paintSelectedTabBackground(QPainter *painter, const QRect &spanRect)
p.drawLine(borderRect.topLeft() + QPointF(0, 0), borderRect.topRight()); p.drawLine(borderRect.topLeft() + QPointF(0, 0), borderRect.topRight());
p.drawLine(borderRect.topRight() + QPointF(0, 1), borderRect.bottomRight() - QPointF(0, 1)); p.drawLine(borderRect.topRight() + QPointF(0, 1), borderRect.bottomRight() - QPointF(0, 1));
p.drawLine(borderRect.bottomLeft() + QPointF(0, -1), borderRect.bottomRight() - QPointF(0, 1)); p.drawLine(borderRect.bottomLeft() + QPointF(0, -1), borderRect.bottomRight() - QPointF(0, 1));
p.end();
QPixmapCache::insert(cacheKey, selection); QPixmapCache::insert(cacheKey, selection);
} }

View File

@@ -153,7 +153,7 @@ public:
arguments << "-P"; arguments << "-P";
else else
arguments << "-F"; arguments << "-F";
arguments << m_parameters.text; arguments << "-e" << m_parameters.text;
GitGrepParameters params = m_parameters.searchEngineParameters.value<GitGrepParameters>(); GitGrepParameters params = m_parameters.searchEngineParameters.value<GitGrepParameters>();
if (!params.ref.isEmpty()) { if (!params.ref.isEmpty()) {
arguments << params.ref; arguments << params.ref;

View File

@@ -72,8 +72,8 @@ private:
void fromMap(const QVariantMap &map) override; void fromMap(const QVariantMap &map) override;
void toMap(QVariantMap &map) const override; void toMap(QVariantMap &map) const override;
bool m_useTerminal; bool m_useTerminal = false;
bool m_userSet; bool m_userSet = false;
QPointer<QCheckBox> m_checkBox; // Owned by RunConfigWidget QPointer<QCheckBox> m_checkBox; // Owned by RunConfigWidget
QString m_key; QString m_key;
}; };

View File

@@ -19,7 +19,7 @@
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/androidapp.png" difficulty="" docUrl="qthelp://org.qt-project.qtcreator/doc/qtcreator-accelbubble-example.html" projectPath="" name="Creating a Mobile Application"> <tutorial imageUrl=":qtsupport/images/icons/androidapp.png" difficulty="" docUrl="qthelp://org.qt-project.qtcreator/doc/qtcreator-accelbubble-example.html" projectPath="" name="Creating a Mobile Application">
<description><![CDATA[Developing Qt Quick applications for Android and iOS devices using Qt Quick Controls.]]></description> <description><![CDATA[Developing Qt Quick applications for Android and iOS devices using Qt Quick Controls.]]></description>
<tags>qt creator,qt quick designer,qml,android</tags> <tags>qt creator,qt quick designer,qml,android,ios,controls</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtdoc/gettingstartedqml.html" projectPath="" name="Getting Started Programming with Qt Quick"> <tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtdoc/gettingstartedqml.html" projectPath="" name="Getting Started Programming with Qt Quick">
<description><![CDATA[Developing Qt Quick applications using QML and C++.]]></description> <description><![CDATA[Developing Qt Quick applications using QML and C++.]]></description>
@@ -49,76 +49,76 @@
<description><![CDATA[Using the Linux perf tool to generate data for code analysis.]]></description> <description><![CDATA[Using the Linux perf tool to generate data for code analysis.]]></description>
<tags>qt creator,cpu usage analyzer,perf</tags> <tags>qt creator,cpu usage analyzer,perf</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/ddays13.png" difficulty="" projectPath="" name="Targeting Multiple Mobile Platforms with Qt Creator" isVideo="true" videoUrl="http://www.youtube.com/watch?v=jDRup5z2qz0" videoLength="52:38"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Qt SCXML: State Machines Made Easier" isVideo="true" videoUrl="https://youtu.be/X0kEkB0ewyw" videoLength="42:22">
<description><![CDATA[Using Qt Creator to develop a cross-platform application for mobile devices and other small devices.]]></description> <description><![CDATA[Using the Qt SCXML module and Qt Creator SCXML editor.]]></description>
<tags>qt creator,qt quick,qml,c++,android,sailfishos</tags> <tags>qt creator,SCXML</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Effective Multi-Platform Development with Qt Creator, Qbs, and QEMU" isVideo="true" videoUrl="https://www.youtube.com/watch?v=v4glCQt2jE0" videoLength="19:08"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Effective Multi-Platform Development with Qt Creator, Qbs, and QEMU" isVideo="true" videoUrl="https://www.youtube.com/watch?v=v4glCQt2jE0" videoLength="19:08">
<description><![CDATA[Using Qt Creator, Qbs, and QEMU for application development.]]></description> <description><![CDATA[Using Qt Creator, Qbs, and QEMU for application development.]]></description>
<tags>qt creator,qbs,qemu</tags> <tags>qt creator,qbs,qemu</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Getting Started with Qt on Android" isVideo="true" videoUrl="https://www.youtube.com/watch?v=FWGUA9RS_ak" videoLength="41:30"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="All about Qt on Android" isVideo="true" videoUrl="https://youtu.be/dmKNxyi_YNk" videoLength="31:20">
<description><![CDATA[Using Qt Creator to develop a Qt Quick application for Android devices.]]></description> <description><![CDATA[Developing Qt applications for Android devices.]]></description>
<tags>qt creator,android</tags> <tags>qt creator,android</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Mastering Qt on Android" isVideo="true" videoUrl="https://www.youtube.com/watch?v=xqtoUCjG6GM" videoLength="43:54"> <tutorial imageUrl=":qtsupport/images/icons/videotutorialicon.png" difficulty="" projectPath="" name="Meet Qt Creator" isVideo="true" videoUrl="https://youtu.be/zAqSiIGdj8M" videoLength="2:06">
<description><![CDATA[Using the Qt Android Extras module.]]></description> <description><![CDATA[Overview of Qt Creator.]]></description>
<tags>qt,android</tags> <tags>qt creator</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt on iOS A to Z" isVideo="true" videoUrl="https://www.youtube.com/watch?v=8A7DPUwIcDg" videoLength="1:05:32"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Qt on iOS A to Z" isVideo="true" videoUrl="https://youtu.be/T_13aX5NTPk" videoLength="1:00:13">
<description><![CDATA[Using Qt Creator to develop an application for iOS.]]></description> <description><![CDATA[Developing Qt applications for iOS.]]></description>
<tags>qt creator,ios</tags> <tags>qt creator,ios</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/ddays13.png" difficulty="" projectPath="" name="Qt Creator for Bare Metal Development" isVideo="true" videoUrl="http://www.youtube.com/watch?v=hrKz63Q_Rf0" videoLength="9:35"> <tutorial imageUrl=":qtsupport/images/icons/ddays13.png" difficulty="" projectPath="" name="Qt Creator for Bare Metal Development" isVideo="true" videoUrl="http://www.youtube.com/watch?v=hrKz63Q_Rf0" videoLength="9:35">
<description><![CDATA[Using Qt Creator to develop for Bare Metal devices.]]></description> <description><![CDATA[Developing Qt Applications for Bare Metal devices.]]></description>
<tags>qt creator,baremetal</tags> <tags>qt creator,baremetal</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt and Windows 10" isVideo="true" videoUrl="https://www.youtube.com/watch?v=J9QrPvr-Sg0" videoLength="21:19"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Integrating Universal Windows Platform to Qt" isVideo="true" videoUrl="https://youtu.be/tpNdw2Cs4KY" videoLength="47:38">
<description><![CDATA[Qt support for Windows 10 on desktop, mobile, and embedded devices.]]></description> <description><![CDATA[Qt support for Universal Windows Platform on desktop, mobile, and embedded devices.]]></description>
<tags>qt,Windows 10</tags> <tags>windows</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Developing for Windows 10 with Qt" isVideo="true" videoUrl="https://www.youtube.com/watch?v=o5Xdt-j3hkA" videoLength="38:53"> <tutorial imageUrl=":qtsupport/images/icons/videotutorialicon.png" difficulty="" projectPath="" name="Qt SCXML and State Machine Tooling in Qt Creator" isVideo="true" videoUrl="https://youtu.be/9xqhq9nDiOg" videoLength="4:53">
<description><![CDATA[Using Qt Creator to develop applications for Windows 10.]]></description> <description><![CDATA[Creating state machines.]]></description>
<tags>qt creator,Windows 10,demo</tags> <tags>qt creator,SCXML</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt for Device Creation" isVideo="true" videoUrl="https://www.youtube.com/watch?v=nRf1e-AYk0o" videoLength="57:45"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt for Device Creation" isVideo="true" videoUrl="https://www.youtube.com/watch?v=nRf1e-AYk0o" videoLength="57:45">
<description><![CDATA[Creating your own embedded devices that run Qt applications.]]></description> <description><![CDATA[Creating your own embedded devices that run Qt applications.]]></description>
<tags>qt, embedded, device creation</tags> <tags>qt,embedded,device creation</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt Quick Controls Re-Engineered" isVideo="true" videoUrl="https://www.youtube.com/watch?v=FqjabvHSiZk" videoLength="45:34"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Developing UIs with Qt Quick Controls 2" isVideo="true" videoUrl="https://youtu.be/ozpSl7WbVt4" videoLength="23:13">
<description><![CDATA[Overview of changes planned to Qt Quick Controls.]]></description> <description><![CDATA[Using Qt Quick Controls 2 to create UIs.]]></description>
<tags>qt quick,controls</tags> <tags>qt quick designer,controls</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/ddays13.png" difficulty="" projectPath="" name="Adaptable UIs with Qt Quick" isVideo="true" videoUrl="http://www.youtube.com/watch?v=7zlvbHow9Gw" videoLength="46:16"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Overview of GUI technologies in Qt" isVideo="true" videoUrl="https://youtu.be/WIRRoPxIerc" videoLength="40:45">
<description><![CDATA[Implementing adaptable Qt Quick UIs using layouts, bindings, file selectors, and loaders.]]></description> <description><![CDATA[Overview of UI technologies that can be used with Qt.]]></description>
<tags>qt quick,layouts,bindings</tags> <tags>qt quick,ui,widgets</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt 3D CAD Demo" isVideo="true" videoUrl="https://www.youtube.com/watch?v=pDgo3EQxtaE" videoLength="10:10"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Qt on Your Wrist Qt on Android Wear" isVideo="true" videoUrl="https://youtu.be/Rd187QxihRo" videoLength="8:08">
<description><![CDATA[Creating a CAD application using Qt 3D.]]></description> <description><![CDATA[Running Qt apps on Android Wear devices.]]></description>
<tags>qt 3d,demo</tags> <tags>qt creator,android</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Effective QML" isVideo="true" videoUrl="https://www.youtube.com/watch?v=vzs5VPTf4QQ" videoLength="55:25"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Effective QML" isVideo="true" videoUrl="https://www.youtube.com/watch?v=vzs5VPTf4QQ" videoLength="55:25">
<description><![CDATA[Improving your QML code by using tools and by understanding the QML system.]]></description> <description><![CDATA[Improving your QML code by using tools and by understanding the QML system.]]></description>
<tags>qml,qml profiler</tags> <tags>qml,qml profiler</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/ddays14.png" difficulty="" projectPath="" name="Qt Widgets and Qt Quick Controls - A Comparison" isVideo="true" videoUrl="https://www.youtube.com/watch?v=-S9ki14ZtIk" videoLength="57:00"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Qt on macOS Updates" isVideo="true" videoUrl="https://youtu.be/qfyxXxeC73Y" videoLength="25:51">
<description><![CDATA[Comparison of Qt Widgets and Qt Quick Controls.]]></description> <description><![CDATA[Using Qt with macOS native windows.]]></description>
<tags>qt quick,widgets</tags> <tags>macos</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt's Web Offering - An Overview" isVideo="true" videoUrl="https://www.youtube.com/watch?v=XW-oTBCj1JQ" videoLength="23:32"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt's Web Offering - An Overview" isVideo="true" videoUrl="https://www.youtube.com/watch?v=XW-oTBCj1JQ" videoLength="23:32">
<description><![CDATA[Overview of the Qt modules that provide functions for embedding web content into applications.]]></description> <description><![CDATA[Overview of the Qt modules that provide functions for embedding web content into applications.]]></description>
<tags>qt webengine</tags> <tags>qt webengine</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Qt WebEngine Taming the Beast" isVideo="true" videoUrl="https://www.youtube.com/watch?v=3CTFxhBc_1I" videoLength="58:23"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="New Possibilities with Qt WebEngine" isVideo="true" videoUrl="https://youtu.be/E7CIIHT_jCk" videoLength="22:29">
<description><![CDATA[Using the Qt WebEngine module.]]></description> <description><![CDATA[Using the Qt WebEngine module.]]></description>
<tags>qt webengine</tags> <tags>qt webengine</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Building Desktop and Embedded UIs with Qt 3D" isVideo="true" videoUrl="https://www.youtube.com/watch?v=QCdti6xmug0" videoLength="47:40"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Qt Automotive Suite" isVideo="true" videoUrl="https://youtu.be/Ohzr1reeGDM" videoLength="26:15">
<description><![CDATA[Adding 3D content to Qt applications.]]></description> <description><![CDATA[Overview of the future of Qt in automotive.]]></description>
<tags>qt,qt creator,3d</tags> <tags>automotive</tags>
</tutorial> </tutorial>
<tutorial imageUrl=":qtsupport/images/icons/worldsummit15.png" difficulty="" projectPath="" name="Developing for Multiple Screen Resolutions" isVideo="true" videoUrl="https://www.youtube.com/watch?v=nNyhsdX6BsI" videoLength="40:09"> <tutorial imageUrl=":qtsupport/images/icons/worldsummit16.png" difficulty="" projectPath="" name="Developing for Multiple Screen Resolutions and Platforms" isVideo="true" videoUrl="https://youtu.be/qclquZ99ZVQ" videoLength="27:44">
<description><![CDATA[Developing for multiple screen resolutions.]]></description> <description><![CDATA[Best practices for an efficient app lifecycle.]]></description>
<tags>qt,qt quick,screen resolution</tags> <tags>qt,qt quick,screen resolution</tags>
</tutorial> </tutorial>
</tutorials> </tutorials>

View File

@@ -5198,6 +5198,20 @@ void tst_Dumpers::dumper_data()
+ Check("fd", "d (2)", "Foo"); + Check("fd", "d (2)", "Foo");
QTest::newRow("EnumFlags")
<< Data("\n"
"enum Flags { one = 1, two = 2, four = 4 };\n",
"Flags fone = one; unused(&fone);\n"
"Flags fthree = (Flags)(one|two); unused(&fthree);\n"
"Flags fmixed = (Flags)(two|8); unused(&fmixed);\n"
"Flags fbad = (Flags)(24); unused(&fbad);\n")
+ GdbEngine
+ Check("fone", "one (1)", "Flags")
+ Check("fthree", "(one | two) (3)", "Flags")
+ Check("fmixed", "(two | unknown:8) (10)", "Flags")
+ Check("fbad", "(unknown:24) (24)", "Flags");
QTest::newRow("Array") QTest::newRow("Array")
<< Data("double a1[3][3];\n" << Data("double a1[3][3];\n"
"for (int i = 0; i != 3; ++i)\n" "for (int i = 0; i != 3; ++i)\n"

View File

@@ -1,20 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorDebuggers> <!DOCTYPE QtCreatorDebuggers>
<!-- Written by QtCreator 3.3.81, 2015-02-17T18:11:11. --> <!-- Written by QtCreator 4.2.2, 2017-02-10T17:36:35. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>DebuggerItem.0</variable> <variable>DebuggerItem.0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<valuelist type="QVariantList" key="Abis"> <valuelist type="QVariantList" key="Abis">
<value type="QString">x86-windows-msvc2010-pe-64bit</value> <value type="QString">x86-windows-msvc2015-pe-64bit</value>
</valuelist> </valuelist>
<value type="bool" key="AutoDetected">true</value> <value type="bool" key="AutoDetected">true</value>
<value type="QString" key="AutoDetectionSource"></value> <value type="QString" key="AutoDetectionSource"></value>
<value type="QString" key="Binary">C:/Program Files/Debugging Tools for Windows (x64)/cdb.exe</value> <value type="QString" key="Binary">C:/Program Files (x86)/Windows Kits/10/Debuggers/x64/cdb.exe</value>
<value type="QString" key="DisplayName">Auto-detected CDB at C:\Program Files\Debugging Tools for Windows (x64)\cdb.exe</value> <value type="QString" key="DisplayName">Auto-detected CDB at C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe</value>
<value type="int" key="EngineType">4</value> <value type="int" key="EngineType">4</value>
<value type="QString" key="Id">{811977c9-ea95-4616-bc28-c66d1935ff65}</value> <value type="QString" key="Id">{1b25f20a-d584-4fb7-85b3-74dd15b82f6f}</value>
<value type="QDateTime" key="LastModified"></value>
<value type="QString" key="Version"></value> <value type="QString" key="Version"></value>
<value type="QString" key="WorkingDirectory"></value>
</valuemap> </valuemap>
</data> </data>
<data> <data>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProfiles> <!DOCTYPE QtCreatorProfiles>
<!-- Written by QtCreator 4.2.1, 2017-01-05T18:03:28. --> <!-- Written by QtCreator 4.2.2, 2017-02-10T17:44:37. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>Profile.0</variable> <variable>Profile.0</variable>
@@ -37,7 +37,7 @@
<value type="QString" key="PE.Profile.AutoDetectionSource"></value> <value type="QString" key="PE.Profile.AutoDetectionSource"></value>
<valuemap type="QVariantMap" key="PE.Profile.Data"> <valuemap type="QVariantMap" key="PE.Profile.Data">
<value type="QString" key="Android.GdbServer.Information"></value> <value type="QString" key="Android.GdbServer.Information"></value>
<value type="QString" key="Debugger.Information">{811977c9-ea95-4616-bc28-c66d1935ff65}</value> <value type="QString" key="Debugger.Information">{1b25f20a-d584-4fb7-85b3-74dd15b82f6f}</value>
<value type="QString" key="PE.Profile.Device">Desktop Device</value> <value type="QString" key="PE.Profile.Device">Desktop Device</value>
<value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value> <value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value>
<valuelist type="QVariantList" key="PE.Profile.Environment"/> <valuelist type="QVariantList" key="PE.Profile.Environment"/>
@@ -65,7 +65,7 @@
<value type="QString" key="PE.Profile.AutoDetectionSource"></value> <value type="QString" key="PE.Profile.AutoDetectionSource"></value>
<valuemap type="QVariantMap" key="PE.Profile.Data"> <valuemap type="QVariantMap" key="PE.Profile.Data">
<value type="QString" key="Android.GdbServer.Information"></value> <value type="QString" key="Android.GdbServer.Information"></value>
<value type="QString" key="Debugger.Information">{811977c9-ea95-4616-bc28-c66d1935ff65}</value> <value type="QString" key="Debugger.Information">{1b25f20a-d584-4fb7-85b3-74dd15b82f6f}</value>
<value type="QString" key="PE.Profile.Device">Desktop Device</value> <value type="QString" key="PE.Profile.Device">Desktop Device</value>
<value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value> <value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value>
<valuelist type="QVariantList" key="PE.Profile.Environment"/> <valuelist type="QVariantList" key="PE.Profile.Environment"/>
@@ -121,7 +121,7 @@
<value type="QString" key="PE.Profile.AutoDetectionSource"></value> <value type="QString" key="PE.Profile.AutoDetectionSource"></value>
<valuemap type="QVariantMap" key="PE.Profile.Data"> <valuemap type="QVariantMap" key="PE.Profile.Data">
<value type="QString" key="Android.GdbServer.Information"></value> <value type="QString" key="Android.GdbServer.Information"></value>
<value type="QString" key="Debugger.Information">{811977c9-ea95-4616-bc28-c66d1935ff65}</value> <value type="QString" key="Debugger.Information">{1b25f20a-d584-4fb7-85b3-74dd15b82f6f}</value>
<value type="QString" key="PE.Profile.Device">Desktop Device</value> <value type="QString" key="PE.Profile.Device">Desktop Device</value>
<value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value> <value type="QByteArray" key="PE.Profile.DeviceType">Desktop</value>
<valuelist type="QVariantList" key="PE.Profile.Environment"/> <valuelist type="QVariantList" key="PE.Profile.Environment"/>

View File

@@ -87,7 +87,8 @@ def __checkBuildAndRun__():
def __processSubItems__(treeObjStr, section, parModelIndexStr, doneItems, def __processSubItems__(treeObjStr, section, parModelIndexStr, doneItems,
additionalFunc, *additionalParameters): additionalFunc, *additionalParameters):
global currentSelectedTreeItem global currentSelectedTreeItem
model = waitForObject(treeObjStr).model() tree = waitForObject(treeObjStr)
model = tree.model()
items = dumpIndices(model, section) items = dumpIndices(model, section)
for it in items: for it in items:
indexName = str(it.data().toString()) indexName = str(it.data().toString())
@@ -97,6 +98,7 @@ def __processSubItems__(treeObjStr, section, parModelIndexStr, doneItems,
if alreadyDone: if alreadyDone:
itObj = "%s occurrence='%d'}" % (itObj[:-1], alreadyDone + 1) itObj = "%s occurrence='%d'}" % (itObj[:-1], alreadyDone + 1)
currentSelectedTreeItem = waitForObject(itObj, 3000) currentSelectedTreeItem = waitForObject(itObj, 3000)
tree.scrollTo(it)
mouseClick(currentSelectedTreeItem, 5, 5, 0, Qt.LeftButton) mouseClick(currentSelectedTreeItem, 5, 5, 0, Qt.LeftButton)
additionalFunc(indexName, *additionalParameters) additionalFunc(indexName, *additionalParameters)
currentSelectedTreeItem = None currentSelectedTreeItem = None