Merge remote-tracking branch 'origin/4.12' into qds-1.59
Change-Id: I39a979aba39c735ab6885808b6371e5c8c02d37b
6
.github/workflows/build_cmake.yml
vendored
@@ -3,10 +3,10 @@ name: CMake Build Matrix
|
|||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
QT_VERSION: 5.14.1
|
QT_VERSION: 5.14.2
|
||||||
CLANG_VERSION: 80
|
CLANG_VERSION: 80
|
||||||
CMAKE_VERSION: 3.16.3
|
CMAKE_VERSION: 3.17.0
|
||||||
NINJA_VERSION: 1.9.0
|
NINJA_VERSION: 1.10.0
|
||||||
BUILD_TYPE: Release
|
BUILD_TYPE: Release
|
||||||
CCACHE_VERSION: 3.7.7
|
CCACHE_VERSION: 3.7.7
|
||||||
GOOGLETEST_VERSION: 1.10.0
|
GOOGLETEST_VERSION: 1.10.0
|
||||||
|
@@ -719,6 +719,7 @@ function(add_qtc_plugin target_name)
|
|||||||
string(REPLACE "$$QTCREATOR_VERSION" "\${IDE_VERSION}" plugin_json_in ${plugin_json_in})
|
string(REPLACE "$$QTCREATOR_VERSION" "\${IDE_VERSION}" plugin_json_in ${plugin_json_in})
|
||||||
string(REPLACE "$$QTCREATOR_COMPAT_VERSION" "\${IDE_VERSION_COMPAT}" plugin_json_in ${plugin_json_in})
|
string(REPLACE "$$QTCREATOR_COMPAT_VERSION" "\${IDE_VERSION_COMPAT}" plugin_json_in ${plugin_json_in})
|
||||||
string(REPLACE "$$QTCREATOR_COPYRIGHT_YEAR" "\${IDE_COPYRIGHT_YEAR}" plugin_json_in ${plugin_json_in})
|
string(REPLACE "$$QTCREATOR_COPYRIGHT_YEAR" "\${IDE_COPYRIGHT_YEAR}" plugin_json_in ${plugin_json_in})
|
||||||
|
string(REPLACE "$$QTC_PLUGIN_REVISION" "\${QTC_PLUGIN_REVISION}" plugin_json_in ${plugin_json_in})
|
||||||
string(REPLACE "$$dependencyList" "\${IDE_PLUGIN_DEPENDENCY_STRING}" plugin_json_in ${plugin_json_in})
|
string(REPLACE "$$dependencyList" "\${IDE_PLUGIN_DEPENDENCY_STRING}" plugin_json_in ${plugin_json_in})
|
||||||
if(_arg_PLUGIN_JSON_IN)
|
if(_arg_PLUGIN_JSON_IN)
|
||||||
#e.g. UPDATEINFO_EXPERIMENTAL_STR=true
|
#e.g. UPDATEINFO_EXPERIMENTAL_STR=true
|
||||||
|
15
dist/changes-4.12.0.md
vendored
@@ -57,6 +57,8 @@ Editing
|
|||||||
* Updated to Qt 5.15 parser (QTCREATORBUG-23591)
|
* Updated to Qt 5.15 parser (QTCREATORBUG-23591)
|
||||||
* Improved support for multiple imports into same namespace (QTCREATORBUG-15684)
|
* Improved support for multiple imports into same namespace (QTCREATORBUG-15684)
|
||||||
* Added scanning of `app.qmltypes` and `lib.qmltypes` for type information
|
* Added scanning of `app.qmltypes` and `lib.qmltypes` for type information
|
||||||
|
* Fixed highlighting for new keywords in Qt 5.15
|
||||||
|
* Fixed reading of `qmltypes` from Qt 5.15 (QTCREATORBUG-23855)
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
@@ -92,15 +94,18 @@ Projects
|
|||||||
* Improved renaming of files (QTCREATORBUG-19257)
|
* Improved renaming of files (QTCREATORBUG-19257)
|
||||||
* Fixed handling of `object_parallel_to_source` (QTCREATORBUG-18136)
|
* Fixed handling of `object_parallel_to_source` (QTCREATORBUG-18136)
|
||||||
* Fixed crash with circular includes (QTCREATORBUG-23567)
|
* Fixed crash with circular includes (QTCREATORBUG-23567)
|
||||||
|
* Fixed issue with renaming files (QTCREATORBUG-23720)
|
||||||
|
|
||||||
### CMake
|
### CMake
|
||||||
|
|
||||||
* Improved handling of `source_group` (QTCREATORBUG-23372)
|
* Improved handling of `source_group` (QTCREATORBUG-23372)
|
||||||
* Added support for `Add build library search path to LD_LIBRARY_PATH` (QTCREATORBUG-23464)
|
* Added support for `Add build library search path to LD_LIBRARY_PATH` (QTCREATORBUG-23464)
|
||||||
* Added automatic registration of CMake documentation, if available (QTCREATORBUG-21338)
|
* Added automatic registration of CMake documentation, if available (QTCREATORBUG-21338)
|
||||||
|
* Fixed that `.cmake` directory was created in project source directory (QTCREATORBUG-23816)
|
||||||
* Fixed issues with `snap` on Ubuntu Linux (QTCREATORBUG-23376)
|
* Fixed issues with `snap` on Ubuntu Linux (QTCREATORBUG-23376)
|
||||||
* Fixed handling of `Enable QML` in debugger settings (QTCREATORBUG-23541)
|
* Fixed handling of `Enable QML` in debugger settings (QTCREATORBUG-23541)
|
||||||
* Fixed unneeded reparsing of files
|
* Fixed unneeded reparsing of files
|
||||||
|
* Fixed code model issues with precompiled headers (QTCREATORBUG-22888)
|
||||||
|
|
||||||
### Qbs
|
### Qbs
|
||||||
|
|
||||||
@@ -111,6 +116,7 @@ Projects
|
|||||||
### Python
|
### Python
|
||||||
|
|
||||||
* Added option to disable buffered output (QTCREATORBUG-23539)
|
* Added option to disable buffered output (QTCREATORBUG-23539)
|
||||||
|
* Added support for PySide 5.15 to wizards (QTCREATORBUG-23824)
|
||||||
|
|
||||||
### Generic
|
### Generic
|
||||||
|
|
||||||
@@ -164,6 +170,7 @@ Qt Quick Designer
|
|||||||
* Added support for annotations (QDS-39)
|
* Added support for annotations (QDS-39)
|
||||||
* Fixed dragging of keyframes in curve editor (QDS-1405)
|
* Fixed dragging of keyframes in curve editor (QDS-1405)
|
||||||
* Fixed crash when selecting icon (QTCREATORBUG-23773)
|
* Fixed crash when selecting icon (QTCREATORBUG-23773)
|
||||||
|
* Fixed missing import options (QDS-1592)
|
||||||
|
|
||||||
Version Control Systems
|
Version Control Systems
|
||||||
-----------------------
|
-----------------------
|
||||||
@@ -212,7 +219,10 @@ Platforms
|
|||||||
* Added support for Android 11 with API level 30
|
* Added support for Android 11 with API level 30
|
||||||
* Improved examples browser to only show items tagged with `android` (QTBUG-80716)
|
* Improved examples browser to only show items tagged with `android` (QTBUG-80716)
|
||||||
* Improved manifest editor (QTCREATORBUG-23283)
|
* Improved manifest editor (QTCREATORBUG-23283)
|
||||||
|
* Fixed issues with latest SDK r29 (QTCREATORBUG-23726)
|
||||||
* Fixed several issues with AVD manager (QTCREATORBUG-23284, QTCREATORBUG-23448)
|
* Fixed several issues with AVD manager (QTCREATORBUG-23284, QTCREATORBUG-23448)
|
||||||
|
* Fixed that some essential packages were not installed (QTCREATORBUG-23829)
|
||||||
|
* Fixed that ABI selection in build configuration did not persist (QTCREATORBUG-23756)
|
||||||
|
|
||||||
### iOS
|
### iOS
|
||||||
|
|
||||||
@@ -231,7 +241,10 @@ Platforms
|
|||||||
|
|
||||||
### MCU
|
### MCU
|
||||||
|
|
||||||
* Added auto-registration of documentation (UL-1685)
|
* Added auto-registration of documentation and examples (UL-1685, UL-1218)
|
||||||
|
* Switched to MCUXpresso IDE instead of SEGGER JLink for NXP kits (QTCREATORBUG-23821)
|
||||||
|
* Fixed issues with desktop kit (QTCREATORBUG-23820)
|
||||||
|
* Fixed issues with RH850 (QTCREATORBUG-23822)
|
||||||
|
|
||||||
Credits for these changes go to:
|
Credits for these changes go to:
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
6
dist/installer/mac/entitlements.plist
vendored
@@ -6,5 +6,11 @@
|
|||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.cs.disable-library-validation</key>
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.automation.apple-events</key>
|
||||||
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
@@ -35,7 +35,8 @@ examples.fileextensions += *.qml *.svg
|
|||||||
HTML.extraimages = ../../config/images/commercial.png
|
HTML.extraimages = ../../config/images/commercial.png
|
||||||
qhp.QtCreator.extraFiles = ../../config/images/commercial.png
|
qhp.QtCreator.extraFiles = ../../config/images/commercial.png
|
||||||
|
|
||||||
depends += qtwidgets \
|
depends += qtandroidextras\
|
||||||
|
qtwidgets \
|
||||||
qtcmake \
|
qtcmake \
|
||||||
qtcore \
|
qtcore \
|
||||||
qtqml \
|
qtqml \
|
||||||
|
@@ -1,2 +1,10 @@
|
|||||||
These forms are processed at run-time to produce dynamically-generated user interfaces. In order to generate a form at run-time, a resource file containing a .ui file is needed. Applications that use the form handling classes need to be configured to be built against the QtUiTools module. This is done by including the following declaration in a qmake project file to ensure that the application is compiled and linked appropriately. A form loader object, provided by the QUiLoader class, is used to construct the user interface. This user interface
|
IDE Overview
|
||||||
can be retrieved from any QIODevice; for example, a QFile object can be used to obtain a form stored in a project's resources. The QUiLoader::load() function takes the user interface description contained in the file and constructs the form widget.
|
|
||||||
|
Qt Creator is an integrated development environment (IDE) that provides you
|
||||||
|
with tools to design and develop applications with the Qt application framework.
|
||||||
|
Qt is designed for developing applications and user interfaces once and
|
||||||
|
deploying them to several desktop, embedded, and mobile operating systems or web
|
||||||
|
browsers (experimental). Qt Creator provides you with tools for accomplishing
|
||||||
|
your tasks throughout the whole application development life-cycle, from
|
||||||
|
creating a project to deploying the application to the target platforms.
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 15 KiB |
BIN
doc/qtcreator/images/qtcreator-git-log.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 6.5 KiB |
BIN
doc/qtcreator/images/qtcreator-settings-run.png
Normal file
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-textfinder-filter.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 14 KiB |
@@ -319,8 +319,8 @@
|
|||||||
|
|
||||||
\li In the \uicontrol Permissions field, you can specify the permissions that your
|
\li In the \uicontrol Permissions field, you can specify the permissions that your
|
||||||
application needs. Starting from Android 6.0 (API 23), permissions have to be
|
application needs. Starting from Android 6.0 (API 23), permissions have to be
|
||||||
requested at runtime (See \l{QtAndroidExtras}{requestPermissionsSync} or
|
requested at runtime (see \l{QtAndroid::requestPermissionsSync()} or
|
||||||
\l{QtAndroidExtras}{requestPermissions}). For lower Android API levels,
|
\l{QtAndroid::requestPermissions()}). For lower Android API levels,
|
||||||
users are asked to grant the permissions when they install the application.
|
users are asked to grant the permissions when they install the application.
|
||||||
Android OS then grants the application access to the appropriate data and features.
|
Android OS then grants the application access to the appropriate data and features.
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -124,6 +124,15 @@
|
|||||||
To switch between Windows line endings (CRLF) and Unix line endings (LF),
|
To switch between Windows line endings (CRLF) and Unix line endings (LF),
|
||||||
select the ending style on the editor toolbar (6).
|
select the ending style on the editor toolbar (6).
|
||||||
|
|
||||||
|
To set the line endings to use for all projects by default, select
|
||||||
|
\uicontrol Tools > \uicontrol Options > \uicontrol {Text Editor} >
|
||||||
|
\uicontrol Behavior, and then select the ending style in the
|
||||||
|
\uicontrol {Default line endings} field.
|
||||||
|
|
||||||
|
To set the line endings to use for a project, select \uicontrol Projects >
|
||||||
|
\uicontrol {Project Settings} > \uicontrol Editor. For more information,
|
||||||
|
see \l {Specifying Editor Settings}.
|
||||||
|
|
||||||
\section1 Splitting the Editor View
|
\section1 Splitting the Editor View
|
||||||
|
|
||||||
Split the editor view or open the editor in a new window when you want to
|
Split the editor view or open the editor in a new window when you want to
|
||||||
|
@@ -76,6 +76,25 @@
|
|||||||
To switch to the editor context when you close the last help page, select
|
To switch to the editor context when you close the last help page, select
|
||||||
the \uicontrol {Return to editor on closing the last page} check box.
|
the \uicontrol {Return to editor on closing the last page} check box.
|
||||||
|
|
||||||
|
\section1 Selecting the Help Viewer Backend
|
||||||
|
|
||||||
|
The help viewer backend determines the style sheet that is used to display
|
||||||
|
the help files. A help viewer backend that is based on the \l {QTextBrowser}
|
||||||
|
is used by default. However, it has several issues that have been fixed when
|
||||||
|
using litehtml as the help viewer backend.
|
||||||
|
|
||||||
|
On \macos, you can also use a help viewer backend that is based on the
|
||||||
|
system WebView component.
|
||||||
|
|
||||||
|
To switch the help viewer backend:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Help >
|
||||||
|
\uicontrol General.
|
||||||
|
\li In the \uicontrol {Viewer backend} field, select a viewer backend.
|
||||||
|
\li Reload the help page to take the new backend to use.
|
||||||
|
\endlist
|
||||||
|
|
||||||
\section1 Viewing Function Tooltips
|
\section1 Viewing Function Tooltips
|
||||||
|
|
||||||
To hide function tooltips by default, select \uicontrol Tools >
|
To hide function tooltips by default, select \uicontrol Tools >
|
||||||
|
@@ -213,7 +213,7 @@
|
|||||||
|
|
||||||
\b {How can I make use of my multi-core CPU with \QC?}
|
\b {How can I make use of my multi-core CPU with \QC?}
|
||||||
|
|
||||||
On Linux and \macos, go to \uicontrol Project mode, select your configuration
|
On Linux and \macos, go to \uicontrol Projects mode, select your configuration
|
||||||
in the \uicontrol {Build Settings}, locate the \uicontrol {Build Steps}, and add the
|
in the \uicontrol {Build Settings}, locate the \uicontrol {Build Steps}, and add the
|
||||||
following value, where \c{<num>} is the amount of cores in your CPU:
|
following value, where \c{<num>} is the amount of cores in your CPU:
|
||||||
\c{-j <num>}
|
\c{-j <num>}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
You can specify settings for deploying applications to generic Linux devices
|
You can specify settings for deploying applications to generic Linux devices
|
||||||
in the project .pro file. You can view the settings in the
|
in the project .pro file. You can view the settings in the
|
||||||
\uicontrol {Run Settings}.
|
\uicontrol Projects mode, in \uicontrol {Run Settings}.
|
||||||
|
|
||||||
\image qtcreator-embedded-linux-deployment-overview.png "Deploy to device"
|
\image qtcreator-embedded-linux-deployment-overview.png "Deploy to device"
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2017 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -45,8 +45,8 @@
|
|||||||
|
|
||||||
\image qtcreator-run-settings-linux.png "Run settings for Linux-based devices"
|
\image qtcreator-run-settings-linux.png "Run settings for Linux-based devices"
|
||||||
|
|
||||||
You can specify command line arguments to pass to your application in the
|
You can specify arguments to pass to your application in the
|
||||||
\uicontrol Arguments field.
|
\uicontrol {Command line arguments} field.
|
||||||
|
|
||||||
//! [run settings linux]
|
//! [run settings linux]
|
||||||
*/
|
*/
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
\title Deploying to Devices
|
\title Deploying to Devices
|
||||||
|
|
||||||
Deploy configurations in the \uicontrol Project mode
|
Deploy configurations in the \uicontrol Projects mode
|
||||||
\uicontrol {Run Settings} handle the packaging of the application as an
|
\uicontrol {Run Settings} handle the packaging of the application as an
|
||||||
executable and copying it to a location you want to run the executable at.
|
executable and copying it to a location you want to run the executable at.
|
||||||
The files can be copied to a location in the file system of the development
|
The files can be copied to a location in the file system of the development
|
||||||
|
@@ -121,11 +121,5 @@
|
|||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
* See \l{Running on QNX Devices} for limitations.
|
* See \l{Running on QNX Devices} for limitations.
|
||||||
|
|
||||||
\note Madde support has been removed from \QC 3.0. To develop for Maemo or Harmattan,
|
|
||||||
use \QC 2.8.
|
|
||||||
|
|
||||||
\note BlackBerry 10 support has been removed from \QC 3.5. Use \QC 3.4 instead.
|
|
||||||
|
|
||||||
//! [target platforms]
|
//! [target platforms]
|
||||||
*/
|
*/
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -59,15 +59,15 @@
|
|||||||
\image qtcreator-gs-build-example-open.png "Selecting an example"
|
\image qtcreator-gs-build-example-open.png "Selecting an example"
|
||||||
|
|
||||||
If no examples are listed, check that a \l{Adding Qt Versions}
|
If no examples are listed, check that a \l{Adding Qt Versions}
|
||||||
{Qt version} is installed and configured.
|
{Qt version} (2) is installed and configured. If you select a Qt
|
||||||
|
for Android or iOS, only the examples tested for Android or iOS
|
||||||
|
are listed.
|
||||||
|
|
||||||
\li Select an example in the list of examples.
|
\li Select an example in the list of examples.
|
||||||
|
|
||||||
You can also search for examples. Enter the \uicontrol android or
|
You can also use tags (3) to filter examples. For instance, enter
|
||||||
\uicontrol ios keyword in the search field (2) to list all the
|
the \uicontrol Boot2Qt tag (commercial only) in the search field
|
||||||
examples tested for Android or iOS. To list examples that you can
|
(4) to list examples that you can run on embedded devices.
|
||||||
run on embedded devices, enter the \uicontrol Boot2Qt keyword in the
|
|
||||||
search field (commercial only).
|
|
||||||
|
|
||||||
\li To check that the application code can be compiled and linked for a
|
\li To check that the application code can be compiled and linked for a
|
||||||
device, click the \uicontrol {Kit Selector} and select a
|
device, click the \uicontrol {Kit Selector} and select a
|
||||||
|
@@ -101,25 +101,24 @@
|
|||||||
|
|
||||||
\section1 Example of Adding Internal Libraries
|
\section1 Example of Adding Internal Libraries
|
||||||
|
|
||||||
The following example describes how to add a statically linked internal
|
To add an internal library to your project:
|
||||||
library to your project.
|
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li Choose \uicontrol File > \uicontrol {New File or Project} >
|
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||||
\uicontrol Library > \uicontrol {C++ Library} to create the library.
|
\uicontrol Library > \uicontrol {C++ Library}.
|
||||||
|
|
||||||
The \uicontrol {Introduction and Product Location} dialog opens.
|
\li Select \uicontrol Choose to open the \uicontrol {Project Location}
|
||||||
|
dialog.
|
||||||
|
|
||||||
\image qtcreator-add-library-wizard-ex-1.png "Introduction and Product Location dialog"
|
\image qtcreator-add-library-wizard-ex-1.png "Project Location dialog"
|
||||||
|
|
||||||
\li In the \uicontrol Type field, select \uicontrol {Statically Linked Library}.
|
|
||||||
|
|
||||||
\li In the \uicontrol Name field, give a name for the library. For example,
|
\li In the \uicontrol Name field, give a name for the library. For example,
|
||||||
\b mylib.
|
\b mylib.
|
||||||
|
|
||||||
\li Follow the instructions of the wizard until you get to the
|
\li Follow the instructions of the wizard until you get to the
|
||||||
\uicontrol {Project Management} dialog. In the \uicontrol {Add to project}
|
\uicontrol {Project Management} dialog. In the
|
||||||
|
\uicontrol {Add as a subproject to project}
|
||||||
list, select a project. For example, \b myapp.
|
list, select a project. For example, \b myapp.
|
||||||
|
|
||||||
\li In the \uicontrol Projects view, right-click the project name to open the
|
\li In the \uicontrol Projects view, right-click the project name to open the
|
||||||
@@ -127,9 +126,10 @@
|
|||||||
\uicontrol {Add Library} > \uicontrol {Internal Library} >
|
\uicontrol {Add Library} > \uicontrol {Internal Library} >
|
||||||
\uicontrol Next.
|
\uicontrol Next.
|
||||||
|
|
||||||
\li In the \uicontrol Library field, select \b mylib and click \uicontrol Next.
|
\li In the \uicontrol Library field, select \b mylib, and then select
|
||||||
|
\uicontrol Next.
|
||||||
|
|
||||||
\li Click \uicontrol Finish to add the following library declaration to the
|
\li Select \uicontrol Finish to add the following library declaration to the
|
||||||
project file:
|
project file:
|
||||||
|
|
||||||
\code
|
\code
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
to enter the information. If you created the project by using another \QC
|
to enter the information. If you created the project by using another \QC
|
||||||
instance, \QC asks whether you want to use the old settings. The settings
|
instance, \QC asks whether you want to use the old settings. The settings
|
||||||
are specific to the development environment, and should not be copied from
|
are specific to the development environment, and should not be copied from
|
||||||
one environment to another. Therefore, we recommend that you click \uicontrol No
|
one environment to another. Therefore, we recommend that you select \uicontrol No
|
||||||
and enter the information again in the \uicontrol {Configure Project} tab.
|
and enter the information again in the \uicontrol {Configure Project} tab.
|
||||||
|
|
||||||
The \uicontrol {Configure Project} tab displays a list of \l{glossary-buildandrun-kit}{kits}
|
The \uicontrol {Configure Project} tab displays a list of \l{glossary-buildandrun-kit}{kits}
|
||||||
@@ -86,8 +86,10 @@
|
|||||||
(CMake), \e {.qbs} (Qbs), \e {pyproject} (Python), or
|
(CMake), \e {.qbs} (Qbs), \e {pyproject} (Python), or
|
||||||
\e {Makefile.am} (Autotools, experimental).
|
\e {Makefile.am} (Autotools, experimental).
|
||||||
|
|
||||||
\li In the \uicontrol {Configure Project} tab, select kits for building and running your
|
\li In the \uicontrol {Configure Project} tab, select kits for building
|
||||||
project, and click \uicontrol {Configure Project}.
|
and running your project.
|
||||||
|
|
||||||
|
\li Select \uicontrol {Configure Project}.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -96,16 +98,16 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
\li In all modes, select \key Ctrl+O (\key Cmd+O on \macos) to open the
|
\li In all modes, press \key Ctrl+O (\key Cmd+O on \macos) to open the
|
||||||
\uicontrol {Open File} dialog, where you can select a project file
|
\uicontrol {Open File} dialog, where you can select a project file
|
||||||
to open a project.
|
to open a project.
|
||||||
|
|
||||||
\li In all modes, except the \uicontrol Help mode, select
|
\li In all modes, except the \uicontrol Help mode, press
|
||||||
\key Ctrl+Shift+O (\key Cmd+Shift+O on \macos) to open the
|
\key Ctrl+Shift+O (\key Cmd+Shift+O on \macos) to open the
|
||||||
\uicontrol {Load Project} dialog, where you can select a project
|
\uicontrol {Load Project} dialog, where you can select a project
|
||||||
file to open a project.
|
file to open a project.
|
||||||
|
|
||||||
\li In the \uicontrol Welcome mode, \uicontrol Projects tab, select
|
\li In the \uicontrol Welcome mode, \uicontrol Projects tab, press
|
||||||
\key Ctrl+Shift+number (\key Cmd+Shift+number on \macos), where
|
\key Ctrl+Shift+number (\key Cmd+Shift+number on \macos), where
|
||||||
the number is the number of a project in the list of recently opened
|
the number is the number of a project in the list of recently opened
|
||||||
projects.
|
projects.
|
||||||
|
@@ -50,7 +50,8 @@
|
|||||||
To set up a project, you first have to decide what kind of an
|
To set up a project, you first have to decide what kind of an
|
||||||
application you want to develop: do you want a user interface based
|
application you want to develop: do you want a user interface based
|
||||||
on Qt Quick or Qt widgets. Second, you have to choose the
|
on Qt Quick or Qt widgets. Second, you have to choose the
|
||||||
language to implement the application logic: C++ or JavaScript.
|
language to implement the application logic: C++, JavaScript, or
|
||||||
|
Python.
|
||||||
|
|
||||||
\li \l{Using Version Control Systems}
|
\li \l{Using Version Control Systems}
|
||||||
|
|
||||||
|
@@ -47,10 +47,16 @@
|
|||||||
build that is delivered with separate debug information. It is best suited
|
build that is delivered with separate debug information. It is best suited
|
||||||
for analyzing applications.
|
for analyzing applications.
|
||||||
|
|
||||||
|
\section1 Managing Build Configurations
|
||||||
|
|
||||||
You specify build settings in the \uicontrol Projects mode.
|
You specify build settings in the \uicontrol Projects mode.
|
||||||
To add a new build configuration, click \uicontrol Add and select the type of
|
To add a new build configuration, click \uicontrol Add and select the type of
|
||||||
configuration you would like to add. You can add as many build
|
configuration you would like to add. You can add as many build
|
||||||
configurations as you need.
|
configurations as you need. You can also select \uicontrol Clone to
|
||||||
|
add a build configuration that is based on the currently selected one.
|
||||||
|
|
||||||
|
Select \uicontrol Rename to give the currently selected build configuration
|
||||||
|
a new name.
|
||||||
|
|
||||||
To delete the build configuration currently selected, click \uicontrol Remove.
|
To delete the build configuration currently selected, click \uicontrol Remove.
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2018 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -71,6 +71,8 @@
|
|||||||
|
|
||||||
\li \l{File Encoding}
|
\li \l{File Encoding}
|
||||||
|
|
||||||
|
\li \l{Selecting Line Ending Style}
|
||||||
|
|
||||||
\li \l{Moving to Symbol Definition or Declaration}
|
\li \l{Moving to Symbol Definition or Declaration}
|
||||||
|
|
||||||
\li \l{Configuring Fonts}
|
\li \l{Configuring Fonts}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -44,17 +44,25 @@
|
|||||||
To view and modify them, select \uicontrol Projects >
|
To view and modify them, select \uicontrol Projects >
|
||||||
\uicontrol {Build & Run} > \uicontrol Run.
|
\uicontrol {Build & Run} > \uicontrol Run.
|
||||||
|
|
||||||
The available run configurations are listed in the
|
\image qtcreator-settings-run.png "Run Settings"
|
||||||
\uicontrol {Run configuration} field.
|
|
||||||
To add run configurations for a project, select \uicontrol Add.
|
|
||||||
To remove the current run configuration, select \uicontrol Remove.
|
|
||||||
To rename the current run configuration, select \uicontrol Rename.
|
|
||||||
|
|
||||||
To prevent \QC from automatically creating run configurations, select
|
To prevent \QC from automatically creating run configurations, select
|
||||||
\uicontrol Tools > \uicontrol Options > \uicontrol {Build & Run},
|
\uicontrol Tools > \uicontrol Options > \uicontrol {Build & Run},
|
||||||
and then deselect the \uicontrol {Create suitable run configurations
|
and then deselect the \uicontrol {Create suitable run configurations
|
||||||
automatically} check box.
|
automatically} check box.
|
||||||
|
|
||||||
|
\section1 Managing Run Configurations
|
||||||
|
|
||||||
|
The available run configurations are listed in the
|
||||||
|
\uicontrol {Run configuration} field.
|
||||||
|
To add run configurations for a project, select \uicontrol Add. To
|
||||||
|
add a run configuration that is based on the current one, select
|
||||||
|
\uicontrol Clone.
|
||||||
|
|
||||||
|
To rename the current run configuration, select \uicontrol Rename.
|
||||||
|
|
||||||
|
To remove the current run configuration, select \uicontrol Remove.
|
||||||
|
|
||||||
The run configurations for qmake projects derive their executable from the
|
The run configurations for qmake projects derive their executable from the
|
||||||
parsed .pro files. For more information on how the commands are constructed,
|
parsed .pro files. For more information on how the commands are constructed,
|
||||||
see \l{Starting External Processes}.
|
see \l{Starting External Processes}.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -48,8 +48,9 @@
|
|||||||
|
|
||||||
To run executable files without deploying them first, select \uicontrol Build >
|
To run executable files without deploying them first, select \uicontrol Build >
|
||||||
\uicontrol {Run Without Deployment}. To make this the default option, deselect the
|
\uicontrol {Run Without Deployment}. To make this the default option, deselect the
|
||||||
\uicontrol Tools > \uicontrol Options > \uicontrol Project >
|
\uicontrol Tools > \uicontrol Options > \uicontrol {Build & Run} >
|
||||||
\uicontrol {Always deploy project before running it} option.
|
\uicontrol General > \uicontrol {Always deploy project before running it}
|
||||||
|
check box.
|
||||||
|
|
||||||
To run applications:
|
To run applications:
|
||||||
|
|
||||||
|
@@ -91,10 +91,12 @@
|
|||||||
\list
|
\list
|
||||||
\li \l {Creating Qt Quick Projects}
|
\li \l {Creating Qt Quick Projects}
|
||||||
\li \l {Editing QML Files in Design Mode}
|
\li \l {Editing QML Files in Design Mode}
|
||||||
|
|
||||||
\li \l {Creating UIs}
|
\li \l {Creating UIs}
|
||||||
\list
|
\list
|
||||||
\li \l {Creating Components}
|
\li \l {Creating Components}
|
||||||
\list
|
\list
|
||||||
|
\li \l{Editing 2D Content}
|
||||||
\li \l{Creating Buttons}
|
\li \l{Creating Buttons}
|
||||||
\li \l{Creating Scalable Buttons and Borders}
|
\li \l{Creating Scalable Buttons and Borders}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -32,36 +32,47 @@
|
|||||||
|
|
||||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||||
\uicontrol {Application (Qt Quick)} >
|
\uicontrol {Application (Qt Quick)} >
|
||||||
\uicontrol {Qt Quick Application - Swipe} > \uicontrol Choose.
|
\uicontrol {Qt Quick Application - Swipe}.
|
||||||
|
|
||||||
|
\li Select \uicontrol Choose to open the
|
||||||
|
\uicontrol {Project Location} dialog.
|
||||||
|
|
||||||
\li In the \uicontrol Name field, enter a name for the application.
|
\li In the \uicontrol Name field, enter a name for the application.
|
||||||
|
|
||||||
\li In the \uicontrol {Create in} field, enter the path for the project
|
\li In the \uicontrol {Create in} field, enter the path for the project
|
||||||
files, and then select \uicontrol Next (or \uicontrol Continue on
|
files.
|
||||||
\macos).
|
|
||||||
|
\li Select \uicontrol Next (or \uicontrol Continue on \macos) to open
|
||||||
|
the \uicontrol {Define Build System} dialog.
|
||||||
|
|
||||||
\li In the \uicontrol {Build system} field, select the build system to
|
\li In the \uicontrol {Build system} field, select the build system to
|
||||||
use for building and running the project: \l qmake,
|
use for building and running the project: \l qmake,
|
||||||
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
||||||
|
|
||||||
\li In the \uicontrol {Qt Quick Controls Style} field, select one of
|
\li Select \uicontrol Next to open the
|
||||||
the predefined \l{Styling Qt Quick Controls}{UI styles} to use,
|
\uicontrol {Define Project Details} dialog.
|
||||||
and then select \uicontrol Next.
|
|
||||||
|
\li Select \uicontrol Next to use the default settings and to open
|
||||||
|
the \uicontrol {Translation File} dialog.
|
||||||
|
|
||||||
|
\li Select \uicontrol Next to use the default settings and to open
|
||||||
|
the \uicontrol {Kit Selection} dialog.
|
||||||
|
|
||||||
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
|
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
|
||||||
you want to build the application for. To build applications for
|
you want to build the application for. To build applications for
|
||||||
mobile devices, select kits for Android ARM and iPhone OS, and
|
mobile devices, select kits for Android ARM and iPhone OS.
|
||||||
click \uicontrol{Next}.
|
|
||||||
|
|
||||||
\note Kits are listed if they have been specified in \uicontrol
|
\note Kits are listed if they have been specified in \uicontrol
|
||||||
Tools > \uicontrol Options > \uicontrol Kits (on Windows and Linux)
|
Tools > \uicontrol Options > \uicontrol Kits (on Windows and Linux)
|
||||||
or in \uicontrol {\QC} > \uicontrol Preferences >
|
or in \uicontrol {\QC} > \uicontrol Preferences >
|
||||||
\uicontrol Kits (on \macos).
|
\uicontrol Kits (on \macos).
|
||||||
|
For more information, see \l {Adding Kits}.
|
||||||
|
|
||||||
\li Select \uicontrol Next.
|
\li Select \uicontrol Next to open the \uicontrol {Project Management}
|
||||||
|
dialog.
|
||||||
|
|
||||||
\li Review the project settings, and click \uicontrol{Finish} (or
|
\li Review the project settings, and select \uicontrol{Finish}
|
||||||
\uicontrol Done on \macos).
|
(or \uicontrol Done on \macos) to create the project.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -71,5 +82,8 @@
|
|||||||
in the \uicontrol {Text Editor} to add the application logic. For the
|
in the \uicontrol {Text Editor} to add the application logic. For the
|
||||||
purposes of this example, you can ignore \e Page2Form.ui.qml.
|
purposes of this example, you can ignore \e Page2Form.ui.qml.
|
||||||
|
|
||||||
|
For more information about the settings that you skipped, see
|
||||||
|
\l{Creating Qt Quick Applications}.
|
||||||
|
|
||||||
//! [qt quick application]
|
//! [qt quick application]
|
||||||
*/
|
*/
|
||||||
|
@@ -46,9 +46,8 @@
|
|||||||
|
|
||||||
\li \l {Editing QML Files in Design Mode}
|
\li \l {Editing QML Files in Design Mode}
|
||||||
|
|
||||||
You can use the \uicontrol {Form Editor} or the
|
You can use several different editors and views in the
|
||||||
\uicontrol {Text Editor} in the Design mode to
|
Design mode to develop Qt Quick applications.
|
||||||
develop Qt Quick applications.
|
|
||||||
|
|
||||||
\li \l {Creating UIs}
|
\li \l {Creating UIs}
|
||||||
|
|
||||||
|
@@ -100,30 +100,44 @@
|
|||||||
\QC creates the necessary boilerplate files. Some of the files are
|
\QC creates the necessary boilerplate files. Some of the files are
|
||||||
specific to a particular target platform.
|
specific to a particular target platform.
|
||||||
|
|
||||||
\section1 Creating Empty Qt Quick Applications
|
\section1 Creating Qt Quick Applications
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||||
\uicontrol {Application (Qt Quick)} >
|
\uicontrol {Application (Qt Quick)}.
|
||||||
\uicontrol {Qt Quick Application - Empty} > \uicontrol Choose.
|
|
||||||
|
\li Select the application type:
|
||||||
|
\list
|
||||||
|
\li \uicontrol {Qt Quick Application - Empty}
|
||||||
|
\li \uicontrol {Qt Quick Application - Scroll}
|
||||||
|
\li \uicontrol {Qt Quick Application - Stack}
|
||||||
|
\li \uicontrol {Qt Quick Application - Swipe}
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\li Select \uicontrol Choose to open the \uicontrol {Project Location}
|
||||||
|
dialog.
|
||||||
|
|
||||||
\li In the \uicontrol Name field, enter a name for the application.
|
\li In the \uicontrol Name field, enter a name for the application.
|
||||||
|
|
||||||
\li In the \uicontrol {Create in} field, enter the path for the project
|
\li In the \uicontrol {Create in} field, enter the path for the project
|
||||||
files, and then select \uicontrol Next (or \uicontrol Continue on
|
files. Select the \uicontrol {Use as default project location} check
|
||||||
\macos).
|
box to create new projects in this folder by default.
|
||||||
|
|
||||||
|
\li Select \uicontrol Next (or \uicontrol Continue on \macos) to open
|
||||||
|
the \uicontrol {Define Build System} dialog.
|
||||||
|
|
||||||
\li In the \uicontrol {Build system} field, select the build system to
|
\li In the \uicontrol {Build system} field, select the build system to
|
||||||
use for building and running the project: \l qmake,
|
use for building and running the project: \l qmake,
|
||||||
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
||||||
|
|
||||||
\li Select \uicontrol Next.
|
\li Select \uicontrol Next to open the
|
||||||
|
\uicontrol {Define Project Details} dialog.
|
||||||
|
|
||||||
\li Select the Qt version to
|
\li Select the Qt version to develop with in the
|
||||||
develop with in the \uicontrol {Minimal required Qt version} field.
|
\uicontrol {Minimal required Qt version} field.
|
||||||
The Qt version determines the Qt Quick imports that are used in the
|
The Qt version determines the Qt Quick imports
|
||||||
QML files.
|
that are used in the QML files.
|
||||||
|
|
||||||
\li Select the \uicontrol {Use Qt Virtual Keyboard} check box to add
|
\li Select the \uicontrol {Use Qt Virtual Keyboard} check box to add
|
||||||
support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
||||||
@@ -135,7 +149,8 @@
|
|||||||
You can use the \l {Installing Qt}{Qt Maintenance Tool} to install
|
You can use the \l {Installing Qt}{Qt Maintenance Tool} to install
|
||||||
Qt Virtual Keyboard.
|
Qt Virtual Keyboard.
|
||||||
|
|
||||||
\li Select \uicontrol Next.
|
\li Select \uicontrol Next to open the \uicontrol {Translation File}
|
||||||
|
dialog.
|
||||||
|
|
||||||
\li In the \uicontrol Language field, select a language that you plan
|
\li In the \uicontrol Language field, select a language that you plan
|
||||||
to \l {Using Qt Linguist}{translate} the application to. You can
|
to \l {Using Qt Linguist}{translate} the application to. You can
|
||||||
@@ -145,83 +160,42 @@
|
|||||||
name for the translation source file that will be generated
|
name for the translation source file that will be generated
|
||||||
for the selected language.
|
for the selected language.
|
||||||
|
|
||||||
\li Select \uicontrol Next.
|
\li Select \uicontrol Next to open the \uicontrol {Kit Selection}
|
||||||
|
dialog.
|
||||||
\li Select \l{glossary-buildandrun-kit}{kits} for running and building
|
|
||||||
your project, and then click \uicontrol Next.
|
|
||||||
|
|
||||||
\note Kits are listed if they have been specified in
|
|
||||||
\uicontrol Tools > \uicontrol Options > \uicontrol Kits.
|
|
||||||
|
|
||||||
\li Review the project settings, and click \uicontrol Finish (on Windows
|
|
||||||
and Linux) or \uicontrol Done (on \macos) to create the project.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\QC generates a QML file, \e main.qml, that you can modify in the Design
|
|
||||||
mode.
|
|
||||||
|
|
||||||
\include creator-python-project.qdocinc python qml project wizards
|
|
||||||
|
|
||||||
\section1 Creating Qt Quick Controls Applications
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
|
||||||
\uicontrol {Application (Qt Quick)} >
|
|
||||||
\uicontrol {Qt Quick Application - Scroll},
|
|
||||||
\uicontrol {Qt Quick Application - Stack}, or
|
|
||||||
\uicontrol {Qt Quick Application - Swipe} > \uicontrol Choose.
|
|
||||||
|
|
||||||
\li In the \uicontrol Name field, enter a name for the application.
|
|
||||||
|
|
||||||
\li In the \uicontrol {Create in} field, enter the path for the project
|
|
||||||
files, and then select \uicontrol Next (or \uicontrol Continue on
|
|
||||||
\macos).
|
|
||||||
|
|
||||||
\li In the \uicontrol {Build system} field, select the build system to
|
|
||||||
use for building and running the project: \l qmake,
|
|
||||||
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
|
||||||
|
|
||||||
\li In the \uicontrol {Qt Quick Controls Style} field, select one of
|
|
||||||
the predefined \l{Styling Qt Quick Controls}{UI styles} to use,
|
|
||||||
and then select \uicontrol Next.
|
|
||||||
|
|
||||||
\li Select the \uicontrol {Use Qt Virtual Keyboard} check box to add
|
|
||||||
support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
|
||||||
{Qt Virtual Keyboard} to the application.
|
|
||||||
|
|
||||||
\note \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
|
||||||
{Qt Virtual Keyboard} is not supported for Android and iOS.
|
|
||||||
|
|
||||||
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
|
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
|
||||||
you want to build the application for. To build applications for
|
you want to build the application for.
|
||||||
mobile devices, select kits for Android ARM and iOS, and
|
|
||||||
click \uicontrol{Next}.
|
|
||||||
|
|
||||||
\note Kits are listed if they have been specified in \uicontrol
|
\note Kits are listed if they have been specified in \uicontrol
|
||||||
Tools > \uicontrol Options > \uicontrol Kits (on Windows and Linux)
|
Tools > \uicontrol Options > \uicontrol Kits (on Windows and Linux)
|
||||||
or in \uicontrol {\QC} > \uicontrol Preferences >
|
or in \uicontrol {\QC} > \uicontrol Preferences >
|
||||||
\uicontrol Kits (on \macos).
|
\uicontrol Kits (on \macos).
|
||||||
|
For more information, see \l {Adding Kits}.
|
||||||
|
|
||||||
\li Select \uicontrol Next.
|
\li Select \uicontrol Next to open the \uicontrol {Project Management}
|
||||||
|
dialog.
|
||||||
|
|
||||||
\li Review the project settings, and click \uicontrol{Finish} (or
|
\li Review the project settings, and select \uicontrol Finish
|
||||||
\uicontrol Done on \macos).
|
(on Windows and Linux) or \uicontrol Done (on \macos) to
|
||||||
|
create the project.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
For the Scroll application, \QC creates a QML file, \e main.qml, that you
|
For the Empty and Scroll applications, \QC creates a QML file,
|
||||||
can modify in the Design mode.
|
\e main.qml, that you can modify in the \uicontrol {Form Editor}
|
||||||
|
or the \uicontrol {Text Editor}.
|
||||||
|
|
||||||
For the Stack and Swipe applications, \QC generates two UI files,
|
For the Stack and Swipe applications, \QC generates two UI files,
|
||||||
\e Page1Form.ui.qml and \e Page2Form.ui.qml, that you can modify in the
|
\e Page1Form.ui.qml and \e Page2Form.ui.qml, that you can modify in the
|
||||||
\uicontrol {Form Editor} and a QML file, \e main.qml, that you can
|
\uicontrol {Form Editor} and a QML file, \e main.qml, that you can
|
||||||
modify in the \uicontrol {Text Editor} to add the application logic.
|
modify in the \uicontrol {Text Editor} to add the application logic.
|
||||||
|
|
||||||
|
\include creator-python-project.qdocinc python qml project wizards
|
||||||
|
|
||||||
\section1 Creating Qt Quick UI Projects
|
\section1 Creating Qt Quick UI Projects
|
||||||
|
|
||||||
Qt Quick UI projects are useful for testing or prototyping user interfaces,
|
Qt Quick UI Prototype projects are useful for testing or prototyping user
|
||||||
|
interfaces,
|
||||||
or for setting up a separate project just for QML editing, for example. You
|
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:
|
cannot use them for application development, because they do not contain:
|
||||||
|
|
||||||
@@ -232,13 +206,28 @@
|
|||||||
{devices}
|
{devices}
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
To create a Qt Quick UI project:
|
For more information about how to turn Qt Quick UI Prototype projects into
|
||||||
|
Qt Quick Application projects, see
|
||||||
|
\l{Converting UI Projects to Applications}.
|
||||||
|
|
||||||
|
To create a Qt Quick UI Prototype project:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||||
\uicontrol {Other Project} > \uicontrol {Qt Quick UI Prototype} >
|
\uicontrol {Other Project} > \uicontrol {Qt Quick UI Prototype}.
|
||||||
\uicontrol Choose.
|
|
||||||
|
\li Select \uicontrol Choose to open the \uicontrol {Project Location}
|
||||||
|
dialog.
|
||||||
|
|
||||||
|
\li In the \uicontrol Name field, enter a name for the application.
|
||||||
|
|
||||||
|
\li In the \uicontrol {Create in} field, enter the path for the project
|
||||||
|
files. Select the \uicontrol {Use as default project location} check
|
||||||
|
box to create new projects in this folder by default.
|
||||||
|
|
||||||
|
\li Select \uicontrol Next (or \uicontrol Continue on \macos) to open
|
||||||
|
the \uicontrol {Define Project Details} dialog.
|
||||||
|
|
||||||
\li In the \uicontrol {Minimal required Qt version} field, select the Qt
|
\li In the \uicontrol {Minimal required Qt version} field, select the Qt
|
||||||
version to develop with. The Qt version determines the Qt Quick
|
version to develop with. The Qt version determines the Qt Quick
|
||||||
@@ -252,10 +241,30 @@
|
|||||||
support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
support for \l{http://doc.qt.io/qt-5/qtvirtualkeyboard-index.html}
|
||||||
{Qt Virtual Keyboard} to the application.
|
{Qt Virtual Keyboard} to the application.
|
||||||
|
|
||||||
\li Select \uicontrol Next (or \uicontrol Continue on \macos).
|
\note If you have not installed the Qt Virtual Keyboard module when
|
||||||
|
you installed Qt, an error message will appear when you try to open
|
||||||
|
the \e main.qml in the \uicontrol {Form Editor} in the Design mode.
|
||||||
|
You can use the \l {Installing Qt}{Qt Maintenance Tool} to install
|
||||||
|
Qt Virtual Keyboard.
|
||||||
|
|
||||||
\li Review the project settings, and click \uicontrol Finish (on Windows
|
\li Select \uicontrol Next to open the \uicontrol {Kit Selection}
|
||||||
and Linux) or \uicontrol Done (on \macos) to create the project.
|
dialog.
|
||||||
|
|
||||||
|
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
|
||||||
|
you want to build the application for.
|
||||||
|
|
||||||
|
\note Kits are listed if they have been specified in \uicontrol
|
||||||
|
Tools > \uicontrol Options > \uicontrol Kits (on Windows and Linux)
|
||||||
|
or in \uicontrol {\QC} > \uicontrol Preferences >
|
||||||
|
\uicontrol Kits (on \macos).
|
||||||
|
For more information, see \l {Adding Kits}.
|
||||||
|
|
||||||
|
\li Select \uicontrol Next to open the \uicontrol {Project Management}
|
||||||
|
dialog.
|
||||||
|
|
||||||
|
\li Review the project settings, and select \uicontrol Finish
|
||||||
|
(on Windows and Linux) or \uicontrol Done (on \macos) to
|
||||||
|
create the project.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2017 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -33,7 +33,9 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
\li In the \uicontrol Arguments field, you can specify command line arguments
|
\li In the \uicontrol {QML Viewer} field, specify the \QQV to use.
|
||||||
|
|
||||||
|
\li In the \uicontrol {Command line arguments} field, specify arguments
|
||||||
to be passed to the executable.
|
to be passed to the executable.
|
||||||
|
|
||||||
\li In the \uicontrol {Main QML file}, select the file that \QQV will be
|
\li In the \uicontrol {Main QML file}, select the file that \QQV will be
|
||||||
|
@@ -37,7 +37,7 @@
|
|||||||
name and one or several comments. The comments have a title, author, and
|
name and one or several comments. The comments have a title, author, and
|
||||||
comment text.
|
comment text.
|
||||||
|
|
||||||
\image qtquick-annotations.png "Annotations displayed in the Form Editor tab"
|
\image qtquick-annotations.png "Annotations displayed in the Form Editor view"
|
||||||
|
|
||||||
Annotations are saved in the end of QML files when you save the file. They
|
Annotations are saved in the end of QML files when you save the file. They
|
||||||
do not affect the QML performance in any way.
|
do not affect the QML performance in any way.
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\previouspage quick-components.html
|
\previouspage qtquick-form-editor.html
|
||||||
\page quick-buttons.html
|
\page quick-buttons.html
|
||||||
\nextpage quick-scalable-image.html
|
\nextpage quick-scalable-image.html
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@
|
|||||||
\else
|
\else
|
||||||
\previouspage creator-using-qt-quick-designer.html
|
\previouspage creator-using-qt-quick-designer.html
|
||||||
\endif
|
\endif
|
||||||
\nextpage quick-buttons.html
|
\nextpage qtquick-form-editor.html
|
||||||
|
|
||||||
\title Creating Components
|
\title Creating Components
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
\section1 Adding Components to Designs
|
\section1 Adding Components to Designs
|
||||||
|
|
||||||
\image qmldesigner-visual-editor.png "Design mode"
|
\image studio-design-mode.png "Design mode"
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li Drag and drop components from the \uicontrol Library (2) to the
|
\li Drag and drop components from the \uicontrol Library (2) to the
|
||||||
@@ -564,11 +564,14 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
The following sections contain examples of how to create some common
|
The following sections contain more information about how to use the
|
||||||
components:
|
\uicontrol {Form Editor} to edit 2D content, as well as examples of
|
||||||
|
how to create some common components using basic QML types:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
|
\li \l{Editing 2D Content}
|
||||||
|
|
||||||
\li \l{Creating Buttons}
|
\li \l{Creating Buttons}
|
||||||
|
|
||||||
\li \l{Creating Scalable Buttons and Borders}
|
\li \l{Creating Scalable Buttons and Borders}
|
||||||
|
@@ -43,33 +43,26 @@
|
|||||||
\title Editing QML Files in Design Mode
|
\title Editing QML Files in Design Mode
|
||||||
|
|
||||||
\QC opens \l{Qt Quick UI Forms}{UI forms} (ui.qml files) in the
|
\QC opens \l{Qt Quick UI Forms}{UI forms} (ui.qml files) in the
|
||||||
\uicontrol {Form Editor} tab in the Design mode. It is
|
\uicontrol {Form Editor} view in the Design mode. It is
|
||||||
recommended that you use UI forms for components that you want to
|
recommended that you use UI forms for components that you want to
|
||||||
edit in the Design mode.
|
edit in the Design mode.
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\image qmldesigner-visual-editor.png "Visual editor"
|
|
||||||
\else
|
|
||||||
\image studio-design-mode.png "Design mode"
|
\image studio-design-mode.png "Design mode"
|
||||||
\endif
|
|
||||||
|
|
||||||
To manage your project in the Design mode:
|
The Design mode contains different views for designing UIs. To open the
|
||||||
|
following views, select \uicontrol Window > \uicontrol Views:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li \uicontrol {Form Editor} (1) provides a canvas for designing 2D UIs.
|
||||||
|
For more information, see \l {Editing 2D Content}.
|
||||||
|
|
||||||
\li \uicontrol Canvas (1) is the working area where you create QML
|
\li \uicontrol {3D Editor} provides an editor for files you created
|
||||||
components and design applications. In the \uicontrol {Form Editor}
|
using 3D graphics applications and stored in one of the supported
|
||||||
tab, you can use a visual editor to design UIs, and in the
|
formats. For more information, see \l{Editing 3D Scenes}.
|
||||||
\uicontrol {Text Editor} tab, you can use a code editor to edit the
|
|
||||||
QML code generated by the visual editor.
|
|
||||||
|
|
||||||
\li Use the sidebars to select QML types to use in the project, to
|
\li \uicontrol {Text Editor} provides a code editor for editing the QML
|
||||||
specify properties for them, and to
|
code generated by the visual editors. For more information, see
|
||||||
view them in a tree structure, as well as to create connections
|
\l {Working in Edit Mode}.
|
||||||
and browse projects and files. You can select the content of the
|
|
||||||
sidebars in the sidebar menu:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li \uicontrol {Library} (2) displays the building blocks that you
|
\li \uicontrol {Library} (2) displays the building blocks that you
|
||||||
can use to design applications: predefined QML types, your own
|
can use to design applications: predefined QML types, your own
|
||||||
@@ -82,7 +75,7 @@
|
|||||||
\l {Managing Item Hierarchy}.
|
\l {Managing Item Hierarchy}.
|
||||||
|
|
||||||
\li \uicontrol {Properties} (4) organizes the properties of the
|
\li \uicontrol {Properties} (4) organizes the properties of the
|
||||||
selected item. You can change the properties also in the
|
selected component. You can change the properties also in the
|
||||||
\uicontrol {Text Editor}. For more information, see
|
\uicontrol {Text Editor}. For more information, see
|
||||||
\l {Specifying Item Properties}.
|
\l {Specifying Item Properties}.
|
||||||
|
|
||||||
@@ -100,93 +93,18 @@
|
|||||||
current session. For more information, see
|
current session. For more information, see
|
||||||
\l{Viewing Project Files}.
|
\l{Viewing Project Files}.
|
||||||
|
|
||||||
\endlist
|
\li \uicontrol {States} (6) displays the different states of the item.
|
||||||
|
|
||||||
\li \uicontrol {States} view (6) displays the different states of the item.
|
|
||||||
QML states typically describe user interface configurations, such as
|
QML states typically describe user interface configurations, such as
|
||||||
the UI controls, their properties and behavior and the available
|
the UI controls, their properties and behavior and the available
|
||||||
actions. For more information, see \l{Adding States}.
|
actions. For more information, see \l{Adding States}.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\li \uicontrol Timeline (7) provides a timeline and keyframe based
|
||||||
\li \uicontrol Timeline view (7) provides a timeline and keyframe based
|
|
||||||
editor that enables you to animate the properties of UI components.
|
editor that enables you to animate the properties of UI components.
|
||||||
\endif
|
For more information, see \l{Creating Animations}.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Snapping to Parent and Sibling Items
|
You can move the views anywhere on the screen and save them as
|
||||||
|
\e workspaces, as instructed in \l {Managing Workspaces}.
|
||||||
You design applications on the canvas by placing items on it.
|
|
||||||
|
|
||||||
When you are working on a design, you can use snapping to align
|
|
||||||
items on the canvas. Click the \inlineimage snapping.png
|
|
||||||
button to have the items snap to their parent or sibling items. Snapping
|
|
||||||
lines automatically appear to help you position the items.
|
|
||||||
Click the \inlineimage snapping_and_anchoring.png
|
|
||||||
button to anchor the item to the items that you snap to.
|
|
||||||
|
|
||||||
Choose \uicontrol Tools > \uicontrol Options > \uicontrol {Qt Quick} >
|
|
||||||
\uicontrol {\QMLD} to specify settings for snapping. In the
|
|
||||||
\uicontrol {Parent item padding} field, specify the
|
|
||||||
distance in pixels between the parent item and the snapping lines. In the
|
|
||||||
\uicontrol {Sibling item spacing} field, specify the distance in pixels between
|
|
||||||
sibling items and the snapping lines.
|
|
||||||
|
|
||||||
The following image shows the snapping lines (1) when
|
|
||||||
\uicontrol {Parent item padding} is set to 5 pixels.
|
|
||||||
|
|
||||||
\image qmldesigner-snap-margins.png "Snapping lines on canvas"
|
|
||||||
|
|
||||||
\section1 Hiding Item Boundaries
|
|
||||||
|
|
||||||
The Design mode displays the boundaries of items on the canvas. To hide
|
|
||||||
the boundaries, click the \inlineimage boundingrect.png
|
|
||||||
button.
|
|
||||||
|
|
||||||
\section1 Selecting Items
|
|
||||||
|
|
||||||
When you point the mouse to overlapping items, the frontmost item is
|
|
||||||
selected by default. However, items that do not have any content, such as
|
|
||||||
the mouse area, are typically located in front of items that do have
|
|
||||||
content, such as rectangles or border images. To select items with content
|
|
||||||
by default, click the
|
|
||||||
\inlineimage qmldesigner-only-select-items-with-content.png
|
|
||||||
button.
|
|
||||||
|
|
||||||
\section1 Previewing Component Size
|
|
||||||
|
|
||||||
The width and height of the root item in a QML file determine the size of
|
|
||||||
the component. You can reuse components, such as buttons, in different
|
|
||||||
sizes in other QML files and design UIs for use with different device
|
|
||||||
profiles, screen resolution, or screen orientation. The component size
|
|
||||||
might also be zero (0,0) if its final size is determined by property
|
|
||||||
bindings.
|
|
||||||
|
|
||||||
To experiment with different component sizes, enter values in the
|
|
||||||
\uicontrol {Override Width} and \uicontrol {Override Height} fields (1) on
|
|
||||||
the canvas toolbar. The changes are displayed on the canvas (2)
|
|
||||||
and in the \uicontrol States view (3), but the property
|
|
||||||
values are not changed permanently in the QML file. You can permanently
|
|
||||||
change the property values in the \uicontrol Properties view (4).
|
|
||||||
|
|
||||||
\image qmldesigner-preview-size.png "Canvas width and height"
|
|
||||||
|
|
||||||
\section1 Specifying Canvas Size
|
|
||||||
|
|
||||||
To change the canvas size, select \uicontrol Tools > \uicontrol Options >
|
|
||||||
\uicontrol {Qt Quick} > \uicontrol {\QMLD} and
|
|
||||||
specify the canvas width and height in the \uicontrol Canvas group.
|
|
||||||
|
|
||||||
\section1 Refreshing the Canvas
|
|
||||||
|
|
||||||
When you open QML files in the Design mode, the items in the file are drawn
|
|
||||||
on the canvas. When you edit the item properties, the QML file and
|
|
||||||
the image on the canvas might get out of sync. For example, when you change
|
|
||||||
the position of an item within a column or a row, the new position might
|
|
||||||
not be displayed correctly on the canvas.
|
|
||||||
|
|
||||||
To refresh the image on the canvas, press \key R or select the
|
|
||||||
\inlineimage reset.png
|
|
||||||
(\uicontrol {Reset View}) button.
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
110
doc/qtcreator/src/qtquick/qtquick-form-editor.qdoc
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 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.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage index.html
|
||||||
|
\page qtquick-form-editor.html
|
||||||
|
\previouspage quick-components.html
|
||||||
|
\nextpage quick-buttons.html
|
||||||
|
|
||||||
|
\title Editing 2D Content
|
||||||
|
|
||||||
|
You design applications in the \uicontrol {Form Editor} by placing items
|
||||||
|
into it.
|
||||||
|
|
||||||
|
\section1 Snapping to Parent and Sibling Items
|
||||||
|
|
||||||
|
When you are working on a design, you can use snapping to align
|
||||||
|
items in the \uicontrol {Form Editor}. Click the \inlineimage snapping.png
|
||||||
|
button to have the items snap to their parent or sibling items. Snapping
|
||||||
|
lines automatically appear to help you position the items.
|
||||||
|
Click the \inlineimage snapping_and_anchoring.png
|
||||||
|
button to anchor the item to the items that you snap to.
|
||||||
|
|
||||||
|
Choose \uicontrol Tools > \uicontrol Options > \uicontrol {Qt Quick} >
|
||||||
|
\uicontrol {\QMLD} to specify settings for snapping. In the
|
||||||
|
\uicontrol {Parent item padding} field, specify the
|
||||||
|
distance in pixels between the parent item and the snapping lines. In the
|
||||||
|
\uicontrol {Sibling item spacing} field, specify the distance in pixels between
|
||||||
|
sibling items and the snapping lines.
|
||||||
|
|
||||||
|
The following image shows the snapping lines (1) when
|
||||||
|
\uicontrol {Parent item padding} is set to 5 pixels.
|
||||||
|
|
||||||
|
\image qmldesigner-snap-margins.png "Snapping lines on canvas"
|
||||||
|
|
||||||
|
\section1 Hiding Item Boundaries
|
||||||
|
|
||||||
|
The \uicontrol {Form Editor} displays the boundaries of items.
|
||||||
|
To hide them, select the \inlineimage boundingrect.png
|
||||||
|
button.
|
||||||
|
|
||||||
|
\section1 Selecting Items
|
||||||
|
|
||||||
|
When you point the mouse to overlapping items, the frontmost item is
|
||||||
|
selected by default. However, items that do not have any content, such as
|
||||||
|
the mouse area, are typically located in front of items that do have
|
||||||
|
content, such as rectangles or border images. To select items with content
|
||||||
|
by default, click the
|
||||||
|
\inlineimage qmldesigner-only-select-items-with-content.png
|
||||||
|
button.
|
||||||
|
|
||||||
|
\section1 Previewing Component Size
|
||||||
|
|
||||||
|
The width and height of the root item in a QML file determine the size of
|
||||||
|
the component. You can reuse components, such as buttons, in different
|
||||||
|
sizes in other QML files and design UIs for use with different device
|
||||||
|
profiles, screen resolution, or screen orientation. The component size
|
||||||
|
might also be zero (0,0) if its final size is determined by property
|
||||||
|
bindings.
|
||||||
|
|
||||||
|
To experiment with different component sizes, enter values in the
|
||||||
|
\uicontrol {Override Width} and \uicontrol {Override Height} fields (1) on
|
||||||
|
the canvas toolbar. The changes are displayed in the \uicontrol {Form Editor}
|
||||||
|
(2) and in the \uicontrol States view (3), but the property
|
||||||
|
values are not changed permanently in the QML file. You can permanently
|
||||||
|
change the property values in the \uicontrol Properties view (4).
|
||||||
|
|
||||||
|
\image qmldesigner-preview-size.png "Canvas width and height"
|
||||||
|
|
||||||
|
\section1 Specifying Canvas Size
|
||||||
|
|
||||||
|
To change the canvas size, select \uicontrol Tools > \uicontrol Options >
|
||||||
|
\uicontrol {Qt Quick} > \uicontrol {\QMLD} and
|
||||||
|
specify the canvas width and height in the \uicontrol Canvas group.
|
||||||
|
|
||||||
|
\section1 Refreshing the Form Editor Contents
|
||||||
|
|
||||||
|
When you open QML files in the Design mode, the items in the file are drawn
|
||||||
|
in the \uicontrol {Form Editor}. When you edit the item properties, the QML
|
||||||
|
file and the contents of the editor might get out of sync. For example, when
|
||||||
|
you change the position of an item within a column or a row, the new
|
||||||
|
position might not be displayed correctly in the \uicontrol {Form Editor}.
|
||||||
|
|
||||||
|
To refresh the contents of the \uicontrol {Form Editor}, press \key R or
|
||||||
|
select the \inlineimage reset.png
|
||||||
|
(\uicontrol {Reset View}) button.
|
||||||
|
|
||||||
|
*/
|
@@ -47,8 +47,7 @@
|
|||||||
\endif
|
\endif
|
||||||
|
|
||||||
To preview any QML file that belongs to the project, right-click the project
|
To preview any QML file that belongs to the project, right-click the project
|
||||||
name in the \uicontrol Project tab in the \uicontrol Navigator, and select
|
name in the \uicontrol Projects view, and select \uicontrol {Preview file}.
|
||||||
\uicontrol {Preview file}.
|
|
||||||
|
|
||||||
To preview the whole UI, select \uicontrol {Show Live Preview}
|
To preview the whole UI, select \uicontrol {Show Live Preview}
|
||||||
when viewing the main QML UI file of the project.
|
when viewing the main QML UI file of the project.
|
||||||
|
@@ -326,6 +326,10 @@
|
|||||||
\uicontrol {Insert Keyframe} to add a keyframe.
|
\uicontrol {Insert Keyframe} to add a keyframe.
|
||||||
\li Select keyframes to display the easing curves attached to them.
|
\li Select keyframes to display the easing curves attached to them.
|
||||||
To select multiple keyframes, press and hold \key Ctrl.
|
To select multiple keyframes, press and hold \key Ctrl.
|
||||||
|
\li To lock an easing curve, hover the mouse over the keyframe in the
|
||||||
|
list, and then select the lock icon.
|
||||||
|
\li To pin an easing curve, hover the mouse over the keyframe in the
|
||||||
|
list, and then select the pin icon.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Your changes are automatically saved when you close the editor.
|
Your changes are automatically saved when you close the editor.
|
||||||
|
@@ -96,18 +96,38 @@
|
|||||||
|
|
||||||
To display the versioning history of a file, select \uicontrol{Log of}.
|
To display the versioning history of a file, select \uicontrol{Log of}.
|
||||||
The log output contains the date, the commit message, and a commit
|
The log output contains the date, the commit message, and a commit
|
||||||
identifier. Click on the commit identifier to display a description
|
identifier. Click on the commit identifier to view commit details.
|
||||||
of the change including the diff in the \uicontrol {Git Show} view.
|
|
||||||
|
|
||||||
\image qtcreator-vcs-show.png
|
\image qtcreator-git-log.png "Commit details in Git log"
|
||||||
|
|
||||||
Right-clicking on a commit identifier brings up a context menu that lets
|
Right-clicking on a commit identifier brings up a context menu that lets
|
||||||
you apply actions on the commit, such as view annotations or cherry-pick
|
you apply actions on the commit, such as view annotations or cherry-pick
|
||||||
or revert a commit.
|
or revert a commit. For more information, see \l{Working with Branches}.
|
||||||
|
|
||||||
|
To toggle the diff view, select \uicontrol Diff. To use the patience
|
||||||
|
algorithm for calculating the differences, select \uicontrol Patience.
|
||||||
|
To only show text changes, select \uicontrol {Ignore Whitespace}.
|
||||||
|
|
||||||
|
To filter log entries by the text in the commit message or by strings that
|
||||||
|
were added or removed, select \uicontrol Filter.
|
||||||
|
|
||||||
|
To follow only the first parent on merge commits, select
|
||||||
|
\uicontrol {First Parent}.
|
||||||
|
|
||||||
|
To toggle between textual and visual representation of the log, select
|
||||||
|
\uicontrol Graph.
|
||||||
|
|
||||||
|
To show log also for previous names of the file, select \uicontrol Follow.
|
||||||
|
|
||||||
Select \inlineimage reload_gray.png
|
Select \inlineimage reload_gray.png
|
||||||
(\uicontrol Reload) to rescan the files.
|
(\uicontrol Reload) to rescan the files.
|
||||||
|
|
||||||
|
To display a description of the change including the diff in the
|
||||||
|
\uicontrol {Git Show} view, select \uicontrol {Describe Change} in the
|
||||||
|
context menu.
|
||||||
|
|
||||||
|
\image qtcreator-vcs-show.png "Commit description in Git show"
|
||||||
|
|
||||||
\section2 Viewing Annotations
|
\section2 Viewing Annotations
|
||||||
|
|
||||||
To view annotations, select \uicontrol{Blame}. The view displays the lines
|
To view annotations, select \uicontrol{Blame}. The view displays the lines
|
||||||
@@ -174,7 +194,9 @@
|
|||||||
\section2 Viewing Git Status
|
\section2 Viewing Git Status
|
||||||
|
|
||||||
To view the status of the repository in the \uicontrol {Version Control}
|
To view the status of the repository in the \uicontrol {Version Control}
|
||||||
output view, select \uicontrol Status.
|
output pane, select \uicontrol Status. The context menu contains additional
|
||||||
|
actions, such as selecting and clearing all entries in the pane, copying
|
||||||
|
text, and opening files.
|
||||||
|
|
||||||
\section2 Committing Changes to Git
|
\section2 Committing Changes to Git
|
||||||
|
|
||||||
@@ -226,6 +248,13 @@
|
|||||||
\uicontrol {Interactive Rebase}. You can reorder or discard commits, squash
|
\uicontrol {Interactive Rebase}. You can reorder or discard commits, squash
|
||||||
them into a single commit, or edit the commit messages.
|
them into a single commit, or edit the commit messages.
|
||||||
|
|
||||||
|
If you already pushed the local changes to a remote, \QC refuses
|
||||||
|
the interactive rebase because the local commits are missing. To
|
||||||
|
start the interactive rebase from the change log, select
|
||||||
|
\uicontrol Branches > \uicontrol Log. Select the change, and then
|
||||||
|
select > \uicontrol {Interactive Rebase from Change} in the context
|
||||||
|
menu.
|
||||||
|
|
||||||
\section2 Working with Branches
|
\section2 Working with Branches
|
||||||
|
|
||||||
To work with Git branches, select \uicontrol {Branches}. The checked out
|
To work with Git branches, select \uicontrol {Branches}. The checked out
|
||||||
@@ -239,6 +268,10 @@
|
|||||||
(\uicontrol {Filter Tree}), and then select
|
(\uicontrol {Filter Tree}), and then select
|
||||||
\uicontrol {Include Old Entries} and \uicontrol {Include Tags}.
|
\uicontrol {Include Old Entries} and \uicontrol {Include Tags}.
|
||||||
|
|
||||||
|
To add a tag to a change in the change log, select \uicontrol Branches >
|
||||||
|
\uicontrol Log. Select the change, and then select > \uicontrol {Add Tag
|
||||||
|
for Change} in the context menu.
|
||||||
|
|
||||||
If you checked out a specific commit, the list of branches displays a
|
If you checked out a specific commit, the list of branches displays a
|
||||||
\e {Detached HEAD} entry.
|
\e {Detached HEAD} entry.
|
||||||
|
|
||||||
@@ -422,6 +455,8 @@
|
|||||||
to perform a rebase operation while pulling.
|
to perform a rebase operation while pulling.
|
||||||
|
|
||||||
To push committed changes to the remote repository, select \uicontrol Push.
|
To push committed changes to the remote repository, select \uicontrol Push.
|
||||||
|
If the local branch does not have an upstream branch in the remote
|
||||||
|
repository, \QC prompts you to create it and set it as upstream.
|
||||||
|
|
||||||
\section2 Managing Remote Repositories
|
\section2 Managing Remote Repositories
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@
|
|||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||||
\uicontrol Application > \uicontrol {Qt Widgets Application} >
|
\uicontrol Application (Qt) > \uicontrol {Qt Widgets Application} >
|
||||||
\uicontrol Choose.
|
\uicontrol Choose.
|
||||||
|
|
||||||
\image qtcreator-new-qt-gui-application.png "New File or Project dialog"
|
\image qtcreator-new-qt-gui-application.png "New File or Project dialog"
|
||||||
@@ -61,20 +61,16 @@
|
|||||||
\li In the \uicontrol{Name} field, type \b {TextFinder}.
|
\li In the \uicontrol{Name} field, type \b {TextFinder}.
|
||||||
|
|
||||||
\li In the \uicontrol {Create in} field, enter the path for the project files.
|
\li In the \uicontrol {Create in} field, enter the path for the project files.
|
||||||
For example, \c {C:\Qt\examples}, and then click \uicontrol{Next} (on
|
For example, \c {C:\Qt\examples}, and then select \uicontrol{Next} (on
|
||||||
Windows and Linux) or \uicontrol Continue (on \macos).
|
Windows and Linux) or \uicontrol Continue (on \macos).
|
||||||
|
|
||||||
The \uicontrol {Kit Selection} dialog opens.
|
The \uicontrol {Define Build System} dialog opens.
|
||||||
|
|
||||||
\image qtcreator-new-project-qt-versions-qt-gui.png "Kit Selection dialog"
|
\image qtcreator-new-project-build-system-qt-gui.png "Define Build System dialog"
|
||||||
|
|
||||||
\li Select build and run \l{glossary-buildandrun-kit}{kits} for your project,
|
\li In the \uicontrol {Build system} field, select the build system to
|
||||||
and click \uicontrol Next or \uicontrol Continue.
|
use for building and running the project: \l qmake,
|
||||||
|
\l {Setting Up CMake}{CMake}, or \l {Setting Up Qbs}{Qbs}.
|
||||||
\note If only one kit is specified in \uicontrol Tools >
|
|
||||||
\uicontrol Options > \uicontrol Kits (on Windows and Linux) or in
|
|
||||||
\uicontrol {\QC} > \uicontrol Preferences > \uicontrol Kits
|
|
||||||
(on \macos), this dialog is skipped.
|
|
||||||
|
|
||||||
The \uicontrol{Class Information} dialog opens.
|
The \uicontrol{Class Information} dialog opens.
|
||||||
|
|
||||||
@@ -89,13 +85,20 @@
|
|||||||
\note The \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file}
|
\note The \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file}
|
||||||
fields are automatically updated to match the name of the class.
|
fields are automatically updated to match the name of the class.
|
||||||
|
|
||||||
\li Click \uicontrol Next or \uicontrol Continue.
|
The \uicontrol {Kit Selection} dialog opens.
|
||||||
|
|
||||||
|
\image qtcreator-new-project-qt-versions-qt-gui.png "Kit Selection dialog"
|
||||||
|
|
||||||
|
\li Select build and run \l{glossary-buildandrun-kit}{kits} for your project,
|
||||||
|
and select \uicontrol Next or \uicontrol Continue.
|
||||||
|
|
||||||
|
\li Select \uicontrol Next or \uicontrol Continue.
|
||||||
|
|
||||||
The \uicontrol{Project Management} dialog opens.
|
The \uicontrol{Project Management} dialog opens.
|
||||||
|
|
||||||
\image qtcreator-new-project-summary-qt-gui.png "Project Management dialog"
|
\image qtcreator-new-project-summary-qt-gui.png "Project Management dialog"
|
||||||
|
|
||||||
\li Review the project settings, and click \uicontrol{Finish} (on Windows and
|
\li Review the project settings, and select \uicontrol{Finish} (on Windows and
|
||||||
Linux) or \uicontrol Done (on \macos) to create the project.
|
Linux) or \uicontrol Done (on \macos) to create the project.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
@@ -107,9 +110,9 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
|
\li main.cpp
|
||||||
\li textfinder.h
|
\li textfinder.h
|
||||||
\li textfinder.cpp
|
\li textfinder.cpp
|
||||||
\li main.cpp
|
|
||||||
\li textfinder.ui
|
\li textfinder.ui
|
||||||
\li textfinder.pro
|
\li textfinder.pro
|
||||||
|
|
||||||
@@ -150,7 +153,7 @@
|
|||||||
\uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing
|
\uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing
|
||||||
the word \b label.
|
the word \b label.
|
||||||
|
|
||||||
\image qtcreator-texfinder-filter.png "Filter field"
|
\image qtcreator-textfinder-filter.png "Filter field"
|
||||||
|
|
||||||
\li Double-click the \uicontrol{Label} widget and enter the text
|
\li Double-click the \uicontrol{Label} widget and enter the text
|
||||||
\b{Keyword}.
|
\b{Keyword}.
|
||||||
@@ -164,23 +167,23 @@
|
|||||||
\image qtcreator-textfinder-objectname.png "Changing object names"
|
\image qtcreator-textfinder-objectname.png "Changing object names"
|
||||||
|
|
||||||
\li Press \key {Ctrl+A} (or \key {Cmd+A}) to select the widgets and
|
\li Press \key {Ctrl+A} (or \key {Cmd+A}) to select the widgets and
|
||||||
click \uicontrol{Lay out Horizontally} (or press \uicontrol{Ctrl+H} on Linux or
|
select \uicontrol{Lay out Horizontally} (or press \key {Ctrl+H} on Linux or
|
||||||
Windows or \key {Ctrl+Shift+H} on \macos) to apply a horizontal
|
Windows or \key {Ctrl+Shift+H} on \macos) to apply a horizontal
|
||||||
layout (QHBoxLayout).
|
layout (QHBoxLayout).
|
||||||
|
|
||||||
\image qtcreator-texfinder-ui-horizontal-layout.png "Applying horizontal layout"
|
\image qtcreator-textfinder-ui-horizontal-layout.png "Applying horizontal layout"
|
||||||
|
|
||||||
\li Drag and drop a \uicontrol{Text Edit} widget (QTextEdit) to the form.
|
\li Drag and drop a \uicontrol{Text Edit} widget (QTextEdit) to the form.
|
||||||
|
|
||||||
\li Select the screen area and click \uicontrol{Lay out Vertically} (or press
|
\li Select the screen area, and then select \uicontrol{Lay out Vertically}
|
||||||
\uicontrol{Ctrl+L}) to apply a vertical layout (QVBoxLayout).
|
(or press \key {Ctrl+L}) to apply a vertical layout (QVBoxLayout).
|
||||||
|
|
||||||
\image qtcreator-textfinder-ui.png "Text Finder UI"
|
\image qtcreator-textfinder-ui.png "Text Finder UI"
|
||||||
|
|
||||||
Applying the horizontal and vertical layouts ensures that the
|
Applying the horizontal and vertical layouts ensures that the
|
||||||
application UI scales to different screen sizes.
|
application UI scales to different screen sizes.
|
||||||
|
|
||||||
\li To call a find function when users press the \uicontrol Find button, you
|
\li To call a find function when users select the \uicontrol Find button, you
|
||||||
use the Qt signals and slots mechanism. A signal is emitted when a
|
use the Qt signals and slots mechanism. A signal is emitted when a
|
||||||
particular event occurs and a slot is a function that is called in
|
particular event occurs and a slot is a function that is called in
|
||||||
response to a particular signal. Qt widgets have predefined signals
|
response to a particular signal. Qt widgets have predefined signals
|
||||||
@@ -201,7 +204,7 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\li Press \uicontrol{Ctrl+S} (or \key {Cmd+S}) to save your changes.
|
\li Press \key {Ctrl+S} (or \key {Cmd+S}) to save your changes.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -295,7 +298,7 @@
|
|||||||
\li In the \uicontrol{Name} field, enter \b{textfinder}.
|
\li In the \uicontrol{Name} field, enter \b{textfinder}.
|
||||||
|
|
||||||
\li In the \uicontrol{Path} field, enter \c{C:\Qt\examples\TextFinder},
|
\li In the \uicontrol{Path} field, enter \c{C:\Qt\examples\TextFinder},
|
||||||
and click \uicontrol Next or \uicontrol Continue.
|
and select \uicontrol Next or \uicontrol Continue.
|
||||||
|
|
||||||
The \uicontrol{Project Management} dialog opens.
|
The \uicontrol{Project Management} dialog opens.
|
||||||
|
|
||||||
@@ -303,8 +306,8 @@
|
|||||||
|
|
||||||
|
|
||||||
\li In the \uicontrol{Add to project} field, select \b{TextFinder.pro}
|
\li In the \uicontrol{Add to project} field, select \b{TextFinder.pro}
|
||||||
and click \uicontrol{Finish} or \uicontrol Done to open the file in the code
|
and select \uicontrol{Finish} or \uicontrol Done to open the file
|
||||||
editor.
|
in the code editor.
|
||||||
|
|
||||||
\li Select \uicontrol Add > \uicontrol {Add Prefix}.
|
\li Select \uicontrol Add > \uicontrol {Add Prefix}.
|
||||||
|
|
||||||
@@ -320,7 +323,7 @@
|
|||||||
|
|
||||||
\section1 Compiling and Running Your Program
|
\section1 Compiling and Running Your Program
|
||||||
|
|
||||||
Now that you have all the necessary files, click the
|
Now that you have all the necessary files, select the
|
||||||
\inlineimage run_small.png
|
\inlineimage run_small.png
|
||||||
button to compile and run your program.
|
button to compile and run your program.
|
||||||
|
|
||||||
|
BIN
doc/qtcreatordev/images/actionmanager.png
Normal file
After Width: | Height: | Size: 10 KiB |
854
doc/qtcreatordev/images/actionmanager.qmodel
Normal file
@@ -0,0 +1,854 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<qmt>
|
||||||
|
<project>
|
||||||
|
<uid>{f7c67e69-57c5-4eb1-9303-f12bb2ae0a23}</uid>
|
||||||
|
<root-package>
|
||||||
|
<instance>
|
||||||
|
<MPackage>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{9a360a3d-a5ff-4fa0-9a86-540d2cbdfa28}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>actionmanager</name>
|
||||||
|
<children>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{6f6e0572-b8cc-4d97-95c5-edae83d0a3d2}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MCanvasDiagram">
|
||||||
|
<MCanvasDiagram>
|
||||||
|
<base-MDiagram>
|
||||||
|
<MDiagram>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{6f6e0572-b8cc-4d97-95c5-edae83d0a3d2}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>actionmanager</name>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
<elements>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<instance type="DItem">
|
||||||
|
<DItem>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{0a2e2d40-ad38-4b91-b9c1-6af2e3d2cf95}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</object>
|
||||||
|
<name>ActionManager</name>
|
||||||
|
<pos>x:300;y:90</pos>
|
||||||
|
<rect>x:-50;y:-15;w:100;h:30</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
<visual-role2>1</visual-role2>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<shape-editable>false</shape-editable>
|
||||||
|
</DItem>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DItem">
|
||||||
|
<DItem>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{d918082a-dd32-48b8-bdcb-21ade3c1d067}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{a3950ef4-9fd9-466f-a575-dc75790749c3}</object>
|
||||||
|
<name>QAction</name>
|
||||||
|
<pos>x:125;y:340</pos>
|
||||||
|
<rect>x:-30;y:-15;w:60;h:30</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<shape-editable>false</shape-editable>
|
||||||
|
</DItem>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{d197d1e0-23ef-4041-845f-27c65fe11b70}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<text>Context</text>
|
||||||
|
<pos>x:125;y:335</pos>
|
||||||
|
<rect>x:-50;y:-40;w:100;h:80</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{613641ea-8fec-4b44-890b-8c6ea42eb9eb}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<text>Plugin</text>
|
||||||
|
<pos>x:125;y:330</pos>
|
||||||
|
<rect>x:-65;y:-70;w:130;h:140</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DItem">
|
||||||
|
<DItem>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{c9758c28-e527-4f1b-b911-9c4f7571571c}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{ac06f227-7618-422e-a87e-5913950c91d7}</object>
|
||||||
|
<name>QAction</name>
|
||||||
|
<pos>x:275;y:340</pos>
|
||||||
|
<rect>x:-30;y:-15;w:60;h:30</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<shape-editable>false</shape-editable>
|
||||||
|
</DItem>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DItem">
|
||||||
|
<DItem>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{d87082a8-6b2b-404f-abd3-9082585166f4}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{0cc14318-53df-4193-8aeb-0d29d4cd1561}</object>
|
||||||
|
<name>QAction</name>
|
||||||
|
<pos>x:405;y:340</pos>
|
||||||
|
<rect>x:-30;y:-15;w:60;h:30</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<shape-editable>false</shape-editable>
|
||||||
|
</DItem>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{168c5e3d-54bc-412c-9cb1-9b5481100f2b}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<text>Context</text>
|
||||||
|
<pos>x:275;y:335</pos>
|
||||||
|
<rect>x:-50;y:-40;w:100;h:80</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{3447fe60-8ac5-4fe9-b518-80daba7e960a}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<text>Context</text>
|
||||||
|
<pos>x:405;y:335</pos>
|
||||||
|
<rect>x:-50;y:-40;w:100;h:80</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{fcf93e87-8ce6-43ea-ab5e-7ca651d1f429}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<text>Plugin</text>
|
||||||
|
<pos>x:340;y:335</pos>
|
||||||
|
<rect>x:-135;y:-70;w:270;h:140</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DClass">
|
||||||
|
<DClass>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{8df1e5cf-5e76-453a-ba69-0fcf31f46d4e}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{68e762c3-f1cc-479b-9700-bdb01f208340}</object>
|
||||||
|
<name>Command</name>
|
||||||
|
<pos>x:195;y:180</pos>
|
||||||
|
<rect>x:-40;y:-35;w:80;h:70</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<show-all-members>true</show-all-members>
|
||||||
|
</DClass>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DDependency">
|
||||||
|
<DDependency>
|
||||||
|
<base-DRelation>
|
||||||
|
<DRelation>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{a4401c84-57c3-4f34-a88d-f35e28239944}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{42259fbc-5917-4caf-836e-0828a032d908}</object>
|
||||||
|
<a>{0a2e2d40-ad38-4b91-b9c1-6af2e3d2cf95}</a>
|
||||||
|
<b>{8df1e5cf-5e76-453a-ba69-0fcf31f46d4e}</b>
|
||||||
|
</DRelation>
|
||||||
|
</base-DRelation>
|
||||||
|
</DDependency>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DClass">
|
||||||
|
<DClass>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{7ff85acd-0d85-4fe2-8cc9-d0511f96443c}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{39911558-001e-4d0b-9827-d1d372049e86}</object>
|
||||||
|
<name>Command</name>
|
||||||
|
<pos>x:405;y:180</pos>
|
||||||
|
<rect>x:-40;y:-35;w:80;h:70</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<show-all-members>true</show-all-members>
|
||||||
|
</DClass>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DDependency">
|
||||||
|
<DDependency>
|
||||||
|
<base-DRelation>
|
||||||
|
<DRelation>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{815d855b-8814-4ac7-8b75-17c3adb45344}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{fa3943f6-6bf7-4040-acae-d04c880fb329}</object>
|
||||||
|
<a>{0a2e2d40-ad38-4b91-b9c1-6af2e3d2cf95}</a>
|
||||||
|
<b>{7ff85acd-0d85-4fe2-8cc9-d0511f96443c}</b>
|
||||||
|
</DRelation>
|
||||||
|
</base-DRelation>
|
||||||
|
</DDependency>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DDependency">
|
||||||
|
<DDependency>
|
||||||
|
<base-DRelation>
|
||||||
|
<DRelation>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{f4567b84-e58c-4212-8d0b-c7040c00639a}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{8d18c30e-51c8-4fa2-ad22-ad6962273120}</object>
|
||||||
|
<a>{8df1e5cf-5e76-453a-ba69-0fcf31f46d4e}</a>
|
||||||
|
<b>{d918082a-dd32-48b8-bdcb-21ade3c1d067}</b>
|
||||||
|
</DRelation>
|
||||||
|
</base-DRelation>
|
||||||
|
</DDependency>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DDependency">
|
||||||
|
<DDependency>
|
||||||
|
<base-DRelation>
|
||||||
|
<DRelation>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{df1469a1-91d8-4c05-8b19-fddffbfc05d6}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{8d11e47d-b745-4bf4-b7d2-eb042c307ddf}</object>
|
||||||
|
<a>{8df1e5cf-5e76-453a-ba69-0fcf31f46d4e}</a>
|
||||||
|
<b>{c9758c28-e527-4f1b-b911-9c4f7571571c}</b>
|
||||||
|
</DRelation>
|
||||||
|
</base-DRelation>
|
||||||
|
</DDependency>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DDependency">
|
||||||
|
<DDependency>
|
||||||
|
<base-DRelation>
|
||||||
|
<DRelation>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{b6288087-3aca-4e28-988c-c11ca3def425}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{9f1e7858-c06c-4c7c-97d6-209d3c96360f}</object>
|
||||||
|
<a>{7ff85acd-0d85-4fe2-8cc9-d0511f96443c}</a>
|
||||||
|
<b>{d87082a8-6b2b-404f-abd3-9082585166f4}</b>
|
||||||
|
</DRelation>
|
||||||
|
</base-DRelation>
|
||||||
|
</DDependency>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DItem">
|
||||||
|
<DItem>
|
||||||
|
<base-DObject>
|
||||||
|
<DObject>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{ee71f328-354b-4993-8a63-8f4605285440}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<object>{158de17f-753a-4b00-8ddf-2f4432871d07}</object>
|
||||||
|
<name>Menu</name>
|
||||||
|
<pos>x:100;y:190</pos>
|
||||||
|
<rect>x:-25;y:-15;w:50;h:30</rect>
|
||||||
|
<visual-role>0</visual-role>
|
||||||
|
<visual-role2>1</visual-role2>
|
||||||
|
</DObject>
|
||||||
|
</base-DObject>
|
||||||
|
<shape-editable>false</shape-editable>
|
||||||
|
</DItem>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<instance type="DBoundary">
|
||||||
|
<DBoundary>
|
||||||
|
<base-DElement>
|
||||||
|
<DElement>
|
||||||
|
<uid>{5b8fc43d-fb36-4523-ac54-4262dc0affce}</uid>
|
||||||
|
</DElement>
|
||||||
|
</base-DElement>
|
||||||
|
<pos>x:270;y:190</pos>
|
||||||
|
<rect>x:-205;y:-20;w:410;h:40</rect>
|
||||||
|
</DBoundary>
|
||||||
|
</instance>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</elements>
|
||||||
|
<last-modified>1586427331500</last-modified>
|
||||||
|
<toolbarid>General</toolbarid>
|
||||||
|
</MDiagram>
|
||||||
|
</base-MDiagram>
|
||||||
|
</MCanvasDiagram>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>ActionManager</name>
|
||||||
|
<relations>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{d5111c81-0745-4724-8d01-8ac36994e31c}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{d5111c81-0745-4724-8d01-8ac36994e31c}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</a>
|
||||||
|
<b>{c2d3f5b7-87c5-4f67-9911-96a4a251ddd5}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{6308a511-1fd1-472d-bdc2-0bf173c6850c}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{6308a511-1fd1-472d-bdc2-0bf173c6850c}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</a>
|
||||||
|
<b>{d6694b35-bb04-4830-9713-99470b22b7d7}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{42259fbc-5917-4caf-836e-0828a032d908}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{42259fbc-5917-4caf-836e-0828a032d908}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</a>
|
||||||
|
<b>{68e762c3-f1cc-479b-9700-bdb01f208340}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{fa3943f6-6bf7-4040-acae-d04c880fb329}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{fa3943f6-6bf7-4040-acae-d04c880fb329}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{0fa7cf39-5531-4f41-9e2f-d890ef2a248d}</a>
|
||||||
|
<b>{39911558-001e-4d0b-9827-d1d372049e86}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</relations>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{c2d3f5b7-87c5-4f67-9911-96a4a251ddd5}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{c2d3f5b7-87c5-4f67-9911-96a4a251ddd5}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>Command</name>
|
||||||
|
<relations>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{e5b7a324-70ab-46b9-8d36-9f2ad6c0db57}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{e5b7a324-70ab-46b9-8d36-9f2ad6c0db57}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{c2d3f5b7-87c5-4f67-9911-96a4a251ddd5}</a>
|
||||||
|
<b>{a3950ef4-9fd9-466f-a575-dc75790749c3}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{703dd2bc-f99c-41b7-8f90-a7292645feb8}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{703dd2bc-f99c-41b7-8f90-a7292645feb8}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{c2d3f5b7-87c5-4f67-9911-96a4a251ddd5}</a>
|
||||||
|
<b>{ac06f227-7618-422e-a87e-5913950c91d7}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</relations>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{d6694b35-bb04-4830-9713-99470b22b7d7}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{d6694b35-bb04-4830-9713-99470b22b7d7}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>Command</name>
|
||||||
|
<relations>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{4dc1c5bd-a124-4961-ad65-476e66cb6efe}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{4dc1c5bd-a124-4961-ad65-476e66cb6efe}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{d6694b35-bb04-4830-9713-99470b22b7d7}</a>
|
||||||
|
<b>{0cc14318-53df-4193-8aeb-0d29d4cd1561}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</relations>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{a3950ef4-9fd9-466f-a575-dc75790749c3}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{a3950ef4-9fd9-466f-a575-dc75790749c3}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>QAction</name>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{ac06f227-7618-422e-a87e-5913950c91d7}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{ac06f227-7618-422e-a87e-5913950c91d7}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>QAction</name>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{0cc14318-53df-4193-8aeb-0d29d4cd1561}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{0cc14318-53df-4193-8aeb-0d29d4cd1561}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>QAction</name>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{68e762c3-f1cc-479b-9700-bdb01f208340}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MClass">
|
||||||
|
<MClass>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{68e762c3-f1cc-479b-9700-bdb01f208340}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>Command</name>
|
||||||
|
<relations>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{8d18c30e-51c8-4fa2-ad22-ad6962273120}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{8d18c30e-51c8-4fa2-ad22-ad6962273120}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{68e762c3-f1cc-479b-9700-bdb01f208340}</a>
|
||||||
|
<b>{a3950ef4-9fd9-466f-a575-dc75790749c3}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{8d11e47d-b745-4bf4-b7d2-eb042c307ddf}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{8d11e47d-b745-4bf4-b7d2-eb042c307ddf}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{68e762c3-f1cc-479b-9700-bdb01f208340}</a>
|
||||||
|
<b>{ac06f227-7618-422e-a87e-5913950c91d7}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</relations>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
<members>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<MClassMember>
|
||||||
|
<uid>{5d8da03d-d556-4eed-ae0d-6d306453496e}</uid>
|
||||||
|
<type>1</type>
|
||||||
|
<declaration>QAction</declaration>
|
||||||
|
</MClassMember>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</members>
|
||||||
|
</MClass>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{39911558-001e-4d0b-9827-d1d372049e86}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MClass">
|
||||||
|
<MClass>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{39911558-001e-4d0b-9827-d1d372049e86}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>Command</name>
|
||||||
|
<relations>
|
||||||
|
<handles>
|
||||||
|
<handles>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{9f1e7858-c06c-4c7c-97d6-209d3c96360f}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MDependency">
|
||||||
|
<MDependency>
|
||||||
|
<base-MRelation>
|
||||||
|
<MRelation>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{9f1e7858-c06c-4c7c-97d6-209d3c96360f}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<a>{39911558-001e-4d0b-9827-d1d372049e86}</a>
|
||||||
|
<b>{0cc14318-53df-4193-8aeb-0d29d4cd1561}</b>
|
||||||
|
</MRelation>
|
||||||
|
</base-MRelation>
|
||||||
|
</MDependency>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</relations>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
<members>
|
||||||
|
<qlist>
|
||||||
|
<item>
|
||||||
|
<MClassMember>
|
||||||
|
<uid>{2d428a77-4751-4fa7-bbb7-7f58995da129}</uid>
|
||||||
|
<type>1</type>
|
||||||
|
<declaration>QAction</declaration>
|
||||||
|
</MClassMember>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</members>
|
||||||
|
</MClass>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<handle>
|
||||||
|
<uid>{158de17f-753a-4b00-8ddf-2f4432871d07}</uid>
|
||||||
|
<target>
|
||||||
|
<instance type="MItem">
|
||||||
|
<MItem>
|
||||||
|
<base-MObject>
|
||||||
|
<MObject>
|
||||||
|
<base-MElement>
|
||||||
|
<MElement>
|
||||||
|
<uid>{158de17f-753a-4b00-8ddf-2f4432871d07}</uid>
|
||||||
|
</MElement>
|
||||||
|
</base-MElement>
|
||||||
|
<name>Menu</name>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MItem>
|
||||||
|
</instance>
|
||||||
|
</target>
|
||||||
|
</handle>
|
||||||
|
</item>
|
||||||
|
</qlist>
|
||||||
|
</handles>
|
||||||
|
</handles>
|
||||||
|
</children>
|
||||||
|
</MObject>
|
||||||
|
</base-MObject>
|
||||||
|
</MPackage>
|
||||||
|
</instance>
|
||||||
|
</root-package>
|
||||||
|
</project>
|
||||||
|
</qmt>
|
193
doc/qtcreatordev/src/actionmanager.qdoc
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 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.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page actionmanager.html
|
||||||
|
\title The Action Manager and Commands
|
||||||
|
|
||||||
|
\QC provides a central options page for managing shortcuts for actions in
|
||||||
|
\uicontrol Tools > \uicontrol Options > \uicontrol Environment >
|
||||||
|
\uicontrol Keyboard. Plugins must tell \QC about the actions they provide,
|
||||||
|
so they can appear in the options. Also some actions, like \uicontrol Edit >
|
||||||
|
\uicontrol Undo, need to be dispatched to different plugins depending on the
|
||||||
|
context which the user is currently in, for example a text editor, or
|
||||||
|
a UI design component. The Core::ActionManager and Core::Command classes
|
||||||
|
are used to manage this.
|
||||||
|
|
||||||
|
The action manager contains a list of Core::Command instances. Each command
|
||||||
|
represents an entry in the keyboard shortcut settings.
|
||||||
|
|
||||||
|
A command also manages which actual QAction is currently represented by the
|
||||||
|
command, depending on context. For this, a command has its own QAction which
|
||||||
|
is accessible via Core::Command::action(), and should be used when adding
|
||||||
|
the command to the UI like the menu and tool buttons. This QAction delegates
|
||||||
|
its \c triggered() and \c toggled() signals to the currently active QAction.
|
||||||
|
|
||||||
|
\image actionmanager.png
|
||||||
|
|
||||||
|
\section1 Command
|
||||||
|
|
||||||
|
The class Core::Command represents an action with a shortcut that can be
|
||||||
|
set by the user in the settings, and can be delegated to an actual
|
||||||
|
QAction in a plugin, depending on context.
|
||||||
|
|
||||||
|
A command is referred to by its unique ID. Plugins use the ID when
|
||||||
|
registering an action for the command in a specified context with
|
||||||
|
Core::ActionManager::registerAction(). That method returns a Core::Command
|
||||||
|
instance that is then used to further configure the action.
|
||||||
|
If multiple QActions are registered for the same command (the same ID),
|
||||||
|
they must be registered for different contexts.
|
||||||
|
The ID is also used for grouping in the options page: everything up to the
|
||||||
|
first dot in the ID is used as the category, under which to show the
|
||||||
|
command.
|
||||||
|
|
||||||
|
By default, the options page shows the text of the currently active QAction
|
||||||
|
in addition to the ID. If that does not fit the purpose well, you can set a
|
||||||
|
different display text with Core::Command::setDescription().
|
||||||
|
|
||||||
|
Use the command's Core::Command::setDefaultKeySequence() method to set the
|
||||||
|
default key sequence that is used if the user doesn't customize it.
|
||||||
|
The shortcut on the QAction that you register with
|
||||||
|
Core::ActionManager::registerAction() is never used, so do not set that.
|
||||||
|
|
||||||
|
Core::Command::action() returns the action that should be used for UI and
|
||||||
|
user interaction. Add this to menus and tool buttons. You should never
|
||||||
|
set properties like the enabled or visibility state on this QAction
|
||||||
|
directly. It is managed by the action manager and reflects the state of the
|
||||||
|
currently active QAction in some plugin.
|
||||||
|
|
||||||
|
The QAction that you registered in the action manager is for your internal
|
||||||
|
purposes. Use that to connect your logic to the QAction::triggered()
|
||||||
|
signal, and to set the enabled and visibility state.
|
||||||
|
Core::Command::action() will reflect these changes, if your QAction is
|
||||||
|
active, determined by the active context. For performance reasons the
|
||||||
|
action text, tool tip and icon are not updated by default. They are only
|
||||||
|
copied from the first QAction registered for the command. Set the
|
||||||
|
corresponding Core::Command::CommandAttribute if you need dynamic updates
|
||||||
|
of these properties.
|
||||||
|
|
||||||
|
\section1 Contexts
|
||||||
|
|
||||||
|
When plugins register a QAction for a command, they need to provide a
|
||||||
|
Core::Context. Which of the registered QActions for a command is currently
|
||||||
|
active is decided via an ordered list of current contexts.
|
||||||
|
|
||||||
|
Contexts are collected from multiple sources:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Global context. This is a context that is always active, with lowest
|
||||||
|
priority order.
|
||||||
|
\li Application focus. Instances of QWidget can be associated to a
|
||||||
|
context via Core::IContext. All contexts from the current focus
|
||||||
|
widget up the widget hierarchy are added to the current context.
|
||||||
|
\li Manually managed contexts. Contexts can be added and removed
|
||||||
|
manually via ICore::updateAdditionalContexts().
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section2 Using IContext
|
||||||
|
|
||||||
|
Core::IContext is a separate object that associates the QWidget from
|
||||||
|
Core::IContext::widget() with the context Core::IContext::context().
|
||||||
|
|
||||||
|
To associate a widget with a context, create a Core::IContext instance,
|
||||||
|
set the widget and context on it, and register it with
|
||||||
|
Core::ICore::addContextObject(). Whenever your widget is in the parent
|
||||||
|
chain of the application focus widget, the context that you specified
|
||||||
|
will be active as well.
|
||||||
|
|
||||||
|
\code
|
||||||
|
auto contextObj = new Core::IContext(this);
|
||||||
|
contextObj->setWidget(myWidget);
|
||||||
|
contextObj->setContext(myContext);
|
||||||
|
Core::ICore::addContextObject(contextObj);
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
You also have to unregister the IContext object with
|
||||||
|
Core::ICore::removeContextObject() when you do not need it anymore.
|
||||||
|
|
||||||
|
Some constructs in \QC automatically have an associated context, like
|
||||||
|
Core::IEditor and Core::IMode.
|
||||||
|
|
||||||
|
\section2 Manually Managing Contexts
|
||||||
|
|
||||||
|
If you want a context to be active or inactive independently of the
|
||||||
|
application focus, you can add and remove contexts manually with
|
||||||
|
Core::ICore::updateAdditionalContexts(), Core::ICore::addAdditionalContext()
|
||||||
|
and Core::ICore::removeAdditionalContext().
|
||||||
|
Prefer Core::ICore::updateAdditionalContexts() if you need to remove and add
|
||||||
|
contexts, to avoid overhead introduced by removing and adding contexts
|
||||||
|
in separate calls.
|
||||||
|
|
||||||
|
\section1 Registering Actions
|
||||||
|
|
||||||
|
Prefer registering actions in your plugin's
|
||||||
|
ExtensionSystem::IPlugin::initialize() method. This way any plugin depending
|
||||||
|
on your plugin has access to these actions.
|
||||||
|
|
||||||
|
\code
|
||||||
|
namespace Constants {
|
||||||
|
const char ACTION_ID[] = "Example.Action";
|
||||||
|
} // Constants
|
||||||
|
|
||||||
|
bool ExamplePlugin::initialize(const QStringList &arguments, QString *errorString)
|
||||||
|
{
|
||||||
|
// some other setup ...
|
||||||
|
|
||||||
|
QAction *action = new QAction(tr("Example Action"), this);
|
||||||
|
Core::Command *cmd = Core::ActionManager::registerAction(action, Constants::ACTION_ID,
|
||||||
|
Core::Context(Core::Constants::C_GLOBAL));
|
||||||
|
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Alt+Meta+A")));
|
||||||
|
connect(action, &QAction::triggered, this, [this] {
|
||||||
|
// do something
|
||||||
|
});
|
||||||
|
|
||||||
|
// more setup ...
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
This snippet sets up a sample action with the ID \c ACTION_ID that is always
|
||||||
|
active (specified by the context \c {Core::Constants::C_GLOBAL}), and gives
|
||||||
|
it the keyboard shortcut \c {Ctrl+Alt+Meta+A}. The \c {QAction *action}
|
||||||
|
that is registered for the global context for the action is owned by the
|
||||||
|
plugin. Connect to this QAction's triggered signal, and manage the action's
|
||||||
|
state by calling the corresponding methods on this QAction instance.
|
||||||
|
|
||||||
|
\section1 Summary
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Use Core::ActionManager::registerAction() to register your own
|
||||||
|
QAction for a command with the specified ID.
|
||||||
|
\li If multiple QActions are registered for the same command, they need
|
||||||
|
to be registered for different contexts.
|
||||||
|
\li Use Core::Command::setDefaultKeySequence(), do \e not use
|
||||||
|
QAction::setShortcut().
|
||||||
|
\li Use Core::Command::action() for user-facing purposes, such as
|
||||||
|
menus and tool buttons.
|
||||||
|
\li Use your own QAction to set properties like text and icon, and to
|
||||||
|
connect your application logic.
|
||||||
|
\endlist
|
||||||
|
*/
|
@@ -63,6 +63,7 @@
|
|||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l{The Plugin Manager, the Object Pool, and Registered Objects}
|
\li \l{The Plugin Manager, the Object Pool, and Registered Objects}
|
||||||
|
\li \l{The Action Manager and Commands}
|
||||||
\omit
|
\omit
|
||||||
\li \l{Aggregations}
|
\li \l{Aggregations}
|
||||||
\li \l{Extending and Providing Interfaces}
|
\li \l{Extending and Providing Interfaces}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Design Studio documentation.
|
** This file is part of the Qt Design Studio documentation.
|
||||||
@@ -70,6 +70,7 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{Creating Components}
|
\li \l{Creating Components}
|
||||||
\list
|
\list
|
||||||
|
\li \l{Editing 2D Content}
|
||||||
\li \l{Creating Buttons}
|
\li \l{Creating Buttons}
|
||||||
\li \l{Creating Scalable Buttons and Borders}
|
\li \l{Creating Scalable Buttons and Borders}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -109,9 +109,9 @@
|
|||||||
them in the 3D editor.
|
them in the 3D editor.
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li In the \inlineimage item_selection_selected.png
|
\li In the \inlineimage select_item.png
|
||||||
(\uicontrol {Select Item}) mode, a single item is selected.
|
(\uicontrol {Select Item}) mode, a single item is selected.
|
||||||
\li In the \inlineimage group_selection_selected.png
|
\li In the \inlineimage select_group.png
|
||||||
(\uicontrol {Select Group}) mode, the top level parent of the item
|
(\uicontrol {Select Group}) mode, the top level parent of the item
|
||||||
is selected. This enables you to move, rotate, or scale a group of
|
is selected. This enables you to move, rotate, or scale a group of
|
||||||
items.
|
items.
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
or z view axis or on the top, bottom, left, and right clip planes of the
|
or z view axis or on the top, bottom, left, and right clip planes of the
|
||||||
render camera.
|
render camera.
|
||||||
|
|
||||||
To move items, select \inlineimage move_selected.png
|
To move items, select \inlineimage move_on.png
|
||||||
or press \key W.
|
or press \key W.
|
||||||
|
|
||||||
To move items along an axis, click the axis and drag the item along the
|
To move items along an axis, click the axis and drag the item along the
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
|
|
||||||
\image studio-3d-editor-rotate.png "3D editor in rotate mode"
|
\image studio-3d-editor-rotate.png "3D editor in rotate mode"
|
||||||
|
|
||||||
To rotate items, select \inlineimage rotate_selected.png
|
To rotate items, select \inlineimage rotate_on.png
|
||||||
or press \key E.
|
or press \key E.
|
||||||
|
|
||||||
To rotate an item around an axis, select the axis and drag in the direction
|
To rotate an item around an axis, select the axis and drag in the direction
|
||||||
@@ -157,7 +157,7 @@
|
|||||||
|
|
||||||
\image studio-3d-editor-scale.png "3D editor in scale mode"
|
\image studio-3d-editor-scale.png "3D editor in scale mode"
|
||||||
|
|
||||||
To scale items, select \inlineimage scale_selected.png
|
To scale items, select \inlineimage scale_on.png
|
||||||
or press \key R.
|
or press \key R.
|
||||||
|
|
||||||
You can use the scale handles to adjust the local x, y, or z scale of an
|
You can use the scale handles to adjust the local x, y, or z scale of an
|
||||||
|
@@ -34,6 +34,7 @@ enum InformationName
|
|||||||
{
|
{
|
||||||
NoName,
|
NoName,
|
||||||
NoInformationChange = NoName,
|
NoInformationChange = NoName,
|
||||||
|
AllStates,
|
||||||
Size,
|
Size,
|
||||||
BoundingRect,
|
BoundingRect,
|
||||||
Transform,
|
Transform,
|
||||||
|
@@ -1061,6 +1061,7 @@ static QVector<InformationContainer> createInformationVector(const QList<ServerN
|
|||||||
informationVector.append(InformationContainer(instance.instanceId(), PenWidth, instance.penWidth()));
|
informationVector.append(InformationContainer(instance.instanceId(), PenWidth, instance.penWidth()));
|
||||||
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredByChildren, instance.isAnchoredByChildren()));
|
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredByChildren, instance.isAnchoredByChildren()));
|
||||||
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredBySibling, instance.isAnchoredBySibling()));
|
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredBySibling, instance.isAnchoredBySibling()));
|
||||||
|
informationVector.append(InformationContainer(instance.instanceId(), AllStates, instance.allStates()));
|
||||||
|
|
||||||
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.fill"), instance.hasAnchor("anchors.fill")));
|
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.fill"), instance.hasAnchor("anchors.fill")));
|
||||||
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.centerIn"), instance.hasAnchor("anchors.centerIn")));
|
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.centerIn"), instance.hasAnchor("anchors.centerIn")));
|
||||||
|
@@ -871,6 +871,11 @@ void ObjectNodeInstance::deactivateState()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList ObjectNodeInstance::allStates() const
|
||||||
|
{
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
void ObjectNodeInstance::populateResetHashes()
|
void ObjectNodeInstance::populateResetHashes()
|
||||||
{
|
{
|
||||||
QmlPrivateGate::registerCustomData(object());
|
QmlPrivateGate::registerCustomData(object());
|
||||||
|
@@ -148,6 +148,7 @@ public:
|
|||||||
|
|
||||||
virtual void activateState();
|
virtual void activateState();
|
||||||
virtual void deactivateState();
|
virtual void deactivateState();
|
||||||
|
virtual QStringList allStates() const;
|
||||||
|
|
||||||
void populateResetHashes();
|
void populateResetHashes();
|
||||||
bool hasValidResetBinding(const PropertyName &propertyName) const;
|
bool hasValidResetBinding(const PropertyName &propertyName) const;
|
||||||
|
@@ -232,6 +232,20 @@ QList<QQuickItem *> QuickItemNodeInstance::allItemsRecursive() const
|
|||||||
return itemList;
|
return itemList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList QuickItemNodeInstance::allStates() const
|
||||||
|
{
|
||||||
|
QStringList list;
|
||||||
|
|
||||||
|
QList<QObject*> stateList = DesignerSupport::statesForItem(quickItem());
|
||||||
|
for (QObject *state : stateList) {
|
||||||
|
QQmlProperty property(state, "name");
|
||||||
|
if (property.isValid())
|
||||||
|
list.append(property.read().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
QRectF QuickItemNodeInstance::contentItemBoundingBox() const
|
QRectF QuickItemNodeInstance::contentItemBoundingBox() const
|
||||||
{
|
{
|
||||||
if (contentItem()) {
|
if (contentItem()) {
|
||||||
@@ -611,8 +625,8 @@ void QuickItemNodeInstance::setPropertyVariant(const PropertyName &name, const Q
|
|||||||
if (ignoredProperties().contains(name))
|
if (ignoredProperties().contains(name))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (name == "state")
|
if (name == "state" && isRootNodeInstance())
|
||||||
return; // states are only set by us
|
return; // states on the root item are only set by us
|
||||||
|
|
||||||
if (name == "height") {
|
if (name == "height") {
|
||||||
m_height = value.toDouble();
|
m_height = value.toDouble();
|
||||||
@@ -649,8 +663,8 @@ void QuickItemNodeInstance::setPropertyBinding(const PropertyName &name, const Q
|
|||||||
if (ignoredProperties().contains(name))
|
if (ignoredProperties().contains(name))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (name == "state")
|
if (name == "state" && isRootNodeInstance())
|
||||||
return; // states are only set by us
|
return; // states on the root item are only set by us
|
||||||
|
|
||||||
if (name.startsWith("anchors.") && isRootNodeInstance())
|
if (name.startsWith("anchors.") && isRootNodeInstance())
|
||||||
return;
|
return;
|
||||||
|
@@ -96,6 +96,7 @@ public:
|
|||||||
void doComponentComplete() override;
|
void doComponentComplete() override;
|
||||||
|
|
||||||
QList<QQuickItem*> allItemsRecursive() const override;
|
QList<QQuickItem*> allItemsRecursive() const override;
|
||||||
|
QStringList allStates() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit QuickItemNodeInstance(QQuickItem*);
|
explicit QuickItemNodeInstance(QQuickItem*);
|
||||||
|
@@ -199,6 +199,18 @@ Internal::ObjectNodeInstance::Pointer ServerNodeInstance::createInstance(QObject
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString static getErrorString(QQmlEngine *engine, const QString &componentPath)
|
||||||
|
{
|
||||||
|
QQmlComponent component(engine, componentPath);
|
||||||
|
|
||||||
|
QObject *o = component.create(nullptr);
|
||||||
|
delete o;
|
||||||
|
QString s;
|
||||||
|
for (const QQmlError &error : component.errors())
|
||||||
|
s.append(error.toString());
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceServer,
|
ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceServer,
|
||||||
const InstanceContainer &instanceContainer,
|
const InstanceContainer &instanceContainer,
|
||||||
ComponentWrap componentWrap)
|
ComponentWrap componentWrap)
|
||||||
@@ -215,8 +227,11 @@ ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceSe
|
|||||||
nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, QLatin1String("Custom parser object could not be created."), instanceContainer.instanceId());
|
nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, QLatin1String("Custom parser object could not be created."), instanceContainer.instanceId());
|
||||||
} else if (!instanceContainer.componentPath().isEmpty()) {
|
} else if (!instanceContainer.componentPath().isEmpty()) {
|
||||||
object = Internal::ObjectNodeInstance::createComponent(instanceContainer.componentPath(), nodeInstanceServer->context());
|
object = Internal::ObjectNodeInstance::createComponent(instanceContainer.componentPath(), nodeInstanceServer->context());
|
||||||
if (object == nullptr)
|
if (object == nullptr) {
|
||||||
nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, QString("Component with path %1 could not be created.").arg(instanceContainer.componentPath()), instanceContainer.instanceId());
|
const QString errors = getErrorString(nodeInstanceServer->engine(), instanceContainer.componentPath());
|
||||||
|
const QString message = QString("Component with path %1 could not be created.\n\n").arg(instanceContainer.componentPath());
|
||||||
|
nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, message + errors, instanceContainer.instanceId());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context());
|
object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context());
|
||||||
if (object == nullptr)
|
if (object == nullptr)
|
||||||
@@ -646,6 +661,14 @@ QList<ServerNodeInstance> ServerNodeInstance::stateInstances() const
|
|||||||
return m_nodeInstance->stateInstances();
|
return m_nodeInstance->stateInstances();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList ServerNodeInstance::allStates() const
|
||||||
|
{
|
||||||
|
if (isValid())
|
||||||
|
return m_nodeInstance->allStates();
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
Internal::ObjectNodeInstance::Pointer ServerNodeInstance::internalInstance() const
|
Internal::ObjectNodeInstance::Pointer ServerNodeInstance::internalInstance() const
|
||||||
{
|
{
|
||||||
return m_nodeInstance;
|
return m_nodeInstance;
|
||||||
|