Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts: src/plugins/qmldesigner/CMakeLists.txt src/plugins/qmldesignerbase/CMakeLists.txt src/plugins/qmlprojectmanager/CMakeLists.txt Change-Id: If706ae3fe7a7d0e17036ce6285bec772d1f6127d
@@ -6,7 +6,7 @@ instructions:
|
|||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}/build/qt_temp/elfutils-release_0.175qt-linux-x86_64.7z http://master.qt.io/development_releases/prebuilt/elfutils/elfutils-release_0.175qt-linux-x86_64.7z"
|
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}/build/qt_temp/elfutils-release_0.175qt-linux-x86_64.7z https://master.qt.io/development_releases/prebuilt/elfutils/elfutils-release_0.175qt-linux-x86_64.7z"
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to download elfutils package, check logs."
|
userMessageOnFailure: "Failed to download elfutils package, check logs."
|
||||||
@@ -82,7 +82,7 @@ instructions:
|
|||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\elfutils-release_0.175qt-windows-x86_64.7z http://master.qt.io/development_releases/prebuilt/elfutils/elfutils-release_0.175qt-windows-x86_64.7z"
|
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\elfutils-release_0.175qt-windows-x86_64.7z https://master.qt.io/development_releases/prebuilt/elfutils/elfutils-release_0.175qt-windows-x86_64.7z"
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to download elfutils package, check logs."
|
userMessageOnFailure: "Failed to download elfutils package, check logs."
|
||||||
@@ -92,7 +92,7 @@ instructions:
|
|||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to extract elfutils package, check logs."
|
userMessageOnFailure: "Failed to extract elfutils package, check logs."
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\Python38-win-x64.7z http://master.qt.io/development_releases/prebuilt/python/Python38-win-x64.7z"
|
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\Python38-win-x64.7z https://master.qt.io/development_releases/prebuilt/python/Python38-win-x64.7z"
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to download python package, check logs."
|
userMessageOnFailure: "Failed to download python package, check logs."
|
||||||
@@ -141,7 +141,7 @@ instructions:
|
|||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to create folder qt_temp, check logs."
|
userMessageOnFailure: "Failed to create folder qt_temp, check logs."
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\Python38-win-x86.7z http://master.qt.io/development_releases/prebuilt/python/Python38-win-x86.7z"
|
command: "curl --fail -L --retry 5 --retry-delay 5 -o {{.AgentWorkingDir}}\\build\\qt_temp\\Python38-win-x86.7z https://master.qt.io/development_releases/prebuilt/python/Python38-win-x86.7z"
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
userMessageOnFailure: "Failed to download python package, check logs."
|
userMessageOnFailure: "Failed to download python package, check logs."
|
||||||
|
@@ -7,10 +7,10 @@ instructions:
|
|||||||
variableValue: "RelWithDebInfo"
|
variableValue: "RelWithDebInfo"
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: LLVM_BASE_URL
|
variableName: LLVM_BASE_URL
|
||||||
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.2-based
|
variableValue: https://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.2-based
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_BASE_URL
|
variableName: QTC_QT_BASE_URL
|
||||||
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.5/6.5.1-released/Qt"
|
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/archive/qt/6.5/6.5.1-released/Qt"
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_MODULES
|
variableName: QTC_QT_MODULES
|
||||||
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
|
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
|
||||||
@@ -22,7 +22,7 @@ instructions:
|
|||||||
variableValue: 10.14
|
variableValue: 10.14
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_SDKTOOL_QT_BASE_URL
|
variableName: QTC_SDKTOOL_QT_BASE_URL
|
||||||
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/5.15/5.15.2-final-released/latest/src/submodules/qtbase-everywhere-src-5.15.2"
|
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/archive/qt/5.15/5.15.2-final-released/latest/src/submodules/qtbase-everywhere-src-5.15.2"
|
||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
|
@@ -52,7 +52,7 @@ instructions:
|
|||||||
- type: ChangeDirectory
|
- type: ChangeDirectory
|
||||||
directory: "{{.BuildDir}}/tqtc-qtsdk/packaging_tools"
|
directory: "{{.BuildDir}}/tqtc-qtsdk/packaging_tools"
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "python3 -m pipenv run python -u install_qt.py --qt-path {{.BuildDir}}/qt_install_dir --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}"
|
command: "python3 -m pipenv run python -u install_qt.py --qt-path {{.BuildDir}}/qt_install_dir --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --icu7z https://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}"
|
||||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
@@ -72,7 +72,7 @@ instructions:
|
|||||||
property: host.os
|
property: host.os
|
||||||
equals_value: MacOS
|
equals_value: MacOS
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "python -m pipenv run python -u install_qt.py --qt-path {{.BuildDir}}/qt_install_dir --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --opengl32sw7z http://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z http://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z http://ci-files02-hki.intra.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}"
|
command: "python -m pipenv run python -u install_qt.py --qt-path {{.BuildDir}}/qt_install_dir --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --opengl32sw7z https://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z https://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z https://ci-files02-hki.ci.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}"
|
||||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
|
30
dist/changelog/changes-11.0.0.md
vendored
@@ -118,7 +118,7 @@ Editing
|
|||||||
* Fixed that generated functions did not have a `const` qualifier when
|
* Fixed that generated functions did not have a `const` qualifier when
|
||||||
required
|
required
|
||||||
([QTCREATORBUG-29274](https://bugreports.qt.io/browse/QTCREATORBUG-29274))
|
([QTCREATORBUG-29274](https://bugreports.qt.io/browse/QTCREATORBUG-29274))
|
||||||
* Fixed that locator showed both the declaration and the definition of symbols
|
* Fixed that the locator showed both the declaration and the definition of symbols
|
||||||
([QTCREATORBUG-13894](https://bugreports.qt.io/browse/QTCREATORBUG-13894))
|
([QTCREATORBUG-13894](https://bugreports.qt.io/browse/QTCREATORBUG-13894))
|
||||||
* Fixed the handling of C++20 keywords and concepts
|
* Fixed the handling of C++20 keywords and concepts
|
||||||
* Clangd
|
* Clangd
|
||||||
@@ -154,8 +154,9 @@ Editing
|
|||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
* Added the option to create a virtual environment (`venv`) to the Python
|
* Added the `Create Virtual Environment` option to the Python interpreter
|
||||||
interpreter selector and the wizard
|
selector on the editor toolbar and to the wizards in `File > New Project >
|
||||||
|
> Application (Qt for Python)`
|
||||||
([PYSIDE-2152](https://bugreports.qt.io/browse/PYSIDE-2152))
|
([PYSIDE-2152](https://bugreports.qt.io/browse/PYSIDE-2152))
|
||||||
* Fixed that too many progress indicators could be created
|
* Fixed that too many progress indicators could be created
|
||||||
([QTCREATORBUG-29224](https://bugreports.qt.io/browse/QTCREATORBUG-29224))
|
([QTCREATORBUG-29224](https://bugreports.qt.io/browse/QTCREATORBUG-29224))
|
||||||
@@ -167,10 +168,11 @@ Projects
|
|||||||
|
|
||||||
* Made it possible to add devices in `Preferences > Devices > Add` without going
|
* Made it possible to add devices in `Preferences > Devices > Add` without going
|
||||||
through the wizard
|
through the wizard
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-developing-b2qt.html))
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-developing-generic-linux.html))
|
||||||
* Added support for moving files to a different directory when renaming them in
|
* Added support for moving files to a different directory when renaming them in
|
||||||
the `File System` view
|
the `File System` view
|
||||||
([QTCREATORBUG-15981](https://bugreports.qt.io/browse/QTCREATORBUG-15981))
|
([QTCREATORBUG-15981](https://bugreports.qt.io/browse/QTCREATORBUG-15981))
|
||||||
|
|
||||||
([Documentation](https://doc.qt.io/qtcreator/creator-file-system-view.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-file-system-view.html))
|
||||||
|
|
||||||
### CMake
|
### CMake
|
||||||
@@ -184,10 +186,13 @@ Projects
|
|||||||
[QTCREATORBUG-28904](https://bugreports.qt.io/browse/QTCREATORBUG-28904),
|
[QTCREATORBUG-28904](https://bugreports.qt.io/browse/QTCREATORBUG-28904),
|
||||||
[QTCREATORBUG-28985](https://bugreports.qt.io/browse/QTCREATORBUG-28985),
|
[QTCREATORBUG-28985](https://bugreports.qt.io/browse/QTCREATORBUG-28985),
|
||||||
[QTCREATORBUG-29006](https://bugreports.qt.io/browse/QTCREATORBUG-29006))
|
[QTCREATORBUG-29006](https://bugreports.qt.io/browse/QTCREATORBUG-29006))
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-project-cmake.html))
|
||||||
* Added `Build > Reload CMake Presets` to reload CMake presets after making
|
* Added `Build > Reload CMake Presets` to reload CMake presets after making
|
||||||
changes to them
|
changes to them
|
||||||
* Added support for `block()` and `endblock()`
|
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-build-settings-cmake-presets.html))
|
||||||
* Fixed that CMake Presets were not visible in `Projects` view
|
* Added support for the `block()` and `endblock()` CMake commands
|
||||||
|
([CMake documentation](https://cmake.org/cmake/help/latest/command/block.html#command:block))
|
||||||
|
* Fixed that CMake Presets were not visible in the `Projects` view
|
||||||
([QTCREATORBUG-28966](https://bugreports.qt.io/browse/QTCREATORBUG-28966))
|
([QTCREATORBUG-28966](https://bugreports.qt.io/browse/QTCREATORBUG-28966))
|
||||||
* Fixed issues with detecting a configured Qt version when importing a build
|
* Fixed issues with detecting a configured Qt version when importing a build
|
||||||
([QTCREATORBUG-29075](https://bugreports.qt.io/browse/QTCREATORBUG-29075))
|
([QTCREATORBUG-29075](https://bugreports.qt.io/browse/QTCREATORBUG-29075))
|
||||||
@@ -196,6 +201,7 @@ Projects
|
|||||||
|
|
||||||
* Added an option for selecting the interpreter to the wizards in
|
* Added an option for selecting the interpreter to the wizards in
|
||||||
`File > New Project > Application (Qt for Python)`
|
`File > New Project > Application (Qt for Python)`
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-project-creating.html))
|
||||||
|
|
||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
@@ -203,6 +209,7 @@ Debugging
|
|||||||
* Improved the UI for enabling and disabling debuggers in `Projects > Run >
|
* Improved the UI for enabling and disabling debuggers in `Projects > Run >
|
||||||
Debugger settings`
|
Debugger settings`
|
||||||
([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
|
([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-debugging-qml.html))
|
||||||
* Fixed the automatic source mapping for Qt versions from an installer
|
* Fixed the automatic source mapping for Qt versions from an installer
|
||||||
([QTCREATORBUG-28950](https://bugreports.qt.io/browse/QTCREATORBUG-28950))
|
([QTCREATORBUG-28950](https://bugreports.qt.io/browse/QTCREATORBUG-28950))
|
||||||
* Fixed pretty printer for `std::string` for recent `libc++`
|
* Fixed pretty printer for `std::string` for recent `libc++`
|
||||||
@@ -210,8 +217,8 @@ Debugging
|
|||||||
|
|
||||||
### C++
|
### C++
|
||||||
|
|
||||||
* Added an option for the default number of array elements to show
|
* Added the `Default array size` option for setting the default number of array
|
||||||
(`Preferences > Debugger > Locals & Expressions > Default array size`)
|
elements to show in `Preferences > Debugger > Locals & Expressions`
|
||||||
* Fixed debugging in a terminal as the root user
|
* Fixed debugging in a terminal as the root user
|
||||||
([QTCREATORBUG-27519](https://bugreports.qt.io/browse/QTCREATORBUG-27519))
|
([QTCREATORBUG-27519](https://bugreports.qt.io/browse/QTCREATORBUG-27519))
|
||||||
* CDB
|
* CDB
|
||||||
@@ -225,11 +232,12 @@ Debugging
|
|||||||
|
|
||||||
### Qt Quick
|
### Qt Quick
|
||||||
|
|
||||||
* Improved the auto-detection if QML debugging is required
|
* Improved the auto-detection of whether QML debugging is required
|
||||||
([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
|
([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
|
||||||
* Added an option for disabling static analyzer messages to
|
* Added the `Use customized static analyzer` option for disabling static analyzer
|
||||||
`Qt Quick > QML/JS Editing`
|
messages to `Preferences > Qt Quick > QML/JS Editing`
|
||||||
([QTCREATORBUG-29095](https://bugreports.qt.io/browse/QTCREATORBUG-29095))
|
([QTCREATORBUG-29095](https://bugreports.qt.io/browse/QTCREATORBUG-29095))
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-checking-code-syntax.html))
|
||||||
|
|
||||||
Analyzer
|
Analyzer
|
||||||
--------
|
--------
|
||||||
|
@@ -70,4 +70,9 @@ macro.see = "\\sa"
|
|||||||
macro.function = "\\fn"
|
macro.function = "\\fn"
|
||||||
|
|
||||||
navigation.landingpage = "$IDE_DISPLAY_NAME Manual"
|
navigation.landingpage = "$IDE_DISPLAY_NAME Manual"
|
||||||
|
|
||||||
|
# Auto-generate navigation linking based on "All Topics":
|
||||||
|
navigation.toctitles = "All Topics"
|
||||||
|
navigation.toctitles.inclusive = false
|
||||||
|
|
||||||
buildversion = "$IDE_DISPLAY_NAME Manual $QTC_VERSION"
|
buildversion = "$IDE_DISPLAY_NAME Manual $QTC_VERSION"
|
||||||
|
BIN
doc/qtcreator/images/extraimages/images/EhJ1eV_6RH8.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
doc/qtcreator/images/extraimages/images/FTSvDmcAgPI.jpg
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
doc/qtcreator/images/extraimages/images/LnVjI0I7cKs.jpg
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
doc/qtcreator/images/extraimages/images/hOx3dod5-1A.jpg
Normal file
After Width: | Height: | Size: 2.7 KiB |
@@ -1,3 +1,7 @@
|
|||||||
{HTML.extraimages,qhp.QtCreator.extraFiles} += \
|
{HTML.extraimages,qhp.QtCreator.extraFiles} += \
|
||||||
images/commercial.png \
|
images/commercial.png \
|
||||||
images/5OiIqFTjUZI.jpg
|
images/5OiIqFTjUZI.jpg \
|
||||||
|
images/EhJ1eV_6RH8.jpg \
|
||||||
|
images/FTSvDmcAgPI.jpg \
|
||||||
|
images/hOx3dod5-1A.jpg \
|
||||||
|
images/LnVjI0I7cKs.jpg
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB |
BIN
doc/qtcreator/images/qtcreator-application-output.webp
Normal file
After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 9.9 KiB |
BIN
doc/qtcreator/images/qtcreator-compile-output.webp
Normal file
After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 13 KiB |
BIN
doc/qtcreator/images/qtcreator-debugging-helper-options.webp
Normal file
After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 6.2 KiB |
BIN
doc/qtcreator/images/qtcreator-general-messages.webp
Normal file
After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 44 KiB |
BIN
doc/qtcreator/images/qtcreator-installed-plugins.webp
Normal file
After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 5.1 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences.webp
Normal file
After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 14 KiB |
BIN
doc/qtcreator/images/qtcreator-scratch-buffer.webp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
doc/qtcreator/images/qtcreator-search-results-matches.webp
Normal file
After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 13 KiB |
BIN
doc/qtcreator/images/qtcreator-search-results.webp
Normal file
After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 19 KiB |
BIN
doc/qtcreator/images/qtcreator-to-do-entries.webp
Normal file
After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 32 KiB |
@@ -781,6 +781,10 @@
|
|||||||
the display text might do something wrong. You can step through the code and
|
the display text might do something wrong. You can step through the code and
|
||||||
examine changes to the variable to find out where the error occurs.
|
examine changes to the variable to find out where the error occurs.
|
||||||
|
|
||||||
|
The following video shows how to examine variable values:
|
||||||
|
|
||||||
|
\youtube EhJ1eV_6RH8
|
||||||
|
|
||||||
\section1 Showing Tooltips for Simple Values
|
\section1 Showing Tooltips for Simple Values
|
||||||
|
|
||||||
To display the value of a simple variable, hover the mouse pointer over its
|
To display the value of a simple variable, hover the mouse pointer over its
|
||||||
@@ -842,6 +846,11 @@
|
|||||||
extensions. It uses this deeper understanding to present objects of such
|
extensions. It uses this deeper understanding to present objects of such
|
||||||
classes in a useful way.
|
classes in a useful way.
|
||||||
|
|
||||||
|
To change the number of array elements that are
|
||||||
|
requested when expanding entries, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Debugger} >
|
||||||
|
\uicontrol {Locals & Expressions} > \uicontrol {Default array size}.
|
||||||
|
|
||||||
\section1 Stepping Through Code
|
\section1 Stepping Through Code
|
||||||
|
|
||||||
The following table summarizes the functions that you can use to step through
|
The following table summarizes the functions that you can use to step through
|
||||||
@@ -984,7 +993,7 @@
|
|||||||
> \uicontrol {Debugger} > \uicontrol {Locals & Expressions} >
|
> \uicontrol {Debugger} > \uicontrol {Locals & Expressions} >
|
||||||
\uicontrol {Use Debugging Helpers}.
|
\uicontrol {Use Debugging Helpers}.
|
||||||
|
|
||||||
\image qtcreator-debugging-helper-options.png "Locals & Expressions preferences"
|
\image qtcreator-debugging-helper-options.webp {Locals & Expressions preferences}
|
||||||
|
|
||||||
In the \uicontrol Locals view, expand the object's entry and open the slot
|
In the \uicontrol Locals view, expand the object's entry and open the slot
|
||||||
in the \e slots subitem. The view shows the objects connected to this slot
|
in the \e slots subitem. The view shows the objects connected to this slot
|
||||||
@@ -1365,7 +1374,7 @@
|
|||||||
\uicontrol Debugger > \uicontrol GDB > \uicontrol {Load system GDB pretty
|
\uicontrol Debugger > \uicontrol GDB > \uicontrol {Load system GDB pretty
|
||||||
printers}. For more information, see \l{Specifying GDB Settings}.
|
printers}. For more information, see \l{Specifying GDB Settings}.
|
||||||
|
|
||||||
\image qtcreator-gdb-options.png "GDB preferences"
|
\image qtcreator-gdb-options.png {GDB preferences}
|
||||||
|
|
||||||
\section2 Customizing Built-In Debugging Helpers
|
\section2 Customizing Built-In Debugging Helpers
|
||||||
|
|
||||||
@@ -1375,7 +1384,7 @@
|
|||||||
\uicontrol Debugger > \uicontrol {Locals & Expressions}, and enter the
|
\uicontrol Debugger > \uicontrol {Locals & Expressions}, and enter the
|
||||||
commands in the \uicontrol {Debugging Helper Customization} field.
|
commands in the \uicontrol {Debugging Helper Customization} field.
|
||||||
|
|
||||||
\image qtcreator-debugging-helper-options.png "Locals & Expressions preferences"
|
\image qtcreator-debugging-helper-options.webp {Locals & Expressions preferences}
|
||||||
|
|
||||||
If you receive error messages about receiving signals when using GDB, you
|
If you receive error messages about receiving signals when using GDB, you
|
||||||
can specify \l{https://sourceware.org/gdb/onlinedocs/gdb/Signals.html}
|
can specify \l{https://sourceware.org/gdb/onlinedocs/gdb/Signals.html}
|
||||||
@@ -1586,7 +1595,7 @@
|
|||||||
selecting \uicontrol Edit > \uicontrol Preferences > \uicontrol Debugger >
|
selecting \uicontrol Edit > \uicontrol Preferences > \uicontrol Debugger >
|
||||||
\uicontrol CDB > \uicontrol {Use Python dumper}.
|
\uicontrol CDB > \uicontrol {Use Python dumper}.
|
||||||
|
|
||||||
\image qtcreator-cdb-options.png "CDB preferences"
|
\image qtcreator-cdb-options.png {CDB preferences}
|
||||||
|
|
||||||
The following sections describe some of the widely-used Dumper classes and
|
The following sections describe some of the widely-used Dumper classes and
|
||||||
members specified in \c qtcreator\share\qtcreator\debugger\dumper.py.
|
members specified in \c qtcreator\share\qtcreator\debugger\dumper.py.
|
||||||
@@ -2036,7 +2045,7 @@
|
|||||||
> \uicontrol Preferences > \uicontrol Debugger > \uicontrol GDB >
|
> \uicontrol Preferences > \uicontrol Debugger > \uicontrol GDB >
|
||||||
\uicontrol {Use automatic symbol cache}.
|
\uicontrol {Use automatic symbol cache}.
|
||||||
|
|
||||||
\image qtcreator-gdb-options.png "GDB preferences"
|
\image qtcreator-gdb-options.png {GDB preferences}
|
||||||
|
|
||||||
\section2 Minimizing Number of Breakpoints
|
\section2 Minimizing Number of Breakpoints
|
||||||
|
|
||||||
|
@@ -16,15 +16,14 @@
|
|||||||
While Linux, \macos, and Windows hosts are supported in principle, Linux is
|
While Linux, \macos, and Windows hosts are supported in principle, Linux is
|
||||||
the recommended platform.
|
the recommended platform.
|
||||||
|
|
||||||
Currently, only CMake is supported for building applications in the Docker
|
|
||||||
container.
|
|
||||||
|
|
||||||
To build, run, and debug applications on Docker devices, you must install and
|
To build, run, and debug applications on Docker devices, you must install and
|
||||||
configure \c docker-cli on the development host. \QC automatically detects
|
configure \c docker-cli on the development host. \QC automatically detects
|
||||||
\l{Adding Kits}{build and run kit} items, such \l{Adding Debuggers}
|
\l{Adding Kits}{build and run kit} items, such \l{Adding Debuggers}
|
||||||
{debuggers} and \l{Adding Qt Versions}{Qt versions}, in the Docker container
|
{debuggers} and \l{Adding Qt Versions}{Qt versions}, in the Docker container
|
||||||
and creates kits for the devices.
|
and creates kits for the devices.
|
||||||
|
|
||||||
|
You can use CMake or qmake to build applications in the Docker container.
|
||||||
|
|
||||||
To pull images from Docker hub or other registries, use the
|
To pull images from Docker hub or other registries, use the
|
||||||
\l{https://docs.docker.com/engine/reference/commandline/pull/}{docker pull}
|
\l{https://docs.docker.com/engine/reference/commandline/pull/}{docker pull}
|
||||||
command.
|
command.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -699,6 +699,19 @@
|
|||||||
|
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
|
\section1 Enabling and Disabling Messages
|
||||||
|
|
||||||
|
To enable and disable QML and JavaScript messages, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Qt Quick} > \uicontrol {QML/JS Editing}
|
||||||
|
> \uicontrol {Use customized static analyzer}.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-qtquick-qmljs-editing.webp {QML/JS Editing tab in Qt Quick preferences}
|
||||||
|
|
||||||
|
In \uicontrol Enabled, select the messages that you want to see.
|
||||||
|
To disable messages for non-Qt Quick UI files, select them in
|
||||||
|
\uicontrol {Disable messages for non Qt Quick UI}. You cannot
|
||||||
|
enable messages just for non-Qt Quick UI files.
|
||||||
|
|
||||||
\section1 Resetting the Code Model
|
\section1 Resetting the Code Model
|
||||||
|
|
||||||
If you change the build and run kit when you have QML files open in the code
|
If you change the build and run kit when you have QML files open in the code
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
\previouspage creator-editor-functions.html
|
\previouspage creator-editor-functions.html
|
||||||
\page creator-coding-navigating.html
|
\page creator-coding-navigating.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\nextpage creator-sidebars.html
|
\nextpage creator-views.html
|
||||||
\else
|
\else
|
||||||
\nextpage creator-highlighting.html
|
\nextpage creator-highlighting.html
|
||||||
\endif
|
\endif
|
||||||
@@ -246,7 +246,12 @@
|
|||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
To view the note, move the mouse pointer over the bookmark or open the
|
To view the note, move the mouse pointer over the bookmark or open the
|
||||||
\uicontrol Bookmarks view in the \l{Working with Sidebars}{sidebar}.
|
\uicontrol Bookmarks view
|
||||||
|
\if defined(qtcreator)
|
||||||
|
in the \l{Show and hide sidebars}{sidebar}.
|
||||||
|
\else
|
||||||
|
in the \l{Managing Workspaces}{workspace}.
|
||||||
|
\endif
|
||||||
|
|
||||||
\section2 Navigating Bookmarks
|
\section2 Navigating Bookmarks
|
||||||
|
|
||||||
@@ -358,13 +363,11 @@
|
|||||||
\QC underlines semantic errors in olive in the C++ code editor. To check the
|
\QC underlines semantic errors in olive in the C++ code editor. To check the
|
||||||
correct paths for includes that are not resolved or that are resolved to the
|
correct paths for includes that are not resolved or that are resolved to the
|
||||||
wrong file, select \uicontrol {Project Parts} > \uicontrol {Header Paths}.
|
wrong file, select \uicontrol {Project Parts} > \uicontrol {Header Paths}.
|
||||||
\endif
|
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\else
|
||||||
\section1 Related Topics
|
\section1 Related Topics
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l{Working with Sidebars}
|
|
||||||
\li \l{Browsing Project Contents}
|
\li \l{Browsing Project Contents}
|
||||||
\li \l{Viewing Output}
|
\li \l{Viewing Output}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -12,6 +12,13 @@
|
|||||||
\l{https://github.com/features/copilot}{GitHub Copilot} into \QC.
|
\l{https://github.com/features/copilot}{GitHub Copilot} into \QC.
|
||||||
You can view suggestions from Copilot in the \uicontrol Edit mode.
|
You can view suggestions from Copilot in the \uicontrol Edit mode.
|
||||||
|
|
||||||
|
\note If you enable the Copilot plugin, you must agree with and abide by
|
||||||
|
the GitHub terms of use. It is your responsibility to know and accept the
|
||||||
|
requirements and parameters of using Copilot, such as ensuring you have
|
||||||
|
the rights to grant it access to your code. Also, you must understand the
|
||||||
|
implications of using it and the suggestions it produces, such as code
|
||||||
|
copyright and accuracy.
|
||||||
|
|
||||||
\section1 Requirements
|
\section1 Requirements
|
||||||
|
|
||||||
To use the Copilot plugin, you need:
|
To use the Copilot plugin, you need:
|
||||||
@@ -42,11 +49,11 @@
|
|||||||
\li Select \uicontrol Edit > \uicontrol Preferences >
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol Copilot.
|
\uicontrol Copilot.
|
||||||
\image qtcreator-preferences-copilot.webp {Copilot tab in Preferences}
|
\image qtcreator-preferences-copilot.webp {Copilot tab in Preferences}
|
||||||
|
\li Select the \uicontrol {Enable Copilot} check box to use Copilot.
|
||||||
\li Select \uicontrol {Sign In} to sign into your subscription, activate
|
\li Select \uicontrol {Sign In} to sign into your subscription, activate
|
||||||
your device, and authorize the GitHub Copilot plugin.
|
your device, and authorize the GitHub Copilot plugin.
|
||||||
|
|
||||||
The button turns into a \uicontrol {Sign Out} button.
|
The button turns into a \uicontrol {Sign Out} button.
|
||||||
\li Select the \uicontrol {Enable Copilot} check box to use Copilot.
|
|
||||||
\li In the \uicontrol {Node.js path} field, enter the full path to the
|
\li In the \uicontrol {Node.js path} field, enter the full path to the
|
||||||
Node.js executable.
|
Node.js executable.
|
||||||
\li In the \uicontrol {Path to agent.js} field, enter the path to
|
\li In the \uicontrol {Path to agent.js} field, enter the path to
|
||||||
@@ -56,7 +63,7 @@
|
|||||||
make changes.
|
make changes.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Pair-Programming with Copilot
|
\section1 Receiving Suggestions
|
||||||
|
|
||||||
When you write code in the \l {Working in Edit Mode}{Edit} mode and
|
When you write code in the \l {Working in Edit Mode}{Edit} mode and
|
||||||
\uicontrol {Request completions automatically} is enabled, Copilot
|
\uicontrol {Request completions automatically} is enabled, Copilot
|
||||||
@@ -78,9 +85,11 @@
|
|||||||
To apply a suggestion word-by-word, select \uicontrol {Apply Word}
|
To apply a suggestion word-by-word, select \uicontrol {Apply Word}
|
||||||
or press \key {Alt+Right}.
|
or press \key {Alt+Right}.
|
||||||
|
|
||||||
\section1 Enabling and Disabling Copilot
|
To reject a suggestion, press \key Esc or the arrow keys.
|
||||||
|
|
||||||
You can enable and disable the Copilot plugin either globally for all
|
\section1 Enabling and Disabling Suggestions
|
||||||
|
|
||||||
|
You can enable and disable the Copilot suggestions either globally for all
|
||||||
projects or at project level for a particular project.
|
projects or at project level for a particular project.
|
||||||
|
|
||||||
To enable or disable Copilot suggestions globally, select the
|
To enable or disable Copilot suggestions globally, select the
|
||||||
|
@@ -176,7 +176,7 @@
|
|||||||
|
|
||||||
\li Enter the text you are looking for and click \uicontrol Search.
|
\li Enter the text you are looking for and click \uicontrol Search.
|
||||||
|
|
||||||
\image qtcreator-searchresults.png
|
\image qtcreator-search-results-matches.webp {Found matches in Search Results}
|
||||||
|
|
||||||
\l {Search Results} shows a list of files that have the searched text.
|
\l {Search Results} shows a list of files that have the searched text.
|
||||||
|
|
||||||
|
36
doc/qtcreator/src/howto/creator-how-to-macos.qdoc
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-macos.html
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\endif
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
\ingroup studio-how-to
|
||||||
|
|
||||||
|
\title Find menu items on \macos
|
||||||
|
|
||||||
|
\QC uses standard names and locations for standard features, such as
|
||||||
|
\e preferences. In this manual, the names and locations on
|
||||||
|
Windows and Linux are usually used to keep the instructions short. Here are
|
||||||
|
some places to check if you cannot find a function, dialog, or keyboard
|
||||||
|
shortcut on \macos when following the instructions:
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li For
|
||||||
|
\li Look In
|
||||||
|
\row
|
||||||
|
\li \uicontrol Edit > \uicontrol Preferences
|
||||||
|
\li \uicontrol {\QC} > \uicontrol Preferences
|
||||||
|
\row
|
||||||
|
\li \uicontrol Help > \uicontrol {About Plugins}
|
||||||
|
\li \uicontrol {\QC} > \uicontrol {About Plugins}
|
||||||
|
\row
|
||||||
|
\li Keyboard shortcuts
|
||||||
|
\li \uicontrol {\QC} > \uicontrol Preferences > \uicontrol Environment >
|
||||||
|
\uicontrol Keyboard
|
||||||
|
\endtable
|
||||||
|
*/
|
@@ -0,0 +1,38 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-set-high-dpi-scaling.html
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\endif
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
\ingroup studio-how-to
|
||||||
|
|
||||||
|
\title Set high DPI scaling
|
||||||
|
|
||||||
|
The operating systems that \QC supports implement high dots-per-inch (DPI)
|
||||||
|
scaling at varying levels. Therefore, \QC handles high DPI scaling
|
||||||
|
differently on different operating systems:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li On \macos, \QC forces high DPI scaling, which means that it allows
|
||||||
|
Qt to use the system scaling factor as the \QC scaling factor.
|
||||||
|
\li On Windows, if you do not set \l{High DPI}
|
||||||
|
{scaling environment variables}, \QC instructs Qt to detect the
|
||||||
|
scaling factor and use it as the \QC scaling factor.
|
||||||
|
\li On Linux, \QC leaves it to the user to enable high DPI scaling
|
||||||
|
because the process varies so much on different distributions
|
||||||
|
and windowing systems that it cannot be reliably done automatically.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
To override the default approach and always enable high DPI scaling:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol Interface.
|
||||||
|
\li Select \uicontrol {Enable high DPI scaling}.
|
||||||
|
\li Restart \QC to have the change take effect.
|
||||||
|
\endlist
|
||||||
|
*/
|
26
doc/qtcreator/src/howto/creator-how-to-switch-ui-themes.qdoc
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-switch-ui-themes.html
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\endif
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
\ingroup studio-how-to
|
||||||
|
|
||||||
|
\title Switch UI themes
|
||||||
|
|
||||||
|
Themes enable you to change the appearance of the UI from dark to light,
|
||||||
|
for example.
|
||||||
|
|
||||||
|
To switch themes:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol Interface.
|
||||||
|
\image qtcreator-preferences-environment-interface.webp {Interface preferences}
|
||||||
|
\li In \uicontrol Theme, select a theme.
|
||||||
|
\endlist
|
||||||
|
*/
|
66
doc/qtcreator/src/howto/creator-how-to-view-images.qdoc
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-view-images.html
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\endif
|
||||||
|
\ingroup creator-how-to-design
|
||||||
|
\ingroup studio-how-to-image-viewer
|
||||||
|
|
||||||
|
\title View images
|
||||||
|
|
||||||
|
\QC opens image files in the image viewer.
|
||||||
|
|
||||||
|
\image qtcreator-image-viewer.png {Image viewer}
|
||||||
|
|
||||||
|
Use the toolbar buttons or \l{Keyboard Shortcuts}{keyboard shortcuts} to:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \inlineimage icons/export.png
|
||||||
|
- Export SVG images to pixmaps or copy an image as a data URL, which
|
||||||
|
enables you to include it in web pages as if it were an external
|
||||||
|
resource
|
||||||
|
\li \inlineimage icons/original-size.png
|
||||||
|
- Return images to their original size
|
||||||
|
\li \inlineimage icons/zoom-in.png
|
||||||
|
- Zoom in and out (\inlineimage icons/zoom-out.png
|
||||||
|
)
|
||||||
|
\li \inlineimage icons/run_small.png
|
||||||
|
- Play and pause animated GIF and MNG images
|
||||||
|
\li \inlineimage icons/qtcreator-desktopdevice-button.png
|
||||||
|
- Show and hide the image background
|
||||||
|
\li \inlineimage icons/switch-outline.png
|
||||||
|
- Show and hide the image outline
|
||||||
|
\li \inlineimage icons/fittoview.png
|
||||||
|
- Fit images to screen
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
Select \uicontrol {Set as Default} to use the current settings for the
|
||||||
|
background and outline modes and fitting images to screen as default
|
||||||
|
values for the image viewer.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-export-svg-images.html
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\endif
|
||||||
|
\ingroup creator-how-to-design
|
||||||
|
\ingroup studio-how-to-image-viewer
|
||||||
|
|
||||||
|
\title Export SVG images
|
||||||
|
|
||||||
|
If you have a freely scalable icon in the SVG format, you can open it in the
|
||||||
|
\l{View images}{image viewer} to export it to several images of different
|
||||||
|
sizes to create a set of pixmaps.
|
||||||
|
|
||||||
|
Select \inlineimage icons/export.png
|
||||||
|
on the toolbar.
|
||||||
|
|
||||||
|
You can then use QIcon::addPixmap() to add the pixmaps to icons in
|
||||||
|
different modes and states.
|
||||||
|
*/
|
@@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-enable-plugins.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
|
\title Enable and disable plugins
|
||||||
|
|
||||||
|
New \QC plugins are often introduced as \e {experimental plugins} to let you
|
||||||
|
try them out before they are fully supported. Experimental plugins are
|
||||||
|
disabled by default and you must enable them for them to become visible
|
||||||
|
after you restart \QC. By default, all the plugins that the plugin depends
|
||||||
|
on are also enabled.
|
||||||
|
|
||||||
|
You can also disable plugins that you do not use, to streamline \QC.
|
||||||
|
By default, all the plugins that depend on the plugin are also disabled.
|
||||||
|
|
||||||
|
To enable and disable plugins:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Help > \uicontrol {About Plugins}.
|
||||||
|
\li Start typing in the \uicontrol Filter field to find a plugin.
|
||||||
|
\image qtcreator-installed-plugins.webp {Installed Plugins dialog}
|
||||||
|
\li Select the \uicontrol Load check box to enable a plugin, or deselect
|
||||||
|
it to disable a plugin.
|
||||||
|
\li Select \uicontrol OK.
|
||||||
|
\li Select \uicontrol {Restart Now} to restart \QC and have the changes
|
||||||
|
take effect.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\sa {Install plugins}{How-to: Install plugins}
|
||||||
|
*/
|
@@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-find-settings-files.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
|
\title Find settings files
|
||||||
|
|
||||||
|
\QC creates the following files and directories:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li QtCreator.db
|
||||||
|
\li QtCreator.ini
|
||||||
|
\li qtversion.xml
|
||||||
|
\li qtcreator
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
The location of the above files and directories depends on the platform:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li On Linux and other Unix platforms, look in
|
||||||
|
\c {~/.config/QtProject} and
|
||||||
|
\c {~/.local/share/data/QtProject/qtcreator}.
|
||||||
|
\li On \macos, look in \c {~/.config/QtProject} and
|
||||||
|
\c {~/Library/Application Support/QtProject/Qt Creator}.
|
||||||
|
\li On Windows, look in
|
||||||
|
\c {%appdata%\QtProject} and \c {%localappdata%\QtProject}.
|
||||||
|
\endlist
|
||||||
|
*/
|
@@ -0,0 +1,43 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-install-plugins.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
|
\title Install plugins
|
||||||
|
|
||||||
|
\l{https://marketplace.qt.io/}{Qt Marketplace} has links to \QC plugins that
|
||||||
|
you can download and install either for free or for a price set by their
|
||||||
|
publisher. Browse the available plugins in the \uicontrol Marketplace tab
|
||||||
|
in the \uicontrol Welcome mode.
|
||||||
|
|
||||||
|
You can also install plugins from other sources, such as
|
||||||
|
\l{https://github.com/}{GitHub}.
|
||||||
|
|
||||||
|
\note You can install only plugins that your \QC version supports.
|
||||||
|
|
||||||
|
To install plugins:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Help > \uicontrol {About Plugins} >
|
||||||
|
\uicontrol {Install Plugins}.
|
||||||
|
\li In the \uicontrol Source dialog, enter the path to the archive
|
||||||
|
or library that has the plugin.
|
||||||
|
\image qtcreator-install-plugin-source.png
|
||||||
|
\li In the \uicontrol {Install Location} dialog, select
|
||||||
|
\uicontrol {User plugins} to make the plugin available for the
|
||||||
|
current user in all compatible \QC instances or
|
||||||
|
\uicontrol {\QC installation} to make the plugin available for
|
||||||
|
all users of a particular \QC instance.
|
||||||
|
\image qtcreator-install-plugin-location.png
|
||||||
|
\li In the \uicontrol Summary dialog, select \uicontrol Finish to
|
||||||
|
install the plugin.
|
||||||
|
\image qtcreator-install-plugin-summary.png
|
||||||
|
\li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\sa {Enable and disable plugins}{How-to: Enable and disable plugins}
|
||||||
|
*/
|
@@ -12,53 +12,72 @@
|
|||||||
\page creator-how-tos.html
|
\page creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\nextpage creator-known-issues.html
|
||||||
|
|
||||||
\title How-tos
|
\title How-to
|
||||||
|
|
||||||
How do I:
|
The following topics describe how to use \QC to perform a particular task.
|
||||||
|
|
||||||
|
\section1 Use the UI
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l {Switch between modes}
|
\li \l {Find a particular preference}
|
||||||
\li \l {Move between open files}
|
|
||||||
\li \l {Switch to Edit mode}
|
|
||||||
\li \l {Find a specific setting}
|
|
||||||
\li \l {View output}
|
|
||||||
\li \l {Find keyboard shortcuts}
|
\li \l {Find keyboard shortcuts}
|
||||||
\li \l {Run \QC from the command line}
|
\li \l {Find menu items on \macos}
|
||||||
|
\li \l {Set high DPI scaling}
|
||||||
|
\li \l {Set the number of recent files shown}
|
||||||
\li \l {Show and hide sidebars}
|
\li \l {Show and hide sidebars}
|
||||||
\li \l {Move to symbols}
|
\li \l {Switch between modes}
|
||||||
\li \l {Quickly locate files using the keyboard}
|
\li \l {Switch UI themes}
|
||||||
\li \l {Perform calculations}
|
\li \l {View output}
|
||||||
\li \l {Jump to a function in QML code}
|
|
||||||
\li \l {Add a license header template for C++ code}
|
|
||||||
\li \l {Paste text from my clipboard history}
|
|
||||||
\li \l {Sort lines alphabetically}
|
|
||||||
\li \l {Enclose selected code in curly braces, parentheses, or double quotes}
|
|
||||||
\li \l {Select the enclosing block in C++}
|
|
||||||
\li \l {Add my own code snippets to the auto-complete menu}
|
|
||||||
\li \l {Quickly write down notes somewhere}
|
|
||||||
\li \l {Configure the amount of recent files shown}
|
|
||||||
\li \l {Search and replace across files using a regular expression}
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Switch between modes
|
\section1 Edit Code
|
||||||
|
|
||||||
\QC uses different modes for different purposes. You can quickly
|
|
||||||
switch between these modes with the following keyboard shortcuts:
|
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li \l {Add code snippets to the auto-complete menu}
|
||||||
\li \uicontrol Welcome mode \key Ctrl+1
|
\li \l {Enclose selected code in curly braces, parentheses, or double quotes}
|
||||||
\li \uicontrol Edit mode \key Ctrl+2
|
\li \l {Jump to a function in QML code}
|
||||||
\li \uicontrol Design mode \key Ctrl+3
|
\li \l {Locate files using the keyboard}
|
||||||
\li \uicontrol Debug mode \key Ctrl+4
|
\li \l {Move between open files}
|
||||||
\li \uicontrol Projects mode \key Ctrl+5
|
\li \l {Move to symbols}
|
||||||
\li \uicontrol Help mode \key Ctrl+6
|
\li \l {Paste text from clipboard history}
|
||||||
|
\li \l {Perform calculations}
|
||||||
|
\li \l {Search and replace across files using a regular expression}
|
||||||
|
\li \l {Select the enclosing block in C++}
|
||||||
|
\li \l {Sort lines alphabetically}
|
||||||
|
\li \l {Switch to Edit mode}
|
||||||
|
\li \l {Write down notes}
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
For more information about \QC modes, see \l {Selecting Modes}.
|
\section1 Design UIs
|
||||||
|
|
||||||
\section1 Move between open files
|
\list
|
||||||
|
\li \l {Export SVG images}
|
||||||
|
\li \l {View images}
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Manage Projects
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \l {Add a license header template for C++ code}
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Use \QC
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \l {Enable and disable plugins}
|
||||||
|
\li \l {Find settings files}
|
||||||
|
\li \l {Install plugins}
|
||||||
|
\li \l {Run \QC from the command line}
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-move-between-open-files.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Move between open files
|
||||||
|
|
||||||
To quickly move between currently open files, press
|
To quickly move between currently open files, press
|
||||||
\key Ctrl+Tab.
|
\key Ctrl+Tab.
|
||||||
@@ -68,8 +87,15 @@
|
|||||||
(\key {Cmd+Opt+Left} on \macos). For example, if you use the \uicontrol Locator
|
(\key {Cmd+Opt+Left} on \macos). For example, if you use the \uicontrol Locator
|
||||||
to jump to a symbol in the same file, you can jump back to your original
|
to jump to a symbol in the same file, you can jump back to your original
|
||||||
location in that file by pressing \key {Alt+Left}.
|
location in that file by pressing \key {Alt+Left}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Switch to Edit mode
|
/*!
|
||||||
|
\page creator-how-to-switch-to-edit-mode.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Switch to Edit mode
|
||||||
|
|
||||||
To move to the \uicontrol Edit mode and currently active file, press
|
To move to the \uicontrol Edit mode and currently active file, press
|
||||||
\key Esc.
|
\key Esc.
|
||||||
@@ -83,13 +109,29 @@
|
|||||||
\li The second press closes secondary windows
|
\li The second press closes secondary windows
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Find a specific setting
|
/*!
|
||||||
|
\page creator-how-to-find-preferences.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
To find specific settings in \uicontrol Edit > \uicontrol Preferences,
|
\title Find a particular preference
|
||||||
|
|
||||||
|
To find a particular preference in \uicontrol Edit > \uicontrol Preferences,
|
||||||
use the filter located at the top left of the \uicontrol Preferences dialog.
|
use the filter located at the top left of the \uicontrol Preferences dialog.
|
||||||
|
|
||||||
\section1 View output
|
\image qtcreator-preferences.webp {Filtering preferences}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-view-output.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title View output
|
||||||
|
|
||||||
The \l{Viewing Output}{taskbar} shows output from
|
The \l{Viewing Output}{taskbar} shows output from
|
||||||
several sources, such as a list of errors and warnings encountered during
|
several sources, such as a list of errors and warnings encountered during
|
||||||
@@ -113,8 +155,15 @@
|
|||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
For additional ways to view other types of output, see \l{Viewing Output}.
|
For additional ways to view other types of output, see \l{Viewing Output}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Find keyboard shortcuts
|
/*!
|
||||||
|
\page creator-how-to-find-keyboard-shortcuts.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title Find keyboard shortcuts
|
||||||
|
|
||||||
\QC has \l{Keyboard Shortcuts}{many useful keyboard shortcuts}.
|
\QC has \l{Keyboard Shortcuts}{many useful keyboard shortcuts}.
|
||||||
You can see the keyboard shortcut for a menu command in the menu
|
You can see the keyboard shortcut for a menu command in the menu
|
||||||
@@ -124,8 +173,15 @@
|
|||||||
\uicontrol Preferences > \uicontrol Environment > \uicontrol Keyboard.
|
\uicontrol Preferences > \uicontrol Environment > \uicontrol Keyboard.
|
||||||
|
|
||||||
\image qtcreator-keyboard-shortcuts.png "Keyboard preferences"
|
\image qtcreator-keyboard-shortcuts.png "Keyboard preferences"
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Run \QC from the command line
|
/*!
|
||||||
|
\page creator-how-to-run-from-cli.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
|
\title Run \QC from the command line
|
||||||
|
|
||||||
You can launch \QC from the command line using the name of an
|
You can launch \QC from the command line using the name of an
|
||||||
existing \l{Managing Sessions}{session} or project file by entering
|
existing \l{Managing Sessions}{session} or project file by entering
|
||||||
@@ -135,23 +191,15 @@
|
|||||||
loads the session called \e somesession.
|
loads the session called \e somesession.
|
||||||
|
|
||||||
For more information, see \l{Using Command Line Options}.
|
For more information, see \l{Using Command Line Options}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Show and hide sidebars
|
/*!
|
||||||
|
\page creator-how-to-move-to-symbols.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
You can toggle the left and right sidebar in some \QC modes.
|
\title Move to symbols
|
||||||
|
|
||||||
To toggle the left sidebar, click \inlineimage icons/leftsidebaricon.png
|
|
||||||
(\uicontrol {Hide Left Sidebar/Show Left Sidebar}) or press \key Alt+0
|
|
||||||
(\key Cmd+0 on \macos).
|
|
||||||
|
|
||||||
To toggle the right sidebar, click \inlineimage icons/rightsidebaricon.png
|
|
||||||
(\uicontrol {Hide Right Sidebar/Show Right Sidebar}) or press
|
|
||||||
\key Alt+Shift+0 (\key Cmd+Shift+0 on \macos).
|
|
||||||
|
|
||||||
For more information on using the sidebars, see
|
|
||||||
\l {Browsing Project Contents}.
|
|
||||||
|
|
||||||
\section1 Move to symbols
|
|
||||||
|
|
||||||
To move straight to a symbol used in a project, select the symbol in the
|
To move straight to a symbol used in a project, select the symbol in the
|
||||||
\uicontrol Editor toolbar drop-down menu. For more information on the editor
|
\uicontrol Editor toolbar drop-down menu. For more information on the editor
|
||||||
@@ -166,8 +214,15 @@
|
|||||||
the definition or the declaration of the symbol. You can also move the
|
the definition or the declaration of the symbol. You can also move the
|
||||||
cursor on the symbol and press \key {F2}. For more information, see
|
cursor on the symbol and press \key {F2}. For more information, see
|
||||||
\l{Moving to Symbol Definition or Declaration}.
|
\l{Moving to Symbol Definition or Declaration}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Quickly locate files using the keyboard
|
/*!
|
||||||
|
\page creator-how-to-locate-files-using-keyboard.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Locate files using the keyboard
|
||||||
|
|
||||||
Use the \uicontrol Locator to browse
|
Use the \uicontrol Locator to browse
|
||||||
through projects, files, classes, functions, documentation, and file systems.
|
through projects, files, classes, functions, documentation, and file systems.
|
||||||
@@ -184,8 +239,15 @@
|
|||||||
\image qtcreator-locator-customize.webp "Locator preferences"
|
\image qtcreator-locator-customize.webp "Locator preferences"
|
||||||
|
|
||||||
For more information, see \l{Creating Locator Filters}.
|
For more information, see \l{Creating Locator Filters}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Perform calculations
|
/*!
|
||||||
|
\page creator-how-to-perform-calculations.html
|
||||||
|
\previouspage creator-how-to-move-between-open-files.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Perform calculations
|
||||||
|
|
||||||
Open the \uicontrol Locator with \key {Ctrl+K} and type =, followed by a space.
|
Open the \uicontrol Locator with \key {Ctrl+K} and type =, followed by a space.
|
||||||
You can now do basic calculations, with options to copy the results to the clipboard
|
You can now do basic calculations, with options to copy the results to the clipboard
|
||||||
@@ -194,13 +256,27 @@
|
|||||||
\image qtcreator-locator.webp "List of locator filters"
|
\image qtcreator-locator.webp "List of locator filters"
|
||||||
|
|
||||||
For more information, see \l{Executing JavaScript}.
|
For more information, see \l{Executing JavaScript}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Jump to a function in QML code
|
/*!
|
||||||
|
\page creator-how-to-jump-to-functions-in-qml-code.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Jump to a function in QML code
|
||||||
|
|
||||||
Open the \uicontrol Locator with \key {Ctrl+K} and type m, followed by a space.
|
Open the \uicontrol Locator with \key {Ctrl+K} and type m, followed by a space.
|
||||||
You can now go directly to any QML method in the file.
|
You can now go directly to any QML method in the file.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Add a license header template for C++ code
|
/*!
|
||||||
|
\page creator-how-to-add-license-header-templates.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-projects
|
||||||
|
|
||||||
|
\title Add a license header template for C++ code
|
||||||
|
|
||||||
Specify a file that has a license header for C++ in \uicontrol Edit >
|
Specify a file that has a license header for C++ in \uicontrol Edit >
|
||||||
\uicontrol Preferences > \uicontrol C++ > \uicontrol {File Naming} >
|
\uicontrol Preferences > \uicontrol C++ > \uicontrol {File Naming} >
|
||||||
@@ -223,20 +299,41 @@
|
|||||||
\li \c %$VARIABLE%: Contents of environment variable \c{VARIABLE}.
|
\li \c %$VARIABLE%: Contents of environment variable \c{VARIABLE}.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Paste text from my clipboard history
|
/*!
|
||||||
|
\page creator-how-to-paste-text-from-clipboard-history.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Paste text from clipboard history
|
||||||
|
|
||||||
\QC stores copied text in clipboard history. To retrieve clips from the
|
\QC stores copied text in clipboard history. To retrieve clips from the
|
||||||
history, press \key {Ctrl+Shift+V} until the clip appears.
|
history, press \key {Ctrl+Shift+V} until the clip appears.
|
||||||
The number of clips in the history is fixed to 10.
|
The number of clips in the history is fixed to 10.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Sort lines alphabetically
|
/*!
|
||||||
|
\page creator-how-to-sort-lines-alphabetically.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Sort lines alphabetically
|
||||||
|
|
||||||
To sort selected lines alphabetically, select \uicontrol Edit >
|
To sort selected lines alphabetically, select \uicontrol Edit >
|
||||||
\uicontrol Advanced > \uicontrol {Sort Selected Lines} or press
|
\uicontrol Advanced > \uicontrol {Sort Selected Lines} or press
|
||||||
\key {Alt+Shift+S} (or \key Ctrl+Shift+S on \macos).
|
\key {Alt+Shift+S} (or \key Ctrl+Shift+S on \macos).
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Enclose selected code in curly braces, parentheses, or double quotes
|
/*!
|
||||||
|
\page creator-enclose-code-in-characters.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Enclose selected code in curly braces, parentheses, or double quotes
|
||||||
|
|
||||||
When you have selected code and enter one of the following opening
|
When you have selected code and enter one of the following opening
|
||||||
characters, the matching closing character is added automatically
|
characters, the matching closing character is added automatically
|
||||||
@@ -253,45 +350,87 @@
|
|||||||
\uicontrol {Text Editor} > \uicontrol Completion.
|
\uicontrol {Text Editor} > \uicontrol Completion.
|
||||||
|
|
||||||
\image qtcreator-options-texteditor-completion.png "Completion preferences"
|
\image qtcreator-options-texteditor-completion.png "Completion preferences"
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Select the enclosing block in C++
|
/*!
|
||||||
|
\page creator-how-to-select-enclosing-block.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Select the enclosing block in C++
|
||||||
|
|
||||||
Press \key {Ctrl+U}.
|
Press \key {Ctrl+U}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Add my own code snippets to the auto-complete menu
|
/*!
|
||||||
|
\page creator-how-to-add-code-snippets.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
You can add, modify, and remove snippets in the snippet editor.
|
\title Add code snippets to the auto-complete menu
|
||||||
|
|
||||||
|
Add, modify, and remove snippets in the snippet editor.
|
||||||
To open the editor, select \uicontrol Edit > \uicontrol Preferences
|
To open the editor, select \uicontrol Edit > \uicontrol Preferences
|
||||||
> \uicontrol {Text Editor} > \uicontrol Snippets.
|
> \uicontrol {Text Editor} > \uicontrol Snippets.
|
||||||
|
|
||||||
\image qtcreator-snippet-modifiers.png "Snippets preferences"
|
\image qtcreator-snippet-modifiers.png "Snippets preferences"
|
||||||
|
|
||||||
For more information, see \l {Adding and Editing Snippets}.
|
For more information, see \l {Adding and Editing Snippets}.
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Quickly write down notes somewhere
|
/*!
|
||||||
|
\page creator-how-to-write-notes.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
Select \uicontrol File > \uicontrol {New File} >
|
\title Write down notes
|
||||||
\uicontrol General > \uicontrol {Scratch Buffer}.
|
|
||||||
Alternatively, \key {Ctrl+N} can be used to open this dialog, which is
|
|
||||||
fully navigable via keyboard by using the up and down arrow keys and the
|
|
||||||
tab key.
|
|
||||||
|
|
||||||
This creates a new empty text file and saves it to the temporary directory
|
To write down notes without having to worry about deleting the file
|
||||||
on your machine. You can use it to write down notes without having to worry
|
later, create a new empty text file and save it to a temporary directory
|
||||||
about deleting the file afterwards. The operating system will eventually
|
on your machine.
|
||||||
remove the file automatically. If you want to keep the file, you can easily
|
|
||||||
save it as a new file somewhere else. If you accidentally close the file,
|
|
||||||
you can find it in the \uicontrol File > \uicontrol {Recent Files} menu.
|
|
||||||
|
|
||||||
\section1 Configure the amount of recent files shown
|
\image qtcreator-scratch-buffer.webp {Scratch file open in the text editor}
|
||||||
|
|
||||||
|
To create a scratch file and open it in the text editor:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Select \uicontrol File > \uicontrol {New File} > \uicontrol General >
|
||||||
|
\uicontrol {Scratch Buffer}.
|
||||||
|
\li Press \key {Ctrl+N}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
Use the up and down arrow keys and the tab key to navigate in the editor.
|
||||||
|
|
||||||
|
The operating system will eventually remove the file automatically. To keep
|
||||||
|
the file, save it as a new file somewhere else. If you accidentally close the
|
||||||
|
file, find it in \uicontrol File > \uicontrol {Recent Files}.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-set-recent-files.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title Set the number of recent files shown
|
||||||
|
|
||||||
Set the value of \uicontrol Edit > \uicontrol Preferences >
|
Set the value of \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol Environment > \uicontrol System
|
\uicontrol Environment > \uicontrol System
|
||||||
> \uicontrol {Maximum number of entries in "Recent Files"}.
|
> \uicontrol {Maximum number of entries in "Recent Files"}.
|
||||||
|
|
||||||
\image qtcreator-options-environment-system.png "System preferences"
|
\image qtcreator-options-environment-system.png "System preferences"
|
||||||
|
*/
|
||||||
|
|
||||||
\section1 Search and replace across files using a regular expression
|
/*!
|
||||||
|
\page creator-how-to-search-and-replace-using-regexp.html
|
||||||
|
\previouspage creator-how-to-move-between-open-files.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
|
\title Search and replace across files using a regular expression
|
||||||
|
|
||||||
As an example, say you want to replace equality checks (\c {foo == bar})
|
As an example, say you want to replace equality checks (\c {foo == bar})
|
||||||
with a function (\c {foo.equals(bar)}):
|
with a function (\c {foo.equals(bar)}):
|
||||||
|
@@ -130,7 +130,7 @@
|
|||||||
\section1 Managing Test Suites and Cases
|
\section1 Managing Test Suites and Cases
|
||||||
|
|
||||||
You can manage Squish test suites and cases in the \uicontrol Squish
|
You can manage Squish test suites and cases in the \uicontrol Squish
|
||||||
\l {Working with Sidebars}{view}.
|
\l {Show and hide sidebars}{view}.
|
||||||
|
|
||||||
\image qtcreator-squish-view.png "Squish sidebar view"
|
\image qtcreator-squish-view.png "Squish sidebar view"
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
This section has answers to some frequently asked questions about \QC.
|
This section has answers to some frequently asked questions about \QC.
|
||||||
You might also find answers to your questions in the
|
You might also find answers to your questions in the
|
||||||
\l{Known Issues} and \l{How-tos} sections, or the Troubleshooting
|
\l{Known Issues} and \l{How-to} sections, or the Troubleshooting
|
||||||
sections for a special area, such as
|
sections for a special area, such as
|
||||||
\l{Troubleshooting Debugger}{debugging}.
|
\l{Troubleshooting Debugger}{debugging}.
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
Remove the settings files created by \QC.
|
Remove the settings files created by \QC.
|
||||||
|
|
||||||
For more information about where the files are located on each supported
|
For more information about where the files are located on each supported
|
||||||
platform, see \l {Location of Settings Files}.
|
platform, see \l {Find settings files}.
|
||||||
|
|
||||||
\b {\QC comes with \MinGW, should I use this version with Qt?}
|
\b {\QC comes with \MinGW, should I use this version with Qt?}
|
||||||
|
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
in different build and run \l{glossary-buildandrun-kit}{kits}.
|
in different build and run \l{glossary-buildandrun-kit}{kits}.
|
||||||
|
|
||||||
\note Meson build plugin is disabled by default, see
|
\note Meson build plugin is disabled by default, see
|
||||||
\l{Enabling and Disabling Plugins}.
|
\l{Enable and disable plugins}{How-to: Enable and disable plugins}.
|
||||||
|
|
||||||
\section1 Adding Meson Tools
|
\section1 Adding Meson Tools
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2021 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -142,55 +142,16 @@
|
|||||||
\section1 Managing Plugins
|
\section1 Managing Plugins
|
||||||
|
|
||||||
\QC comes with a set of plugins, some of which are disabled by default.
|
\QC comes with a set of plugins, some of which are disabled by default.
|
||||||
You can enable disabled plugins if you need them and disable plugins you
|
You can \l{Enable and disable plugins}{enable} disabled plugins if you
|
||||||
don't need.
|
need them and disable plugins you don't need.
|
||||||
|
|
||||||
You can download and install additional plugins from
|
You can \l{Install plugins}{download and install} more plugins from
|
||||||
\l{https://marketplace.qt.io/}{Qt Marketplace} or some
|
\l{https://marketplace.qt.io/}{Qt Marketplace} or some
|
||||||
other source, such as \l{https://github.com/}{GitHub}.
|
other source, such as \l{https://github.com/}{GitHub}.
|
||||||
|
|
||||||
\section2 Enabling and Disabling Plugins
|
|
||||||
|
|
||||||
New \QC plugins are often introduced as \e {experimental plugins} to let you
|
|
||||||
try them out before they are fully supported. Experimental plugins are
|
|
||||||
disabled by default and you must enable them for them to become visible
|
|
||||||
after you restart \QC. By default, all the plugins that the plugin depends
|
|
||||||
on are also enabled.
|
|
||||||
|
|
||||||
You can also disable plugins that you do not use, to streamline \QC.
|
|
||||||
By default, all the plugins that depend on the plugin are also disabled.
|
|
||||||
|
|
||||||
To enable and disable plugins, select \uicontrol Help >
|
To enable and disable plugins, select \uicontrol Help >
|
||||||
\uicontrol {About Plugins}.
|
\uicontrol {About Plugins}.
|
||||||
|
|
||||||
\image qtcreator-installed-plugins.png "Installed Plugins dialog"
|
To install plugins, select \uicontrol Help > \uicontrol {About Plugins} >
|
||||||
|
|
||||||
\section2 Installing Plugins
|
|
||||||
|
|
||||||
Qt Marketplace has links to \QC plugins that you can download and
|
|
||||||
install either for free or for a price set by their publisher. You can
|
|
||||||
browse the available plugins in the \uicontrol Marketplace tab in the
|
|
||||||
Welcome mode.
|
|
||||||
|
|
||||||
\note You can install only plugins that your \QC version supports.
|
|
||||||
|
|
||||||
To install plugins:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
\li Select \uicontrol Help > \uicontrol {About Plugins} >
|
|
||||||
\uicontrol {Install Plugins}.
|
\uicontrol {Install Plugins}.
|
||||||
\li In the \uicontrol Source dialog, enter the path to the archive
|
|
||||||
or library that has the plugin.
|
|
||||||
\image qtcreator-install-plugin-source.png
|
|
||||||
\li In the \uicontrol {Install Location} dialog, select
|
|
||||||
\uicontrol {User plugins} to make the plugin available for the
|
|
||||||
current user in all compatible \QC instances or
|
|
||||||
\uicontrol {\QC installation} to make the plugin available for
|
|
||||||
all users of a particular \QC instance.
|
|
||||||
\image qtcreator-install-plugin-location.png
|
|
||||||
\li In the \uicontrol Summary dialog, select \uicontrol Finish to
|
|
||||||
install the plugin.
|
|
||||||
\image qtcreator-install-plugin-summary.png
|
|
||||||
\li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
|
|
||||||
\endlist
|
|
||||||
*/
|
*/
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
Has answers to some frequently asked questions about \QC.
|
Has answers to some frequently asked questions about \QC.
|
||||||
|
|
||||||
\li \l{How-tos}
|
\li \l{How-to}
|
||||||
|
|
||||||
Lists useful \QC features.
|
Lists useful \QC features.
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2021 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -80,21 +80,18 @@
|
|||||||
For more information, see \l{Building and Running}.
|
For more information, see \l{Building and Running}.
|
||||||
\li \b {\l{Testing}}
|
\li \b {\l{Testing}}
|
||||||
|
|
||||||
\QC integrates several external native debuggers: GNU
|
\QC integrates several external native debuggers that you can use
|
||||||
Symbolic Debugger (GDB), Microsoft Console Debugger (CDB), and
|
to inspect the state of your application while debugging.
|
||||||
internal JavaScript debugger. In the \uicontrol Debug mode, you
|
|
||||||
can inspect the state of your application while debugging.
|
|
||||||
|
|
||||||
Devices have limited memory and CPU power, so
|
Devices have limited memory and CPU power, so you should use them
|
||||||
you should use them carefully. \QC integrates Valgrind code
|
carefully. \QC integrates code analysis tools for detecting
|
||||||
analysis tools for detecting memory leaks and profiling function
|
memory leaks, profiling function execution, analyzing CPU use,
|
||||||
execution. In addition, the QML Profiler enables you to profile
|
and eliminating unnecessary complexity of code. Other tools
|
||||||
Qt Quick applications.
|
provide code coverage and visualize trace events.
|
||||||
|
|
||||||
\QC integrates the \l{Qt Test}, Boost.Test, Catch 2 test,
|
\QC integrates several testing frameworks for unit testing
|
||||||
and Google C++ Testing frameworks for unit testing applications
|
applications and libraries. You can use \QC to create, build,
|
||||||
and libraries. You can use \QC to create, build, and run
|
and run autotests.
|
||||||
autotests.
|
|
||||||
|
|
||||||
For more information, see \l{Testing}.
|
For more information, see \l{Testing}.
|
||||||
\li \b {Publishing}
|
\li \b {Publishing}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2019 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -29,11 +29,11 @@
|
|||||||
|
|
||||||
\li \l{Analyzing Code}
|
\li \l{Analyzing Code}
|
||||||
|
|
||||||
\QC integrates Valgrind code analysis tools for detecting memory
|
Use tools for analyzing C++ and QML code to identify issues in
|
||||||
leaks and profiling function execution. You must download and
|
memory management, CPU usage, coding constructs, and so on. You
|
||||||
install them separately to use them from \QC. The QML Profiler is
|
must install and configure the tools on your system to use them
|
||||||
installed as part of \QC. It enables you to profile your Qt Quick
|
from \QC. However, the QML Profiler is installed as part of \QC
|
||||||
applications.
|
for profiling Qt Quick applications.
|
||||||
|
|
||||||
\li \l{Running Autotests}
|
\li \l{Running Autotests}
|
||||||
|
|
||||||
|
@@ -123,6 +123,10 @@
|
|||||||
|
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
|
The following video shows how to create a Qt Widgets application project:
|
||||||
|
|
||||||
|
\youtube FTSvDmcAgPI
|
||||||
|
|
||||||
For examples of creating different types of projects, see
|
For examples of creating different types of projects, see
|
||||||
\l{Tutorials}.
|
\l{Tutorials}.
|
||||||
|
|
||||||
|
@@ -64,7 +64,7 @@
|
|||||||
the application has large image files that would need to be bundled
|
the application has large image files that would need to be bundled
|
||||||
into the resource file before running the application.
|
into the resource file before running the application.
|
||||||
|
|
||||||
\image qtcreator-application-output.png
|
\image qtcreator-application-output.webp {Application Output view}
|
||||||
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
For more information on the options you have, see
|
For more information on the options you have, see
|
||||||
|
@@ -19,8 +19,6 @@
|
|||||||
\li \l{IDE Overview}
|
\li \l{IDE Overview}
|
||||||
\li \l{User Interface}
|
\li \l{User Interface}
|
||||||
\list
|
\list
|
||||||
\li \l{Selecting Modes}
|
|
||||||
\li \l{Working with Sidebars}
|
|
||||||
\li \l{Browsing Project Contents}
|
\li \l{Browsing Project Contents}
|
||||||
\list
|
\list
|
||||||
\li \l{Projects}
|
\li \l{Projects}
|
||||||
@@ -255,7 +253,7 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{Using the Help Mode}
|
\li \l{Using the Help Mode}
|
||||||
\li \l{FAQ}
|
\li \l{FAQ}
|
||||||
\li \l{How-tos}
|
\li \l{How-to}
|
||||||
\li \l{Known Issues}
|
\li \l{Known Issues}
|
||||||
\li \l{Glossary}
|
\li \l{Glossary}
|
||||||
\li \l{Technical Support}
|
\li \l{Technical Support}
|
||||||
|
@@ -103,7 +103,7 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{Using the Help Mode}
|
\li \l{Using the Help Mode}
|
||||||
\li \l{FAQ}
|
\li \l{FAQ}
|
||||||
\li \l{How-tos}
|
\li \l{How-to}
|
||||||
\li \l{Known Issues}
|
\li \l{Known Issues}
|
||||||
\li \l{Glossary}
|
\li \l{Glossary}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -26,8 +26,8 @@
|
|||||||
\image studio-live-preview.png
|
\image studio-live-preview.png
|
||||||
\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
|
||||||
name in the \l Projects view, and select \uicontrol {Preview File}.
|
filename in the \l Projects view, and select \uicontrol {Preview File}.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
To preview the whole UI, select \uicontrol {Show Live Preview}
|
To preview the whole UI, select \uicontrol {Show Live Preview}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -8,8 +8,7 @@
|
|||||||
|
|
||||||
\title File System
|
\title File System
|
||||||
|
|
||||||
If you cannot see a file in the \l Projects view, switch to the
|
The \uicontrol {File System} view shows all the files in the file system.
|
||||||
\uicontrol {File System} view, which shows all the files in the file system.
|
|
||||||
|
|
||||||
\note Usually, \l{Searching with the Locator}{searching with the locator}
|
\note Usually, \l{Searching with the Locator}{searching with the locator}
|
||||||
is the fastest way to find a particular project, file, class, or function,
|
is the fastest way to find a particular project, file, class, or function,
|
||||||
@@ -17,12 +16,9 @@
|
|||||||
to open files from anywhere in the file system.
|
to open files from anywhere in the file system.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
The following image displays the \uicontrol {File System} view in the
|
\image qtcreator-filesystem-view-design.png {File System view}
|
||||||
\uicontrol Design mode:
|
|
||||||
|
|
||||||
\image qtcreator-filesystem-view-design.png "File System view in the Design mode"
|
|
||||||
\else
|
\else
|
||||||
\image qtcreator-filesystem-view.webp "File System view in the sidebar"
|
\image qtcreator-filesystem-view.webp {File System view in the sidebar}
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
To move to the root directory of the file system, select \uicontrol Computer
|
To move to the root directory of the file system, select \uicontrol Computer
|
||||||
@@ -87,19 +83,11 @@
|
|||||||
\li Collapse all open folders.
|
\li Collapse all open folders.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
\section1 File System View Toolbar
|
\section1 File System View Toolbar
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
In the \uicontrol Edit and \uicontrol Debug mode, the
|
|
||||||
\uicontrol {File System} view is displayed in the \l{Working with Sidebars}
|
|
||||||
{sidebar}. It has a toolbar with additional options.
|
|
||||||
|
|
||||||
\image qtcreator-filesystem-view.webp "File System view in the sidebar"
|
|
||||||
\else
|
|
||||||
The toolbar in the \uicontrol {File System} view has additional
|
The toolbar in the \uicontrol {File System} view has additional
|
||||||
options.
|
options.
|
||||||
\endif
|
|
||||||
|
|
||||||
|
|
||||||
To manage view contents, select \inlineimage icons/filtericon.png
|
To manage view contents, select \inlineimage icons/filtericon.png
|
||||||
(\uicontrol Options):
|
(\uicontrol Options):
|
||||||
@@ -116,4 +104,5 @@
|
|||||||
To stop the synchronization with the file currently open in the
|
To stop the synchronization with the file currently open in the
|
||||||
editor, deselect \inlineimage icons/linkicon.png
|
editor, deselect \inlineimage icons/linkicon.png
|
||||||
(\uicontrol {Synchronize with Editor}).
|
(\uicontrol {Synchronize with Editor}).
|
||||||
|
\endif
|
||||||
*/
|
*/
|
||||||
|
@@ -1,24 +1,19 @@
|
|||||||
// Copyright (C) 2020 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-sidebars.html
|
\page creator-how-to-show-and-hide-sidebars.html
|
||||||
\if defined(qtdesignstudio)
|
\previouspage creator-how-tos.html
|
||||||
\previouspage creator-coding-navigating.html
|
\nextpage creator-known-issues.html
|
||||||
\else
|
\ingroup creator-how-to-ui
|
||||||
\previouspage creator-modes.html
|
|
||||||
\endif
|
|
||||||
\nextpage creator-views.html
|
|
||||||
|
|
||||||
|
\title Show and hide sidebars
|
||||||
|
|
||||||
\title Working with Sidebars
|
In some \l{Switch between modes}{modes}, you can use a left and right
|
||||||
|
sidebar to organize different views into project contents. Only views
|
||||||
|
that are relevant to the mode you are working in are available in it.
|
||||||
|
|
||||||
In the \uicontrol Edit mode, you can use a left and right sidebar to
|
Select views in the sidebar menu (1):
|
||||||
organize different views into project contents. Only views that are
|
|
||||||
relevant to the \l{Selecting Modes}{mode} you are working in are
|
|
||||||
available in it.
|
|
||||||
|
|
||||||
You can select views in the sidebar menu (1):
|
|
||||||
|
|
||||||
\image qtcreator-sidebar.png
|
\image qtcreator-sidebar.png
|
||||||
|
|
||||||
@@ -27,8 +22,8 @@
|
|||||||
\list
|
\list
|
||||||
\li To toggle the left sidebar, click \inlineimage icons/leftsidebaricon.png
|
\li To toggle the left sidebar, click \inlineimage icons/leftsidebaricon.png
|
||||||
(\uicontrol {Hide Left Sidebar/Show Left Sidebar}) or press
|
(\uicontrol {Hide Left Sidebar/Show Left Sidebar}) or press
|
||||||
\key Alt+0 (\key Cmd+0 on \macos). To toggle the right
|
\key Alt+0 (\key Cmd+0 on \macos).
|
||||||
sidebar, click \inlineimage icons/rightsidebaricon.png
|
\li To toggle the right sidebar, click \inlineimage icons/rightsidebaricon.png
|
||||||
(\uicontrol {Hide Right Sidebar/Show Right Sidebar}) or press
|
(\uicontrol {Hide Right Sidebar/Show Right Sidebar}) or press
|
||||||
\key Alt+Shift+0 (\key Cmd+Shift+0 on \macos).
|
\key Alt+Shift+0 (\key Cmd+Shift+0 on \macos).
|
||||||
\li To split a sidebar, click \inlineimage icons/splitbutton_horizontal.png
|
\li To split a sidebar, click \inlineimage icons/splitbutton_horizontal.png
|
@@ -0,0 +1,75 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-switch-between-modes.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title Switch between modes
|
||||||
|
|
||||||
|
\e Modes let you quickly switch between tasks such as editing
|
||||||
|
project and source files, designing application UIs, configuring projects
|
||||||
|
for building and running, and debugging or analyzing source code.
|
||||||
|
|
||||||
|
To switch between modes:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Click the icons on the mode selector.
|
||||||
|
\li Use the \l{keyboard-shortcuts}{corresponding keyboard shortcut}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li {2,1} Mode
|
||||||
|
\li Keyboard Shortcut
|
||||||
|
\li Purpose
|
||||||
|
\li Read More
|
||||||
|
\row
|
||||||
|
\li {1,7} \inlineimage qtcreator-mode-selector.png
|
||||||
|
\row
|
||||||
|
\li \uicontrol Welcome
|
||||||
|
\li \key Ctrl+1
|
||||||
|
\li Open projects, tutorials, and examples.
|
||||||
|
\li \l{User Interface}
|
||||||
|
\row
|
||||||
|
\li \uicontrol Edit
|
||||||
|
\li \key Ctrl+2
|
||||||
|
\li Edit project and source files.
|
||||||
|
\li \l{Working in Edit Mode}
|
||||||
|
\row
|
||||||
|
\li \uicontrol Design
|
||||||
|
\li \key Ctrl+3
|
||||||
|
\li Design and develop application user interfaces.
|
||||||
|
This mode is available for UI files.
|
||||||
|
\li \l{Designing User Interfaces}
|
||||||
|
\row
|
||||||
|
\li \uicontrol Debug
|
||||||
|
\li \key Ctrl+4
|
||||||
|
\li Inspect the state of your application while debugging or use code
|
||||||
|
analysis tools to detect memory leaks and profile code.
|
||||||
|
\li \l{Debugging}
|
||||||
|
\row
|
||||||
|
\li \uicontrol Projects
|
||||||
|
\li \key Ctrl+5
|
||||||
|
\li Configure how to build and run projects.
|
||||||
|
This mode is available when a project is open.
|
||||||
|
\li \l{Specifying Build Settings}
|
||||||
|
\row
|
||||||
|
\li \uicontrol Help
|
||||||
|
\li \key Ctrl+6
|
||||||
|
\li Read documentation.
|
||||||
|
\li \l{Using the Help Mode}
|
||||||
|
\endtable
|
||||||
|
|
||||||
|
Some actions in \QC trigger a mode change. For example,
|
||||||
|
selecting \uicontrol {Debug} > \uicontrol {Start Debugging} >
|
||||||
|
\uicontrol {Start Debugging of Startup Project} automatically
|
||||||
|
switches to \uicontrol {Debug} mode.
|
||||||
|
|
||||||
|
To hide the mode selector and to save space on the display, select
|
||||||
|
\uicontrol View > \uicontrol {Mode Selector Style} > \uicontrol Hidden.
|
||||||
|
To only show icons on the mode selector, select the \uicontrol {Icons Only}
|
||||||
|
style.
|
||||||
|
*/
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
\title Projects
|
\title Projects
|
||||||
|
|
||||||
The \uicontrol Projects view displays projects in a project tree.
|
The \uicontrol Projects view displays projects in a project tree.
|
||||||
|
|
||||||
The project tree has a list of all projects open in the current
|
The project tree has a list of all projects open in the current
|
||||||
\l{Managing Sessions}{session}. For each project, the tree visualizes
|
\l{Managing Sessions}{session}. For each project, the tree visualizes
|
||||||
the build system structure of the project and lists all files that
|
the build system structure of the project and lists all files that
|
||||||
@@ -23,12 +24,9 @@
|
|||||||
or almost anything else in your project.
|
or almost anything else in your project.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
The following image displays the \uicontrol Projects view in the
|
\image qtcreator-projects-view-design.png {Projects view}
|
||||||
\uicontrol Design mode:
|
|
||||||
|
|
||||||
\image qtcreator-projects-view-design.png "Projects view in the Design mode"
|
|
||||||
\else
|
\else
|
||||||
\image qtcreator-projects-view-edit.png "Projects view in the sidebar"
|
\image qtcreator-projects-view-edit.png {Projects view in the sidebar}
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
You can use the project tree in the following ways:
|
You can use the project tree in the following ways:
|
||||||
@@ -37,8 +35,11 @@
|
|||||||
\li To open files that belong to a \l{Creating Projects}{project},
|
\li To open files that belong to a \l{Creating Projects}{project},
|
||||||
double-click them in the project tree. Files open in the
|
double-click them in the project tree. Files open in the
|
||||||
appropriate editor, according to the file type. For example, code
|
appropriate editor, according to the file type. For example, code
|
||||||
source files open in the code editor. Use the \l{Selecting Modes}
|
source files open in the code editor.
|
||||||
{mode selector} to open the current file in another editor.
|
\if defined(qtcreator)
|
||||||
|
Use the \l{Switch between modes} {mode selector} to open the current
|
||||||
|
file in another editor.
|
||||||
|
\endif
|
||||||
\li To bring up a \l{Projects View Context Menu}{context menu}
|
\li To bring up a \l{Projects View Context Menu}{context menu}
|
||||||
that has the actions most commonly needed, right-click an
|
that has the actions most commonly needed, right-click an
|
||||||
item in the project tree. For example, through the menu of
|
item in the project tree. For example, through the menu of
|
||||||
@@ -51,6 +52,9 @@
|
|||||||
configuration files.
|
configuration files.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
\note If you cannot see a file in the \l Projects view, switch to the
|
||||||
|
\uicontrol {File System} view, which shows all the files in the file system.
|
||||||
|
|
||||||
\section1 Projects View Context Menu
|
\section1 Projects View Context Menu
|
||||||
|
|
||||||
The \uicontrol Projects view has context menus for managing projects,
|
The \uicontrol Projects view has context menus for managing projects,
|
||||||
@@ -58,8 +62,10 @@
|
|||||||
projects and subprojects:
|
projects and subprojects:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\if defined(qtcreator)
|
||||||
\li Set a project as the active project.
|
\li Set a project as the active project.
|
||||||
\li Execute the \uicontrol Build menu commands.
|
\endif
|
||||||
|
\li Execute \uicontrol Build menu commands.
|
||||||
\li Create new files. For more information, see
|
\li Create new files. For more information, see
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\l{Adding Files to Projects}.
|
\l{Adding Files to Projects}.
|
||||||
@@ -106,18 +112,10 @@
|
|||||||
the \l {File System} view. To view a project in it, select
|
the \l {File System} view. To view a project in it, select
|
||||||
\uicontrol {Show in File System View}.
|
\uicontrol {Show in File System View}.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
\section1 Projects View Toolbar
|
\section1 Projects View Toolbar
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
In the \uicontrol Edit and \uicontrol Debug mode, the
|
|
||||||
\l{Working with Sidebars}{sidebar} has the \uicontrol Projects
|
|
||||||
view. It has a toolbar with additional options.
|
|
||||||
|
|
||||||
\image qtcreator-projects-view-edit.png "Projects view in the sidebar"
|
|
||||||
\else
|
|
||||||
The toolbar in the \uicontrol Projects view has additional options.
|
The toolbar in the \uicontrol Projects view has additional options.
|
||||||
\endif
|
|
||||||
|
|
||||||
|
|
||||||
To filter view contents, select \inlineimage icons/filtericon.png
|
To filter view contents, select \inlineimage icons/filtericon.png
|
||||||
(\uicontrol {Filter Tree}):
|
(\uicontrol {Filter Tree}):
|
||||||
@@ -140,7 +138,6 @@
|
|||||||
currently opened in the editor, deselect \inlineimage icons/linkicon.png
|
currently opened in the editor, deselect \inlineimage icons/linkicon.png
|
||||||
(\uicontrol {Synchronize with Editor}).
|
(\uicontrol {Synchronize with Editor}).
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
Some build systems support adding and removing files to a project in \QC
|
Some build systems support adding and removing files to a project in \QC
|
||||||
(currently qmake and Qbs). The faithful display of the project structure
|
(currently qmake and Qbs). The faithful display of the project structure
|
||||||
enables you to specify exactly where to place a new file in the build system.
|
enables you to specify exactly where to place a new file in the build system.
|
||||||
@@ -152,8 +149,5 @@
|
|||||||
from the version control system in brackets after the project name.
|
from the version control system in brackets after the project name.
|
||||||
\QC currently implements this for Git (the view displays the branch name
|
\QC currently implements this for Git (the view displays the branch name
|
||||||
or a tag) and ClearCase (the view displays the branch name).
|
or a tag) and ClearCase (the view displays the branch name).
|
||||||
\else
|
|
||||||
If the project is under Git version control, you can see the currently
|
|
||||||
checked out branch or tag in brackets after the project name.
|
|
||||||
\endif
|
\endif
|
||||||
*/
|
*/
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2022 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -11,109 +11,95 @@
|
|||||||
\page creator-quick-tour.html
|
\page creator-quick-tour.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage {Tutorials}
|
\previouspage {Tutorials}
|
||||||
|
\nextpage creator-using-qt-quick-designer.html
|
||||||
\else
|
\else
|
||||||
\previouspage creator-overview.html
|
\previouspage creator-overview.html
|
||||||
|
\nextpage creator-views.html
|
||||||
\endif
|
\endif
|
||||||
\nextpage creator-modes.html
|
|
||||||
|
|
||||||
\title User Interface
|
\title User Interface
|
||||||
|
|
||||||
When you start \QC, it opens to the \uicontrol Welcome mode, where you can:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\li Open recent sessions
|
When you start \QC, it opens to the \uicontrol Welcome mode.
|
||||||
\endif
|
|
||||||
|
|
||||||
\li Open recent projects
|
\image qtcreator-breakdown.png {Welcome mode}
|
||||||
|
|
||||||
\li Create and open projects
|
\table
|
||||||
|
\header
|
||||||
|
\li Number
|
||||||
|
\li UI Control
|
||||||
|
\li Purpose
|
||||||
|
\li Read More
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/01.png
|
||||||
|
\li Mode selector
|
||||||
|
\li Perform a particular task, such as designing the UI, writing code, or
|
||||||
|
debugging the application.
|
||||||
|
\li \l{Switch between modes}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/02.png
|
||||||
|
\li Kit selector
|
||||||
|
\li Select the appropriate \l{glossary-buildandrun-kit}{kit} for building
|
||||||
|
the project and running it on particular hardware.
|
||||||
|
\li \l{Activating Kits for a Project}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/03.png
|
||||||
|
\li Run button
|
||||||
|
\li Run the application on the selected target platform.
|
||||||
|
\li \l{Running on Multiple Platforms}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/04.png
|
||||||
|
\li Debug button
|
||||||
|
\li Debug the application on the selected target platform.
|
||||||
|
\li \l{Debugging}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/05.png
|
||||||
|
\li Build button
|
||||||
|
\li Build the application using the selected kit.
|
||||||
|
\li \l{Building for Multiple Platforms}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/06.png
|
||||||
|
\li Locator
|
||||||
|
\li Find a particular project, file, class, or function.
|
||||||
|
\li \l{Searching with the Locator}
|
||||||
|
\row
|
||||||
|
\li \inlineimage numbers/07.png
|
||||||
|
\li Output
|
||||||
|
\li View output from building, running, and other actions.
|
||||||
|
\li \l{Viewing Output}
|
||||||
|
\endtable
|
||||||
|
|
||||||
\li Open tutorials and example projects
|
To see where the above controls are in the UI, select
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li Browse Qt extensions in the \l{https://marketplace.qt.io/}
|
|
||||||
{Qt Marketplace}
|
|
||||||
\li Download the Qt Installer
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li Read news from the online community and Qt blogs
|
|
||||||
|
|
||||||
\li Create or manage a Qt Account
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\image qtcreator-breakdown.png
|
|
||||||
\else
|
|
||||||
\image studio-welcome-mode.png
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
Do you want to perform a particular task, such as designing the UI,
|
|
||||||
writing code, or debugging the application? Select the appropriate mode in
|
|
||||||
the \l{Selecting Modes}{mode selector} (1).
|
|
||||||
|
|
||||||
Are you ready to build the application for particular hardware or (5)
|
|
||||||
run (3) or debug (4) it on a device? Use the kit selector (2) to select
|
|
||||||
the appropriate \l{glossary-buildandrun-kit}{kit}. The task bar (7)
|
|
||||||
displays output from these actions.
|
|
||||||
|
|
||||||
Are you looking for a particular project, file, class, or function?
|
|
||||||
Start typing its name in the \l{Searching with the Locator}{locator} (6).
|
|
||||||
|
|
||||||
To see where the above controls are in the user interface, select
|
|
||||||
\uicontrol Help > \uicontrol {UI Tour}.
|
\uicontrol Help > \uicontrol {UI Tour}.
|
||||||
|
|
||||||
The following sections describe some \QC controls in more detail:
|
The following video shows the parts of the UI and the \uicontrol Welcome
|
||||||
|
mode:
|
||||||
|
|
||||||
\list
|
\youtube hOx3dod5-1A
|
||||||
\li \l{Selecting Modes}{Mode selector}
|
|
||||||
\li \l{Working with Sidebars}{Sidebars}
|
|
||||||
\li \l{Browsing Project Contents}{Views}
|
|
||||||
\li \l{Viewing Output}{Output}
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\else
|
|
||||||
You can use the \l{Selecting Modes}{mode selector} to switch to the
|
|
||||||
\l{Design Views}{Design mode} (1), where you will do
|
|
||||||
most of your work and the \l{Using the Help Mode}{Help} (2) mode, where
|
|
||||||
you can read the product documentation. The other modes are for more
|
|
||||||
advanced use, and you are likely to need them less often.
|
|
||||||
|
|
||||||
Below the mode selector, you can find shortcuts to some more advanced
|
|
||||||
functions, such as running the application or finding problems in the
|
|
||||||
QML code by debugging or profiling it.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\section1 What's New?
|
\section1 What's New?
|
||||||
|
|
||||||
For information about new features and bug fixes in each \QC release,
|
For information about new features and bug fixes in each \QC release,
|
||||||
select \uicontrol Help > \uicontrol {Change Log}.
|
select \uicontrol Help > \uicontrol {Change Log}.
|
||||||
|
|
||||||
\section1 For \macos Users
|
\sa {Show and hide sidebars}, {Browsing Project Contents}
|
||||||
|
\sa {Use the UI}{How-to: Use the UI}
|
||||||
|
|
||||||
\QC uses standard names and locations for standard features, such as
|
\else
|
||||||
\e preferences. In this manual, the names and locations on
|
|
||||||
Windows and Linux are usually used to keep the instructions short. Here are
|
|
||||||
some places to check if you cannot find a function, dialog, or keyboard
|
|
||||||
shortcut on \macos when following the instructions:
|
|
||||||
|
|
||||||
\table
|
When you start \QC, it opens to the \uicontrol Welcome mode, where you can:
|
||||||
\header
|
|
||||||
\li For
|
\list
|
||||||
\li Look In
|
\li Open recent projects
|
||||||
\row
|
\li Create and open projects
|
||||||
\li \uicontrol Edit > \uicontrol Preferences
|
\li Open tutorials and example projects
|
||||||
\li \uicontrol {\QC} > \uicontrol Preferences
|
\li Read news from the online community and Qt blogs
|
||||||
\row
|
\li Create or manage a Qt Account
|
||||||
\li \uicontrol Help > \uicontrol {About Plugins}
|
\endlist
|
||||||
\li \uicontrol {\QC} > \uicontrol {About Plugins}
|
|
||||||
\row
|
\image studio-welcome-mode.webp {Welcome mode}
|
||||||
\li Keyboard shortcuts
|
|
||||||
\li \uicontrol {\QC} > \uicontrol Preferences > \uicontrol Environment >
|
\endif
|
||||||
\uicontrol Keyboard
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\section1 Customizing the Menu
|
\section1 Customizing the Menu
|
||||||
@@ -134,227 +120,25 @@
|
|||||||
|
|
||||||
You need to restart \QDS to apply changes made to these settings.
|
You need to restart \QDS to apply changes made to these settings.
|
||||||
|
|
||||||
\endif
|
\section1 Customizing the UI
|
||||||
|
|
||||||
\section1 Switching UI Themes
|
The following topics describe how to customize the UI:
|
||||||
|
|
||||||
Themes enable you to change the appearance of the UI from dark to light,
|
|
||||||
for example. To switch themes, select \uicontrol Edit > \uicontrol Preferences
|
|
||||||
> \uicontrol Environment, and then select a theme in the \uicontrol Theme
|
|
||||||
field.
|
|
||||||
|
|
||||||
\image qtcreator-preferences-environment-interface.webp {Interface preferences}
|
|
||||||
|
|
||||||
\section1 Changing Languages
|
|
||||||
|
|
||||||
\QC has several language versions. If the system language
|
|
||||||
is one of the supported languages, \QC selects it automatically. To
|
|
||||||
change the language, select \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol Environment and select a language in the \uicontrol Language
|
|
||||||
field. Select \uicontrol {Restart Now} to restart \QC and have the change
|
|
||||||
take effect.
|
|
||||||
|
|
||||||
\section1 High DPI Scaling
|
|
||||||
|
|
||||||
The operating systems that \QC supports implement high dots-per-inch (DPI)
|
|
||||||
scaling at varying levels. Therefore, \QC handles high DPI scaling
|
|
||||||
differently on different operating systems:
|
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li On \macos, \QC forces high DPI scaling, which means that it allows
|
\li \l {Find menu items on \macos}
|
||||||
Qt to use the system scaling factor as the \QC scaling factor.
|
\li \l {Set high DPI scaling}
|
||||||
\li On Windows, if you do not set \l{High DPI}
|
\li \l {Switch UI themes}
|
||||||
{scaling environment variables}, \QC instructs Qt to detect the
|
|
||||||
scaling factor and use it as the \QC scaling factor.
|
|
||||||
\li On Linux, \QC leaves it to the user to enable high DPI scaling
|
|
||||||
because the process varies so much on different distributions
|
|
||||||
and windowing systems that it cannot be reliably done automatically.
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
To override the default approach and always enable high-DPI scaling, select
|
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
|
||||||
\uicontrol {Enable high DPI scaling}. The changes will take effect after you
|
|
||||||
restart \QC.
|
|
||||||
|
|
||||||
\section1 Navigating with Keyboard
|
|
||||||
|
|
||||||
\QC caters not only to those users who like to use the mouse, but also
|
|
||||||
to those who are more comfortable with the keyboard. A wide range of
|
|
||||||
\l{keyboard-shortcuts}{keyboard} and \l{Searching with the Locator}
|
|
||||||
{navigation} shortcuts are available to help you work faster.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\section1 Useful Features
|
|
||||||
|
|
||||||
For a list of useful \QC features described in other parts of the
|
|
||||||
documentation, see \l{How-tos}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\section1 Viewing Images
|
\section1 Viewing Images
|
||||||
|
|
||||||
\QC opens image files in the image viewer.
|
The following topics describe how to use the image viewer:
|
||||||
|
|
||||||
\image qtcreator-image-viewer.png "Image viewer"
|
|
||||||
|
|
||||||
Use the toolbar buttons or \l{Keyboard Shortcuts}{keyboard shortcuts} to:
|
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \inlineimage icons/export.png
|
\li \l {Export SVG images}
|
||||||
- Export SVG images to pixmaps or copy an image as a data URL, which
|
\li \l {View images}
|
||||||
enables you to include it in web pages as if it were an external
|
|
||||||
resource
|
|
||||||
\li \inlineimage icons/original-size.png
|
|
||||||
- Return images to their original size
|
|
||||||
\li \inlineimage icons/zoom-in.png
|
|
||||||
- Zoom in and out (\inlineimage icons/zoom-out.png
|
|
||||||
)
|
|
||||||
\li \inlineimage icons/run_small.png
|
|
||||||
- Play and pause animated GIF and MNG images
|
|
||||||
\li \inlineimage icons/qtcreator-desktopdevice-button.png
|
|
||||||
- Show and hide the image background
|
|
||||||
\li \inlineimage icons/switch-outline.png
|
|
||||||
- Show and hide the image outline
|
|
||||||
\li \inlineimage icons/fittoview.png
|
|
||||||
- Fit images to screen
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Select \uicontrol {Set as Default} to use the current settings for the
|
|
||||||
background and outline modes and fitting images to screen as default
|
|
||||||
values for the image viewer.
|
|
||||||
|
|
||||||
\section2 Exporting SVG Images
|
|
||||||
|
|
||||||
If you have a freely scalable icon in the SVG format,
|
|
||||||
you can export it to several images of different sizes to create a set of
|
|
||||||
pixmaps.
|
|
||||||
\if defined(qtcreator)
|
|
||||||
You can then use QIcon::addPixmap() to add the pixmaps to icons in
|
|
||||||
different modes and states.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\section1 Location of Settings Files
|
|
||||||
|
|
||||||
\QC creates the following files and directories:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li QtCreator.db
|
|
||||||
|
|
||||||
\li QtCreator.ini
|
|
||||||
|
|
||||||
\li qtversion.xml
|
|
||||||
|
|
||||||
\li toolChains.xml
|
|
||||||
|
|
||||||
\li qtcreator
|
|
||||||
|
|
||||||
\li qtc-qmldump
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
The location of the above files and directories depends on the platform:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li On Linux and other Unix platforms, look in
|
|
||||||
\c {~/.config/QtProject} and
|
|
||||||
\c {~/.local/share/data/QtProject/qtcreator}.
|
|
||||||
|
|
||||||
\li On \macos, look in \c {~/.config/QtProject} and
|
|
||||||
\c {~/Library/Application Support/QtProject/Qt Creator}.
|
|
||||||
|
|
||||||
\li On Windows, look in
|
|
||||||
\c {%appdata%\QtProject} and \c {%localappdata%\QtProject}.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
\endif
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\page creator-modes.html
|
|
||||||
\previouspage creator-quick-tour.html
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\nextpage creator-using-qt-quick-designer.html
|
|
||||||
\else
|
|
||||||
\nextpage creator-sidebars.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Selecting Modes
|
|
||||||
|
|
||||||
\image qtcreator-mode-selector.png
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
The mode selector allows you to quickly switch between tasks such as editing
|
|
||||||
project and source files, designing application UIs, configuring projects for
|
|
||||||
building and running, and debugging your applications. To change
|
|
||||||
modes, click the icons, or use the \l{keyboard-shortcuts}
|
|
||||||
{corresponding keyboard shortcut}.
|
|
||||||
|
|
||||||
To hide the mode selector and to save space on the display, select
|
|
||||||
\uicontrol View > \uicontrol {Mode Selector Style} > \uicontrol Hidden.
|
|
||||||
To only show icons on the mode selector, select the \uicontrol {Icons Only}
|
|
||||||
style.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
The mode selector is hidden by default.
|
|
||||||
|
|
||||||
To show the mode selector, go to \uicontrol Views >
|
|
||||||
\uicontrol {Mode Selector Style} and select \uicontrol {Icons and Text}
|
|
||||||
or \uicontrol {Icons Only}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
|
|
||||||
You can use \QC in the following modes:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li \uicontrol {\l{User Interface}{Welcome}} mode for opening projects,
|
|
||||||
tutorials, and examples.
|
|
||||||
|
|
||||||
\li \uicontrol{\l{Coding}{Edit}} mode for editing project and source
|
|
||||||
files.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol{\l{Designing User Interfaces}{Design}}
|
|
||||||
mode for designing and developing application user interfaces.
|
|
||||||
This mode is available for UI files.
|
|
||||||
\else
|
|
||||||
\li \uicontrol{\l{Design Views}{Design}}
|
|
||||||
mode for designing and developing application user interfaces.
|
|
||||||
As a designer, you'll do most of your work in this mode.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol{\l{Debugging}{Debug}}
|
|
||||||
\else
|
|
||||||
\li \uicontrol {\l{Debugging and Profiling}{Debug}}
|
|
||||||
\endif
|
|
||||||
mode for inspecting the state of your
|
|
||||||
application while debugging and for using code analysis tools
|
|
||||||
to detect memory leaks and profile code.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol{\l{Specifying Build Settings}{Projects}} mode
|
|
||||||
for configuring project building and execution.
|
|
||||||
\else
|
|
||||||
\li \uicontrol{\l{Selecting the Preview Tool}{Projects}} mode
|
|
||||||
for selecting the tool to use for live preview.
|
|
||||||
\endif
|
|
||||||
This mode is available when a project is open.
|
|
||||||
|
|
||||||
\li \uicontrol{\l{Using the Help Mode}{Help}} mode for viewing
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
Certain actions in \QC trigger a mode change. Clicking on \uicontrol {Debug} >
|
|
||||||
\uicontrol {Start Debugging} > \uicontrol {Start Debugging} automatically switches to
|
|
||||||
\uicontrol {Debug} mode.
|
|
||||||
\endif
|
\endif
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -370,9 +154,9 @@
|
|||||||
|
|
||||||
\title Viewing Output
|
\title Viewing Output
|
||||||
|
|
||||||
\image qtcreator-general-messages.png "General Messages"
|
\image qtcreator-general-messages.webp {General Messages}
|
||||||
|
|
||||||
The taskbar in \QC can display following types of output:
|
You can view the following types of output:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
@@ -410,7 +194,12 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Output is available on the taskbar in all \l{Selecting Modes}{modes}.
|
Output is available on the taskbar in all
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\l{Switch between modes}{modes}.
|
||||||
|
\else
|
||||||
|
\l{Mode}{modes}.
|
||||||
|
\endif
|
||||||
|
|
||||||
\image qtcreator-output-panes-taskbar.webp "Output on the taskbar"
|
\image qtcreator-output-panes-taskbar.webp "Output on the taskbar"
|
||||||
|
|
||||||
@@ -575,7 +364,7 @@
|
|||||||
In \uicontrol{Search Results}, you can search through projects, files on
|
In \uicontrol{Search Results}, you can search through projects, files on
|
||||||
a file system or the currently open files:
|
a file system or the currently open files:
|
||||||
|
|
||||||
\image qtcreator-search-results.png "Search Results"
|
\image qtcreator-search-results.webp {Search Results - criteria}
|
||||||
|
|
||||||
The search history (1) stores the search results. You can select earlier
|
The search history (1) stores the search results. You can select earlier
|
||||||
searches from the history.
|
searches from the history.
|
||||||
@@ -583,7 +372,7 @@
|
|||||||
The figure below shows an example search result for all
|
The figure below shows an example search result for all
|
||||||
occurrences of the search string in the specified directory.
|
occurrences of the search string in the specified directory.
|
||||||
|
|
||||||
\image qtcreator-searchresults.png
|
\image qtcreator-search-results-matches.webp {Search Results - matches found}
|
||||||
|
|
||||||
For more information about the different search options, see
|
For more information about the different search options, see
|
||||||
\l {Finding and Replacing}.
|
\l {Finding and Replacing}.
|
||||||
@@ -593,7 +382,7 @@
|
|||||||
\uicontrol{Application Output} displays the status of a program when
|
\uicontrol{Application Output} displays the status of a program when
|
||||||
you execute it, and the debug output.
|
you execute it, and the debug output.
|
||||||
|
|
||||||
\image qtcreator-application-output.png
|
\image qtcreator-application-output.webp {Application Output}
|
||||||
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
If you specify command line arguments in the run settings that are passed
|
If you specify command line arguments in the run settings that are passed
|
||||||
@@ -619,7 +408,7 @@
|
|||||||
The \uicontrol{Compile Output} is a more detailed version of information
|
The \uicontrol{Compile Output} is a more detailed version of information
|
||||||
displayed in \l Issues.
|
displayed in \l Issues.
|
||||||
|
|
||||||
\image qtcreator-compile-output.png "Compile Output"
|
\image qtcreator-compile-output.webp {Compile Output}
|
||||||
|
|
||||||
Double-click on a file name in an error message to open the file in the
|
Double-click on a file name in an error message to open the file in the
|
||||||
code editor.
|
code editor.
|
||||||
@@ -770,13 +559,13 @@
|
|||||||
subproject. Click the icons on the toolbar to show only the selected
|
subproject. Click the icons on the toolbar to show only the selected
|
||||||
keywords.
|
keywords.
|
||||||
|
|
||||||
\image qtcreator-todo-pane.png
|
\image qtcreator-to-do-entries.webp {To-Do Entries}
|
||||||
|
|
||||||
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
|
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
|
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
|
||||||
for the keyword.
|
for the keyword.
|
||||||
|
|
||||||
\image qtcreator-todo-options.png "To-Do preferences"
|
\image qtcreator-todo-options.png {To-Do preferences}
|
||||||
|
|
||||||
To change the icon and line background color of the selected keyword, select
|
To change the icon and line background color of the selected keyword, select
|
||||||
\uicontrol Edit.
|
\uicontrol Edit.
|
||||||
@@ -793,7 +582,7 @@
|
|||||||
To exclude files from scanning, select \uicontrol {Project Settings} >
|
To exclude files from scanning, select \uicontrol {Project Settings} >
|
||||||
\uicontrol {To-Do} in the \uicontrol Projects mode.
|
\uicontrol {To-Do} in the \uicontrol Projects mode.
|
||||||
|
|
||||||
\image qtcreator-todo-excluded-files.png "Excluded Files in To-Do preferences"
|
\image qtcreator-todo-excluded-files.png {Excluded Files in To-Do preferences}
|
||||||
|
|
||||||
Select \uicontrol Add and double-click the placeholder text in
|
Select \uicontrol Add and double-click the placeholder text in
|
||||||
\uicontrol {Exclude Files} to enter a regular expression that
|
\uicontrol {Exclude Files} to enter a regular expression that
|
||||||
|
@@ -1,26 +1,25 @@
|
|||||||
// Copyright (C) 2021 The Qt Company Ltd.
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-views.html
|
\page creator-views.html
|
||||||
\previouspage creator-sidebars.html
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-coding-navigating.html
|
||||||
\nextpage creator-output-panes.html
|
\nextpage creator-output-panes.html
|
||||||
\else
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\nextpage creator-projects-view.html
|
\nextpage creator-projects-view.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Browsing Project Contents
|
\title Browsing Project Contents
|
||||||
|
|
||||||
You can organize \QC views in \l {Working with Sidebars}{sidebars} or as
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\l {Managing Workspaces}{workspaces},
|
You can organize \QDS views as \l {Managing Workspaces}{workspaces}.
|
||||||
\else
|
\else
|
||||||
workspaces
|
You can organize \QC views in \l {Show and hide sidebars}{sidebars} or as
|
||||||
|
workspaces, depending on the \l{Switch between modes}{mode} you are working
|
||||||
|
in. Only views that are relevant to a mode are available in it.
|
||||||
\endif
|
\endif
|
||||||
depending on the \l{Selecting Modes}
|
|
||||||
{mode} you are working in. Only views that are relevant to a mode are
|
|
||||||
available in it.
|
|
||||||
|
|
||||||
\note Usually, \l{Searching with the Locator}{searching with the locator}
|
\note Usually, \l{Searching with the Locator}{searching with the locator}
|
||||||
is the fastest way to find a particular project, file, class, or function,
|
is the fastest way to find a particular project, file, class, or function,
|
||||||
|
@@ -24,6 +24,11 @@
|
|||||||
Generally, the integrated \QD has the same functions as the standalone
|
Generally, the integrated \QD has the same functions as the standalone
|
||||||
\QD. The following sections describe the differences.
|
\QD. The following sections describe the differences.
|
||||||
|
|
||||||
|
The following video shows how to use the integrated \QD to create a small Qt
|
||||||
|
Widgets-based application:
|
||||||
|
|
||||||
|
\youtube LnVjI0I7cKs
|
||||||
|
|
||||||
\section1 Code Editor Integration
|
\section1 Code Editor Integration
|
||||||
|
|
||||||
To switch between forms (\uicontrol Design mode) and code (\uicontrol Edit mode),
|
To switch between forms (\uicontrol Design mode) and code (\uicontrol Edit mode),
|
||||||
|
@@ -645,6 +645,74 @@
|
|||||||
executed code, and even then prefer Utils::HostInfo over #ifdefs.
|
executed code, and even then prefer Utils::HostInfo over #ifdefs.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
\section2 Plugin Dependencies
|
||||||
|
|
||||||
|
To keep Qt Creator scalable we aim at keeping hard run-time dependencies
|
||||||
|
between plugins and to external libraries as few as reasonably possible.
|
||||||
|
|
||||||
|
There are several techniques for that.
|
||||||
|
|
||||||
|
\section2 Extending Base Plugin Functionality by Callbacks
|
||||||
|
|
||||||
|
This pattern allows leaf plugins to provide additional functionality
|
||||||
|
to a central plugin by injecting a callback.
|
||||||
|
|
||||||
|
It is used for functionality that is helpful in some setups but not
|
||||||
|
applicable or considered intrusive (e.g. because of size or external
|
||||||
|
dependencies) in others, so that users may want to enable or disable
|
||||||
|
it without impacting the rest of their setup.
|
||||||
|
|
||||||
|
The leaf plugin can then for example depend on a large (or otherwise
|
||||||
|
inconvenient) external dependency without imposing this dependency on
|
||||||
|
the central plugin.
|
||||||
|
|
||||||
|
The overall pattern looks like:
|
||||||
|
|
||||||
|
\list
|
||||||
|
|
||||||
|
\li In \c centralplugin/somewhere.h
|
||||||
|
|
||||||
|
\code
|
||||||
|
std::function<void(...)> &fancyLeafCallback();
|
||||||
|
|
||||||
|
void possiblyFancyOperation();
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\li In \c centralplugin/somewhere.cpp
|
||||||
|
|
||||||
|
\code
|
||||||
|
std::function<void(...)> &fancyLeafCallback()
|
||||||
|
{
|
||||||
|
static std::function<void(...)> callback;
|
||||||
|
return callback;
|
||||||
|
}
|
||||||
|
...
|
||||||
|
|
||||||
|
void possiblyFancyOperation()
|
||||||
|
{
|
||||||
|
if (auto callback = fancyLeafCallback()) {
|
||||||
|
// can be used
|
||||||
|
callback();
|
||||||
|
} else {
|
||||||
|
// not present, use some plain fallback implementation
|
||||||
|
// or error out
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\li In \c leafplugin/leafplugin.cpp:
|
||||||
|
|
||||||
|
\code
|
||||||
|
void LeafPlugininitialize()
|
||||||
|
{
|
||||||
|
...
|
||||||
|
Central::fancyLeafCallback() = [this](...) { doSomething; };
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
\section2 Plugin Extension Points
|
\section2 Plugin Extension Points
|
||||||
|
|
||||||
|
@@ -87,19 +87,75 @@
|
|||||||
element. You can also add descriptive text to the UI that is always
|
element. You can also add descriptive text to the UI that is always
|
||||||
visible.
|
visible.
|
||||||
|
|
||||||
|
Consider adding tooltips for all UI elements that are not obvious from
|
||||||
|
the context. The tooltips should help users understand what the UI controls
|
||||||
|
do, so try to make them as clear as possible, even if they get a bit long.
|
||||||
|
|
||||||
|
\section3 Tooltips for Icons
|
||||||
|
|
||||||
For an icon, you can use the command name as a tool tip. In that
|
For an icon, you can use the command name as a tool tip. In that
|
||||||
case, use book style capitalization and do not add a period after the tool
|
case, use book style capitalization and do not add a period after the tool
|
||||||
tip.
|
tip.
|
||||||
|
|
||||||
\image qtcreator-tooltip.png {Tooltip}
|
\image qtcreator-tooltip.png {Tooltip}
|
||||||
|
|
||||||
Tooltips can also contain full sentences. Try to make them as short and
|
\section3 Other Tooltips
|
||||||
concise as possible, while still making them grammatically correct. Use
|
|
||||||
sentence style capitalization and punctuation as you would for any
|
Tooltips can also contain full sentences.
|
||||||
sentence.
|
|
||||||
|
|
||||||
\image qtcreator-tooltip-long.png {Sentence as a tooltip}
|
\image qtcreator-tooltip-long.png {Sentence as a tooltip}
|
||||||
|
|
||||||
|
Follow these guidelines:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Write useful tooltips, but keep them as short and concise as
|
||||||
|
possible.
|
||||||
|
\li To help people who localize and people for whom English is a second
|
||||||
|
language, make tooltips as grammatically clear as possible. Use the
|
||||||
|
articles a, an, and the, prepositions, such as of, and demonstrative
|
||||||
|
pronouns, such as this and that, wherever possible.
|
||||||
|
\li Use sentence style capitalization and punctuation as you would for
|
||||||
|
any sentence.
|
||||||
|
\li For input fields, describe the value of the field. Tell users what
|
||||||
|
they can enter in the field, such as a name or a path, unless it is
|
||||||
|
obvious from the context. Use a noun phrase, such as \e {The name of
|
||||||
|
the user account.} Describe limitations and special requirements.
|
||||||
|
\li For actions, such as most check boxes, radio buttons, push buttons,
|
||||||
|
and menu items, describe what happens when users select them. Use a
|
||||||
|
verb phrase, such as \e {Removes trailing whitespace upon saving.}
|
||||||
|
\li For combo boxes, describe when to pick each option.
|
||||||
|
\li Describe what the UI control does, not how to use it. If the control
|
||||||
|
does not work as users would expect it to, check your design, as you
|
||||||
|
most likely chose the wrong type of control.
|
||||||
|
\li Do not describe the default value or the minimum and maximum values,
|
||||||
|
as users can see them in the field.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section3 Examples
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li Control
|
||||||
|
\li Do
|
||||||
|
\li Don't
|
||||||
|
\row
|
||||||
|
\li Button - \uicontrol {Download Definitions}
|
||||||
|
\li Download missing and update existing syntax definition files.
|
||||||
|
\li You can select this button to download syntax definition files.
|
||||||
|
\row
|
||||||
|
\li Check box - \uicontrol {Clean whitespace}
|
||||||
|
\li Removes trailing whitespace upon saving.
|
||||||
|
\li Enable this check box to remove trailing whitespace upon saving.
|
||||||
|
\row
|
||||||
|
\li Combo box - \uicontrol Size
|
||||||
|
\li The font size used in the terminal (in points).
|
||||||
|
\li Use the up and down arrows to set the font size between 1 and 100.
|
||||||
|
\row
|
||||||
|
\li Field - \uicontrol {Shell arguments}
|
||||||
|
\li The arguments to be passed to the shell.
|
||||||
|
\li Sets the arguments to be passed to the shell.
|
||||||
|
\endtable
|
||||||
|
|
||||||
\section3 Writing Tooltips in Design Mode
|
\section3 Writing Tooltips in Design Mode
|
||||||
|
|
||||||
In Qt Designer, use plain text for tooltips. For extra formatting, write
|
In Qt Designer, use plain text for tooltips. For extra formatting, write
|
||||||
@@ -166,9 +222,11 @@
|
|||||||
|
|
||||||
\section3 Checking Book Style Capitalization
|
\section3 Checking Book Style Capitalization
|
||||||
|
|
||||||
You can use the to-title-case.js script in the \c{\doc\titlecase}
|
If necessary, use an online \l{https://titlecaseconverter.com/}
|
||||||
folder to check book style capitalization of UI text or headings in
|
{Title Case Converter} to check book style capitalization
|
||||||
documentation:
|
of UI text or headings in documentation.
|
||||||
|
|
||||||
|
Or, use the to-title-case.js script in the \c{\doc\titlecase} folder:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
|
@@ -54,6 +54,7 @@ excludedirs += ../../qtcreator/examples/accelbubble \
|
|||||||
../../qtcreator/src/python \
|
../../qtcreator/src/python \
|
||||||
../../qtcreator/src/qnx \
|
../../qtcreator/src/qnx \
|
||||||
../../qtcreator/src/qtquick/creator-only \
|
../../qtcreator/src/qtquick/creator-only \
|
||||||
|
../../qtcreator/src/user-interface/creator-only \
|
||||||
../../qtcreator/src/vcs/creator-only \
|
../../qtcreator/src/vcs/creator-only \
|
||||||
../../qtcreator/src/widgets \
|
../../qtcreator/src/widgets \
|
||||||
../../qtcreator/src/webassembly
|
../../qtcreator/src/webassembly
|
||||||
|
Before Width: | Height: | Size: 102 KiB |
BIN
doc/qtdesignstudio/images/studio-welcome-mode.webp
Normal file
After Width: | Height: | Size: 48 KiB |
@@ -151,12 +151,11 @@
|
|||||||
|
|
||||||
\image studio-design-mode.webp "Design mode"
|
\image studio-design-mode.webp "Design mode"
|
||||||
|
|
||||||
Read more about modes:
|
The mode selector is hidden by default.
|
||||||
|
|
||||||
\list
|
To show the mode selector, go to \uicontrol Views >
|
||||||
\li \l{Selecting Modes}
|
\uicontrol {Mode Selector Style} and select \uicontrol {Icons and Text}
|
||||||
\li \l{Design Views}
|
or \uicontrol {Icons Only}.
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section1 Project
|
\section1 Project
|
||||||
\target glossary-project
|
\target glossary-project
|
||||||
|
@@ -12,7 +12,6 @@
|
|||||||
\li \l{Tutorials}
|
\li \l{Tutorials}
|
||||||
\li \l{User Interface}
|
\li \l{User Interface}
|
||||||
\list
|
\list
|
||||||
\li \l{Selecting Modes}
|
|
||||||
\li \l{Design Views}
|
\li \l{Design Views}
|
||||||
\list
|
\list
|
||||||
\li \l{2D}
|
\li \l{2D}
|
||||||
@@ -203,7 +202,6 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{Working in Edit Mode}
|
\li \l{Working in Edit Mode}
|
||||||
\list
|
\list
|
||||||
\li \l{Working with Sidebars}
|
|
||||||
\li \l{Browsing Project Contents}
|
\li \l{Browsing Project Contents}
|
||||||
\li \l{Viewing Output}
|
\li \l{Viewing Output}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-using-qt-quick-designer.html
|
\page creator-using-qt-quick-designer.html
|
||||||
|
|
||||||
\previouspage creator-modes.html
|
\previouspage creator-quick-tour.html
|
||||||
\nextpage qtquick-form-editor.html
|
\nextpage qtquick-form-editor.html
|
||||||
|
|
||||||
\title Design Views
|
\title Design Views
|
||||||
|
@@ -1386,7 +1386,7 @@ class DumperBase():
|
|||||||
self.putExpandable()
|
self.putExpandable()
|
||||||
return
|
return
|
||||||
|
|
||||||
if DisplayFormat.Array10 <= displayFormat and displayFormat <= DisplayFormat.Array1000:
|
if DisplayFormat.Array10 <= displayFormat and displayFormat <= DisplayFormat.Array10000:
|
||||||
n = (10, 100, 1000, 10000)[displayFormat - DisplayFormat.Array10]
|
n = (10, 100, 1000, 10000)[displayFormat - DisplayFormat.Array10]
|
||||||
self.putType(typeName)
|
self.putType(typeName)
|
||||||
self.putItemCount(n)
|
self.putItemCount(n)
|
||||||
|
@@ -755,15 +755,15 @@ class Dumper(DumperBase):
|
|||||||
qtVersionAndNamespace = None
|
qtVersionAndNamespace = None
|
||||||
try:
|
try:
|
||||||
qtVersionAndNamespace = self.fetchQtVersionAndNamespace()
|
qtVersionAndNamespace = self.fetchQtVersionAndNamespace()
|
||||||
DumperBase.warn("Detected Qt Version: 0x%0x (namespace='%s')" %
|
self.report("Detected Qt Version: 0x%0x (namespace='%s')" %
|
||||||
(qtVersionAndNamespace[1], qtVersionAndNamespace[0] or "no namespace"))
|
(qtVersionAndNamespace[1], qtVersionAndNamespace[0] or "no namespace"))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
DumperBase.warn('[lldb] Error detecting Qt version: %s' % e)
|
DumperBase.warn('[lldb] Error detecting Qt version: %s' % e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.fetchInternalFunctions()
|
self.fetchInternalFunctions()
|
||||||
DumperBase.warn('Found function QObject::property: 0x%0x' % self.qtPropertyFunc)
|
self.report('Found function QObject::property: 0x%0x' % self.qtPropertyFunc)
|
||||||
DumperBase.warn('Found function QObject::customEvent: 0x%0x' % self.qtCustomEventFunc)
|
self.report('Found function QObject::customEvent: 0x%0x' % self.qtCustomEventFunc)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
DumperBase.warn('[lldb] Error fetching internal Qt functions: %s' % e)
|
DumperBase.warn('[lldb] Error fetching internal Qt functions: %s' % e)
|
||||||
|
|
||||||
|
@@ -38,6 +38,7 @@ if (LINK_INSIGHT)
|
|||||||
include(${CMAKE_CURRENT_SOURCE_DIR}/insight)
|
include(${CMAKE_CURRENT_SOURCE_DIR}/insight)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}App
|
install(TARGETS %{ProjectName}App
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
@@ -24,6 +24,7 @@ endif()
|
|||||||
|
|
||||||
target_link_libraries(%{ProjectName} PRIVATE Qt${QT_VERSION_MAJOR}::%{QtModule})
|
target_link_libraries(%{ProjectName} PRIVATE Qt${QT_VERSION_MAJOR}::%{QtModule})
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
@if %{MacOSBundle}
|
@if %{MacOSBundle}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
|
@@ -35,6 +35,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
@@ -4,6 +4,7 @@ project(%{ProjectName} LANGUAGES C)
|
|||||||
|
|
||||||
add_executable(%{ProjectName} %{CFileName})
|
add_executable(%{ProjectName} %{CFileName})
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
@@ -7,6 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||||||
|
|
||||||
add_executable(%{ProjectName} %{CppFileName})
|
add_executable(%{ProjectName} %{CppFileName})
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
@@ -39,6 +39,7 @@ target_link_libraries(%{TargetName}
|
|||||||
PRIVATE Qt6::Quick
|
PRIVATE Qt6::Quick
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{TargetName}
|
install(TARGETS %{TargetName}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
@@ -28,6 +28,7 @@ set_target_properties(%{TargetName} PROPERTIES
|
|||||||
target_link_libraries(%{TargetName}
|
target_link_libraries(%{TargetName}
|
||||||
PRIVATE Qt6::Quick)
|
PRIVATE Qt6::Quick)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{TargetName}
|
install(TARGETS %{TargetName}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
@@ -69,6 +69,7 @@ set_target_properties(%{ProjectName} PROPERTIES
|
|||||||
WIN32_EXECUTABLE TRUE
|
WIN32_EXECUTABLE TRUE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
@@ -72,6 +72,7 @@ set_target_properties(%{ProjectName} PROPERTIES
|
|||||||
WIN32_EXECUTABLE TRUE
|
WIN32_EXECUTABLE TRUE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
install(TARGETS %{ProjectName}
|
install(TARGETS %{ProjectName}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
@@ -2003,10 +2003,20 @@ bool Check::visit(TypeOfExpression *ast)
|
|||||||
/// ### Maybe put this into the context as a helper function.
|
/// ### Maybe put this into the context as a helper function.
|
||||||
const Value *Check::checkScopeObjectMember(const UiQualifiedId *id)
|
const Value *Check::checkScopeObjectMember(const UiQualifiedId *id)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!_importsOk)
|
if (!_importsOk)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
if (!id)
|
||||||
|
return nullptr; // ### error?
|
||||||
|
|
||||||
|
if (id->name.isEmpty()) // possible after error recovery
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
QString propertyName = id->name.toString();
|
||||||
|
|
||||||
|
if (propertyName == "id" && !id->next)
|
||||||
|
return nullptr; // ### should probably be a special value
|
||||||
|
|
||||||
QList<const ObjectValue *> scopeObjects = _scopeChain.qmlScopeObjects();
|
QList<const ObjectValue *> scopeObjects = _scopeChain.qmlScopeObjects();
|
||||||
if (scopeObjects.isEmpty())
|
if (scopeObjects.isEmpty())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@@ -2021,24 +2031,9 @@ const Value *Check::checkScopeObjectMember(const UiQualifiedId *id)
|
|||||||
return isAttachedProperty;
|
return isAttachedProperty;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
if (! id)
|
|
||||||
return nullptr; // ### error?
|
|
||||||
|
|
||||||
if (id->name.isEmpty()) // possible after error recovery
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
QString propertyName = id->name.toString();
|
|
||||||
|
|
||||||
if (propertyName == "id" && !id->next)
|
|
||||||
return nullptr; // ### should probably be a special value
|
|
||||||
|
|
||||||
// attached properties
|
// attached properties
|
||||||
bool isAttachedProperty = getAttachedTypes(propertyName);
|
bool isAttachedProperty = getAttachedTypes(propertyName);
|
||||||
|
|
||||||
if (scopeObjects.isEmpty())
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
// global lookup for first part of id
|
// global lookup for first part of id
|
||||||
const Value *value = nullptr;
|
const Value *value = nullptr;
|
||||||
for (int i = scopeObjects.size() - 1; i >= 0; --i) {
|
for (int i = scopeObjects.size() - 1; i >= 0; --i) {
|
||||||
@@ -2053,6 +2048,13 @@ const Value *Check::checkScopeObjectMember(const UiQualifiedId *id)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
if (!value) {
|
if (!value) {
|
||||||
|
// We omit M16 messages if the type using ImmediateProperties
|
||||||
|
// Ideally, we should obtain them through metaobject information
|
||||||
|
const bool omitMessage = !m_typeStack.isEmpty()
|
||||||
|
&& ((m_typeStack.last() == "PropertyChanges")
|
||||||
|
|| m_typeStack.last() == "Binding")
|
||||||
|
&& !m_idStack.isEmpty() && m_idStack.last().contains(propertyName);
|
||||||
|
if (!omitMessage)
|
||||||
addMessage(ErrInvalidPropertyName, id->identifierToken, propertyName);
|
addMessage(ErrInvalidPropertyName, id->identifierToken, propertyName);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,7 @@ add_qtc_library(Tasking OBJECT
|
|||||||
SOURCES
|
SOURCES
|
||||||
barrier.cpp barrier.h
|
barrier.cpp barrier.h
|
||||||
concurrentcall.h
|
concurrentcall.h
|
||||||
networkquery.cpp
|
networkquery.cpp networkquery.h
|
||||||
tasking_global.h
|
tasking_global.h
|
||||||
tasktree.cpp tasktree.h
|
tasktree.cpp tasktree.h
|
||||||
EXPLICIT_MOC
|
EXPLICIT_MOC
|
||||||
|
@@ -82,7 +82,7 @@ public:
|
|||||||
"is not reachable in the running tree. "
|
"is not reachable in the running tree. "
|
||||||
"It is possible that no barrier was added to the tree, "
|
"It is possible that no barrier was added to the tree, "
|
||||||
"or the storage is not reachable from where it is referenced. "
|
"or the storage is not reachable from where it is referenced. "
|
||||||
"The WaitForBarrier task will finish with error. ");
|
"The WaitForBarrier task finishes with an error. ");
|
||||||
return SetupResult::StopWithError;
|
return SetupResult::StopWithError;
|
||||||
}
|
}
|
||||||
Barrier *activeSharedBarrier = activeBarrier->barrier();
|
Barrier *activeSharedBarrier = activeBarrier->barrier();
|
||||||
|
@@ -138,6 +138,369 @@ private:
|
|||||||
Returns the const pointer to the associated \c Task instance.
|
Returns the const pointer to the associated \c Task instance.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class Tasking::GroupItem
|
||||||
|
\inheaderfile solutions/tasking/tasktree.h
|
||||||
|
\inmodule TaskingSolution
|
||||||
|
\brief GroupItem represents the basic element that may be a part of any
|
||||||
|
\l {Tasking::Group} {Group}.
|
||||||
|
|
||||||
|
GroupItem is a basic element that may be a part of any \l {Tasking::Group} {Group}.
|
||||||
|
It encapsulates the functionality provided by any GroupItem's subclass.
|
||||||
|
It is a value type and it is safe to copy the GroupItem instance,
|
||||||
|
even when it is originally created via the subclass' constructor.
|
||||||
|
|
||||||
|
There are four main kinds of GroupItem:
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li GroupItem Kind
|
||||||
|
\li Brief Description
|
||||||
|
\row
|
||||||
|
\li \l CustomTask
|
||||||
|
\li Defines asynchronous task type and task's start, done, and error handlers.
|
||||||
|
Aliased with a unique task name, such as, \c ConcurrentCallTask<ResultType>
|
||||||
|
or \l NetworkQueryTask. Asynchronous tasks are the main reason for using a task tree.
|
||||||
|
\row
|
||||||
|
\li \l Group
|
||||||
|
\li A container for other group items. Since the group is of the GroupItem type,
|
||||||
|
it's possible to nest it inside another group. The group is seen by its parent
|
||||||
|
as a single asynchronous task.
|
||||||
|
\row
|
||||||
|
\li \l Storage
|
||||||
|
\li Enables the child tasks of a group to exchange data.
|
||||||
|
When Storage is placed inside a group, the task tree instantiates
|
||||||
|
the storage object just before the group is entered,
|
||||||
|
and destroys it just after the group is finished.
|
||||||
|
\row
|
||||||
|
\li Other group control items
|
||||||
|
\li The items returned by \l {Tasking::parallelLimit()} {parallelLimit()} or
|
||||||
|
\l {Tasking::workflowPolicy()} {workflowPolicy()} influence the group's behavior.
|
||||||
|
The items returned by \l {Tasking::onGroupSetup()} {onGroupSetup()},
|
||||||
|
\l {Tasking::onGroupDone()} {onGroupDone()} or
|
||||||
|
\l {Tasking::onGroupError()} {onGroupError()} define custom handlers called when
|
||||||
|
the group starts or ends execution.
|
||||||
|
\endtable
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class Tasking::Group
|
||||||
|
\inheaderfile solutions/tasking/tasktree.h
|
||||||
|
\inmodule TaskingSolution
|
||||||
|
\brief Group represents the basic element for composing declarative recipes describing
|
||||||
|
how to execute and handle a nested tree of asynchronous tasks.
|
||||||
|
|
||||||
|
Group is a container for other group items. It encloses child tasks into one unit,
|
||||||
|
which is seen by the group's parent as a single, asynchronous task.
|
||||||
|
Since Group is of the GroupItem type, it may also be a child of Group.
|
||||||
|
|
||||||
|
Insert child tasks into the group by using aliased custom task names, such as,
|
||||||
|
\c ConcurrentCallTask<ResultType> or \c NetworkQueryTask:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const Group group {
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
ConcurrentCallTask<int>(...)
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
The group's behavior may be customized by inserting the items returned by
|
||||||
|
\l {Tasking::parallelLimit()} {parallelLimit()} or
|
||||||
|
\l {Tasking::workflowPolicy()} {workflowPolicy()} functions:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const Group group {
|
||||||
|
parallel,
|
||||||
|
continueOnError,
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
NetworkQueryTask(...)
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
The group may contain nested groups:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const Group group {
|
||||||
|
finishAllAndDone,
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
Group {
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
Group {
|
||||||
|
parallel,
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
}
|
||||||
|
ConcurrentCallTask<QString>(...)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
The group may dynamically instantiate a custom storage structure, which may be used for
|
||||||
|
inter-task data exchange:
|
||||||
|
|
||||||
|
\code
|
||||||
|
struct MyCustomStruct { QByteArray data; };
|
||||||
|
|
||||||
|
TreeStorage<MyCustomStruct> storage;
|
||||||
|
|
||||||
|
const auto onFirstSetup = [](NetworkQuery &task) { ... };
|
||||||
|
const auto onFirstDone = [storage](const NetworkQuery &task) {
|
||||||
|
// storage-> gives a pointer to MyCustomStruct instance,
|
||||||
|
// created dynamically by the running task tree.
|
||||||
|
storage->data = task.reply()->readAll();
|
||||||
|
};
|
||||||
|
const auto onSecondSetup = [storage](ConcurrentCall<QImage> &task) {
|
||||||
|
// storage-> gives a pointer to MyCustomStruct. Since the group is sequential,
|
||||||
|
// the stored MyCustomStruct was already updated inside the onFirstDone handler.
|
||||||
|
const QByteArray storedData = storage->data;
|
||||||
|
};
|
||||||
|
|
||||||
|
const Group group {
|
||||||
|
// When the group is entered by a running task tree, it creates MyCustomStruct
|
||||||
|
// instance dynamically. It is later accessible from all handlers via
|
||||||
|
// the *storage or storage-> operators.
|
||||||
|
sequential,
|
||||||
|
Storage(storage),
|
||||||
|
NetworkQueryTask(onFirstSetup, onFirstDone),
|
||||||
|
ConcurrentCallTask<QImage>(onSecondSetup)
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn Group::Group(const QList<GroupItem> &children)
|
||||||
|
|
||||||
|
Constructs a group with a given list of \a children.
|
||||||
|
|
||||||
|
This constructor is useful when the child items of the group are not known at compile time,
|
||||||
|
but later, at runtime:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const QStringList sourceList = ...;
|
||||||
|
|
||||||
|
QList<GroupItem> groupItems { parallel };
|
||||||
|
|
||||||
|
for (const QString &source : sourceList) {
|
||||||
|
const NetworkQueryTask task(...); // use source for setup handler
|
||||||
|
groupItems << task;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Group group(groupItems);
|
||||||
|
\endcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn Group::Group(std::initializer_list<GroupItem> children)
|
||||||
|
|
||||||
|
Constructs a group from std::initializer_list given by \a children.
|
||||||
|
|
||||||
|
This constructor is useful when all child items of the group are known at compile time:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const Group group {
|
||||||
|
finishAllAndDone,
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
Group {
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
Group {
|
||||||
|
parallel,
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
NetworkQueryTask(...),
|
||||||
|
}
|
||||||
|
ConcurrentCallTask<QString>(...)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn GroupItem Group::withTimeout(std::chrono::milliseconds timeout, const GroupEndHandler &handler) const
|
||||||
|
|
||||||
|
Attaches \c TimeoutTask to a copy of \c this group, elapsing after \a timeout in milliseconds,
|
||||||
|
with an optionally provided timeout \a handler, and returns the coupled item.
|
||||||
|
|
||||||
|
When the group finishes before \a timeout passes,
|
||||||
|
the returned item finishes immediately with the group's result.
|
||||||
|
Otherwise, the \a handler is invoked (if provided), the group is stopped,
|
||||||
|
and the returned item finishes with an error.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class Tasking::CustomTask
|
||||||
|
\inheaderfile solutions/tasking/tasktree.h
|
||||||
|
\inmodule TaskingSolution
|
||||||
|
\brief A class template used for declaring task items and defining their setup,
|
||||||
|
done, and error handlers.
|
||||||
|
|
||||||
|
The CustomTask class template is used inside TaskTree for describing custom task items.
|
||||||
|
|
||||||
|
Custom task names are aliased with unique names inside the \l Tasking namespace
|
||||||
|
via the TASKING_DECLARE_TASK or TASKING_DECLARE_TEMPLATE_TASK macros.
|
||||||
|
For example, \c ConcurrentCallTask<T> is an alias to the CustomTask that is defined
|
||||||
|
to work with \c ConcurrentCall<T> as an associated task class.
|
||||||
|
The following table contains all the built-in tasks and their associated task classes:
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li Aliased Task Name (Tasking Namespace)
|
||||||
|
\li Associated Task Class
|
||||||
|
\li Brief Description
|
||||||
|
\row
|
||||||
|
\li ConcurrentCallTask<ReturnType>
|
||||||
|
\li ConcurrentCall<ReturnType>
|
||||||
|
\li Starts an asynchronous task. Runs in a separate thread.
|
||||||
|
\row
|
||||||
|
\li NetworkQueryTask
|
||||||
|
\li NetworkQuery
|
||||||
|
\li Sends a network query.
|
||||||
|
\row
|
||||||
|
\li TaskTreeTask
|
||||||
|
\li TaskTree
|
||||||
|
\li Starts a nested task tree.
|
||||||
|
\row
|
||||||
|
\li TimeoutTask
|
||||||
|
\li \c std::chrono::milliseconds
|
||||||
|
\li Starts a timer.
|
||||||
|
\row
|
||||||
|
\li WaitForBarrierTask
|
||||||
|
\li MultiBarrier<Limit>
|
||||||
|
\li Starts an asynchronous task waiting for the barrier to pass.
|
||||||
|
\endtable
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\typealias CustomTask::Task
|
||||||
|
|
||||||
|
Type alias for \c Adapter::Type.
|
||||||
|
|
||||||
|
This is the associated task's type.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\typealias CustomTask::EndHandler
|
||||||
|
|
||||||
|
Type alias for \c std::function<void(const Task &)>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn template <typename Adapter> template <typename SetupHandler> CustomTask<Adapter>::CustomTask<Adapter>(SetupHandler &&setup, const EndHandler &done, const EndHandler &error)
|
||||||
|
|
||||||
|
Constructs the CustomTask instance and attaches the \a setup, \a done, and \a error
|
||||||
|
handlers to the task. When the running task tree is about to start the task,
|
||||||
|
it instantiates the associated \l Task object, invokes \a setup handler with a \e reference
|
||||||
|
to the created task, and starts it. When the running task finishes with success or an error,
|
||||||
|
the task tree invokes \a done or \a error handler, respectively,
|
||||||
|
with a \e {const reference} to the created task.
|
||||||
|
|
||||||
|
The passed \a setup handler is either of the \c std::function<SetupResult(Task &)> or
|
||||||
|
\c std::function<void(Task &)> type. For example:
|
||||||
|
|
||||||
|
\code
|
||||||
|
static void parseAndLog(const QString &input);
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
const QString input = ...;
|
||||||
|
|
||||||
|
const auto onFirstSetup = [input](ConcurrentCall<void> &task) {
|
||||||
|
if (input == "Skip")
|
||||||
|
return SetupResult::StopWithDone; // This task won't start, the next one will
|
||||||
|
if (input == "Error")
|
||||||
|
return SetupResult::StopWithError; // This task and the next one won't start
|
||||||
|
task.setConcurrentCallData(parseAndLog, input);
|
||||||
|
// This task will start, and the next one will start after this one finished with success
|
||||||
|
return SetupResult::Continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto onSecondSetup = [input](ConcurrentCall<void> &task) {
|
||||||
|
task.setConcurrentCallData(parseAndLog, input);
|
||||||
|
};
|
||||||
|
|
||||||
|
const Group group {
|
||||||
|
ConcurrentCallTask<void>(onFirstSetup),
|
||||||
|
ConcurrentCallTask<void>(onSecondSetup)
|
||||||
|
};
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
When the passed \a setup handler is of the \c std::function<SetupResult(Task &)> type,
|
||||||
|
the return value of the handler instructs the running tree on how to proceed after
|
||||||
|
the handler's invocation is finished. The default return value of SetupResult::Continue
|
||||||
|
instructs the tree to continue running, i.e. to execute the associated \c Task.
|
||||||
|
The return value of SetupResult::StopWithDone or SetupResult::StopWithError instructs
|
||||||
|
the tree to skip the task's execution and finish immediately with success or an error,
|
||||||
|
respectively.
|
||||||
|
When the return type is either SetupResult::StopWithDone or SetupResult::StopWithError,
|
||||||
|
the task's \a done or \a error handler (even if provided) are not called afterwards.
|
||||||
|
|
||||||
|
The \a setup handler may be of a shortened form of std::function<void(Task &)>,
|
||||||
|
i.e. the return value is void. In this case it's assumed that the return value is
|
||||||
|
SetupResult::Continue by default.
|
||||||
|
|
||||||
|
When the running task finishes, one of \a done or \a error handlers is called,
|
||||||
|
depending on whether it finished with success or an error, respectively.
|
||||||
|
Both handlers are of std::function<void(const Task &)> type.
|
||||||
|
|
||||||
|
\sa onSetup(), onDone(), onError()
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn template <typename Adapter> template <typename SetupHandler> CustomTask<Adapter> &CustomTask<Adapter>::onSetup(SetupHandler &&handler)
|
||||||
|
|
||||||
|
Attaches the setup \a handler to \c this task.
|
||||||
|
The \a handler is invoked when the task is about to be started.
|
||||||
|
|
||||||
|
This function enables defining the task's details with a
|
||||||
|
\l {https://en.wikipedia.org/wiki/Fluent_interface}{fluent interface} style:
|
||||||
|
|
||||||
|
\code
|
||||||
|
const auto onQuerySetup = [](NetworkQuery &task) { ... };
|
||||||
|
const auto onQueryError = [](const NetworkQuery &task) { ... };
|
||||||
|
|
||||||
|
const Group group {
|
||||||
|
NetworkQueryTask(onQuerySetup, {}, onQueryError),
|
||||||
|
NetworkQueryTask().onSetup(onQuerySetup).onError(onQueryError), // fluent interface style
|
||||||
|
NetworkQueryTask(onQuerySetup, {}, onQueryError).withTimeout(500ms)
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\sa CustomTask(), onDone(), onError()
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn template <typename Adapter> CustomTask<Adapter> &CustomTask<Adapter>::onDone(const EndHandler &handler)
|
||||||
|
|
||||||
|
Attaches the done \a handler to \c this task.
|
||||||
|
The handler is invoked when the task finishes with success.
|
||||||
|
|
||||||
|
This function enables defining the task's details with a fluent interface style.
|
||||||
|
|
||||||
|
\sa CustomTask(), onSetup(), onError()
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn template <typename Adapter> CustomTask<Adapter> &CustomTask<Adapter>::onError(const EndHandler &handler)
|
||||||
|
|
||||||
|
Attaches the error \a handler to \c this task.
|
||||||
|
The handler is invoked when the task finishes with an error.
|
||||||
|
|
||||||
|
This function enables defining the task's details with a fluent interface style.
|
||||||
|
|
||||||
|
\sa CustomTask(), onSetup(), onDone()
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn template <typename Adapter> GroupItem CustomTask<Adapter>::withTimeout(std::chrono::milliseconds timeout, const GroupItem::GroupEndHandler &handler) const
|
||||||
|
|
||||||
|
Attaches \c TimeoutTask to a copy of \c this task, elapsing after \a timeout in milliseconds,
|
||||||
|
with an optionally provided timeout \a handler, and returns the coupled item.
|
||||||
|
|
||||||
|
When the task finishes before \a timeout passes,
|
||||||
|
the returned item finishes immediately with the task's result.
|
||||||
|
Otherwise, the \a handler is invoked (if provided), the task is stopped,
|
||||||
|
and the returned item finishes with an error.
|
||||||
|
|
||||||
|
\sa onSetup()
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\macro TASKING_DECLARE_TASK(CustomTaskName, TaskAdapterClass)
|
\macro TASKING_DECLARE_TASK(CustomTaskName, TaskAdapterClass)
|
||||||
\relates Tasking
|
\relates Tasking
|
||||||
@@ -158,13 +521,6 @@ private:
|
|||||||
For more information on implementing the custom task adapters, refer to \l {Task Adapters}.
|
For more information on implementing the custom task adapters, refer to \l {Task Adapters}.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\class Tasking::GroupItem
|
|
||||||
\inheaderfile solutions/tasking/tasktree.h
|
|
||||||
\inmodule TaskingSolution
|
|
||||||
\brief The GroupItem class represents the basic element for composing nested tree structures.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\enum Tasking::WorkflowPolicy
|
\enum Tasking::WorkflowPolicy
|
||||||
|
|
||||||
|
@@ -321,14 +321,14 @@ public:
|
|||||||
using EndHandler = std::function<void(const Task &)>;
|
using EndHandler = std::function<void(const Task &)>;
|
||||||
static Adapter *createAdapter() { return new Adapter; }
|
static Adapter *createAdapter() { return new Adapter; }
|
||||||
CustomTask() : GroupItem({&createAdapter}) {}
|
CustomTask() : GroupItem({&createAdapter}) {}
|
||||||
template <typename SetupFunction>
|
template <typename SetupHandler>
|
||||||
CustomTask(SetupFunction &&function, const EndHandler &done = {}, const EndHandler &error = {})
|
CustomTask(SetupHandler &&setup, const EndHandler &done = {}, const EndHandler &error = {})
|
||||||
: GroupItem({&createAdapter, wrapSetup(std::forward<SetupFunction>(function)),
|
: GroupItem({&createAdapter, wrapSetup(std::forward<SetupHandler>(setup)),
|
||||||
wrapEnd(done), wrapEnd(error)}) {}
|
wrapEnd(done), wrapEnd(error)}) {}
|
||||||
|
|
||||||
template <typename SetupFunction>
|
template <typename SetupHandler>
|
||||||
CustomTask &onSetup(SetupFunction &&function) {
|
CustomTask &onSetup(SetupHandler &&handler) {
|
||||||
setTaskSetupHandler(wrapSetup(std::forward<SetupFunction>(function)));
|
setTaskSetupHandler(wrapSetup(std::forward<SetupHandler>(handler)));
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
CustomTask &onDone(const EndHandler &handler) {
|
CustomTask &onDone(const EndHandler &handler) {
|
||||||
@@ -346,20 +346,20 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename SetupFunction>
|
template<typename SetupHandler>
|
||||||
static GroupItem::TaskSetupHandler wrapSetup(SetupFunction &&function) {
|
static GroupItem::TaskSetupHandler wrapSetup(SetupHandler &&handler) {
|
||||||
static constexpr bool isDynamic = std::is_same_v<SetupResult,
|
static constexpr bool isDynamic = std::is_same_v<SetupResult,
|
||||||
std::invoke_result_t<std::decay_t<SetupFunction>, typename Adapter::Type &>>;
|
std::invoke_result_t<std::decay_t<SetupHandler>, typename Adapter::Type &>>;
|
||||||
constexpr bool isVoid = std::is_same_v<void,
|
constexpr bool isVoid = std::is_same_v<void,
|
||||||
std::invoke_result_t<std::decay_t<SetupFunction>, typename Adapter::Type &>>;
|
std::invoke_result_t<std::decay_t<SetupHandler>, typename Adapter::Type &>>;
|
||||||
static_assert(isDynamic || isVoid,
|
static_assert(isDynamic || isVoid,
|
||||||
"Task setup handler needs to take (Task &) as an argument and has to return "
|
"Task setup handler needs to take (Task &) as an argument and has to return "
|
||||||
"void or SetupResult. The passed handler doesn't fulfill these requirements.");
|
"void or SetupResult. The passed handler doesn't fulfill these requirements.");
|
||||||
return [=](TaskInterface &taskInterface) {
|
return [=](TaskInterface &taskInterface) {
|
||||||
Adapter &adapter = static_cast<Adapter &>(taskInterface);
|
Adapter &adapter = static_cast<Adapter &>(taskInterface);
|
||||||
if constexpr (isDynamic)
|
if constexpr (isDynamic)
|
||||||
return std::invoke(function, *adapter.task());
|
return std::invoke(handler, *adapter.task());
|
||||||
std::invoke(function, *adapter.task());
|
std::invoke(handler, *adapter.task());
|
||||||
return SetupResult::Continue;
|
return SetupResult::Continue;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -1607,7 +1607,15 @@ void BoolAspect::setLabelPlacement(BoolAspect::LabelPlacement labelPlacement)
|
|||||||
d->m_labelPlacement = labelPlacement;
|
d->m_labelPlacement = labelPlacement;
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckableDecider BoolAspect::checkableDecider()
|
CheckableDecider BoolAspect::askAgainCheckableDecider()
|
||||||
|
{
|
||||||
|
return CheckableDecider(
|
||||||
|
[this] { return value(); },
|
||||||
|
[this] { setValue(true); }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckableDecider BoolAspect::doNotAskAgainCheckableDecider()
|
||||||
{
|
{
|
||||||
return CheckableDecider(
|
return CheckableDecider(
|
||||||
[this] { return !value(); },
|
[this] { return !value(); },
|
||||||
|
@@ -223,7 +223,9 @@ public:
|
|||||||
|
|
||||||
void addToLayout(Layouting::LayoutItem &parent) override;
|
void addToLayout(Layouting::LayoutItem &parent) override;
|
||||||
std::function<void(QObject *)> groupChecker();
|
std::function<void(QObject *)> groupChecker();
|
||||||
Utils::CheckableDecider checkableDecider();
|
|
||||||
|
Utils::CheckableDecider askAgainCheckableDecider();
|
||||||
|
Utils::CheckableDecider doNotAskAgainCheckableDecider();
|
||||||
|
|
||||||
QAction *action() override;
|
QAction *action() override;
|
||||||
|
|
||||||
|
@@ -305,6 +305,8 @@ static void addItemToFlowLayout(FlowLayout *layout, const ResultItem &item)
|
|||||||
// layout->addStretch(item.stretch);
|
// layout->addStretch(item.stretch);
|
||||||
// } else if (item.space != -1) {
|
// } else if (item.space != -1) {
|
||||||
// layout->addSpacing(item.space);
|
// layout->addSpacing(item.space);
|
||||||
|
} else if (item.empty) {
|
||||||
|
// Nothing to do, but no reason to warn, either
|
||||||
} else if (!item.text.isEmpty()) {
|
} else if (!item.text.isEmpty()) {
|
||||||
layout->addWidget(createLabel(item.text));
|
layout->addWidget(createLabel(item.text));
|
||||||
} else {
|
} else {
|
||||||
|
@@ -280,8 +280,10 @@ void TerminalInterface::sendCommand(char c)
|
|||||||
void TerminalInterface::killInferiorProcess()
|
void TerminalInterface::killInferiorProcess()
|
||||||
{
|
{
|
||||||
sendCommand('k');
|
sendCommand('k');
|
||||||
if (d->stubSocket)
|
if (d->stubSocket) {
|
||||||
d->stubSocket->waitForReadyRead();
|
d->stubSocket->waitForReadyRead();
|
||||||
|
emitFinished(-1, QProcess::CrashExit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TerminalInterface::killStubProcess()
|
void TerminalInterface::killStubProcess()
|
||||||
|
@@ -27,6 +27,7 @@ const char ANDROID_KIT_NDK[] = "Android.NDK";
|
|||||||
const char ANDROID_KIT_SDK[] = "Android.SDK";
|
const char ANDROID_KIT_SDK[] = "Android.SDK";
|
||||||
|
|
||||||
const char ANDROID_BUILD_DIRECTORY[] = "android-build";
|
const char ANDROID_BUILD_DIRECTORY[] = "android-build";
|
||||||
|
const char ANDROID_APP_PROCESS_DIRECTORY[] = "android-app-process";
|
||||||
const char JAVA_EDITOR_ID[] = "java.editor";
|
const char JAVA_EDITOR_ID[] = "java.editor";
|
||||||
const char JLS_SETTINGS_ID[] = "Java::JLSSettingsID";
|
const char JLS_SETTINGS_ID[] = "Java::JLSSettingsID";
|
||||||
const char JAVA_MIMETYPE[] = "text/x-java";
|
const char JAVA_MIMETYPE[] = "text/x-java";
|
||||||
|
@@ -138,7 +138,7 @@ void AndroidDebugSupport::start()
|
|||||||
FilePath::removeDuplicates(solibSearchPath);
|
FilePath::removeDuplicates(solibSearchPath);
|
||||||
setSolibSearchPath(solibSearchPath);
|
setSolibSearchPath(solibSearchPath);
|
||||||
qCDebug(androidDebugSupportLog).noquote() << "SoLibSearchPath: " << solibSearchPath;
|
qCDebug(androidDebugSupportLog).noquote() << "SoLibSearchPath: " << solibSearchPath;
|
||||||
setSymbolFile(buildDir.pathAppended("app_process"));
|
setSymbolFile(AndroidManager::androidAppProcessDir(target).pathAppended("app_process"));
|
||||||
setSkipExecutableValidation(true);
|
setSkipExecutableValidation(true);
|
||||||
setUseExtendedRemote(true);
|
setUseExtendedRemote(true);
|
||||||
QString devicePreferredAbi = AndroidManager::apkDevicePreferredAbi(target);
|
QString devicePreferredAbi = AndroidManager::apkDevicePreferredAbi(target);
|
||||||
|
@@ -512,6 +512,13 @@ void AndroidDeployQtStep::runImpl(QPromise<bool> &promise)
|
|||||||
itr.value().removeFile();
|
itr.value().removeFile();
|
||||||
|
|
||||||
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
|
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
|
||||||
|
const FilePath parentDir = itr.value().parentDir();
|
||||||
|
if (!parentDir.ensureWritableDir()) {
|
||||||
|
const QString error = QString("Package deploy: Unable to create directory %1.")
|
||||||
|
.arg(parentDir.nativePath());
|
||||||
|
reportWarningOrError(error, Task::Error);
|
||||||
|
}
|
||||||
|
|
||||||
runCommand({m_adbPath,
|
runCommand({m_adbPath,
|
||||||
AndroidDeviceInfo::adbSelector(m_serialNumber)
|
AndroidDeviceInfo::adbSelector(m_serialNumber)
|
||||||
<< "pull" << itr.key() << itr.value().nativePath()});
|
<< "pull" << itr.key() << itr.value().nativePath()});
|
||||||
@@ -528,7 +535,7 @@ void AndroidDeployQtStep::runImpl(QPromise<bool> &promise)
|
|||||||
void AndroidDeployQtStep::gatherFilesToPull()
|
void AndroidDeployQtStep::gatherFilesToPull()
|
||||||
{
|
{
|
||||||
m_filesToPull.clear();
|
m_filesToPull.clear();
|
||||||
const FilePath buildDir = AndroidManager::buildDirectory(target());
|
const FilePath appProcessDir = AndroidManager::androidAppProcessDir(target());
|
||||||
|
|
||||||
if (!m_deviceInfo.isValid())
|
if (!m_deviceInfo.isValid())
|
||||||
return;
|
return;
|
||||||
@@ -538,16 +545,16 @@ void AndroidDeployQtStep::gatherFilesToPull()
|
|||||||
const QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target());
|
const QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target());
|
||||||
if (preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A
|
if (preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A
|
||||||
|| preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_X86_64) {
|
|| preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_X86_64) {
|
||||||
m_filesToPull["/system/bin/app_process64"] = buildDir / "app_process";
|
m_filesToPull["/system/bin/app_process64"] = appProcessDir / "app_process";
|
||||||
libDirName = "lib64";
|
libDirName = "lib64";
|
||||||
linkerName = "linker64";
|
linkerName = "linker64";
|
||||||
} else {
|
} else {
|
||||||
m_filesToPull["/system/bin/app_process32"] = buildDir / "app_process";
|
m_filesToPull["/system/bin/app_process32"] = appProcessDir / "app_process";
|
||||||
m_filesToPull["/system/bin/app_process"] = buildDir / "app_process";
|
m_filesToPull["/system/bin/app_process"] = appProcessDir / "app_process";
|
||||||
}
|
}
|
||||||
|
|
||||||
m_filesToPull["/system/bin/" + linkerName] = buildDir / linkerName;
|
m_filesToPull["/system/bin/" + linkerName] = appProcessDir / linkerName;
|
||||||
m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir / "libc.so";
|
m_filesToPull["/system/" + libDirName + "/libc.so"] = appProcessDir / "libc.so";
|
||||||
|
|
||||||
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
|
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
|
||||||
qCDebug(deployStepLog).noquote() << "Pulling file from device:" << itr.key()
|
qCDebug(deployStepLog).noquote() << "Pulling file from device:" << itr.key()
|
||||||
|
@@ -229,6 +229,11 @@ FilePath AndroidManager::androidBuildDirectory(const Target *target)
|
|||||||
return buildDirectory(target) / Constants::ANDROID_BUILD_DIRECTORY;
|
return buildDirectory(target) / Constants::ANDROID_BUILD_DIRECTORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FilePath AndroidManager::androidAppProcessDir(const Target *target)
|
||||||
|
{
|
||||||
|
return buildDirectory(target) / Constants::ANDROID_APP_PROCESS_DIRECTORY;
|
||||||
|
}
|
||||||
|
|
||||||
bool AndroidManager::isQt5CmakeProject(const ProjectExplorer::Target *target)
|
bool AndroidManager::isQt5CmakeProject(const ProjectExplorer::Target *target)
|
||||||
{
|
{
|
||||||
const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());
|
const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());
|
||||||
|