forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts: doc/qtdesignstudio/src/views/qtquick-designer.qdoc src/plugins/studiowelcome/stylemodel.cpp Change-Id: I13c9e4e9404619d7ba649eae160774aafc042610
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -40,6 +40,7 @@ ui_*.h
|
|||||||
wrapper.bat
|
wrapper.bat
|
||||||
wrapper.sh
|
wrapper.sh
|
||||||
debug_toolchain.cmake
|
debug_toolchain.cmake
|
||||||
|
CMakeUserPresets.json
|
||||||
|
|
||||||
# qtcreator generated files
|
# qtcreator generated files
|
||||||
*.creator.user*
|
*.creator.user*
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
"name": "cmake-plugin-minimal",
|
"name": "cmake-plugin-minimal",
|
||||||
"displayName": "CMake, C++, Git, Debug minimal Build",
|
"displayName": "CMake, C++, Git, Debug minimal Build",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
|
"hidden" : true,
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"BUILD_PLUGINS": "Core;Designer;DiffEditor;TextEditor;ProjectExplorer;CppEditor;CodePaster;Docker;Git;Help;QmakeProjectManager;CMakeProjectManager;ClangCodeModel;ClangTools;ClangFormat;Debugger;QtSupport;ResourceEditor;VcsBase;Welcome;LanguageClient;RemoteLinux",
|
"BUILD_PLUGINS": "Core;Designer;DiffEditor;TextEditor;ProjectExplorer;CppEditor;CodePaster;Docker;Git;Help;QmakeProjectManager;CMakeProjectManager;ClangCodeModel;ClangTools;ClangFormat;Debugger;QtSupport;ResourceEditor;VcsBase;Welcome;LanguageClient;RemoteLinux",
|
||||||
"BUILD_EXECUTABLES": "QtCreator;qtcreator_ctrlc_stub;qtcreator_process_stub;win64interrupt;qtcreator_processlauncher",
|
"BUILD_EXECUTABLES": "QtCreator;qtcreator_ctrlc_stub;qtcreator_process_stub;win64interrupt;qtcreator_processlauncher",
|
||||||
|
38
README.md
38
README.md
@@ -164,6 +164,44 @@ Thus, if you want to work on Qt Creator using Qt Creator, you need a separate
|
|||||||
installation of it. We recommend using a separate, release-built version of Qt
|
installation of it. We recommend using a separate, release-built version of Qt
|
||||||
Creator to work on a debug-built version of Qt Creator.
|
Creator to work on a debug-built version of Qt Creator.
|
||||||
|
|
||||||
|
Alternatively, take the following template of `CMakeUserPresets.json` for
|
||||||
|
reference. Write your own configurePreset inheriting `cmake-plugin-minimal` in
|
||||||
|
`CMakeUserPresets.json` to build with IDEs (such as QtCreator, VSCode,
|
||||||
|
CLion...etc) locally:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"cmakeMinimumRequired": {
|
||||||
|
"major": 3,
|
||||||
|
"minor": 23,
|
||||||
|
"patch": 0
|
||||||
|
},
|
||||||
|
"configurePresets": [
|
||||||
|
{
|
||||||
|
"name": "custom",
|
||||||
|
"displayName": "custom",
|
||||||
|
"description": "custom",
|
||||||
|
"inherits": "cmake-plugin-minimal",
|
||||||
|
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||||
|
"toolset": {
|
||||||
|
"value": "v142,host=x64",
|
||||||
|
"strategy": "external"
|
||||||
|
},
|
||||||
|
"architecture": {
|
||||||
|
"value": "x64",
|
||||||
|
"strategy": "external"
|
||||||
|
},
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_CXX_COMPILER": "cl.exe",
|
||||||
|
"CMAKE_C_COMPILER": "cl.exe",
|
||||||
|
"CMAKE_PREFIX_PATH": "c:/Qt/6.2.4/msvc2019_64"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
If you do not have Ninja installed and in the `PATH`, remove `-G Ninja` from
|
If you do not have Ninja installed and in the `PATH`, remove `-G Ninja` from
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
set(IDE_VERSION "10.0.84") # The IDE version.
|
set(IDE_VERSION "11.0.0") # The IDE version.
|
||||||
set(IDE_VERSION_COMPAT "10.0.84") # The IDE Compatibility version.
|
set(IDE_VERSION_COMPAT "11.0.0") # The IDE Compatibility version.
|
||||||
set(IDE_VERSION_DISPLAY "11.0.0-rc1") # The IDE display version.
|
set(IDE_VERSION_DISPLAY "11.0.0") # The IDE display version.
|
||||||
set(IDE_COPYRIGHT_YEAR "2023") # The IDE current copyright year.
|
set(IDE_COPYRIGHT_YEAR "2023") # The IDE current copyright year.
|
||||||
|
|
||||||
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
|
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
|
||||||
|
@@ -7,7 +7,7 @@ instructions:
|
|||||||
variableValue: "RelWithDebInfo"
|
variableValue: "RelWithDebInfo"
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: LLVM_BASE_URL
|
variableName: LLVM_BASE_URL
|
||||||
variableValue: https://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.2-based
|
variableValue: https://ci-files02-hki.ci.qt.io/packages/jenkins/qtcreator_libclang/libclang-release_16.0.2-based
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_BASE_URL
|
variableName: QTC_QT_BASE_URL
|
||||||
variableValue: "https://ci-files02-hki.ci.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"
|
||||||
|
@@ -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 https://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://ci-files02-hki.ci.qt.io/packages/jenkins/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 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}}"
|
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://ci-files02-hki.ci.qt.io/packages/jenkins/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z https://ci-files02-hki.ci.qt.io/packages/jenkins/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
|
||||||
|
76
dist/changelog/changes-11.0.0.md
vendored
76
dist/changelog/changes-11.0.0.md
vendored
@@ -26,7 +26,7 @@ What's new?
|
|||||||
You can open markdown (.md) files for editing or select `File > New File >
|
You can open markdown (.md) files for editing or select `File > New File >
|
||||||
General > Markdown File` to create a new file.
|
General > Markdown File` to create a new file.
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-markdown-editor.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-markdown-editor.html))
|
||||||
|
|
||||||
### Terminal
|
### Terminal
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ shells, colors, and fonts.
|
|||||||
To use an external terminal, deselect the `Use internal terminal` check box in
|
To use an external terminal, deselect the `Use internal terminal` check box in
|
||||||
`Preferences > Terminal`.
|
`Preferences > Terminal`.
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-output-panes.html#terminal))
|
([Documentation](https://doc.qt.io/qtcreator/creator-reference-terminal-view.html))
|
||||||
|
|
||||||
### Copilot
|
### Copilot
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ suggest code in the `Edit` mode.
|
|||||||
|
|
||||||
To set Copilot preferences, select `Preferences > Copilot`.
|
To set Copilot preferences, select `Preferences > Copilot`.
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-copilot.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-copilot.html))
|
||||||
|
|
||||||
### vcpkg
|
### vcpkg
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ project.
|
|||||||
Edit manifest files in the manifest editor. To search for packages to add to the
|
Edit manifest files in the manifest editor. To search for packages to add to the
|
||||||
file, select the `Search Package` button on the manifest editor toolbar.
|
file, select the `Search Package` button on the manifest editor toolbar.
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-vcpkg.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-vcpkg.html))
|
||||||
|
|
||||||
### Axivion
|
### Axivion
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ and link a project to an Axivion project in the project settings, Qt Creator
|
|||||||
shows annotations of the latest run in the editors and allows you to view some
|
shows annotations of the latest run in the editors and allows you to view some
|
||||||
details on the issues.
|
details on the issues.
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-axivion.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-axivion.html))
|
||||||
|
|
||||||
General
|
General
|
||||||
-------
|
-------
|
||||||
@@ -121,10 +121,17 @@ Editing
|
|||||||
* Fixed that the 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
|
||||||
|
* Fixed that the automatic Doxygen comment generation did not work when
|
||||||
|
initializer lists `{}` were present
|
||||||
|
([QTCREATORBUG-29198](https://bugreports.qt.io/browse/QTCREATORBUG-29198))
|
||||||
|
* Fixed an issue when matching braces
|
||||||
|
([QTCREATORBUG-29339](https://bugreports.qt.io/browse/QTCREATORBUG-29339))
|
||||||
* Clangd
|
* Clangd
|
||||||
* Fixed that the index could be outdated after VCS operations
|
* Fixed that the index could be outdated after VCS operations
|
||||||
* Fixed the highlighting of labels
|
* Fixed the highlighting of labels
|
||||||
([QTCREATORBUG-27338](https://bugreports.qt.io/browse/QTCREATORBUG-27338))
|
([QTCREATORBUG-27338](https://bugreports.qt.io/browse/QTCREATORBUG-27338))
|
||||||
|
* Fixed freezes when showing tool tips
|
||||||
|
([QTCREATORBUG-29356](https://bugreports.qt.io/browse/QTCREATORBUG-29356))
|
||||||
* Built-in
|
* Built-in
|
||||||
* Fixed support for `if`-statements with initializer
|
* Fixed support for `if`-statements with initializer
|
||||||
([QTCREATORBUG-29182](https://bugreports.qt.io/browse/QTCREATORBUG-29182))
|
([QTCREATORBUG-29182](https://bugreports.qt.io/browse/QTCREATORBUG-29182))
|
||||||
@@ -150,7 +157,10 @@ Editing
|
|||||||
* Fixed the completion for Qt Quick Controls
|
* Fixed the completion for Qt Quick Controls
|
||||||
([QTCREATORBUG-28648](https://bugreports.qt.io/browse/QTCREATORBUG-28648))
|
([QTCREATORBUG-28648](https://bugreports.qt.io/browse/QTCREATORBUG-28648))
|
||||||
* Fixed that `qmllint` issues were not shown in the `Issues` view
|
* Fixed that `qmllint` issues were not shown in the `Issues` view
|
||||||
([QTCREATORBUG-28720](https://bugreports.qt.io/browse/QTCREATORBUG-28720))
|
([QTCREATORBUG-28720](https://bugreports.qt.io/browse/QTCREATORBUG-28720),
|
||||||
|
[QTCREATORBUG-27762](https://bugreports.qt.io/browse/QTCREATORBUG-27762))
|
||||||
|
* Fixed a wrong `M16` warning
|
||||||
|
([QTCREATORBUG-28468](https://bugreports.qt.io/browse/QTCREATORBUG-28468))
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
@@ -161,7 +171,12 @@ Editing
|
|||||||
* 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))
|
||||||
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-python-development.html))
|
([Documentation](https://doc.qt.io/qtcreator/creator-python-development.html))
|
||||||
|
|
||||||
|
### Meson
|
||||||
|
|
||||||
|
* Fixed the file targets
|
||||||
|
([QTCREATORBUG-29349](https://bugreports.qt.io/browse/QTCREATORBUG-29349))
|
||||||
|
|
||||||
Projects
|
Projects
|
||||||
--------
|
--------
|
||||||
@@ -187,15 +202,28 @@ Projects
|
|||||||
[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))
|
([Documentation](https://doc.qt.io/qtcreator/creator-project-cmake.html))
|
||||||
* Added `Build > Reload CMake Presets` to reload CMake presets after making
|
|
||||||
changes to them
|
|
||||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-11.0/creator-build-settings-cmake-presets.html))
|
|
||||||
* Added support for the `block()` and `endblock()` CMake commands
|
* Added support for the `block()` and `endblock()` CMake commands
|
||||||
([CMake documentation](https://cmake.org/cmake/help/latest/command/block.html#command:block))
|
([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))
|
|
||||||
* 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))
|
||||||
|
* Fixed the project wizards for Qt 6.3 and earlier
|
||||||
|
([QTCREATORBUG-29067](https://bugreports.qt.io/browse/QTCREATORBUG-29067))
|
||||||
|
* Presets
|
||||||
|
* Added `Build > Reload CMake Presets` to reload CMake presets after making
|
||||||
|
changes to them
|
||||||
|
([Documentation](https://doc.qt.io/qtcreator/creator-build-settings-cmake-presets.html))
|
||||||
|
* Fixed that presets were not visible in the `Projects` view
|
||||||
|
([QTCREATORBUG-28966](https://bugreports.qt.io/browse/QTCREATORBUG-28966))
|
||||||
|
* Fixed the type handling of the `architecture` and `toolset` fields
|
||||||
|
([QTCREATORBUG-28693](https://bugreports.qt.io/browse/QTCREATORBUG-28693))
|
||||||
|
* Fixed the setting for QML debugging when creating build configurations
|
||||||
|
([QTCREATORBUG-29311](https://bugreports.qt.io/browse/QTCREATORBUG-29311))
|
||||||
|
|
||||||
|
|
||||||
|
### Qmake
|
||||||
|
|
||||||
|
* Fixed an infinite loop when the Qt ABI changed
|
||||||
|
([QTCREATORBUG-29204](https://bugreports.qt.io/browse/QTCREATORBUG-29204))
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
|
|
||||||
@@ -214,6 +242,10 @@ Debugging
|
|||||||
([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++`
|
||||||
([QTCREATORBUG-29230](https://bugreports.qt.io/browse/QTCREATORBUG-29230))
|
([QTCREATORBUG-29230](https://bugreports.qt.io/browse/QTCREATORBUG-29230))
|
||||||
|
* Fixed the pretty printers on Fedora 37
|
||||||
|
([QTCREATORBUG-28659](https://bugreports.qt.io/browse/QTCREATORBUG-28659))
|
||||||
|
* Fixed the display of arrays with `Array of 10,000 items`
|
||||||
|
([QTCREATORBUG-29196](https://bugreports.qt.io/browse/QTCREATORBUG-29196))
|
||||||
|
|
||||||
### C++
|
### C++
|
||||||
|
|
||||||
@@ -266,6 +298,11 @@ Platforms
|
|||||||
* Fixed an issue with building library targets
|
* Fixed an issue with building library targets
|
||||||
([QTCREATORBUG-26980](https://bugreports.qt.io/browse/QTCREATORBUG-26980))
|
([QTCREATORBUG-26980](https://bugreports.qt.io/browse/QTCREATORBUG-26980))
|
||||||
|
|
||||||
|
### iOS
|
||||||
|
|
||||||
|
* Improved the bundle ID that the project wizards create
|
||||||
|
([QTCREATORBUG-29340](https://bugreports.qt.io/browse/QTCREATORBUG-29340))
|
||||||
|
|
||||||
### Remote Linux
|
### Remote Linux
|
||||||
|
|
||||||
* Removed the automatic sourcing of target-side shell profiles
|
* Removed the automatic sourcing of target-side shell profiles
|
||||||
@@ -277,6 +314,14 @@ Platforms
|
|||||||
* Fixed issues after deleting the Docker image for a registered Docker device
|
* Fixed issues after deleting the Docker image for a registered Docker device
|
||||||
([QTCREATORBUG-28880](https://bugreports.qt.io/browse/QTCREATORBUG-28880))
|
([QTCREATORBUG-28880](https://bugreports.qt.io/browse/QTCREATORBUG-28880))
|
||||||
|
|
||||||
|
### MCU
|
||||||
|
|
||||||
|
* Fixed that errors were shown for valid QML code
|
||||||
|
([QTCREATORBUG-26655](https://bugreports.qt.io/browse/QTCREATORBUG-26655),
|
||||||
|
[QTCREATORBUG-29155](https://bugreports.qt.io/browse/QTCREATORBUG-29155))
|
||||||
|
* Fixed that files were missing from locator and project search
|
||||||
|
([QTCREATORBUG-29297](https://bugreports.qt.io/browse/QTCREATORBUG-29297))
|
||||||
|
|
||||||
### QNX
|
### QNX
|
||||||
|
|
||||||
* Added `slog2info` as a requirement for devices
|
* Added `slog2info` as a requirement for devices
|
||||||
@@ -289,6 +334,8 @@ Aleksei German
|
|||||||
Alessandro Portale
|
Alessandro Portale
|
||||||
Alexander Drozdov
|
Alexander Drozdov
|
||||||
Alexander Pershin
|
Alexander Pershin
|
||||||
|
Alexey Edelev
|
||||||
|
Alexis Jeandet
|
||||||
Ali Kianian
|
Ali Kianian
|
||||||
Alibek Omarov
|
Alibek Omarov
|
||||||
Amr Essam
|
Amr Essam
|
||||||
@@ -309,8 +356,10 @@ Esa Törmänen
|
|||||||
Fabian Kosmale
|
Fabian Kosmale
|
||||||
Filippo Gentile
|
Filippo Gentile
|
||||||
Friedemann Kleint
|
Friedemann Kleint
|
||||||
|
Haowei Hsu
|
||||||
Henning Gruendl
|
Henning Gruendl
|
||||||
Jaroslaw Kobus
|
Jaroslaw Kobus
|
||||||
|
Joni Poikelin
|
||||||
Jussi Witick
|
Jussi Witick
|
||||||
Kai Köhne
|
Kai Köhne
|
||||||
Knud Dollereder
|
Knud Dollereder
|
||||||
@@ -324,6 +373,7 @@ Mats Honkamaa
|
|||||||
Miikka Heikkinen
|
Miikka Heikkinen
|
||||||
Mitch Curtis
|
Mitch Curtis
|
||||||
Niels Weber
|
Niels Weber
|
||||||
|
Olivier Delaune
|
||||||
Orgad Shaneh
|
Orgad Shaneh
|
||||||
Pranta Dastider
|
Pranta Dastider
|
||||||
Robert Löhning
|
Robert Löhning
|
||||||
@@ -333,8 +383,8 @@ Tasuku Suzuki
|
|||||||
Thiago Macieira
|
Thiago Macieira
|
||||||
Thomas Hartmann
|
Thomas Hartmann
|
||||||
Tim Jenssen
|
Tim Jenssen
|
||||||
Tim Jenßen
|
|
||||||
Ulf Hermann
|
Ulf Hermann
|
||||||
Vikas Pachdha
|
Vikas Pachdha
|
||||||
|
Wladimir Leuschner
|
||||||
Yasser Grimes
|
Yasser Grimes
|
||||||
Yixue Wang
|
Yixue Wang
|
||||||
|
@@ -101,7 +101,8 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="creator-help.html">Using the Help Mode</a></li>
|
<li><a href="creator-help.html">Using the Help Mode</a></li>
|
||||||
<li><a href="creator-faq.html">FAQ</a></li>
|
<li><a href="creator-faq.html">FAQ</a></li>
|
||||||
<li><a href="creator-how-tos.html">How-tos</a></li>
|
<li><a href="creator-how-tos.html">How-to</a></li>
|
||||||
|
<li><a href="creator-reference.html">Reference</a></li>
|
||||||
<li><a href="creator-known-issues.html">Known Issues</a></li>
|
<li><a href="creator-known-issues.html">Known Issues</a></li>
|
||||||
<li><a href="creator-glossary.html">Glossary</a></li>
|
<li><a href="creator-glossary.html">Glossary</a></li>
|
||||||
<li><a href="technical-support.html">Technical Support</a></li>
|
<li><a href="technical-support.html">Technical Support</a></li>
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 9.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
BIN
doc/qtcreator/images/qtcreator-preferences-compile-output.webp
Normal file
BIN
doc/qtcreator/images/qtcreator-preferences-compile-output.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
@@ -500,9 +500,9 @@
|
|||||||
\endlist
|
\endlist
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Output from the helper program that processes the data is displayed in
|
The \uicontrol {General Messages} view shows \l{View output}{output} from the
|
||||||
\l{Viewing Output}{General Messages}.
|
helper program that processes the data.
|
||||||
|
|
||||||
Some information is displayed in \l {Application Output} even if the
|
The \l {Application Output} view shows some information even if the
|
||||||
Performance Analyzer displays error messages.
|
Performance Analyzer displays error messages.
|
||||||
*/
|
*/
|
||||||
|
@@ -26,11 +26,16 @@
|
|||||||
|
|
||||||
\li \l{Writing Code}
|
\li \l{Writing Code}
|
||||||
|
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
The \l{Code} view offers services, such as semantic highlighting,
|
||||||
|
syntax checking, code completion, code indentation, and in-line
|
||||||
|
error indicators while you are typing.
|
||||||
|
\else
|
||||||
Writing, editing, and navigating in source code are core tasks in
|
Writing, editing, and navigating in source code are core tasks in
|
||||||
application development. Therefore, the code editor is one of the
|
application development. Therefore, the code editor is one of the
|
||||||
key components of \QC. You can use the code editor in the
|
key components of \QC. You can use the code editor in the
|
||||||
\uicontrol Edit mode.
|
\uicontrol Edit mode.
|
||||||
|
\endif
|
||||||
\li \l{Finding}
|
\li \l{Finding}
|
||||||
|
|
||||||
Use the incremental and advanced search to search from currently
|
Use the incremental and advanced search to search from currently
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 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,9 +8,13 @@
|
|||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-coding.html
|
|
||||||
\page creator-editor-functions.html
|
\page creator-editor-functions.html
|
||||||
|
\previouspage creator-coding.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\nextpage creator-highlighting.html
|
||||||
|
\else
|
||||||
\nextpage creator-coding-navigating.html
|
\nextpage creator-coding-navigating.html
|
||||||
|
\endif
|
||||||
|
|
||||||
\title Writing Code
|
\title Writing Code
|
||||||
|
|
||||||
@@ -19,14 +23,14 @@
|
|||||||
in-line error indicators while you are typing.
|
in-line error indicators while you are typing.
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\if defined(qtcreator)
|
||||||
\li \l{Working in Edit Mode}
|
\li \l{Working in Edit Mode}
|
||||||
|
|
||||||
You can use the editor toolbar to navigate between open files
|
You can use the editor toolbar to navigate between open files
|
||||||
and symbols in use. You can also split the view to work on
|
and symbols in use. You can also split the view to work on
|
||||||
several files simultaneously, add bookmarks, and move between
|
several files simultaneously, add bookmarks, and move between
|
||||||
symbol definitions and declarations.
|
symbol definitions and declarations.
|
||||||
|
\endif
|
||||||
\li \l{Semantic Highlighting}
|
\li \l{Semantic Highlighting}
|
||||||
|
|
||||||
\QC enables you to write well formatted code by highlighting
|
\QC enables you to write well formatted code by highlighting
|
||||||
@@ -75,8 +79,6 @@
|
|||||||
keyboard sequence as a macro. You can then play the macro to
|
keyboard sequence as a macro. You can then play the macro to
|
||||||
repeat the sequence. You can save the latest macro and assign a
|
repeat the sequence. You can save the latest macro and assign a
|
||||||
keyboard shortcut for running it or run it from the locator.
|
keyboard shortcut for running it or run it from the locator.
|
||||||
\endif
|
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Related Topics
|
\section1 Related Topics
|
||||||
@@ -88,7 +90,6 @@
|
|||||||
You can use a diff editor to compare two versions of a file and
|
You can use a diff editor to compare two versions of a file and
|
||||||
view the differences side-by-side in the \uicontrol Edit mode.
|
view the differences side-by-side in the \uicontrol Edit mode.
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \l{Parsing C++ Files with the Clang Code Model}
|
\li \l{Parsing C++ Files with the Clang Code Model}
|
||||||
|
|
||||||
The Clang code model offers some of the same services as the
|
The Clang code model offers some of the same services as the
|
||||||
|
@@ -28,9 +28,8 @@
|
|||||||
{locator}, \l{Moving to Symbol Definition or Declaration}
|
{locator}, \l{Moving to Symbol Definition or Declaration}
|
||||||
{following symbols}, and so on
|
{following symbols}, and so on
|
||||||
|
|
||||||
\li Inspecting code by using the \l{Browsing Project Contents}
|
\li Inspecting code by using the \l{Class View}{class browser}, the
|
||||||
{class browser}, the \l{Viewing Defined Types and Symbols}
|
\l{Outline}{outline}, and so on
|
||||||
{outline}, and so on
|
|
||||||
|
|
||||||
\li Diagnostics
|
\li Diagnostics
|
||||||
|
|
||||||
@@ -154,9 +153,8 @@
|
|||||||
specify that the projects in the session should be managed by a single
|
specify that the projects in the session should be managed by a single
|
||||||
clangd process.
|
clangd process.
|
||||||
|
|
||||||
The document outline in the \l{Viewing Defined Types and Symbols}
|
The document outline in the \l{Outline} view is backed by clangd's document
|
||||||
{Outline} view is backed by clangd's document symbol support, which
|
symbol support, which makes the results more reliable than before.
|
||||||
makes the results more reliable than before.
|
|
||||||
|
|
||||||
To specify settings for clangd:
|
To specify settings for clangd:
|
||||||
|
|
||||||
|
@@ -35,7 +35,7 @@
|
|||||||
copy the URL of the post on the code pasting service to the
|
copy the URL of the post on the code pasting service to the
|
||||||
clipboard when you paste a post.
|
clipboard when you paste a post.
|
||||||
\li Select the \uicontrol {Display General Messages after sending a post}
|
\li Select the \uicontrol {Display General Messages after sending a post}
|
||||||
check box to display the URL in \l{Viewing Output}{General Messages}
|
check box to display the URL in \l{View output}{General Messages}
|
||||||
when you paste a post.
|
when you paste a post.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
@@ -1,33 +1,20 @@
|
|||||||
// Copyright (C) 2023 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
|
||||||
|
|
||||||
// **********************************************************************
|
|
||||||
// NOTE: the sections are not ordered by their logical order to avoid
|
|
||||||
// reshuffling the file each time the index order changes (i.e., often).
|
|
||||||
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
||||||
// **********************************************************************
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-editor-functions.html
|
\previouspage creator-editor-functions.html
|
||||||
\page creator-coding-navigating.html
|
\page creator-coding-navigating.html
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\nextpage creator-views.html
|
|
||||||
\else
|
|
||||||
\nextpage creator-highlighting.html
|
\nextpage creator-highlighting.html
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Working in Edit Mode
|
\title Working in Edit Mode
|
||||||
|
|
||||||
This section describes how to use the \uicontrol Edit mode. For more
|
You can write code in the \uicontrol Edit mode.
|
||||||
information about using the sidebar, see \l{Browsing Project Contents}.
|
|
||||||
|
|
||||||
\section1 Using the Editor Toolbar
|
\section1 Using the Editor Toolbar
|
||||||
|
|
||||||
The editor toolbar is located at the top of the editor view. The editor
|
The editor toolbar is located at the top of the editor view. It is context
|
||||||
toolbar is context sensitive and shows items relevant to the file currently
|
sensitive and shows items relevant to the file currently open in the editor.
|
||||||
open in the editor.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\image qtcreator-editortoolbar-symbols.webp {Edit mode toolbar}
|
\image qtcreator-editortoolbar-symbols.webp {Edit mode toolbar}
|
||||||
|
|
||||||
To add more space around the toolbar items, select \uicontrol Edit >
|
To add more space around the toolbar items, select \uicontrol Edit >
|
||||||
@@ -35,9 +22,6 @@
|
|||||||
then select \uicontrol Relaxed in the \uicontrol {Toolbar style} field.
|
then select \uicontrol Relaxed in the \uicontrol {Toolbar style} field.
|
||||||
|
|
||||||
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
||||||
\else
|
|
||||||
\image studio-edit-mode.png
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\section2 Navigating Between Open Files and Symbols
|
\section2 Navigating Between Open Files and Symbols
|
||||||
|
|
||||||
@@ -72,10 +56,9 @@
|
|||||||
\l{Searching with the Locator}{locator}. Enter the line number and column
|
\l{Searching with the Locator}{locator}. Enter the line number and column
|
||||||
number in the locator, separated by a colon (:).
|
number in the locator, separated by a colon (:).
|
||||||
|
|
||||||
\note You can also use the \l{Browsing Project Contents}{sidebars} to
|
\note You can also use the \l{Show and hide sidebars}{sidebars} to
|
||||||
move around in \QC.
|
move around in \QC.
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\section2 Selecting Parse Context
|
\section2 Selecting Parse Context
|
||||||
|
|
||||||
Code might be interpreted differently in different contexts. A file can be
|
Code might be interpreted differently in different contexts. A file can be
|
||||||
@@ -104,7 +87,6 @@
|
|||||||
To reload the file with the selected encoding, select
|
To reload the file with the selected encoding, select
|
||||||
\uicontrol {Reload with Encoding}. To save the file with
|
\uicontrol {Reload with Encoding}. To save the file with
|
||||||
the new encoding, select \uicontrol {Save with Encoding}.
|
the new encoding, select \uicontrol {Save with Encoding}.
|
||||||
\endif
|
|
||||||
|
|
||||||
\section2 Selecting Line Ending Style
|
\section2 Selecting Line Ending Style
|
||||||
|
|
||||||
@@ -120,7 +102,7 @@
|
|||||||
|
|
||||||
To set the line endings to use for a project, select \uicontrol Projects >
|
To set the line endings to use for a project, select \uicontrol Projects >
|
||||||
\uicontrol {Project Settings} > \uicontrol Editor.
|
\uicontrol {Project Settings} > \uicontrol Editor.
|
||||||
\if defined(qtcreator)
|
|
||||||
For more information, see \l {Specifying Editor Settings}.
|
For more information, see \l {Specifying Editor Settings}.
|
||||||
|
|
||||||
\section2 Managing Language Servers
|
\section2 Managing Language Servers
|
||||||
@@ -132,7 +114,6 @@
|
|||||||
\l{Inspecting Language Clients}{inspect the communication} between \QC
|
\l{Inspecting Language Clients}{inspect the communication} between \QC
|
||||||
and language servers and view server capabilities, as well as
|
and language servers and view server capabilities, as well as
|
||||||
\l{Specifying Settings for Language Clients}{set language server preferences}.
|
\l{Specifying Settings for Language Clients}{set language server preferences}.
|
||||||
\endif
|
|
||||||
|
|
||||||
\section1 Editing Selected Lines
|
\section1 Editing Selected Lines
|
||||||
|
|
||||||
@@ -246,12 +227,7 @@
|
|||||||
\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
|
\uicontrol Bookmarks view in the \l{Show and hide sidebars}{sidebar}.
|
||||||
\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
|
||||||
|
|
||||||
@@ -338,7 +314,6 @@
|
|||||||
\uicontrol {Open Corresponding Header/Source in Next Split}. You can also
|
\uicontrol {Open Corresponding Header/Source in Next Split}. You can also
|
||||||
press \key F4 or \key {Ctrl+E,F4}, respectively.
|
press \key F4 or \key {Ctrl+E,F4}, respectively.
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\section1 Reparsing Externally Changed Files
|
\section1 Reparsing Externally Changed Files
|
||||||
|
|
||||||
If source files are modified from outside \QC, the opened files will be
|
If source files are modified from outside \QC, the opened files will be
|
||||||
@@ -363,13 +338,4 @@
|
|||||||
\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}.
|
||||||
|
|
||||||
\else
|
|
||||||
\section1 Related Topics
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li \l{Browsing Project Contents}
|
|
||||||
\li \l{Viewing Output}
|
|
||||||
\endlist
|
|
||||||
\endif
|
|
||||||
*/
|
*/
|
@@ -29,11 +29,9 @@
|
|||||||
{locator} or \l{Moving to Symbol Definition or Declaration}
|
{locator} or \l{Moving to Symbol Definition or Declaration}
|
||||||
{moving to the symbol definition}
|
{moving to the symbol definition}
|
||||||
\li Inspecting code by viewing the document outline in the
|
\li Inspecting code by viewing the document outline in the
|
||||||
\l{Viewing Defined Types and Symbols}{Outline} view or
|
\l{Outline} view or in the \uicontrol Symbols list on the
|
||||||
in the \uicontrol Symbols list on the \l{Using the Editor Toolbar}
|
\l{Using the Editor Toolbar}{editor toolbar}
|
||||||
{editor toolbar}
|
\li \l{Call Hierarchy}{Viewing the callers and callees of a function}
|
||||||
\li \l{Viewing Call Hierarchy}
|
|
||||||
{Viewing the callers and callees of a function}
|
|
||||||
\li \l{Finding Symbols}{Finding references to symbols}
|
\li \l{Finding Symbols}{Finding references to symbols}
|
||||||
\li \l{Renaming Symbols}{Renaming the symbol under cursor}
|
\li \l{Renaming Symbols}{Renaming the symbol under cursor}
|
||||||
\li Code actions
|
\li Code actions
|
||||||
@@ -94,7 +92,7 @@
|
|||||||
patterns to extend the MIME types, separated by semicolons.
|
patterns to extend the MIME types, separated by semicolons.
|
||||||
\li In the \uicontrol {Startup behavior} field, select whether the
|
\li In the \uicontrol {Startup behavior} field, select whether the
|
||||||
language server is started when \QC starts or when a project or file
|
language server is started when \QC starts or when a project or file
|
||||||
with a matching MIME type is opened. \l{Viewing Output}
|
with a matching MIME type is opened. \l{View output}
|
||||||
{General Messages} displays information about the connection to the
|
{General Messages} displays information about the connection to the
|
||||||
language server.
|
language server.
|
||||||
\li In the \uicontrol {Initialization options} field, you can add
|
\li In the \uicontrol {Initialization options} field, you can add
|
||||||
|
@@ -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
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -25,8 +25,7 @@
|
|||||||
|
|
||||||
To assign a keyboard shortcut to a text editing macro, select
|
To assign a keyboard shortcut to a text editing macro, select
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
||||||
\uicontrol Keyboard. For more information, see
|
\uicontrol Keyboard. For more information, see \l{Assign keyboard shortcuts}.
|
||||||
\l{Configuring Keyboard Shortcuts}.
|
|
||||||
|
|
||||||
You can also use the \c rm locator filter to run a macro. For more
|
You can also use the \c rm locator filter to run a macro. For more
|
||||||
information, see \l{Searching with the Locator}.
|
information, see \l{Searching with the Locator}.
|
||||||
|
@@ -1,9 +1,13 @@
|
|||||||
// 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
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-coding-navigating.html
|
|
||||||
\page creator-highlighting.html
|
\page creator-highlighting.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-editor-functions.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-coding-navigating.html
|
||||||
|
\endif
|
||||||
\nextpage creator-checking-code-syntax.html
|
\nextpage creator-checking-code-syntax.html
|
||||||
|
|
||||||
\title Semantic Highlighting
|
\title Semantic Highlighting
|
||||||
@@ -51,8 +55,8 @@
|
|||||||
If the editor cannot find the highlight definition for a file that you open
|
If the editor cannot find the highlight definition for a file that you open
|
||||||
for editing, it prompts you to download additional highlight definition
|
for editing, it prompts you to download additional highlight definition
|
||||||
files. Select \uicontrol {Download Definitions} to download the files.
|
files. Select \uicontrol {Download Definitions} to download the files.
|
||||||
Information about the downloaded files is displayed in \l{Viewing Output}
|
To view information about the downloaded files, open the \l{View output}
|
||||||
{General Messages}.
|
{General Messages} view.
|
||||||
|
|
||||||
To suppress the message for a particular file pattern, select
|
To suppress the message for a particular file pattern, select
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor}
|
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor}
|
||||||
|
@@ -113,7 +113,7 @@
|
|||||||
working directory.
|
working directory.
|
||||||
|
|
||||||
\li In the \uicontrol Output field, select how to handle output from the
|
\li In the \uicontrol Output field, select how to handle output from the
|
||||||
tool. You can ignore the output, view it in \l{Viewing Output}
|
tool. You can ignore the output, view it in \l{View output}
|
||||||
{General Messages}, or replace the selected text with the
|
{General Messages}, or replace the selected text with the
|
||||||
output in the code editor.
|
output in the code editor.
|
||||||
|
|
||||||
|
@@ -5,8 +5,10 @@
|
|||||||
\page creator-how-to-macos.html
|
\page creator-how-to-macos.html
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
\ingroup studio-how-to
|
\ingroup studio-how-to
|
||||||
|
|
||||||
|
@@ -5,8 +5,10 @@
|
|||||||
\page creator-how-to-set-high-dpi-scaling.html
|
\page creator-how-to-set-high-dpi-scaling.html
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
\ingroup studio-how-to
|
\ingroup studio-how-to
|
||||||
|
|
||||||
@@ -32,6 +34,7 @@
|
|||||||
\list 1
|
\list 1
|
||||||
\li Select \uicontrol Edit > \uicontrol Preferences >
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
\uicontrol Environment > \uicontrol Interface.
|
\uicontrol Environment > \uicontrol Interface.
|
||||||
|
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
||||||
\li Select \uicontrol {Enable high DPI scaling}.
|
\li Select \uicontrol {Enable high DPI scaling}.
|
||||||
\li Restart \QC to have the change take effect.
|
\li Restart \QC to have the change take effect.
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -5,8 +5,10 @@
|
|||||||
\page creator-how-to-switch-ui-themes.html
|
\page creator-how-to-switch-ui-themes.html
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
\ingroup studio-how-to
|
\ingroup studio-how-to
|
||||||
|
|
||||||
|
@@ -5,8 +5,10 @@
|
|||||||
\page creator-how-to-view-images.html
|
\page creator-how-to-view-images.html
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\ingroup creator-how-to-design
|
\ingroup creator-how-to-design
|
||||||
\ingroup studio-how-to-image-viewer
|
\ingroup studio-how-to-image-viewer
|
||||||
|
|
||||||
@@ -47,8 +49,10 @@
|
|||||||
\page creator-how-to-export-svg-images.html
|
\page creator-how-to-export-svg-images.html
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\else
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\ingroup creator-how-to-design
|
\ingroup creator-how-to-design
|
||||||
\ingroup studio-how-to-image-viewer
|
\ingroup studio-how-to-image-viewer
|
||||||
|
|
||||||
|
@@ -17,21 +17,14 @@
|
|||||||
\nextpage creator-editor-external.html
|
\nextpage creator-editor-external.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference
|
||||||
|
|
||||||
\title Keyboard Shortcuts
|
\title Keyboard Shortcuts
|
||||||
|
|
||||||
\QC has various keyboard shortcuts that speed up your development
|
\QC has various keyboard shortcuts that speed up your development process.
|
||||||
process. You can add more shortcuts if your favorite combination is
|
To view all \QC functions in and their keyboard shortcuts, select
|
||||||
missing. In addition, you can specify your own keyboard shortcuts for some
|
|
||||||
functions that can be easily performed with a mouse, and therefore do not
|
|
||||||
appear in menus or have default keyboard shortcuts. For example, selecting
|
|
||||||
and deleting words or lines in an editor.
|
|
||||||
|
|
||||||
To view all functions available in \QC and the keyboard shortcuts defined
|
|
||||||
for them, select
|
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
||||||
\uicontrol Keyboard. The shortcuts are listed by category. To find a keyboard
|
\uicontrol Keyboard.
|
||||||
shortcut in the list, enter a function name or shortcut in the \uicontrol Filter
|
|
||||||
field.
|
|
||||||
|
|
||||||
\image qtcreator-keyboard-shortcuts.png
|
\image qtcreator-keyboard-shortcuts.png
|
||||||
|
|
||||||
@@ -60,58 +53,10 @@
|
|||||||
|
|
||||||
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
||||||
|
|
||||||
\section1 Configuring Keyboard Shortcuts
|
|
||||||
|
|
||||||
To customize a keyboard shortcut:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Environment
|
|
||||||
> \uicontrol Keyboard.
|
|
||||||
|
|
||||||
\li Select a command from the list.
|
|
||||||
|
|
||||||
\li In the \uicontrol{Key Sequence} field, you have the following
|
|
||||||
options:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li Enter the shortcut key you want to associate with the
|
|
||||||
selected command.
|
|
||||||
|
|
||||||
\li Select \uicontrol Record, press the keys to use as the
|
|
||||||
keyboard shortcut, and select \uicontrol {Stop Recording}
|
|
||||||
when you are done.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\li To assign multiple keyboard shortcuts to a function, select
|
|
||||||
\uicontrol Add, and enter or record an additional key combination.
|
|
||||||
|
|
||||||
\li To revert to the default shortcut, select \uicontrol Reset.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\QC allows you to use different keyboard shortcut mapping schemes:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li To import a keyboard shortcut mapping scheme, click \uicontrol Import
|
|
||||||
and select the .kms file that has the keyboard shortcut mapping scheme
|
|
||||||
you want to import.
|
|
||||||
|
|
||||||
\li To export the current keyboard shortcut mapping scheme, click
|
|
||||||
\uicontrol Export and select the location where you want to save the
|
|
||||||
exported .kms file.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section1 Default Keyboard Shortcuts
|
|
||||||
|
|
||||||
The following tables list the default keyboard shortcuts. They are
|
The following tables list the default keyboard shortcuts. They are
|
||||||
categorized by actions.
|
categorized by actions.
|
||||||
|
|
||||||
\section2 General Keyboard Shortcuts
|
\section1 General Keyboard Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -183,9 +128,11 @@
|
|||||||
\row
|
\row
|
||||||
\li Previous open document in history
|
\li Previous open document in history
|
||||||
\li Ctrl+Tab
|
\li Ctrl+Tab
|
||||||
|
\if defined(qtcreator)
|
||||||
\row
|
\row
|
||||||
\li Activate \uicontrol Locator
|
\li Activate \uicontrol Locator
|
||||||
\li Ctrl+K
|
\li Ctrl+K
|
||||||
|
\endif
|
||||||
\row
|
\row
|
||||||
\li Switch to \uicontrol Welcome mode
|
\li Switch to \uicontrol Welcome mode
|
||||||
\li Ctrl+1
|
\li Ctrl+1
|
||||||
@@ -253,6 +200,7 @@
|
|||||||
\row
|
\row
|
||||||
\li Undo
|
\li Undo
|
||||||
\li Ctrl+Z
|
\li Ctrl+Z
|
||||||
|
\if defined(qtcreator)
|
||||||
\row
|
\row
|
||||||
\li Move to \uicontrol Edit mode
|
\li Move to \uicontrol Edit mode
|
||||||
|
|
||||||
@@ -262,6 +210,7 @@
|
|||||||
\li The second press closes secondary windows
|
\li The second press closes secondary windows
|
||||||
\endlist
|
\endlist
|
||||||
\li Esc
|
\li Esc
|
||||||
|
\endif
|
||||||
\row
|
\row
|
||||||
\li Exit \QC
|
\li Exit \QC
|
||||||
|
|
||||||
@@ -273,7 +222,7 @@
|
|||||||
\li Ctrl+Q
|
\li Ctrl+Q
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\section2 Editing Keyboard Shortcuts
|
\section1 Editing Keyboard Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -395,25 +344,7 @@
|
|||||||
\row
|
\row
|
||||||
\li Visualize whitespace
|
\li Visualize whitespace
|
||||||
\li Ctrl+E, Ctrl+V
|
\li Ctrl+E, Ctrl+V
|
||||||
\row
|
|
||||||
\li Adjust size
|
|
||||||
\li Ctrl+J
|
|
||||||
\row
|
|
||||||
\li Lay out in a grid
|
|
||||||
\li Ctrl+G
|
|
||||||
\row
|
|
||||||
\li Lay out horizontally
|
|
||||||
\li Ctrl+H
|
|
||||||
\row
|
|
||||||
\li Lay out vertically
|
|
||||||
\li Ctrl+L
|
|
||||||
\row
|
|
||||||
\li Preview
|
|
||||||
\li Alt+Shift+R
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\row
|
|
||||||
\li Edit signals and slots
|
|
||||||
\li F4
|
|
||||||
\row
|
\row
|
||||||
\li Toggle bookmark
|
\li Toggle bookmark
|
||||||
\li Ctrl+M
|
\li Ctrl+M
|
||||||
@@ -518,7 +449,7 @@
|
|||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\section3 Emacs Shortcuts
|
\section1 Emacs Shortcuts
|
||||||
|
|
||||||
You can specify shortcuts for executing actions in a way that is familiar to
|
You can specify shortcuts for executing actions in a way that is familiar to
|
||||||
\l{https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html}
|
\l{https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html}
|
||||||
@@ -549,7 +480,33 @@
|
|||||||
\li Yank
|
\li Yank
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section2 Image Viewer Shortcuts
|
\section1 \QD Shortcuts
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li Action
|
||||||
|
\li Keyboard shortcut
|
||||||
|
\row
|
||||||
|
\li Adjust size
|
||||||
|
\li Ctrl+J
|
||||||
|
\row
|
||||||
|
\li Lay out in a grid
|
||||||
|
\li Ctrl+G
|
||||||
|
\row
|
||||||
|
\li Lay out horizontally
|
||||||
|
\li Ctrl+H
|
||||||
|
\row
|
||||||
|
\li Lay out vertically
|
||||||
|
\li Ctrl+L
|
||||||
|
\row
|
||||||
|
\li Preview
|
||||||
|
\li Alt+Shift+R
|
||||||
|
\row
|
||||||
|
\li Edit signals and slots
|
||||||
|
\li F4
|
||||||
|
\endtable
|
||||||
|
|
||||||
|
\section1 Image Viewer Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -577,7 +534,7 @@
|
|||||||
\endif
|
\endif
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\section2 Design Mode Keyboard Shortcuts
|
\section1 Design Mode Keyboard Shortcuts
|
||||||
|
|
||||||
You can use the following keyboard shortcuts when editing QML files in the
|
You can use the following keyboard shortcuts when editing QML files in the
|
||||||
\uicontrol Design mode.
|
\uicontrol Design mode.
|
||||||
@@ -602,7 +559,8 @@
|
|||||||
\endtable
|
\endtable
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\section2 Debugging Keyboard Shortcuts
|
\if defined(qtcreator)
|
||||||
|
\section1 Debugging Keyboard Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -639,8 +597,9 @@
|
|||||||
\li Reverse direction
|
\li Reverse direction
|
||||||
\li F12
|
\li F12
|
||||||
\endtable
|
\endtable
|
||||||
|
\endif
|
||||||
|
|
||||||
\section2 Project Keyboard Shortcuts
|
\section1 Project Keyboard Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -670,7 +629,7 @@
|
|||||||
\li Ctrl+R
|
\li Ctrl+R
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\section2 Help Keyboard Shortcuts
|
\section1 Help Keyboard Shortcuts
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
@@ -696,7 +655,7 @@
|
|||||||
\li Ctrl+S
|
\li Ctrl+S
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\section2 Version Control Keyboard Shortcuts
|
\section1 Version Control Keyboard Shortcuts
|
||||||
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\table
|
\table
|
||||||
@@ -830,4 +789,139 @@
|
|||||||
\li Alt+G, Alt+U
|
\li Alt+G, Alt+U
|
||||||
\endtable
|
\endtable
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
|
\sa {Assign keyboard shortcuts}, {Find keyboard shortcuts},
|
||||||
|
{Import and export keyboard shortcuts}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-assign-keyboard-shortcuts.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-keyboard-shortcuts.html
|
||||||
|
\nextpage studio-projects.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title Assign keyboard shortcuts
|
||||||
|
|
||||||
|
If your favorite keyboard shortcut is missing, you can add it. Also, you can
|
||||||
|
assign your own keyboard shortcuts for functions that you can easily perform
|
||||||
|
with a mouse, and that therefore do not appear in menus or have default
|
||||||
|
keyboard shortcuts. For example, selecting and deleting words or lines in an
|
||||||
|
editor.
|
||||||
|
|
||||||
|
To change an existing keyboard shortcut or assign a new one:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Environment
|
||||||
|
> \uicontrol Keyboard.
|
||||||
|
\image qtcreator-keyboard-shortcuts.png {Keyboard preferences}
|
||||||
|
|
||||||
|
\li Select a command from the list.
|
||||||
|
|
||||||
|
\li In the \uicontrol{Key Sequence} field, you have the following
|
||||||
|
options:
|
||||||
|
|
||||||
|
\list
|
||||||
|
|
||||||
|
\li Enter the shortcut key you want to associate with the
|
||||||
|
selected command.
|
||||||
|
|
||||||
|
\li Record a key sequence.
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\li To assign multiple keyboard shortcuts to a function, select
|
||||||
|
\uicontrol Add, and enter or record an additional key combination.
|
||||||
|
|
||||||
|
\li To revert to the default shortcut, select \uicontrol Reset.
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Record key sequences
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Record.
|
||||||
|
\li Press the keys to use as the keyboard shortcut.
|
||||||
|
\li Select \uicontrol {Stop Recording} when you are done.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\sa {Keyboard Shortcuts}, {Find keyboard shortcuts},
|
||||||
|
{Import and export keyboard shortcuts}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-find-keyboard-shortcuts.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-keyboard-shortcuts.html
|
||||||
|
\nextpage studio-projects.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title Find keyboard shortcuts
|
||||||
|
|
||||||
|
\QC has many useful keyboard shortcuts. You can see the keyboard shortcut for
|
||||||
|
a menu command in the menu or the tooltip for a button or in the keyboard
|
||||||
|
preferences.
|
||||||
|
|
||||||
|
To look up keyboard shortcuts:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol Keyboard.
|
||||||
|
\image qtcreator-keyboard-shortcuts.png {Keyboard preferences}
|
||||||
|
\li Start typing the name of a function or shortcut in the
|
||||||
|
\uicontrol Filter field.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
You can change the existing keyboard shortcuts or import and export them.
|
||||||
|
|
||||||
|
\sa {Keyboard Shortcuts}, {Assign keyboard shortcuts},
|
||||||
|
{Import and export keyboard shortcuts}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-how-to-change-keyboard-shortcuts.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-keyboard-shortcuts.html
|
||||||
|
\nextpage studio-projects.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\title Import and export keyboard shortcuts
|
||||||
|
|
||||||
|
You can use different keyboard shortcut mapping schemes that are stored as
|
||||||
|
.kms files.
|
||||||
|
|
||||||
|
To import and export keyboard shortcut mapping schemes:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
|
||||||
|
\li Select uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol Keyboard.
|
||||||
|
\image qtcreator-keyboard-shortcuts.png {Keyboard preferences}
|
||||||
|
|
||||||
|
\li To import a keyboard shortcut mapping scheme, click \uicontrol Import
|
||||||
|
and select the .kms file that has the keyboard shortcut mapping scheme
|
||||||
|
you want to import.
|
||||||
|
|
||||||
|
\li To export the current keyboard shortcut mapping scheme, click
|
||||||
|
\uicontrol Export and select the location where you want to save the
|
||||||
|
exported .kms file.
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\sa {Keyboard Shortcuts}, {Assign keyboard shortcuts},
|
||||||
|
{Find keyboard shortcuts}
|
||||||
*/
|
*/
|
||||||
|
@@ -584,7 +584,7 @@
|
|||||||
|
|
||||||
\section1 Viewing Test Output
|
\section1 Viewing Test Output
|
||||||
|
|
||||||
The \l{Viewing Output}{Test Results} view shows Qt and Qt Quick test results
|
The \l{View output}{Test Results} view shows Qt and Qt Quick test results
|
||||||
in XML format and other test results in plain text format.
|
in XML format and other test results in plain text format.
|
||||||
|
|
||||||
\section2 Qt Test Output
|
\section2 Qt Test Output
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-enable-plugins.html
|
\page creator-how-to-enable-plugins.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-use
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
\title Enable and disable plugins
|
\title Enable and disable plugins
|
||||||
@@ -16,7 +16,10 @@
|
|||||||
on are also enabled.
|
on are also enabled.
|
||||||
|
|
||||||
You can also disable plugins that you do not use, to streamline \QC.
|
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.
|
If you disable a plugin, \QC asks you to disable all plugins that
|
||||||
|
depend on it. This might lead to some features not working properly.
|
||||||
|
Further, the plugins are not automatically enabled if you enable the
|
||||||
|
first plugin again.
|
||||||
|
|
||||||
To enable and disable plugins:
|
To enable and disable plugins:
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-find-settings-files.html
|
\page creator-how-to-find-settings-files.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-use
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
\title Find settings files
|
\title Find settings files
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-install-plugins.html
|
\page creator-how-to-install-plugins.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-use
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
\title Install plugins
|
\title Install plugins
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\previouspage creator-faq.html
|
\previouspage creator-faq.html
|
||||||
\page creator-how-tos.html
|
\page creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
\nextpage creator-reference.html
|
||||||
|
|
||||||
\title How-to
|
\title How-to
|
||||||
|
|
||||||
@@ -19,9 +19,11 @@
|
|||||||
\section1 Use the UI
|
\section1 Use the UI
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li \l {Assign keyboard shortcuts}
|
||||||
\li \l {Find a particular preference}
|
\li \l {Find a particular preference}
|
||||||
\li \l {Find keyboard shortcuts}
|
\li \l {Find keyboard shortcuts}
|
||||||
\li \l {Find menu items on \macos}
|
\li \l {Find menu items on \macos}
|
||||||
|
\li \l {Import and export keyboard shortcuts}
|
||||||
\li \l {Set high DPI scaling}
|
\li \l {Set high DPI scaling}
|
||||||
\li \l {Set the number of recent files shown}
|
\li \l {Set the number of recent files shown}
|
||||||
\li \l {Show and hide sidebars}
|
\li \l {Show and hide sidebars}
|
||||||
@@ -74,7 +76,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-move-between-open-files.html
|
\page creator-how-to-move-between-open-files.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Move between open files
|
\title Move between open files
|
||||||
@@ -83,8 +85,10 @@
|
|||||||
\key Ctrl+Tab.
|
\key Ctrl+Tab.
|
||||||
|
|
||||||
To move forward in the location history, press \key {Alt+Right}
|
To move forward in the location history, press \key {Alt+Right}
|
||||||
(\key {Cmd+Opt+Right} on \macos). To move backward, press \key {Alt+Left}
|
(\key {Cmd+Opt+Right} on \macos).
|
||||||
(\key {Cmd+Opt+Left} on \macos). For example, if you use the \uicontrol Locator
|
|
||||||
|
To move backward, press \key {Alt+Left} (\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}.
|
||||||
*/
|
*/
|
||||||
@@ -92,7 +96,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-switch-to-edit-mode.html
|
\page creator-how-to-switch-to-edit-mode.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Switch to Edit mode
|
\title Switch to Edit mode
|
||||||
@@ -114,7 +118,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-find-preferences.html
|
\page creator-how-to-find-preferences.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
\title Find a particular preference
|
\title Find a particular preference
|
||||||
@@ -125,60 +129,10 @@
|
|||||||
\image qtcreator-preferences.webp {Filtering preferences}
|
\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
|
|
||||||
several sources, such as a list of errors and warnings encountered during
|
|
||||||
a build, detailed output from the compiler, status of a program when it is
|
|
||||||
executed, debug output, or search results.
|
|
||||||
|
|
||||||
\image qtcreator-output-panes-taskbar.webp "Output on the taskbar"
|
|
||||||
|
|
||||||
To view different types of output, use the following shortcuts:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li \uicontrol{Issues} - \key Alt+1 (\key Cmd+1 on \macos)
|
|
||||||
|
|
||||||
\li \uicontrol{Search Results} - \key Alt+2 (\key Cmd+2 on \macos)
|
|
||||||
|
|
||||||
\li \uicontrol{Application Output} - \key Alt+3 (\key Cmd+3 on \macos)
|
|
||||||
|
|
||||||
\li \uicontrol{Compile Output} - \key Alt+4 (\key Cmd+4 on \macos)
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
For additional ways to view other types of output, see \l{Viewing Output}.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\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}.
|
|
||||||
You can see the keyboard shortcut for a menu command in the menu
|
|
||||||
or the tooltip for a button.
|
|
||||||
|
|
||||||
To customize, import, or export keyboard shortcuts, select \uicontrol Edit >
|
|
||||||
\uicontrol Preferences > \uicontrol Environment > \uicontrol Keyboard.
|
|
||||||
|
|
||||||
\image qtcreator-keyboard-shortcuts.png "Keyboard preferences"
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-how-to-run-from-cli.html
|
\page creator-how-to-run-from-cli.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-use
|
\ingroup creator-how-to-use
|
||||||
|
|
||||||
\title Run \QC from the command line
|
\title Run \QC from the command line
|
||||||
@@ -196,7 +150,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-move-to-symbols.html
|
\page creator-how-to-move-to-symbols.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Move to symbols
|
\title Move to symbols
|
||||||
@@ -219,7 +173,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-locate-files-using-keyboard.html
|
\page creator-how-to-locate-files-using-keyboard.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Locate files using the keyboard
|
\title Locate files using the keyboard
|
||||||
@@ -244,7 +198,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-perform-calculations.html
|
\page creator-how-to-perform-calculations.html
|
||||||
\previouspage creator-how-to-move-between-open-files.html
|
\previouspage creator-how-to-move-between-open-files.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Perform calculations
|
\title Perform calculations
|
||||||
@@ -261,7 +215,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-jump-to-functions-in-qml-code.html
|
\page creator-how-to-jump-to-functions-in-qml-code.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Jump to a function in QML code
|
\title Jump to a function in QML code
|
||||||
@@ -273,7 +227,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-add-license-header-templates.html
|
\page creator-how-to-add-license-header-templates.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-projects
|
\ingroup creator-how-to-projects
|
||||||
|
|
||||||
\title Add a license header template for C++ code
|
\title Add a license header template for C++ code
|
||||||
@@ -304,7 +258,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-paste-text-from-clipboard-history.html
|
\page creator-how-to-paste-text-from-clipboard-history.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Paste text from clipboard history
|
\title Paste text from clipboard history
|
||||||
@@ -317,7 +271,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-sort-lines-alphabetically.html
|
\page creator-how-to-sort-lines-alphabetically.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Sort lines alphabetically
|
\title Sort lines alphabetically
|
||||||
@@ -330,7 +284,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-enclose-code-in-characters.html
|
\page creator-enclose-code-in-characters.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Enclose selected code in curly braces, parentheses, or double quotes
|
\title Enclose selected code in curly braces, parentheses, or double quotes
|
||||||
@@ -355,7 +309,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-select-enclosing-block.html
|
\page creator-how-to-select-enclosing-block.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Select the enclosing block in C++
|
\title Select the enclosing block in C++
|
||||||
@@ -366,7 +320,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-add-code-snippets.html
|
\page creator-how-to-add-code-snippets.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Add code snippets to the auto-complete menu
|
\title Add code snippets to the auto-complete menu
|
||||||
@@ -383,7 +337,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-write-notes.html
|
\page creator-how-to-write-notes.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Write down notes
|
\title Write down notes
|
||||||
@@ -412,22 +366,27 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-set-recent-files.html
|
\page creator-how-to-set-recent-files.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
\title Set the number of recent files shown
|
\title Set the number of recent files shown
|
||||||
|
|
||||||
Set the value of \uicontrol Edit > \uicontrol Preferences >
|
To set the number of files to list in \uicontrol File >
|
||||||
\uicontrol Environment > \uicontrol System
|
\uicontrol {Recent Files}:
|
||||||
> \uicontrol {Maximum number of entries in "Recent Files"}.
|
|
||||||
|
|
||||||
\image qtcreator-options-environment-system.png "System preferences"
|
\list 1
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol System.
|
||||||
|
\image qtcreator-options-environment-system.png {System preferences}
|
||||||
|
\li In \uicontrol {Maximum number of entries in "Recent Files"}, set
|
||||||
|
the number of files to show.
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-how-to-search-and-replace-using-regexp.html
|
\page creator-how-to-search-and-replace-using-regexp.html
|
||||||
\previouspage creator-how-to-move-between-open-files.html
|
\previouspage creator-how-to-move-between-open-files.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-edit
|
\ingroup creator-how-to-edit
|
||||||
|
|
||||||
\title Search and replace across files using a regular expression
|
\title Search and replace across files using a regular expression
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
\li Record test cases (in a very limited way compared to what you can do
|
\li Record test cases (in a very limited way compared to what you can do
|
||||||
inside the Squish IDE).
|
inside the Squish IDE).
|
||||||
\li Use Squish Runner and Server to run test suites or cases and view
|
\li Use Squish Runner and Server to run test suites or cases and view
|
||||||
the results in the \uicontrol Squish \l{Viewing Output}{output}.
|
the results in the \uicontrol Squish \l{View output}{output}.
|
||||||
\li Set breakpoints before running tests to stop at certain locations and
|
\li Set breakpoints before running tests to stop at certain locations and
|
||||||
inspect the local variables, similarly to when debugging a test.
|
inspect the local variables, similarly to when debugging a test.
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-output-panes.html
|
\previouspage creator-quick-tour.html
|
||||||
\page creator-configuring.html
|
\page creator-configuring.html
|
||||||
\nextpage creator-build-example-application.html
|
\nextpage creator-build-example-application.html
|
||||||
|
|
||||||
|
@@ -34,6 +34,10 @@
|
|||||||
|
|
||||||
Lists useful \QC features.
|
Lists useful \QC features.
|
||||||
|
|
||||||
|
\li \l{Reference}
|
||||||
|
|
||||||
|
Lists the sidebar views and the output views.
|
||||||
|
|
||||||
\li \l{Known Issues}
|
\li \l{Known Issues}
|
||||||
|
|
||||||
Lists known issues in \QC version \qtcversion. The development team
|
Lists known issues in \QC version \qtcversion. The development team
|
||||||
|
@@ -0,0 +1,22 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference.html
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\nextpage creator-known-issues.html
|
||||||
|
|
||||||
|
\title Reference
|
||||||
|
|
||||||
|
The following topics describe the different parts of the UI in detail.
|
||||||
|
|
||||||
|
\section1 Sidebar Views
|
||||||
|
|
||||||
|
\annotatedlist creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\section1 Output Views
|
||||||
|
|
||||||
|
\annotatedlist creator-reference-output-views
|
||||||
|
|
||||||
|
\sa {User Interface}, {Show and hide sidebars}, {View output}
|
||||||
|
*/
|
@@ -1,40 +1,16 @@
|
|||||||
// 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
|
||||||
|
|
||||||
// **********************************************************************
|
|
||||||
// NOTE: the sections are not ordered by their logical order to avoid
|
|
||||||
// reshuffling the file each time the index order changes (i.e., often).
|
|
||||||
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
||||||
// **********************************************************************
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-build-example-application.html
|
\previouspage creator-build-example-application.html
|
||||||
\page creator-tutorials.html
|
\page creator-tutorials.html
|
||||||
\nextpage {Creating a Qt Quick Application}
|
\nextpage creator-project-managing.html
|
||||||
|
|
||||||
\title Tutorials
|
\title Tutorials
|
||||||
|
|
||||||
\image front-help.png
|
You can use \QC to create applications for several \l{Supported Platforms}
|
||||||
|
{platforms} by using several \l{User Interfaces}{UI technologies}. Follow
|
||||||
You can use \QC to create applications for several platforms by using
|
the tutorials to learn how to create some basic Qt applications.
|
||||||
several technologies. The tutorials in this manual explain how to create
|
|
||||||
some basic applications.
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li \l{Creating a Qt Quick Application}
|
|
||||||
|
|
||||||
Learn how to create a Qt Quick application.
|
|
||||||
|
|
||||||
\li \l{Creating a Qt Widget Based Application}
|
|
||||||
|
|
||||||
Learn how to create a Qt widget based application for the desktop.
|
|
||||||
|
|
||||||
\li \l{Creating a Mobile Application}
|
|
||||||
|
|
||||||
Learn how to create a Qt Quick application using Qt Quick Controls
|
|
||||||
for Android and iOS devices.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
|
\annotatedlist creator-tutorials
|
||||||
*/
|
*/
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
// Copyright (C) 2023 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 qtcreator-toc.html
|
\page qtcreator-toc.html
|
||||||
|
|
||||||
@@ -18,23 +17,9 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{IDE Overview}
|
\li \l{IDE Overview}
|
||||||
\li \l{User Interface}
|
\li \l{User Interface}
|
||||||
\list
|
|
||||||
\li \l{Browsing Project Contents}
|
|
||||||
\list
|
|
||||||
\li \l{Projects}
|
|
||||||
\li \l{File System}
|
|
||||||
\li \l{Open Documents}
|
|
||||||
\endlist
|
|
||||||
\li \l{Viewing Output}
|
|
||||||
\endlist
|
|
||||||
\li \l{Configuring Qt Creator}
|
\li \l{Configuring Qt Creator}
|
||||||
\li \l{Building and Running an Example}
|
\li \l{Building and Running an Example}
|
||||||
\li \l{Tutorials}
|
\li \l{Tutorials}
|
||||||
\list
|
|
||||||
\li \l{Creating a Qt Quick Application}
|
|
||||||
\li \l{Creating a Qt Widget Based Application}
|
|
||||||
\li \l{Creating a Mobile Application}
|
|
||||||
\endlist
|
|
||||||
\endlist
|
\endlist
|
||||||
\li \l{Managing Projects}
|
\li \l{Managing Projects}
|
||||||
\list
|
\list
|
||||||
@@ -254,6 +239,76 @@
|
|||||||
\li \l{Using the Help Mode}
|
\li \l{Using the Help Mode}
|
||||||
\li \l{FAQ}
|
\li \l{FAQ}
|
||||||
\li \l{How-to}
|
\li \l{How-to}
|
||||||
|
\list
|
||||||
|
\li Use the UI
|
||||||
|
\list
|
||||||
|
\li \l {Assign keyboard shortcuts}
|
||||||
|
\li \l {Find a particular preference}
|
||||||
|
\li \l {Find keyboard shortcuts}
|
||||||
|
\li \l {Find menu items on \macos}
|
||||||
|
\li \l {Import and export keyboard shortcuts}
|
||||||
|
\li \l {Set high DPI scaling}
|
||||||
|
\li \l {Set the number of recent files shown}
|
||||||
|
\li \l {Show and hide sidebars}
|
||||||
|
\li \l {Switch between modes}
|
||||||
|
\li \l {Switch UI themes}
|
||||||
|
\li \l {View output}
|
||||||
|
\endlist
|
||||||
|
\li Edit Code
|
||||||
|
\list
|
||||||
|
\li \l {Add code snippets to the auto-complete menu}
|
||||||
|
\li \l {Enclose selected code in curly braces, parentheses, or double quotes}
|
||||||
|
\li \l {Jump to a function in QML code}
|
||||||
|
\li \l {Locate files using the keyboard}
|
||||||
|
\li \l {Move between open files}
|
||||||
|
\li \l {Move to symbols}
|
||||||
|
\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
|
||||||
|
\li Design UIs
|
||||||
|
\list
|
||||||
|
\li \l {Export SVG images}
|
||||||
|
\li \l {View images}
|
||||||
|
\endlist
|
||||||
|
\li Manage Projects
|
||||||
|
\list
|
||||||
|
\li \l {Add a license header template for C++ code}
|
||||||
|
\endlist
|
||||||
|
\li 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
|
||||||
|
\endlist
|
||||||
|
\li \l{Reference}
|
||||||
|
\list
|
||||||
|
\li Sidebar Views
|
||||||
|
\list
|
||||||
|
\li \l {Call Hierarchy}
|
||||||
|
\li \l {Class View}
|
||||||
|
\li \l {File System}
|
||||||
|
\li \l {Include Hierarchy}
|
||||||
|
\li \l {Open Documents}
|
||||||
|
\li \l {Outline}
|
||||||
|
\li \l {Projects}
|
||||||
|
\li \l {Type Hierarchy}
|
||||||
|
\endlist
|
||||||
|
\li Output Views
|
||||||
|
\list
|
||||||
|
\li \l {Application Output}
|
||||||
|
\li \l {Compile Output}
|
||||||
|
\li \l {Issues}
|
||||||
|
\li \l {Search Results}
|
||||||
|
\li \l {To-Do Entries}
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
\li \l{Known Issues}
|
\li \l{Known Issues}
|
||||||
\li \l{Glossary}
|
\li \l{Glossary}
|
||||||
\li \l{Technical Support}
|
\li \l{Technical Support}
|
||||||
|
@@ -104,6 +104,7 @@
|
|||||||
\li \l{Using the Help Mode}
|
\li \l{Using the Help Mode}
|
||||||
\li \l{FAQ}
|
\li \l{FAQ}
|
||||||
\li \l{How-to}
|
\li \l{How-to}
|
||||||
|
\li \l{Reference}
|
||||||
\li \l{Known Issues}
|
\li \l{Known Issues}
|
||||||
\li \l{Glossary}
|
\li \l{Glossary}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -1,25 +1,23 @@
|
|||||||
// 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
|
||||||
|
|
||||||
// **********************************************************************
|
|
||||||
// NOTE: the sections are not ordered by their logical order to avoid
|
|
||||||
// reshuffling the file each time the index order changes (i.e., often).
|
|
||||||
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
||||||
// **********************************************************************
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-writing-program.html
|
|
||||||
\example accelbubble
|
\example accelbubble
|
||||||
|
\previouspage creator-tutorials.html
|
||||||
\nextpage creator-project-managing.html
|
\nextpage creator-project-managing.html
|
||||||
|
\ingroup creator-tutorials
|
||||||
|
|
||||||
\title Creating a Mobile Application
|
\title Creating a Mobile Application
|
||||||
|
|
||||||
|
\brief How to create a Qt Quick application that uses Qt Quick Controls and
|
||||||
|
runs on Android and iOS devices.
|
||||||
|
|
||||||
This tutorial describes how to use \QC to develop Qt Quick applications for
|
This tutorial describes how to use \QC to develop Qt Quick applications for
|
||||||
Android and iOS devices when using Qt 6 as the minimum Qt version and CMake
|
Android and iOS devices when using Qt 6 as the minimum Qt version and CMake
|
||||||
as the build system.
|
as the build system.
|
||||||
|
|
||||||
We implement a Qt Quick application that accelerates an SVG (Scalable Vector
|
You will develop a Qt Quick application that accelerates an SVG
|
||||||
Graphics) image based on the changing accelerometer values.
|
(Scalable Vector Graphics) image based on changing accelerometer values.
|
||||||
|
|
||||||
\note You must have the \l{Qt Sensors} module from Qt 6.2 or later installed
|
\note You must have the \l{Qt Sensors} module from Qt 6.2 or later installed
|
||||||
to be able to follow this tutorial.
|
to be able to follow this tutorial.
|
||||||
@@ -48,9 +46,6 @@
|
|||||||
The main view of the application displays an SVG bubble image that moves
|
The main view of the application displays an SVG bubble image that moves
|
||||||
around the screen when you tilt the device.
|
around the screen when you tilt the device.
|
||||||
|
|
||||||
We use \e {Bluebubble.svg} in this tutorial, but you can use any other
|
|
||||||
image or component instead.
|
|
||||||
|
|
||||||
For the image to appear when you run the application, you must specify it
|
For the image to appear when you run the application, you must specify it
|
||||||
as a resource in the \c RESOURCES section of \e CMakeLists.txt file that
|
as a resource in the \c RESOURCES section of \e CMakeLists.txt file that
|
||||||
the wizard created for you:
|
the wizard created for you:
|
||||||
@@ -61,31 +56,33 @@
|
|||||||
|
|
||||||
\section1 Creating the Accelbubble Main View
|
\section1 Creating the Accelbubble Main View
|
||||||
|
|
||||||
We create the main view in the \e main.qml file by adding an \l Image
|
Create the main view in the \e main.qml file by adding an \l Image
|
||||||
component with \e Bluebubble.svg as the source:
|
component with \e Bluebubble.svg as the source:
|
||||||
|
|
||||||
\quotefromfile accelbubble/main.qml
|
\quotefromfile accelbubble/main.qml
|
||||||
\skipto Image
|
\skipto Image
|
||||||
\printuntil smooth
|
\printuntil smooth
|
||||||
|
|
||||||
Next, we add custom properties to position the image in respect to the width
|
You can use any other image or component instead.
|
||||||
|
|
||||||
|
Add custom properties to position the image in respect to the width
|
||||||
and height of the main window:
|
and height of the main window:
|
||||||
|
|
||||||
\printuntil y:
|
\printuntil y:
|
||||||
|
|
||||||
We now want to add code to move the bubble based on Accelerometer sensor
|
Add code to move the bubble based on Accelerometer sensor
|
||||||
values. First, we add the following import statement:
|
values. First, add the following import statement:
|
||||||
|
|
||||||
\quotefromfile accelbubble/main.qml
|
\quotefromfile accelbubble/main.qml
|
||||||
\skipto QtSensors
|
\skipto QtSensors
|
||||||
\printline QtSensors
|
\printline QtSensors
|
||||||
|
|
||||||
Next, we add the \l{Accelerometer} component with the necessary properties:
|
Add the \l{Accelerometer} component with the necessary properties:
|
||||||
|
|
||||||
\skipto Accelerometer
|
\skipto Accelerometer
|
||||||
\printuntil active
|
\printuntil active
|
||||||
|
|
||||||
Then, we add the following JavaScript functions that calculate the
|
Add the following JavaScript functions that calculate the
|
||||||
x and y position of the bubble based on the current Accelerometer
|
x and y position of the bubble based on the current Accelerometer
|
||||||
values:
|
values:
|
||||||
|
|
||||||
@@ -94,7 +91,7 @@
|
|||||||
\printuntil }
|
\printuntil }
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
We add the following JavaScript code for \c onReadingChanged signal of
|
Add the following JavaScript code for \c onReadingChanged signal of
|
||||||
Accelerometer component to make the bubble move when the Accelerometer
|
Accelerometer component to make the bubble move when the Accelerometer
|
||||||
values change:
|
values change:
|
||||||
|
|
||||||
@@ -102,12 +99,12 @@
|
|||||||
\skipto onReadingChanged
|
\skipto onReadingChanged
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
We want to ensure that the position of the bubble is always
|
You need to ensure that the position of the bubble is always
|
||||||
within the bounds of the screen. If the Accelerometer returns
|
within the bounds of the screen. If the Accelerometer returns
|
||||||
\e {not a number} (NaN), the value is ignored and the bubble
|
\e {not a number} (NaN), the value is ignored and the bubble
|
||||||
position is not updated.
|
position is not updated.
|
||||||
|
|
||||||
We add \l SmoothedAnimation behavior on the \c x and \c y properties of
|
Add \l SmoothedAnimation behavior on the \c x and \c y properties of
|
||||||
the bubble to make its movement look smoother.
|
the bubble to make its movement look smoother.
|
||||||
|
|
||||||
\quotefromfile accelbubble/main.qml
|
\quotefromfile accelbubble/main.qml
|
||||||
@@ -126,7 +123,7 @@
|
|||||||
an \e AndroidManifest.xml that you can generate in \QC. For more information,
|
an \e AndroidManifest.xml that you can generate in \QC. For more information,
|
||||||
see \l{Editing Manifest Files}.
|
see \l{Editing Manifest Files}.
|
||||||
|
|
||||||
\image qtquick-mobile-tutorial-manifest.png "Accelbubble manifest file"
|
\image qtquick-mobile-tutorial-manifest.png {Accelbubble manifest file}
|
||||||
|
|
||||||
To generate and use a manifest file, you must specify the Android package
|
To generate and use a manifest file, you must specify the Android package
|
||||||
source directory, \c QT_ANDROID_PACKAGE_SOURCE_DIR in the \e CMakeLists.txt
|
source directory, \c QT_ANDROID_PACKAGE_SOURCE_DIR in the \e CMakeLists.txt
|
||||||
@@ -136,14 +133,14 @@
|
|||||||
\skipto set_property
|
\skipto set_property
|
||||||
\printuntil )
|
\printuntil )
|
||||||
|
|
||||||
Because our CMake version is older than 3.19, we must add a manual
|
Because the CMake version is older than 3.19, add a manual
|
||||||
finalization step to the \c qt_add_executable function:
|
finalization step to the \c qt_add_executable function:
|
||||||
|
|
||||||
\quotefromfile accelbubble/CMakeLists.txt
|
\quotefromfile accelbubble/CMakeLists.txt
|
||||||
\skipto qt_add_executable
|
\skipto qt_add_executable
|
||||||
\printuntil )
|
\printuntil )
|
||||||
|
|
||||||
We also need to add the \c qt_finalize_executable function:
|
Then, add the \c qt_finalize_executable function:
|
||||||
|
|
||||||
\skipto qt_finalize_executable
|
\skipto qt_finalize_executable
|
||||||
\printuntil )
|
\printuntil )
|
||||||
|
@@ -1,13 +1,16 @@
|
|||||||
// 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
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage creator-tutorials.html
|
|
||||||
\example transitions
|
\example transitions
|
||||||
\nextpage creator-writing-program.html
|
\previouspage creator-tutorials.html
|
||||||
|
\nextpage creator-project-managing.html
|
||||||
|
\ingroup creator-tutorials
|
||||||
|
|
||||||
\title Creating a Qt Quick Application
|
\title Creating a Qt Quick Application
|
||||||
|
|
||||||
|
\brief How to create a Qt Quick Application in the \uicontrol Edit mode.
|
||||||
|
|
||||||
This tutorial illustrates basic concepts of \l{Qt Quick}. For more
|
This tutorial illustrates basic concepts of \l{Qt Quick}. For more
|
||||||
information about the UI choices you have, see \l{User Interfaces}.
|
information about the UI choices you have, see \l{User Interfaces}.
|
||||||
|
|
||||||
@@ -15,10 +18,10 @@
|
|||||||
{states} and \l{Animation and Transitions in Qt Quick}{transitions}
|
{states} and \l{Animation and Transitions in Qt Quick}{transitions}
|
||||||
when using Qt 6 as the minimum Qt version and CMake as the build system.
|
when using Qt 6 as the minimum Qt version and CMake as the build system.
|
||||||
|
|
||||||
We use the \l{Working in Edit Mode}{Edit mode} to create an application
|
You will use the \l{Working in Edit Mode}{Edit mode} to create an application
|
||||||
that moves a Qt logo between three rectangles when you click them.
|
that moves a Qt logo between three rectangles when you click them.
|
||||||
|
|
||||||
\image qtquick-tutorial.gif "Transitions example"
|
\image qtquick-tutorial.gif {Transitions example}
|
||||||
|
|
||||||
For more examples, see \l{Qt Quick Examples and Tutorials}.
|
For more examples, see \l{Qt Quick Examples and Tutorials}.
|
||||||
|
|
||||||
@@ -35,9 +38,6 @@
|
|||||||
The main view of the application displays a Qt logo inside a rectangle in
|
The main view of the application displays a Qt logo inside a rectangle in
|
||||||
the top left corner of the view and two empty rectangles.
|
the top left corner of the view and two empty rectangles.
|
||||||
|
|
||||||
We use the \e qt-logo.png image in this tutorial, but you can also use
|
|
||||||
any other image or a component, instead.
|
|
||||||
|
|
||||||
For the image to appear when you run the application, you must specify it
|
For the image to appear when you run the application, you must specify it
|
||||||
as a resource in the \c RESOURCES section of \e CMakeLists.txt file that
|
as a resource in the \c RESOURCES section of \e CMakeLists.txt file that
|
||||||
the wizard created for you:
|
the wizard created for you:
|
||||||
@@ -49,8 +49,8 @@
|
|||||||
\section1 Creating Custom QML Types
|
\section1 Creating Custom QML Types
|
||||||
|
|
||||||
Because the \l Window QML type requires that you add states into child
|
Because the \l Window QML type requires that you add states into child
|
||||||
components, we use the wizard to create a custom QML type called
|
components, use the wizard to create a custom QML type called
|
||||||
\e Page that we will refer to from \e main.qml.
|
\e Page that you refer to from \e Main.qml.
|
||||||
|
|
||||||
To create a custom QML type:
|
To create a custom QML type:
|
||||||
|
|
||||||
@@ -60,14 +60,14 @@
|
|||||||
\uicontrol {QML File (Qt Quick 2)}.
|
\uicontrol {QML File (Qt Quick 2)}.
|
||||||
\li Select \uicontrol Choose to open the \uicontrol Location dialog.
|
\li Select \uicontrol Choose to open the \uicontrol Location dialog.
|
||||||
\li In the \uicontrol {File name} field, enter a name for the custom
|
\li In the \uicontrol {File name} field, enter a name for the custom
|
||||||
QML type. In this example, we call the type \e Page.
|
QML type: \e Page.
|
||||||
\li Select \uicontrol Next to open the \uicontrol {Project Management}
|
\li Select \uicontrol Next to open the \uicontrol {Project Management}
|
||||||
dialog.
|
dialog.
|
||||||
\li Select \uicontrol Finish to create \e Page.qml.
|
\li Select \uicontrol Finish to create \e Page.qml.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\QC opens \e Page.qml in the \uicontrol Edit mode. It has a root item
|
\QC opens \e Page.qml in the \uicontrol Edit mode. It has a root item
|
||||||
of the type \l Item that we replace with a \l Rectangle type. We give the
|
of the type \l Item. Replace it with a \l Rectangle type. Give the
|
||||||
type the ID \e page, anchor it to the parent item on all sides, and set
|
type the ID \e page, anchor it to the parent item on all sides, and set
|
||||||
its color to white:
|
its color to white:
|
||||||
|
|
||||||
@@ -75,9 +75,6 @@
|
|||||||
\skipto import
|
\skipto import
|
||||||
\printuntil color
|
\printuntil color
|
||||||
|
|
||||||
Because we develop with Qt 6, where version numbers are not used with
|
|
||||||
modules, we remove the version number from the import statement.
|
|
||||||
|
|
||||||
When you start typing the QML type name, \QC suggests available types
|
When you start typing the QML type name, \QC suggests available types
|
||||||
and properties to \l{Completing Code}{complete the code}.
|
and properties to \l{Completing Code}{complete the code}.
|
||||||
|
|
||||||
@@ -86,66 +83,67 @@
|
|||||||
{Qt Quick Toolbar for rectangles}. You can use it to specify
|
{Qt Quick Toolbar for rectangles}. You can use it to specify
|
||||||
rectangle properties, such as color, transparency, and gradients.
|
rectangle properties, such as color, transparency, and gradients.
|
||||||
|
|
||||||
\image qml-toolbar-rectangle.png "Qt Quick Toolbar for rectangles"
|
\image qml-toolbar-rectangle.png {Qt Quick Toolbar for rectangles}
|
||||||
|
|
||||||
Next, we add an \l Image type with \e qt-logo.png as the source. We
|
Next, add an \l Image type with \e qt-logo.png as the source. You can also
|
||||||
position the image in the top-left corner of the rectangle:
|
use any other image or a component. Position the image in the top-left
|
||||||
|
corner of the rectangle:
|
||||||
|
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
You can use the \l{Previewing Images}{Qt Quick Toolbar for images} to
|
You can use the \l{Previewing Images}{Qt Quick Toolbar for images} to
|
||||||
specify image properties, such as source file and fill mode.
|
specify image properties, such as source file and fill mode.
|
||||||
|
|
||||||
\image qml-toolbar-image.png "Logo visible in Qt Quick Toolbar for images"
|
\image qml-toolbar-image.png {Logo visible in Qt Quick Toolbar for images}
|
||||||
|
|
||||||
We now create the rectangles that the image will move between. Their size
|
Now, create the rectangles that the image will move between. Their size
|
||||||
should match the image size and they should be transparent, so that the
|
should match the image size and they should be transparent, so that the
|
||||||
image is visible. We set the border color to light gray to make the
|
image is visible. Set the border color to light gray to make the
|
||||||
rectangles visible:
|
rectangles visible:
|
||||||
|
|
||||||
\printuntil border.color
|
\printuntil border.color
|
||||||
|
|
||||||
We anchor the rectangles to their parent to position them in its
|
Anchor the rectangles to their parent to position them in its
|
||||||
top-left and bottom-left corners, as well as the vertical center
|
top-left and bottom-left corners, as well as the vertical center
|
||||||
of its right edge. The following code snippet anchors a rectangle to
|
of its right edge. The following code snippet anchors a rectangle to
|
||||||
the top-left corner of its parent:
|
the top-left corner of its parent:
|
||||||
|
|
||||||
\printuntil anchors.topMargin
|
\printuntil anchors.topMargin
|
||||||
|
|
||||||
We add a \l MouseArea type to make the rectangle clickable by users:
|
Add a \l MouseArea type to make the rectangle clickable by users:
|
||||||
|
|
||||||
\printuntil anchors.fill
|
\printuntil anchors.fill
|
||||||
|
|
||||||
To check your code, you can compare it with the \e {Page.qml} example file.
|
To check your code, you can compare it with the \e {Page.qml} example file.
|
||||||
|
|
||||||
Next, we will make the image move between the rectangles when users click
|
Next, make the image move between the rectangles when users click
|
||||||
them, by adding states and by connecting mouse clicks to state changes.
|
them by adding states and by connecting mouse clicks to state changes.
|
||||||
|
|
||||||
\section1 Connecting Mouse Clicks to State Changes
|
\section1 Connecting Mouse Clicks to State Changes
|
||||||
|
|
||||||
To make the image move between the rectangles when users click them, we add
|
To make the image move between the rectangles when users click them, add
|
||||||
states to the Page component, where we change the values of the \c x and
|
states to the Page component where you change the values of the \c x and
|
||||||
\c y properties of \e icon to match those of the middle right and top left
|
\c y properties of \e icon to match those of the middle right and top left
|
||||||
rectangles. To make sure that the image stays within the rectangle
|
rectangles. To make sure that the image stays within the rectangle
|
||||||
when the view is scaled on different sizes of screens, we \e bind the values
|
when the view is scaled on different sizes of screens, \e bind the values
|
||||||
of the \c x and \c y properties of \e icon to those of the rectangles:
|
of the \c x and \c y properties of \e icon to those of the rectangles:
|
||||||
|
|
||||||
\dots
|
\dots
|
||||||
\skipto states:
|
\skipto states:
|
||||||
\printuntil ]
|
\printuntil ]
|
||||||
|
|
||||||
Then, we connect the \c onClicked signals of the mouse areas to the state
|
Then, connect the \c onClicked signals of the mouse areas to the state
|
||||||
changes:
|
changes:
|
||||||
|
|
||||||
\quotefromfile transitions/Page.qml
|
\quotefromfile transitions/Page.qml
|
||||||
\skipto Connections {
|
\skipto Connections {
|
||||||
\printuntil }
|
\printuntil }
|
||||||
|
|
||||||
Because we develop with Qt 6, we must specify the connections as functions.
|
Because you develop with Qt 6, you must specify the connections as functions.
|
||||||
|
|
||||||
\section1 Adding Page to the Main View
|
\section1 Adding Page to the Main View
|
||||||
|
|
||||||
We now open \e main.qml for editing and add an instance of the Page custom
|
Open \e Main.qml for editing and add an instance of the Page custom
|
||||||
component to it:
|
component to it:
|
||||||
|
|
||||||
\quotefromfile transitions/main.qml
|
\quotefromfile transitions/main.qml
|
||||||
@@ -157,18 +155,18 @@
|
|||||||
|
|
||||||
\section1 Animating Transitions
|
\section1 Animating Transitions
|
||||||
|
|
||||||
We will now create transitions to apply animation to the image. For example,
|
Create transitions to apply animation to the image. For example,
|
||||||
the image bounces back when it moves to \e middleRightRect and eases into
|
the image bounces back when it moves to \e middleRightRect and eases into
|
||||||
\e bottomLeftRect.
|
\e bottomLeftRect.
|
||||||
|
|
||||||
We specify transitions for switching from each state to the other two
|
Specify transitions for switching from each state to the other two
|
||||||
states:
|
states:
|
||||||
|
|
||||||
\quotefromfile transitions/Page.qml
|
\quotefromfile transitions/Page.qml
|
||||||
\skipto transitions:
|
\skipto transitions:
|
||||||
\printuntil },
|
\printuntil },
|
||||||
|
|
||||||
We change the easing curve type for transitions to \e State2 from linear to
|
Change the easing curve type for transitions to \e State2 from linear to
|
||||||
\c Easing.OutBounce to create the bounce effect:
|
\c Easing.OutBounce to create the bounce effect:
|
||||||
|
|
||||||
\printuntil },
|
\printuntil },
|
||||||
@@ -177,9 +175,9 @@
|
|||||||
{Qt Quick Toolbar for animation} to specify the
|
{Qt Quick Toolbar for animation} to specify the
|
||||||
easing curve type and animation duration.
|
easing curve type and animation duration.
|
||||||
|
|
||||||
\image qml-toolbar-animation.png "Qt Quick Toolbar for animation"
|
\image qml-toolbar-animation.png {Qt Quick Toolbar for animation}
|
||||||
|
|
||||||
Then, we change the easing curve type for transitions to \e State2 from
|
Then, change the easing curve type for transitions to \e State2 from
|
||||||
linear to \c Easing.InOutQuad to create the easing effect:
|
linear to \c Easing.InOutQuad to create the easing effect:
|
||||||
|
|
||||||
\printuntil /^\ {0}\}/
|
\printuntil /^\ {0}\}/
|
||||||
|
@@ -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
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -17,37 +17,25 @@
|
|||||||
\uicontrol {Project Location} dialog.
|
\uicontrol {Project Location} dialog.
|
||||||
|
|
||||||
\li In the \uicontrol Name field, enter a name for the application.
|
\li In the \uicontrol Name field, enter a name for the application.
|
||||||
When naming your own projects, keep in mind that they cannot be
|
When naming your own projects, keep in mind that you cannot
|
||||||
easily renamed later.
|
easily rename them later.
|
||||||
|
|
||||||
\li In the \uicontrol {Create in} field, enter the path for the project
|
\li In the \uicontrol {Create in} field, enter the path for the project
|
||||||
files. You can move project folders later without problems.
|
files. You can move project folders later without problems.
|
||||||
|
|
||||||
\li Select \uicontrol Next (or \uicontrol Continue on \macos) to open
|
|
||||||
the \uicontrol {Define Build System} dialog.
|
|
||||||
|
|
||||||
\li In the \uicontrol {Build system} field, select \l {Setting Up CMake}
|
|
||||||
{CMake} as the build system to use for building and running the
|
|
||||||
project.
|
|
||||||
|
|
||||||
\note If you select \l {Setting Up Qbs}{Qbs}, the instructions for
|
|
||||||
configuring the project won't apply.
|
|
||||||
|
|
||||||
\li Select \uicontrol Next to open the
|
\li Select \uicontrol Next to open the
|
||||||
\uicontrol {Define Project Details} dialog.
|
\uicontrol {Define Project Details} dialog.
|
||||||
|
|
||||||
\image qtcreator-project-qt-quick-details.webp {Define Project Details dialog}
|
\image qtcreator-project-qt-quick-details.webp {Define Project Details dialog}
|
||||||
|
|
||||||
\li In the \uicontrol {Minimum required Qt version} field, select
|
\li Deselect the \uicontrol {Create a project that you can open in \QDS}
|
||||||
Qt 6.4.
|
check box.
|
||||||
|
|
||||||
\note This tutorial shows you how to create the application in the
|
\note This tutorial shows how to create the application in the
|
||||||
\uicontrol Edit mode. If you select
|
\uicontrol Edit mode. If you leave the check box selected, the
|
||||||
\uicontrol {Create a project that you can open in \QDS}, the
|
|
||||||
following instructions won't apply.
|
following instructions won't apply.
|
||||||
|
|
||||||
\li Select \uicontrol Next to use the default settings and to open
|
\li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog.
|
||||||
the \uicontrol {Kit Selection} dialog.
|
|
||||||
|
|
||||||
\li Select Qt 6.4 or later \l{glossary-buildandrun-kit}{kits} for the
|
\li Select Qt 6.4 or later \l{glossary-buildandrun-kit}{kits} for the
|
||||||
platforms that you want to build the application for. To build
|
platforms that you want to build the application for. To build
|
||||||
|
@@ -3,22 +3,29 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-file-system-view.html
|
\page creator-file-system-view.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
\previouspage creator-projects-view.html
|
\previouspage creator-projects-view.html
|
||||||
\nextpage creator-open-documents-view.html
|
\nextpage creator-open-documents-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
\ingroup studio-views
|
||||||
|
|
||||||
\title File System
|
\title File System
|
||||||
|
|
||||||
The \uicontrol {File System} view shows all the files in the file system.
|
\brief Shows all the files in the current directory.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
\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,
|
||||||
or almost anything else in your project. Use the \e {file system (f)} filter
|
or almost anything else in your project. Use the \e {file system (f)} filter
|
||||||
to open files from anywhere in the file system.
|
to open files from anywhere in the file system.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\image qtcreator-filesystem-view-design.png {File System view}
|
|
||||||
\else
|
|
||||||
\image qtcreator-filesystem-view.webp {File System view in the sidebar}
|
\image qtcreator-filesystem-view.webp {File System view in the sidebar}
|
||||||
|
\else
|
||||||
|
\image qtcreator-filesystem-view-design.png {File System view}
|
||||||
\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
|
||||||
|
@@ -0,0 +1,86 @@
|
|||||||
|
// 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-output.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-quick-tour.html
|
||||||
|
\nextpage creator-reference-application-output-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-how-tos.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
|
\title View output
|
||||||
|
|
||||||
|
The \e {output views} show output from several sources, such as a list of
|
||||||
|
errors and warnings encountered during a build, detailed output from the
|
||||||
|
compiler, status of a program when it is executed, debug output, or search
|
||||||
|
results.
|
||||||
|
|
||||||
|
\image qtcreator-output-panes-taskbar.webp {Output views}
|
||||||
|
|
||||||
|
You can open output views in all
|
||||||
|
\if defined (qtcreator)
|
||||||
|
\l{Switch between modes}{modes}
|
||||||
|
\else
|
||||||
|
modes
|
||||||
|
\endif in the following ways:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\li Select the output view.
|
||||||
|
\endif
|
||||||
|
\li Select \uicontrol View > \uicontrol Output.
|
||||||
|
The menu items also display the \l{Keyboard Shortcuts}
|
||||||
|
{keyboard shortcuts} that you can use.
|
||||||
|
\li Select \key Alt (\key Cmd on \macos) and the number of the view.
|
||||||
|
\li Select \inlineimage icons/output-pane-menu.png
|
||||||
|
, and then select the view to open.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
To maximize an open output view, select the \inlineimage icons/arrowup.png
|
||||||
|
(\uicontrol Maximize) button or press \key {Alt+Shift+9}.
|
||||||
|
|
||||||
|
To increase or decrease the output text size, select \inlineimage icons/plus.png
|
||||||
|
(\uicontrol {Zoom In}) or \inlineimage icons/minus.png
|
||||||
|
(\uicontrol {Zoom Out}), or press \key Ctrl++ or \key Ctrl+-. Zooming is
|
||||||
|
not supported in all output views.
|
||||||
|
|
||||||
|
\section1 Change text encoding
|
||||||
|
|
||||||
|
If the text in the output is not displayed correctly, \QC might
|
||||||
|
be using a different codec from the one used by the tools that generate
|
||||||
|
the output. To specify the codec to use, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol Environment > \uicontrol Interface, and
|
||||||
|
then select the codec in the \uicontrol {Text codec for tools} field.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
||||||
|
|
||||||
|
\section1 Find and filter output
|
||||||
|
|
||||||
|
To search from output, press \key {Ctrl+F} when the view is active. Enter
|
||||||
|
search criteria in the \uicontrol Find field. For more information, see
|
||||||
|
\l{Finding and Replacing}.
|
||||||
|
|
||||||
|
To filter output, enter a string in the \uicontrol Filter field.
|
||||||
|
|
||||||
|
To specify filtering options,
|
||||||
|
select the \inlineimage icons/magnifier.png {Filtering options menu}
|
||||||
|
button. You can filter output by using regular expressions or
|
||||||
|
case-sensitivity. Select \uicontrol {Show Non-matching Lines} to
|
||||||
|
hide the lines that match the filter.
|
||||||
|
|
||||||
|
Some output views do not support finding and filtering.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\sa {Output Views}
|
||||||
|
\else
|
||||||
|
\section1 Output views
|
||||||
|
|
||||||
|
The following views show output:
|
||||||
|
|
||||||
|
\annotatedlist studio-reference-output-views
|
||||||
|
\endif
|
||||||
|
*/
|
@@ -4,7 +4,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-show-and-hide-sidebars.html
|
\page creator-how-to-show-and-hide-sidebars.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
\title Show and hide sidebars
|
\title Show and hide sidebars
|
||||||
@@ -31,4 +31,9 @@
|
|||||||
\li To close a sidebar view, click \inlineimage icons/splitbutton_closetop.png
|
\li To close a sidebar view, click \inlineimage icons/splitbutton_closetop.png
|
||||||
(\uicontrol {Close}).
|
(\uicontrol {Close}).
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
In some views, right-clicking opens a context menu that has functions
|
||||||
|
for managing the objects listed in the view.
|
||||||
|
|
||||||
|
\sa {Sidebar Views}
|
||||||
*/
|
*/
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
/*!
|
/*!
|
||||||
\page creator-how-to-switch-between-modes.html
|
\page creator-how-to-switch-between-modes.html
|
||||||
\previouspage creator-how-tos.html
|
\previouspage creator-how-tos.html
|
||||||
\nextpage creator-known-issues.html
|
|
||||||
\ingroup creator-how-to-ui
|
\ingroup creator-how-to-ui
|
||||||
|
|
||||||
\title Switch between modes
|
\title Switch between modes
|
||||||
|
@@ -0,0 +1,129 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-outline-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\title Outline
|
||||||
|
|
||||||
|
\brief Shows an overview of defined types and other symbols, as well as
|
||||||
|
their properties and hierarchy in a source file.
|
||||||
|
|
||||||
|
To move the code for types and symbols around in the source file, drag
|
||||||
|
them in the outline.
|
||||||
|
|
||||||
|
\image qtcreator-outline-view.png {Outline view}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li To see a complete list of all bindings, select
|
||||||
|
\inlineimage icons/filtericon.png
|
||||||
|
(\uicontrol {Filter Tree}) > \uicontrol {Show All Bindings}.
|
||||||
|
\li To sort types or symbols alphabetically, select
|
||||||
|
\inlineimage icons/sort_alphabetically.png
|
||||||
|
(\uicontrol {Sort Alphabetically}).
|
||||||
|
\li To stop the synchronization with the type or symbol selected in the
|
||||||
|
editor, deselect \inlineimage icons/linkicon.png
|
||||||
|
(\uicontrol {Synchronize with Editor}).
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-class-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\title Class View
|
||||||
|
|
||||||
|
\brief Shows the class hierarchy of the currently open projects.
|
||||||
|
|
||||||
|
\image qtcreator-class-view.png {Class View}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li To organize the view by subprojects, click
|
||||||
|
\inlineimage icons/qtcreator-show-subprojects.png
|
||||||
|
(\uicontrol {Show Subprojects}).
|
||||||
|
\li To visit all parts of a namespace, double-click on the
|
||||||
|
namespace item multiple times.
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-call-hierarchy-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\title Call Hierarchy
|
||||||
|
|
||||||
|
\brief Shows information about incoming and outgoing function calls from a
|
||||||
|
\l{Using Language Servers}{language server}.
|
||||||
|
|
||||||
|
Place the cursor on a function definition in the code editor to see lists
|
||||||
|
of functions that call it and the functions it calls. This works recursively,
|
||||||
|
so you can also see the caller of the caller. However, Clangd only lists
|
||||||
|
incoming calls.
|
||||||
|
|
||||||
|
Select the \inlineimage icons/languageclient.png
|
||||||
|
button on the \l{Managing Language Servers}{editor toolbar}, and then select
|
||||||
|
\uicontrol {Restart} to collect call hierarchy information for the function.
|
||||||
|
|
||||||
|
\image qtcreator-call-hierarchy-view.png {Call Hierarchy view}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-type-hierarchy.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\title Type Hierarchy
|
||||||
|
|
||||||
|
\brief Shows the base classes and derived classes of a class.
|
||||||
|
|
||||||
|
To view type hierarchy of a class:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Right-click a class in the code editor.
|
||||||
|
\li Select \uicontrol {Open Type Hierarchy} or press \key {Ctrl+Shift+T}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image qtcreator-type-hierarchy-view.png {Type Hierarchy view}
|
||||||
|
|
||||||
|
To navigate in the type hierarchy:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Double-click a class or select it.
|
||||||
|
\li Select \uicontrol {Open Type Hierarchy} in the context menu.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
The view highlights the previous class.
|
||||||
|
|
||||||
|
The definition of the selected class opens in the code editor. You
|
||||||
|
can also select \uicontrol {Open in Editor} in the context menu to open
|
||||||
|
it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-include-hierarchy-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
|
||||||
|
\title Include Hierarchy
|
||||||
|
|
||||||
|
\brief Shows the files that the current file includes and those that include
|
||||||
|
the current file.
|
||||||
|
|
||||||
|
To view the include hierarchy of a file:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Right-click a file in the editor.
|
||||||
|
\li Select \uicontrol {Open Include Hierarchy}
|
||||||
|
or press \key {Ctrl+Shift+I}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image qtcreator-include-hierarchy-view.png {Include Hierarchy view}
|
||||||
|
|
||||||
|
To keep the view synchronized with the file currently open in the editor,
|
||||||
|
select \inlineimage icons/linkicon.png
|
||||||
|
(\uicontrol {Synchronize with Editor}).
|
||||||
|
*/
|
@@ -0,0 +1,111 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference-terminal-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
|
||||||
|
\title Terminal
|
||||||
|
|
||||||
|
\brief Opens a terminal.
|
||||||
|
|
||||||
|
When you select the \uicontrol {Run in Terminal} check box and run an
|
||||||
|
application or the \uicontrol {Open Terminal} button to open a terminal,
|
||||||
|
it opens as an output view.
|
||||||
|
|
||||||
|
To open the terminal in a separate window, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol Terminal, and deselet the
|
||||||
|
\uicontrol {Use internal terminal} check box.
|
||||||
|
|
||||||
|
On Linux and \macos, you can set the terminal to open by selecting
|
||||||
|
\uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol Environment > \uicontrol System.
|
||||||
|
|
||||||
|
\image qtcreator-output-terminal.webp {Terminal pane}
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li To clear the terminal, select \inlineimage icons/clean_pane_small.png
|
||||||
|
(\uicontrol Clear).
|
||||||
|
|
||||||
|
\li To close the current terminal, select \inlineimage icons/terminal-close.png
|
||||||
|
.
|
||||||
|
|
||||||
|
\li To open new terminals as tabs, select \inlineimage icons/terminal-create.png
|
||||||
|
.
|
||||||
|
|
||||||
|
\li To move between terminals, select the tabs or \inlineimage icons/arrowup.png
|
||||||
|
and \inlineimage icons/arrowdown.png
|
||||||
|
.
|
||||||
|
|
||||||
|
\li To select a word in a terminal, double-click it. To select the whole line,
|
||||||
|
triple-click it.
|
||||||
|
|
||||||
|
\li To open links in a browser, files in the editor, or folders in the
|
||||||
|
\l Projects view, hover the mouse over them, and press \key Ctrl.
|
||||||
|
|
||||||
|
\li To \l{Finding and Replacing}{search} through the output, press \key {Ctrl+F}.
|
||||||
|
|
||||||
|
\li To make the font larger or smaller, select the \inlineimage icons/plus.png
|
||||||
|
and \inlineimage icons/minus.png
|
||||||
|
buttons. You can also change the font size in terminal preferences.
|
||||||
|
|
||||||
|
\li To open terminal preferences, select \inlineimage icons/settings.png
|
||||||
|
(\uicontrol Configure).
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
Most of the \QC keyboard shortcuts are disabled in the terminal, except the
|
||||||
|
ones for opening terminal preferences or the locator and quitting \QC. To
|
||||||
|
send the escape key to the terminal instead of closing the terminal, select
|
||||||
|
\uicontrol {Shift+Esc}. You can also specify that the escape key is sent to
|
||||||
|
the terminal in terminal preferences.
|
||||||
|
|
||||||
|
\section1 Terminal Preferences
|
||||||
|
|
||||||
|
To set preferences for the internal terminal, select \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol Terminal, or select the
|
||||||
|
\uicontrol Configure button in the \uicontrol Terminal pane.
|
||||||
|
|
||||||
|
\image qtcreator-preferences-terminal.webp {Terminal tab in Preferences}
|
||||||
|
|
||||||
|
\table
|
||||||
|
\header
|
||||||
|
\li Option
|
||||||
|
\li Value
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Use internal terminal}
|
||||||
|
\li Open the \uicontrol Terminal pane when you select
|
||||||
|
\uicontrol {Run in Terminal} or \uicontrol {Open Terminal}.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Send escape key to terminal}
|
||||||
|
\li Send the escape key to the terminal instead of closing the terminal.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Audible bell}
|
||||||
|
\li Play an audible bell when the a bell character is received.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Allow blinking cursor}
|
||||||
|
\li Allow the cursor to blink.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Font}
|
||||||
|
\li Select the \uicontrol {Font family} and \uicontrol Size for the text
|
||||||
|
in the terminal. You can also use the \inlineimage icons/plus.png
|
||||||
|
and \inlineimage icons/minus.png buttons in the \uicontrol Terminal
|
||||||
|
pane to change the font size.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Colors}
|
||||||
|
\li Set colors for the \uicontrol Terminal pane \uicontrol Foreground,
|
||||||
|
\uicontrol Background, \uicontrol Selection, and
|
||||||
|
\uicontrol {Find match}.
|
||||||
|
\row
|
||||||
|
\li \uicontrol {Default shell}
|
||||||
|
\li Set the full path to the default terminal executable in
|
||||||
|
\uicontrol {Shell path} and the arguments to pass to the shell
|
||||||
|
in \uicontrol {Shell arguments}.
|
||||||
|
\endtable
|
||||||
|
|
||||||
|
To use an existing color scheme, select \uicontrol {Load Theme}. To revert
|
||||||
|
color changes, select \uicontrol {Reset Theme}.
|
||||||
|
|
||||||
|
\sa {View output}
|
||||||
|
*/
|
@@ -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-reference-to-do-entries-view.html
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
|
||||||
|
\title To-Do Entries
|
||||||
|
|
||||||
|
\brief Lists the BUG, FIXME, NOTE, TODO, and WARNING keywords from the
|
||||||
|
current file, from all project files, or from a subproject.
|
||||||
|
|
||||||
|
Click the icons on the toolbar to show only the selected
|
||||||
|
keywords.
|
||||||
|
|
||||||
|
\image qtcreator-to-do-entries.webp {To-Do Entries}
|
||||||
|
|
||||||
|
You can also open task list files generated by code scanning and
|
||||||
|
analysis tools in \l Issues. For more information, see
|
||||||
|
\l{Showing Task List Files in Issues}.
|
||||||
|
|
||||||
|
\section1 Enabling the To-Do Plugin
|
||||||
|
|
||||||
|
The Todo plugin is disabled by default. To enable it:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Help > \uicontrol {About Plugins} >
|
||||||
|
\uicontrol Utilities > \uicontrol Todo.
|
||||||
|
\li Select \uicontrol OK.
|
||||||
|
\li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 To-Do Preferences
|
||||||
|
|
||||||
|
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
|
||||||
|
for the keyword.
|
||||||
|
|
||||||
|
\image qtcreator-todo-options.png {To-Do preferences}
|
||||||
|
|
||||||
|
\list
|
||||||
|
|
||||||
|
\li To change the icon and line background color of the selected keyword,
|
||||||
|
select \uicontrol Edit.
|
||||||
|
|
||||||
|
\li To remove the selected keyword, select \uicontrol Remove.
|
||||||
|
|
||||||
|
\li To reset the list to predefined keywords, select \uicontrol Reset.
|
||||||
|
All your changes will be permanently lost.
|
||||||
|
|
||||||
|
\li To determine whether the keywords in the whole project, in the
|
||||||
|
current file, or in a subproject are displayed by default, select
|
||||||
|
the appropriate option in the \uicontrol {Scanning scope} group.
|
||||||
|
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Excluding Files from Scanning
|
||||||
|
|
||||||
|
To exclude files from scanning, select \uicontrol {Project Settings} >
|
||||||
|
\uicontrol {To-Do} in the \uicontrol Projects mode.
|
||||||
|
|
||||||
|
\image qtcreator-todo-excluded-files.png {Excluded Files in To-Do preferences}
|
||||||
|
|
||||||
|
Select \uicontrol Add and double-click the placeholder text in
|
||||||
|
\uicontrol {Exclude Files} to enter a regular expression that
|
||||||
|
matches the path to files to exclude. Use a forward slash (/)
|
||||||
|
as a separator in the path also on Windows.
|
||||||
|
|
||||||
|
Select the link in \uicontrol {Use global settings} to open global
|
||||||
|
To-Do preferences.
|
||||||
|
|
||||||
|
\sa {Enable and disable plugins}
|
||||||
|
*/
|
@@ -1,20 +1,24 @@
|
|||||||
// 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-open-documents-view.html
|
\page creator-open-documents-view.html
|
||||||
\previouspage creator-file-system-view.html
|
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-file-system-view.html
|
||||||
\nextpage studio-content-library.html
|
\nextpage studio-content-library.html
|
||||||
\else
|
\else
|
||||||
\nextpage creator-output-panes.html
|
\previouspage creator-reference.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
\ingroup studio-views
|
||||||
|
|
||||||
\title Open Documents
|
\title Open Documents
|
||||||
|
|
||||||
The \uicontrol {Open Documents} view displays a list of open documents.
|
\brief Shows currently open files.
|
||||||
|
|
||||||
\image qtcreator-open-documents-view.png "Open Documents view"
|
\image qtcreator-open-documents-view.png {Open Documents view}
|
||||||
|
|
||||||
You can use the context menu to apply some of the functions also available
|
You can use the context menu to apply some of the functions also available
|
||||||
in the \uicontrol File menu and in the \l {File System Context Menu}
|
in the \uicontrol File menu and in the \l {File System Context Menu}
|
||||||
@@ -25,17 +29,17 @@
|
|||||||
\list
|
\list
|
||||||
\li Copy the full path of the file or just the filename to the
|
\li Copy the full path of the file or just the filename to the
|
||||||
clipboard.
|
clipboard.
|
||||||
\li Pin files to ensure they stay at the top of the list and are not
|
\li Pin files to the top of the list to keep them open when you
|
||||||
closed when you select \uicontrol {Close All}.
|
select \uicontrol {Close All}.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Specifying Settings for Opening Files
|
\section1 Setting Preferences for Opening Files
|
||||||
|
|
||||||
To specify settings for opening files and handling open files, select
|
To set preferences for opening files and handling open files, select
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
|
||||||
\uicontrol System:
|
\uicontrol System:
|
||||||
|
|
||||||
\image qtcreator-options-environment-system.png "Environment preferences System tab"
|
\image qtcreator-options-environment-system.png {System tab in Environment preferences}
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li In the \uicontrol {When files are externally modified} field,
|
\li In the \uicontrol {When files are externally modified} field,
|
||||||
|
@@ -5,28 +5,31 @@
|
|||||||
\page creator-projects-view.html
|
\page creator-projects-view.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage qtquick-curve-editor.html
|
\previouspage qtquick-curve-editor.html
|
||||||
\else
|
|
||||||
\previouspage creator-views.html
|
|
||||||
\endif
|
|
||||||
\nextpage creator-file-system-view.html
|
\nextpage creator-file-system-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-sidebar-views
|
||||||
|
\ingroup studio-views
|
||||||
|
|
||||||
\title Projects
|
\title Projects
|
||||||
|
|
||||||
The \uicontrol Projects view displays projects in a project tree.
|
\brief Shows a list of projects in a project tree.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
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
|
||||||
are part of the project.
|
are part of the project.
|
||||||
|
|
||||||
|
\image qtcreator-projects-view-edit.png {Projects view in the sidebar}
|
||||||
|
|
||||||
\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,
|
||||||
or almost anything else in your project.
|
or almost anything else in your project.
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\image qtcreator-projects-view-design.png {Projects view}
|
|
||||||
\else
|
\else
|
||||||
\image qtcreator-projects-view-edit.png {Projects view in the sidebar}
|
\image qtcreator-projects-view-design.png {Projects view}
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
You can use the project tree in the following ways:
|
You can use the project tree in the following ways:
|
||||||
|
@@ -0,0 +1,276 @@
|
|||||||
|
// Copyright (C) 2023 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
|
// **********************************************************************
|
||||||
|
// NOTE: the sections are not ordered by their logical order to avoid
|
||||||
|
// reshuffling the file each time the index order changes (i.e., often).
|
||||||
|
// Run the fixnavi.pl script to adjust the links to the index order.
|
||||||
|
// **********************************************************************
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference-issues-view.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-reference-compile-output-view.html
|
||||||
|
\nextpage creator-reference-search-results-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
\ingroup studio-reference-output-views
|
||||||
|
|
||||||
|
\title Issues
|
||||||
|
|
||||||
|
\brief Lists issues from different sources.
|
||||||
|
|
||||||
|
The \uicontrol Issues view filters out irrelevant output from the build tools
|
||||||
|
and presents the issues in an organized way.
|
||||||
|
|
||||||
|
To further filter the output by type, select \inlineimage icons/filtericon.png
|
||||||
|
(\uicontrol {Filter Tree}) and then select a filter:
|
||||||
|
|
||||||
|
\list
|
||||||
|
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\li \uicontrol {Asset Export} - Errors and warnings encountered
|
||||||
|
while exporting assets.
|
||||||
|
|
||||||
|
\li \uicontrol {Asset Importer Error} - Errors and warnings encountered
|
||||||
|
while importing assets from a design tool.
|
||||||
|
\else
|
||||||
|
\li \uicontrol Autotests - Errors and warnings encountered while running
|
||||||
|
tests.
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\li \uicontrol {Build System} - Errors and warnings encountered when
|
||||||
|
opening and managing projects.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\li \uicontrol {Clang Code Model} -
|
||||||
|
\l {Parsing C++ Files with the Clang Code Model}
|
||||||
|
{Errors and warnings from the current editor}.
|
||||||
|
\li \uicontrol {Clang Tools} - Errors and warnings from
|
||||||
|
\l {Using Clang Tools}{Clang-Tidy and Clazy}
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\li \uicontrol Compile - Selected output from the compiler. Open
|
||||||
|
\uicontrol {Compile Output} for more detailed information.
|
||||||
|
|
||||||
|
\li \uicontrol{Debug Information} - Lists debug information packages that might
|
||||||
|
be missing.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\li \uicontrol Debugger - Errors encountered while running the
|
||||||
|
\l{Analyzing Code}{Valgrind code analysis tools}.
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\li \uicontrol{Debugger Runtime} - Errors encountered when starting \QC. For
|
||||||
|
example, information about missing DLLs.
|
||||||
|
|
||||||
|
\li \uicontrol Deployment - Errors encountered between building an application
|
||||||
|
successfully and starting it on a \l{glossary-device}{device}.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\li \uicontrol {My Tasks} - Entries from a task list file (.tasks) generated
|
||||||
|
by \l{Showing Task List Files in Issues}
|
||||||
|
{code scanning and analysis tools}.
|
||||||
|
|
||||||
|
\li \uicontrol Python - Runtime errors and exceptions of Python scripts.
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\li \uicontrol QML and \uicontrol {QML Analysis} -
|
||||||
|
\l{JavaScript and QML Error Codes}
|
||||||
|
{QML and JavaScript syntax errors}.
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
\li \uicontrol Sanitizer - Tasks created when you run an application if
|
||||||
|
you used an \e {address sanitizer} to detect memory handling issues.
|
||||||
|
\endif
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
To find output in the view, enter search criteria in the \uicontrol Filter
|
||||||
|
field.
|
||||||
|
|
||||||
|
\image qtcreator-issues.webp {Issues}
|
||||||
|
|
||||||
|
Select one or several lines to apply context-menu actions to their contents.
|
||||||
|
You can remove the selected lines or copy their contents to the clipboard.
|
||||||
|
For single lines, you can search the Internet for a solution using the
|
||||||
|
contents of the line as search criteria or open a version control
|
||||||
|
annotation view of the line that causes the error message.
|
||||||
|
|
||||||
|
To view detailed information about the selected line (where available), press
|
||||||
|
\key Space.
|
||||||
|
|
||||||
|
To navigate to the corresponding source code, click an issue or
|
||||||
|
select \uicontrol {Show in Editor} in the context menu. The entry must contain the
|
||||||
|
name of the file where the issue was found.
|
||||||
|
|
||||||
|
To view more information about an issue in \l {Compile Output},
|
||||||
|
select \uicontrol {Show Compile Output} in the context menu.
|
||||||
|
|
||||||
|
To jump from one issue to the next or previous
|
||||||
|
one, select \inlineimage icons/arrowup.png
|
||||||
|
and \inlineimage icons/arrowdown.png
|
||||||
|
or press \key F6 and \key Shift+F6.
|
||||||
|
|
||||||
|
By default, a new build clears the \uicontrol Issues view. To keep
|
||||||
|
the issues from the previous build rounds, deselect \uicontrol Edit >
|
||||||
|
\uicontrol Preferences > \uicontrol {Build & Run} > \uicontrol General >
|
||||||
|
\uicontrol {Clear issues list on new build}.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference-search-results-view.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-reference-issues-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
\ingroup studio-reference-output-views
|
||||||
|
|
||||||
|
\title Search Results
|
||||||
|
|
||||||
|
\brief Lets you search through projects, files on a file system or the
|
||||||
|
currently open files.
|
||||||
|
|
||||||
|
The search history (1) stores the search results. You can select earlier
|
||||||
|
searches from the history.
|
||||||
|
|
||||||
|
\image qtcreator-search-results.webp {Search Results - criteria}
|
||||||
|
|
||||||
|
The figure below shows an example search result for all
|
||||||
|
occurrences of the search string in the specified directory.
|
||||||
|
|
||||||
|
\image qtcreator-search-results-matches.webp {Search Results - matches found}
|
||||||
|
|
||||||
|
For more information about the different search options, see
|
||||||
|
\l {Finding and Replacing}.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference-application-output-view.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-how-to-view-output.html
|
||||||
|
\nextpage creator-reference-compile-output-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
\ingroup studio-reference-output-views
|
||||||
|
|
||||||
|
\title Application Output
|
||||||
|
|
||||||
|
\brief Displays the status of a program when you execute it, and the debug
|
||||||
|
output.
|
||||||
|
|
||||||
|
\image qtcreator-application-output.webp {Application Output}
|
||||||
|
|
||||||
|
\if defined(qtcreator)
|
||||||
|
If you specify command line arguments in the run settings that are passed
|
||||||
|
to the application when running it, they are displayed as a part of the
|
||||||
|
application output. For more information, see
|
||||||
|
\l{Specifying Run Settings for Desktop Device Types}.
|
||||||
|
\endif
|
||||||
|
|
||||||
|
Select toolbar buttons to run applications, to attach the debugger to the
|
||||||
|
running application, and to stop running or debugging.
|
||||||
|
|
||||||
|
\section1 Application Output Preferences
|
||||||
|
|
||||||
|
To set preferences for displaying application output:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol {Build & Run} > \uicontrol {Application Output}.
|
||||||
|
\li Select the \inlineimage icons/settings.png
|
||||||
|
(\uicontrol {Open Settings Page}) button.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image qtcreator-preferences-application-output.webp {Application Output tab in Preferences}
|
||||||
|
|
||||||
|
You can select whether to open \uicontrol{Application Output} on output when
|
||||||
|
running or debugging applications, to clear old output on a new run,
|
||||||
|
to word-wrap output, and to limit output to the specified number of lines.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page creator-reference-compile-output-view.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
|
\previouspage creator-reference-application-output-view.html
|
||||||
|
\nextpage creator-reference-issues-view.html
|
||||||
|
\else
|
||||||
|
\previouspage creator-reference.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\ingroup creator-reference-output-views
|
||||||
|
\ingroup studio-reference-output-views
|
||||||
|
|
||||||
|
\title Compile Output
|
||||||
|
|
||||||
|
\brief Shows all output from the compiler.
|
||||||
|
|
||||||
|
\uicontrol{Compile Output} shows a more detailed version of information
|
||||||
|
displayed in \l Issues.
|
||||||
|
|
||||||
|
\image qtcreator-compile-output.webp {Compile Output}
|
||||||
|
|
||||||
|
Double-click a file name in an error message to open the file in the
|
||||||
|
code editor.
|
||||||
|
|
||||||
|
To cancel the build, select the \uicontrol {Cancel Build} button.
|
||||||
|
|
||||||
|
To copy the output to the clipboard, select \uicontrol {Select All} in the
|
||||||
|
context menu, and then select \uicontrol Copy. Save the output as a file if
|
||||||
|
you want to examine it later without having to build the project again.
|
||||||
|
This is useful for large projects that take a long time to build.
|
||||||
|
|
||||||
|
\section1 Compile Output Preferences
|
||||||
|
|
||||||
|
To specify whether to open the \uicontrol {Compile Output} view on output
|
||||||
|
when building applications:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Open the preferences:
|
||||||
|
\list
|
||||||
|
\li In the \uicontrol {Compile Output} view,
|
||||||
|
select \inlineimage icons/settings.png
|
||||||
|
(\uicontrol {Open Settings Page}).
|
||||||
|
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||||
|
\uicontrol {Build & Run} > \uicontrol {Compile Output}.
|
||||||
|
\endlist
|
||||||
|
\image qtcreator-preferences-compile-output.webp {Compile Output tab in Preferences}
|
||||||
|
\li Select the \uicontrol {Open Compile Output when building} check box.
|
||||||
|
\li In the \uicontrol {Limit output to} field, you can specify the
|
||||||
|
maximum amount of build output lines to display.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Parsing Existing Compile Output
|
||||||
|
|
||||||
|
You can use \QC's output parsers to parse output from builds done outside
|
||||||
|
of \QC or stored from previous build runs. By default, the parsers from the
|
||||||
|
kit selected for the active project are used, but you can select another
|
||||||
|
kit.
|
||||||
|
|
||||||
|
To parse compile output:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Select \uicontrol Tools > \uicontrol {Parse Build Output}.
|
||||||
|
\image qtcreator-parse-build-output.png
|
||||||
|
\li Paste the build output in the \uicontrol {Build Output} field, or
|
||||||
|
select \uicontrol {Load from File} to load it from a file.
|
||||||
|
\li Deselect the \uicontrol {Output went to stderr} check box if the
|
||||||
|
parser expects issues on \c stdout.
|
||||||
|
\li In the \uicontrol {Use parsers from kit} field, select the kit to
|
||||||
|
use for parsing the output. Select \uicontrol Manage to view
|
||||||
|
and modify kit settings.
|
||||||
|
\li The parser displays the parsed output in \l Issues. By default, the
|
||||||
|
view is cleared before adding the new output.
|
||||||
|
Deselect the \uicontrol {Clear existing tasks} check box to append
|
||||||
|
the new output to the old output.
|
||||||
|
\li Select \uicontrol OK to start parsing.
|
||||||
|
\endlist
|
||||||
|
*/
|
@@ -1,12 +1,6 @@
|
|||||||
// Copyright (C) 2023 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
|
||||||
|
|
||||||
// **********************************************************************
|
|
||||||
// NOTE: the sections are not ordered by their logical order to avoid
|
|
||||||
// reshuffling the file each time the index order changes (i.e., often).
|
|
||||||
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
||||||
// **********************************************************************
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page creator-quick-tour.html
|
\page creator-quick-tour.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
@@ -14,7 +8,7 @@
|
|||||||
\nextpage creator-using-qt-quick-designer.html
|
\nextpage creator-using-qt-quick-designer.html
|
||||||
\else
|
\else
|
||||||
\previouspage creator-overview.html
|
\previouspage creator-overview.html
|
||||||
\nextpage creator-views.html
|
\nextpage creator-configuring.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title User Interface
|
\title User Interface
|
||||||
@@ -66,7 +60,7 @@
|
|||||||
\li \inlineimage numbers/07.png
|
\li \inlineimage numbers/07.png
|
||||||
\li Output
|
\li Output
|
||||||
\li View output from building, running, and other actions.
|
\li View output from building, running, and other actions.
|
||||||
\li \l{Viewing Output}
|
\li \l{View output}
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
To see where the above controls are in the UI, select
|
To see where the above controls are in the UI, select
|
||||||
@@ -82,8 +76,7 @@
|
|||||||
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}.
|
||||||
|
|
||||||
\sa {Show and hide sidebars}, {Browsing Project Contents}
|
\sa {Use the UI}{How-to: Use the UI}, {Reference}
|
||||||
\sa {Use the UI}{How-to: Use the UI}
|
|
||||||
|
|
||||||
\else
|
\else
|
||||||
|
|
||||||
@@ -128,6 +121,7 @@
|
|||||||
\li \l {Find menu items on \macos}
|
\li \l {Find menu items on \macos}
|
||||||
\li \l {Set high DPI scaling}
|
\li \l {Set high DPI scaling}
|
||||||
\li \l {Switch UI themes}
|
\li \l {Switch UI themes}
|
||||||
|
\li \l {View output}
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Viewing Images
|
\section1 Viewing Images
|
||||||
@@ -141,465 +135,3 @@
|
|||||||
|
|
||||||
\endif
|
\endif
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\page creator-output-panes.html
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\previouspage creator-views.html
|
|
||||||
\nextpage creator-highlighting.html
|
|
||||||
\else
|
|
||||||
\previouspage creator-open-documents-view.html
|
|
||||||
\nextpage creator-configuring.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Viewing Output
|
|
||||||
|
|
||||||
\image qtcreator-general-messages.webp {General Messages}
|
|
||||||
|
|
||||||
You can view the following types of output:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\li \l {Issues}
|
|
||||||
|
|
||||||
\li \l {Search Results}
|
|
||||||
|
|
||||||
\li \l {Application Output}
|
|
||||||
|
|
||||||
\li \l {Compile Output}
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \l {Terminal}
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol {QML Debugger Console}
|
|
||||||
|
|
||||||
\li \uicontrol{General Messages}
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \l {Static Code Analysis}{Axivion}
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol{Version Control}
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \l{Running Autotests}{Test Results}
|
|
||||||
|
|
||||||
\li \l{Using Squish}{Squish} test results and Squish Server and
|
|
||||||
Runner logs
|
|
||||||
|
|
||||||
\li \l {To-Do Entries}
|
|
||||||
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
You can view output in the following ways:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li Select the output view on the taskbar.
|
|
||||||
\li Select \key Alt (\key Cmd on \macos) and the number of the view on
|
|
||||||
the taskbar.
|
|
||||||
\li Select \inlineimage icons/output-pane-menu.png
|
|
||||||
, and then select the view to open.
|
|
||||||
\li Select \uicontrol View > \uicontrol Output.
|
|
||||||
The menu items also display the \l{Keyboard Shortcuts}
|
|
||||||
{keyboard shortcuts} that you can use.
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
To maximize an open output view, select the \inlineimage icons/arrowup.png
|
|
||||||
(\uicontrol Maximize) button or press \key {Alt+Shift+9}.
|
|
||||||
|
|
||||||
|
|
||||||
To increase or decrease the output text size, select \inlineimage icons/plus.png
|
|
||||||
(\uicontrol {Zoom In}) or \inlineimage icons/minus.png
|
|
||||||
(\uicontrol {Zoom Out}), or press \key Ctrl++ or \key Ctrl+-. Zooming is
|
|
||||||
not supported in all output views.
|
|
||||||
|
|
||||||
To open the \uicontrol{General Messages} and
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\l{Using Version Control Systems}{Version Control}
|
|
||||||
\else
|
|
||||||
\l{Using Git}{Version Control}
|
|
||||||
\endif
|
|
||||||
views, select \uicontrol View > \uicontrol Output.
|
|
||||||
\if defined(qtcreator)
|
|
||||||
To view \uicontrol {To-Do Entries}, enable the \uicontrol Todo plugin.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
For more information about the \uicontrol {QML Debugger Console} view, see
|
|
||||||
\l{Executing JavaScript Expressions}.
|
|
||||||
|
|
||||||
If the text in the output is not displayed correctly, \QC might
|
|
||||||
be using a different codec from the one used by the tools that generate
|
|
||||||
the output. To specify the codec to use, select \uicontrol Edit >
|
|
||||||
\uicontrol Preferences > \uicontrol Environment > \uicontrol Interface, and
|
|
||||||
then select the codec in the \uicontrol {Text codec for tools} field.
|
|
||||||
|
|
||||||
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
|
|
||||||
|
|
||||||
\section1 Finding and Filtering Output
|
|
||||||
|
|
||||||
To search from output, press \key {Ctrl+F} when the view is active. Enter
|
|
||||||
search criteria in the \uicontrol Find field. For more information, see
|
|
||||||
\l{Finding and Replacing}.
|
|
||||||
|
|
||||||
Besides searching from the output, you can enter a string in the
|
|
||||||
\uicontrol Filter field to filter it. To specify filtering options,
|
|
||||||
select the \inlineimage icons/magnifier.png "Filtering options menu"
|
|
||||||
button. You can filter output by using regular expressions or
|
|
||||||
case-sensitivity. Select \uicontrol {Show Non-matching Lines} to
|
|
||||||
hide the lines that match the filter.
|
|
||||||
|
|
||||||
Finding and filtering are not supported in all output views.
|
|
||||||
|
|
||||||
\section1 Issues
|
|
||||||
|
|
||||||
\uicontrol{Issues} lists the following types of issues:
|
|
||||||
|
|
||||||
\list
|
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\li \uicontrol {Asset Export} - Errors and warnings encountered
|
|
||||||
while exporting assets.
|
|
||||||
|
|
||||||
\li \uicontrol {Asset Importer Error} - Errors and warnings encountered
|
|
||||||
while importing assets from a design tool.
|
|
||||||
\else
|
|
||||||
\li \uicontrol Autotests - Errors and warnings encountered while running
|
|
||||||
tests.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol {Build System} - Errors and warnings encountered during a
|
|
||||||
build.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol {Clang Code Model} -
|
|
||||||
\l {Parsing C++ Files with the Clang Code Model}
|
|
||||||
{Errors and warnings from the current editor}.
|
|
||||||
\li \uicontrol {Clang Tools} - Errors and warnings from
|
|
||||||
\l {Using Clang Tools}{Clang-Tidy and Clazy}
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol Compile - Selected output from the compiler. Open
|
|
||||||
\uicontrol {Compile Output} for more detailed information.
|
|
||||||
|
|
||||||
\li \uicontrol{Debug Information} - Lists debug information packages that might
|
|
||||||
be missing.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol Debugger - Errors encountered while running the
|
|
||||||
\l{Analyzing Code}{Valgrind code analysis tools}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol{Debugger Runtime} - Errors encountered when starting \QC. For
|
|
||||||
example, information about missing DLLs.
|
|
||||||
|
|
||||||
\li \uicontrol Deployment - Errors encountered between building an application
|
|
||||||
successfully and starting it on a \l{glossary-device}{device}.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol {My Tasks} - Entries from a task list file (.tasks) generated
|
|
||||||
by \l{Showing Task List Files in Issues}
|
|
||||||
{code scanning and analysis tools}.
|
|
||||||
|
|
||||||
\li \uicontrol Python - Runtime errors and exceptions of Python scripts.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \uicontrol QML and \uicontrol {QML Analysis} -
|
|
||||||
\l{JavaScript and QML Error Codes}
|
|
||||||
{QML and JavaScript syntax errors}.
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \uicontrol Sanitizer - Tasks created when you run an application if
|
|
||||||
you used an \e {address sanitizer} to detect memory handling issues.
|
|
||||||
\endif
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
The view filters out irrelevant output from the build tools and presents the
|
|
||||||
issues in an organized way. To further filter the output by type, select
|
|
||||||
\inlineimage icons/filtericon.png
|
|
||||||
(\uicontrol {Filter Tree}) and then select a filter. To find output in the
|
|
||||||
view, enter search criteria in the \uicontrol Filter field.
|
|
||||||
|
|
||||||
\image qtcreator-issues.webp {Issues}
|
|
||||||
|
|
||||||
Select one or several lines to apply context-menu actions to their contents.
|
|
||||||
You can remove the selected lines or copy their contents to the clipboard.
|
|
||||||
For single lines, you can search the Internet for a solution using the
|
|
||||||
contents of the line as search criteria or open a version control
|
|
||||||
annotation view of the line that causes the error message.
|
|
||||||
|
|
||||||
To view detailed information about the selected line (where available), press
|
|
||||||
\key Space.
|
|
||||||
|
|
||||||
To navigate to the corresponding source code, click an issue or
|
|
||||||
select \uicontrol {Show in Editor} in the context menu. The entry must contain the
|
|
||||||
name of the file where the issue was found.
|
|
||||||
|
|
||||||
To view more information about an issue in \l {Compile Output},
|
|
||||||
select \uicontrol {Show Compile Output} in the context menu.
|
|
||||||
|
|
||||||
To jump from one issue to the next or previous
|
|
||||||
one, select \inlineimage icons/arrowup.png
|
|
||||||
and \inlineimage icons/arrowdown.png
|
|
||||||
or press \key F6 and \key Shift+F6.
|
|
||||||
|
|
||||||
By default, a new build clears the \uicontrol Issues view. To keep
|
|
||||||
the issues from the previous build rounds, deselect \uicontrol Edit >
|
|
||||||
\uicontrol Preferences > \uicontrol {Build & Run} > \uicontrol General >
|
|
||||||
\uicontrol {Clear issues list on new build}.
|
|
||||||
|
|
||||||
\section1 Search Results
|
|
||||||
|
|
||||||
In \uicontrol{Search Results}, you can search through projects, files on
|
|
||||||
a file system or the currently open files:
|
|
||||||
|
|
||||||
\image qtcreator-search-results.webp {Search Results - criteria}
|
|
||||||
|
|
||||||
The search history (1) stores the search results. You can select earlier
|
|
||||||
searches from the history.
|
|
||||||
|
|
||||||
The figure below shows an example search result for all
|
|
||||||
occurrences of the search string in the specified directory.
|
|
||||||
|
|
||||||
\image qtcreator-search-results-matches.webp {Search Results - matches found}
|
|
||||||
|
|
||||||
For more information about the different search options, see
|
|
||||||
\l {Finding and Replacing}.
|
|
||||||
|
|
||||||
\section1 Application Output
|
|
||||||
|
|
||||||
\uicontrol{Application Output} displays the status of a program when
|
|
||||||
you execute it, and the debug output.
|
|
||||||
|
|
||||||
\image qtcreator-application-output.webp {Application Output}
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
If you specify command line arguments in the run settings that are passed
|
|
||||||
to the application when running it, they are displayed as a part of the
|
|
||||||
application output. For more information, see
|
|
||||||
\l{Specifying Run Settings for Desktop Device Types}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
Select toolbar buttons to run applications, to attach the debugger to the
|
|
||||||
running application, and to stop running or debugging.
|
|
||||||
|
|
||||||
To specify settings for displaying application output, select
|
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run} >
|
|
||||||
\uicontrol {Application Output}, or click the \inlineimage icons/settings.png
|
|
||||||
(\uicontrol {Open Settings Page}) button. You can select whether to open
|
|
||||||
\uicontrol{Application Output} on output when running or debugging
|
|
||||||
applications, to clear old output on a new run,
|
|
||||||
to word-wrap output, and to limit output to the specified number of lines.
|
|
||||||
|
|
||||||
\section1 Compile Output
|
|
||||||
|
|
||||||
\uicontrol{Compile Output} shows all output from the compiler.
|
|
||||||
The \uicontrol{Compile Output} is a more detailed version of information
|
|
||||||
displayed in \l Issues.
|
|
||||||
|
|
||||||
\image qtcreator-compile-output.webp {Compile Output}
|
|
||||||
|
|
||||||
Double-click on a file name in an error message to open the file in the
|
|
||||||
code editor.
|
|
||||||
|
|
||||||
Select the \uicontrol {Cancel Build} button to cancel the build.
|
|
||||||
|
|
||||||
To specify whether to open the \uicontrol {Compile Output} view on output
|
|
||||||
when building applications, select \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol {Build & Run} > \uicontrol {Compile Output}, and then select the
|
|
||||||
\uicontrol {Open Compile Output when building} check box.
|
|
||||||
In the \uicontrol {Limit output to} field, you can specify the maximum
|
|
||||||
amount of build output lines to display.
|
|
||||||
|
|
||||||
You can also open the preferences page by clicking \inlineimage icons/settings.png
|
|
||||||
(\uicontrol {Open Settings Page}).
|
|
||||||
|
|
||||||
To copy the output to the clipboard, select \uicontrol {Select All} in the
|
|
||||||
context menu, and then select \uicontrol Copy. Save the output as a file if
|
|
||||||
you want to examine it later without having to build the project again.
|
|
||||||
This is useful for large projects that take a long time to build.
|
|
||||||
|
|
||||||
\section2 Parsing Existing Compile Output
|
|
||||||
|
|
||||||
You can use \QC's output parsers to parse output from builds done outside
|
|
||||||
of \QC or stored from previous build runs. By default, the parsers from the
|
|
||||||
kit selected for the active project are used, but you can select another
|
|
||||||
kit.
|
|
||||||
|
|
||||||
To parse compile output:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
\li Select \uicontrol Tools > \uicontrol {Parse Build Output}.
|
|
||||||
\image qtcreator-parse-build-output.png
|
|
||||||
\li Paste the build output in the \uicontrol {Build Output} field, or
|
|
||||||
select \uicontrol {Load from File} to load it from a file.
|
|
||||||
\li Deselect the \uicontrol {Output went to stderr} check box if the
|
|
||||||
parser expects issues on \c stdout.
|
|
||||||
\li In the \uicontrol {Use parsers from kit} field, select the kit to
|
|
||||||
use for parsing the output. Select \uicontrol Manage to view
|
|
||||||
and modify kit settings.
|
|
||||||
\li The parser displays the parsed output in \l Issues. By default, the
|
|
||||||
view is cleared before adding the new output.
|
|
||||||
Deselect the \uicontrol {Clear existing tasks} check box to append
|
|
||||||
the new output to the old output.
|
|
||||||
\li Select \uicontrol OK to start parsing.
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
|
|
||||||
\section1 Terminal
|
|
||||||
|
|
||||||
When you select the \uicontrol {Run in Terminal} check box and run an
|
|
||||||
application or the \uicontrol {Open Terminal} button to open a terminal,
|
|
||||||
the default terminal opens. On Linux and \macos, you can set the default
|
|
||||||
terminal by selecting \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol Environment > \uicontrol System.
|
|
||||||
|
|
||||||
To open the terminal on the taskbar instead of in a separate window, select
|
|
||||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol Terminal >
|
|
||||||
\uicontrol {Use internal terminal}.
|
|
||||||
|
|
||||||
\image qtcreator-output-terminal.webp {Terminal pane}
|
|
||||||
|
|
||||||
To clear the terminal, select \inlineimage icons/clean_pane_small.png
|
|
||||||
(\uicontrol Clear).
|
|
||||||
|
|
||||||
To close the current terminal, select \inlineimage icons/terminal-close.png
|
|
||||||
.
|
|
||||||
|
|
||||||
To open new terminals as tabs, select \inlineimage icons/terminal-create.png
|
|
||||||
.
|
|
||||||
|
|
||||||
To move between terminals, select the tabs or \inlineimage icons/arrowup.png
|
|
||||||
and \inlineimage icons/arrowdown.png
|
|
||||||
.
|
|
||||||
|
|
||||||
To select a word in a terminal, double-click it. To select the whole line,
|
|
||||||
triple-click it.
|
|
||||||
|
|
||||||
To open links in a browser, files in the editor, or folders in the
|
|
||||||
\l Projects view, hover the mouse over them, and press \key Ctrl.
|
|
||||||
|
|
||||||
To \l{Finding and Replacing}{search} through the output, press \key {Ctrl+F}.
|
|
||||||
|
|
||||||
To make the font larger or smaller, select the \inlineimage icons/plus.png
|
|
||||||
and \inlineimage icons/minus.png
|
|
||||||
buttons. You can also change the font size in terminal preferences.
|
|
||||||
|
|
||||||
To open terminal preferences, select \inlineimage icons/settings.png
|
|
||||||
(\uicontrol Configure).
|
|
||||||
|
|
||||||
Most of the \QC keyboard shortcuts are disabled in the terminal, except the
|
|
||||||
ones for opening terminal preferences or the locator and quitting \QC. To
|
|
||||||
send the escape key to the terminal instead of closing the terminal, select
|
|
||||||
\uicontrol {Shift+Esc}. You can also specify that the escape key is sent to
|
|
||||||
the terminal in terminal preferences.
|
|
||||||
|
|
||||||
\section2 Setting Terminal Preferences
|
|
||||||
|
|
||||||
To set preferences for the internal terminal, select \uicontrol Edit >
|
|
||||||
\uicontrol Preferences > \uicontrol Terminal, or select the
|
|
||||||
\uicontrol Configure button in the \uicontrol Terminal pane.
|
|
||||||
|
|
||||||
\image qtcreator-preferences-terminal.webp {Terminal tab in Preferences}
|
|
||||||
|
|
||||||
\table
|
|
||||||
\header
|
|
||||||
\li Option
|
|
||||||
\li Value
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Use internal terminal}
|
|
||||||
\li Open the \uicontrol Terminal pane when you select
|
|
||||||
\uicontrol {Run in Terminal} or \uicontrol {Open Terminal}.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Send escape key to terminal}
|
|
||||||
\li Send the escape key to the terminal instead of closing the terminal.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Audible bell}
|
|
||||||
\li Play an audible bell when the a bell character is received.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Allow blinking cursor}
|
|
||||||
\li Allow the cursor to blink.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Font}
|
|
||||||
\li Select the \uicontrol {Font family} and \uicontrol Size for the text
|
|
||||||
in the terminal. You can also use the \inlineimage icons/plus.png
|
|
||||||
and \inlineimage icons/minus.png buttons in the \uicontrol Terminal
|
|
||||||
pane to change the font size.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Colors}
|
|
||||||
\li Set colors for the \uicontrol Terminal pane \uicontrol Foreground,
|
|
||||||
\uicontrol Background, \uicontrol Selection, and
|
|
||||||
\uicontrol {Find match}.
|
|
||||||
\row
|
|
||||||
\li \uicontrol {Default shell}
|
|
||||||
\li Set the full path to the default terminal executable in
|
|
||||||
\uicontrol {Shell path} and the arguments to pass to the shell
|
|
||||||
in \uicontrol {Shell arguments}.
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
To use an existing color scheme, select \uicontrol {Load Theme}. To revert
|
|
||||||
color changes, select \uicontrol {Reset Theme}.
|
|
||||||
|
|
||||||
\section1 To-Do Entries
|
|
||||||
|
|
||||||
\uicontrol {To-Do Entries} lists the BUG, FIXME, NOTE, TODO, and
|
|
||||||
WARNING keywords from the current file, from all project files, or from a
|
|
||||||
subproject. Click the icons on the toolbar to show only the selected
|
|
||||||
keywords.
|
|
||||||
|
|
||||||
\image qtcreator-to-do-entries.webp {To-Do Entries}
|
|
||||||
|
|
||||||
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
|
|
||||||
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
|
|
||||||
for the keyword.
|
|
||||||
|
|
||||||
\image qtcreator-todo-options.png {To-Do preferences}
|
|
||||||
|
|
||||||
To change the icon and line background color of the selected keyword, select
|
|
||||||
\uicontrol Edit.
|
|
||||||
|
|
||||||
To remove the selected keyword, select \uicontrol Remove.
|
|
||||||
|
|
||||||
To reset the list to predefined keywords, select \uicontrol Reset. All your
|
|
||||||
changes will be permanently lost.
|
|
||||||
|
|
||||||
To determine whether the keywords in the whole project, in the current file,
|
|
||||||
or in a subproject are displayed by default, select the appropriate option
|
|
||||||
in the \uicontrol {Scanning scope} group.
|
|
||||||
|
|
||||||
To exclude files from scanning, select \uicontrol {Project Settings} >
|
|
||||||
\uicontrol {To-Do} in the \uicontrol Projects mode.
|
|
||||||
|
|
||||||
\image qtcreator-todo-excluded-files.png {Excluded Files in To-Do preferences}
|
|
||||||
|
|
||||||
Select \uicontrol Add and double-click the placeholder text in
|
|
||||||
\uicontrol {Exclude Files} to enter a regular expression that
|
|
||||||
matches the path to files to exclude. Use a forward slash (/)
|
|
||||||
as a separator in the path also on Windows.
|
|
||||||
|
|
||||||
Select the link in \uicontrol {Use global settings} to open global
|
|
||||||
To-Do preferences.
|
|
||||||
|
|
||||||
The Todo plugin is disabled by default. To enable the plugin, select
|
|
||||||
\uicontrol Help > \uicontrol {About Plugins} > \uicontrol Utilities >
|
|
||||||
\uicontrol Todo. Then select \uicontrol {Restart Now} to restart \QC
|
|
||||||
and load the plugin.
|
|
||||||
|
|
||||||
In addition, you can open task list files generated by code scanning and
|
|
||||||
analysis tools in \l Issues. For more information, see
|
|
||||||
\l{Showing Task List Files in Issues}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
@@ -1,148 +0,0 @@
|
|||||||
// Copyright (C) 2023 The Qt Company Ltd.
|
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\page creator-views.html
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\previouspage creator-coding-navigating.html
|
|
||||||
\nextpage creator-output-panes.html
|
|
||||||
\else
|
|
||||||
\previouspage creator-quick-tour.html
|
|
||||||
\nextpage creator-projects-view.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Browsing Project Contents
|
|
||||||
|
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
You can organize \QDS views as \l {Managing Workspaces}{workspaces}.
|
|
||||||
\else
|
|
||||||
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
|
|
||||||
|
|
||||||
\note Usually, \l{Searching with the Locator}{searching with the locator}
|
|
||||||
is the fastest way to find a particular project, file, class, or function,
|
|
||||||
or almost anything else in your project.
|
|
||||||
|
|
||||||
Manage projects and files in the following views:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li \l Projects shows a list of projects open in the current
|
|
||||||
session and the project files needed by the build system.
|
|
||||||
\li \l{File System} shows all files in the currently selected
|
|
||||||
directory.
|
|
||||||
\li \l{Open Documents} shows currently open files.
|
|
||||||
\li \l{Using Bookmarks}{Bookmarks} shows all bookmarks for the current
|
|
||||||
session.
|
|
||||||
\li \l{Working with Branches}{Git Branches} shows the local and remote
|
|
||||||
branches for the project in the Git version control system.
|
|
||||||
\li \l{Viewing Defined Types and Symbols}{Outline} shows an overview of
|
|
||||||
defined types and other symbols, as well as their properties and
|
|
||||||
hierarchy in a source file.
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
The following views display additional information about C++ code:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li \l{Viewing the Class Hierarchy}{Class View} shows the class
|
|
||||||
hierarchy of the currently open projects.
|
|
||||||
\li \l{Running Autotests}{Tests} lists autotests and Qt Quick
|
|
||||||
tests in the project.
|
|
||||||
\li \l{Viewing Type Hierarchy}{Type Hierarchy} shows the base
|
|
||||||
classes of a class.
|
|
||||||
\li \l{Viewing Include Hierarchy}{Include Hierarchy} shows the
|
|
||||||
files that the current file includes and those that include
|
|
||||||
the current file.
|
|
||||||
\endlist
|
|
||||||
\else
|
|
||||||
For more information about views that are only available when editing QML
|
|
||||||
files in the \uicontrol Design mode, see \l{Design Views}.
|
|
||||||
\endif
|
|
||||||
|
|
||||||
The following sections describe the additional options in a particular view.
|
|
||||||
|
|
||||||
In some views, right-clicking opens a context menu that has functions
|
|
||||||
for managing the objects listed in the view.
|
|
||||||
|
|
||||||
\section1 Viewing Defined Types and Symbols
|
|
||||||
|
|
||||||
The \uicontrol Outline view shows an overview of defined types and other
|
|
||||||
symbols, as well as their properties and hierarchy in a source file.
|
|
||||||
You can move the code for types and symbols around in the source file
|
|
||||||
by dragging and dropping them in the outline.
|
|
||||||
|
|
||||||
\image qtcreator-outline-view.png "Outline view"
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li To see a complete list of all bindings, select
|
|
||||||
\inlineimage icons/filtericon.png
|
|
||||||
(\uicontrol {Filter Tree}) > \uicontrol {Show All Bindings}.
|
|
||||||
\li To sort types or symbols alphabetically, select
|
|
||||||
\inlineimage icons/sort_alphabetically.png
|
|
||||||
(\uicontrol {Sort Alphabetically}).
|
|
||||||
\li To stop the synchronization with the type or symbol selected in the
|
|
||||||
editor, deselect \inlineimage icons/linkicon.png
|
|
||||||
(\uicontrol {Synchronize with Editor}).
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\section1 Viewing the Class Hierarchy
|
|
||||||
|
|
||||||
The \uicontrol {Class View} shows the class hierarchy of the currently
|
|
||||||
open projects.
|
|
||||||
|
|
||||||
\image qtcreator-class-view.png "Class View"
|
|
||||||
|
|
||||||
To organize the view by subprojects, click
|
|
||||||
\inlineimage icons/qtcreator-show-subprojects.png
|
|
||||||
(\uicontrol {Show Subprojects}).
|
|
||||||
|
|
||||||
To visit all parts of a namespace, double-click on the namespace item
|
|
||||||
multiple times.
|
|
||||||
|
|
||||||
\section1 Viewing Call Hierarchy
|
|
||||||
|
|
||||||
The \uicontrol {Call Hierarchy} view shows information about incoming and
|
|
||||||
outgoing function calls from a \l{Using Language Servers}{language server}.
|
|
||||||
Place the cursor on a function definition in the code editor to see lists
|
|
||||||
of functions that call it and the functions it calls. This works recursively,
|
|
||||||
so you can also see the caller of the caller. However, Clangd only lists
|
|
||||||
incoming calls.
|
|
||||||
|
|
||||||
Select the \inlineimage icons/languageclient.png
|
|
||||||
button on the \l{Managing Language Servers}{editor toolbar}, and then select
|
|
||||||
\uicontrol {Restart} to collect call hierarchy information for the function.
|
|
||||||
|
|
||||||
\image qtcreator-call-hierarchy-view.png {Call Hierarchy view}
|
|
||||||
|
|
||||||
\section1 Viewing Type Hierarchy
|
|
||||||
|
|
||||||
To view the base classes and derived classes of a class, right-click the
|
|
||||||
class in the code editor and select \uicontrol {Open Type Hierarchy} or
|
|
||||||
press \key {Ctrl+Shift+T}.
|
|
||||||
|
|
||||||
\image qtcreator-type-hierarchy-view.png "Type Hierarchy view"
|
|
||||||
|
|
||||||
To navigate in the type hierarchy, double-click a class or select it,
|
|
||||||
and then select \uicontrol {Open Type Hierarchy} in the context menu.
|
|
||||||
The view highlights the previous class.
|
|
||||||
|
|
||||||
The definition of the selected class opens in the code editor. You
|
|
||||||
can also select \uicontrol {Open in Editor} in the context menu to open
|
|
||||||
it.
|
|
||||||
|
|
||||||
\section1 Viewing Include Hierarchy
|
|
||||||
|
|
||||||
To view the files that the current file includes and those that include
|
|
||||||
the current file, right-click in the editor and select
|
|
||||||
\uicontrol {Open Include Hierarchy} or press \key {Ctrl+Shift+I}.
|
|
||||||
|
|
||||||
\image qtcreator-include-hierarchy-view.png "Include Hierarchy view"
|
|
||||||
|
|
||||||
To keep the view synchronized with the file currently open in the editor,
|
|
||||||
select \inlineimage icons/linkicon.png
|
|
||||||
(\uicontrol {Synchronize with Editor}).
|
|
||||||
\endif
|
|
||||||
*/
|
|
@@ -20,7 +20,7 @@
|
|||||||
To use GitLab, you must create a connection to the GitLab server and clone
|
To use GitLab, you must create a connection to the GitLab server and clone
|
||||||
the projects you want to work on. You can also link previously cloned
|
the projects you want to work on. You can also link previously cloned
|
||||||
projects to GitLab in the project settings. This enables you to receive
|
projects to GitLab in the project settings. This enables you to receive
|
||||||
event notifications in the \l {Viewing Output}{Version Control} pane.
|
event notifications in the \l {View output}{Version Control} pane.
|
||||||
|
|
||||||
\section1 Connecting to GitLab Servers
|
\section1 Connecting to GitLab Servers
|
||||||
|
|
||||||
|
@@ -1,19 +1,17 @@
|
|||||||
// Copyright (C) 2023 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
|
||||||
|
|
||||||
// **********************************************************************
|
|
||||||
// NOTE: the sections are not ordered by their logical order to avoid
|
|
||||||
// reshuffling the file each time the index order changes (i.e., often).
|
|
||||||
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
||||||
// **********************************************************************
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\previouspage {Creating a Qt Quick Application}
|
|
||||||
\page creator-writing-program.html
|
\page creator-writing-program.html
|
||||||
\nextpage {Creating a Mobile Application}
|
\previouspage creator-tutorials.html
|
||||||
|
\nextpage creator-project-managing.html
|
||||||
|
\ingroup creator-tutorials
|
||||||
|
|
||||||
\title Creating a Qt Widget Based Application
|
\title Creating a Qt Widget Based Application
|
||||||
|
|
||||||
|
\brief How to use the integrated \QD to create a Qt widget based application
|
||||||
|
for the desktop.
|
||||||
|
|
||||||
This tutorial describes how to use \QC to create a small Qt application,
|
This tutorial describes how to use \QC to create a small Qt application,
|
||||||
Text Finder. It is a simplified version of the Qt UI Tools \l{Text Finder}
|
Text Finder. It is a simplified version of the Qt UI Tools \l{Text Finder}
|
||||||
example. You'll use \QD to construct the application user interface from
|
example. You'll use \QD to construct the application user interface from
|
||||||
@@ -29,11 +27,11 @@
|
|||||||
\uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application}
|
\uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application}
|
||||||
> \uicontrol Choose.
|
> \uicontrol Choose.
|
||||||
|
|
||||||
\image qtcreator-new-qt-gui-application.png "New Project dialog"
|
\image qtcreator-new-qt-gui-application.png {New Project dialog}
|
||||||
|
|
||||||
The \uicontrol{Introduction and Project Location} dialog opens.
|
The \uicontrol{Project Location} dialog opens.
|
||||||
|
|
||||||
\image qtcreator-intro-and-location-qt-gui.png "Introduction and Project Location dialog"
|
\image qtcreator-intro-and-location-qt-gui.png {Project Location dialog}
|
||||||
|
|
||||||
\li In the \uicontrol{Name} field, type \b {TextFinder}.
|
\li In the \uicontrol{Name} field, type \b {TextFinder}.
|
||||||
|
|
||||||
@@ -44,7 +42,7 @@
|
|||||||
\uicontrol Continue (on \macos) to open the
|
\uicontrol Continue (on \macos) to open the
|
||||||
\uicontrol {Define Build System} dialog.
|
\uicontrol {Define Build System} dialog.
|
||||||
|
|
||||||
\image qtcreator-new-project-build-system-qt-gui.png "Define Build System dialog"
|
\image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog}
|
||||||
|
|
||||||
\li In the \uicontrol {Build system} field, select \l {Setting Up CMake}
|
\li In the \uicontrol {Build system} field, select \l {Setting Up CMake}
|
||||||
{CMake} as the build system to use for building the project.
|
{CMake} as the build system to use for building the project.
|
||||||
@@ -52,7 +50,7 @@
|
|||||||
\li Select \uicontrol Next or \uicontrol Continue to open the
|
\li Select \uicontrol Next or \uicontrol Continue to open the
|
||||||
\uicontrol{Class Information} dialog.
|
\uicontrol{Class Information} dialog.
|
||||||
|
|
||||||
\image qtcreator-class-info-qt-gui.png "Class Information dialog"
|
\image qtcreator-class-info-qt-gui.png {Class Information dialog}
|
||||||
|
|
||||||
\li In the \uicontrol{Class name} field, type \b {TextFinder} as the class
|
\li In the \uicontrol{Class name} field, type \b {TextFinder} as the class
|
||||||
name.
|
name.
|
||||||
@@ -66,7 +64,7 @@
|
|||||||
\li Select \uicontrol Next or \uicontrol Continue to open the
|
\li Select \uicontrol Next or \uicontrol Continue to open the
|
||||||
\uicontrol {Translation File} dialog.
|
\uicontrol {Translation File} dialog.
|
||||||
|
|
||||||
\image qtcreator-new-qt-gui-application-translationfile.png "Translation File dialog"
|
\image qtcreator-new-qt-gui-application-translationfile.png {Translation File dialog}
|
||||||
|
|
||||||
\li In the \uicontrol Language field, you can select a language that you
|
\li In the \uicontrol Language field, you can select a language that you
|
||||||
plan to \l {Using Qt Linguist}{translate} the application to. This
|
plan to \l {Using Qt Linguist}{translate} the application to. This
|
||||||
@@ -76,7 +74,7 @@
|
|||||||
\li Select \uicontrol Next or \uicontrol Continue to open the
|
\li Select \uicontrol Next or \uicontrol Continue to open the
|
||||||
\uicontrol {Kit Selection} dialog.
|
\uicontrol {Kit Selection} dialog.
|
||||||
|
|
||||||
\image qtcreator-new-project-qt-versions-qt-gui.png "Kit Selection dialog"
|
\image qtcreator-new-project-qt-versions-qt-gui.png {Kit Selection dialog}
|
||||||
|
|
||||||
\li Select build and run \l{glossary-buildandrun-kit}{kits} for your
|
\li Select build and run \l{glossary-buildandrun-kit}{kits} for your
|
||||||
project.
|
project.
|
||||||
@@ -84,7 +82,7 @@
|
|||||||
\li Select \uicontrol Next or \uicontrol Continue to open the
|
\li Select \uicontrol Next or \uicontrol Continue to open the
|
||||||
\uicontrol {Project Management} dialog.
|
\uicontrol {Project Management} dialog.
|
||||||
|
|
||||||
\image qtcreator-new-project-summary-qt-gui.png "Project Management dialog"
|
\image qtcreator-new-project-summary-qt-gui.png {Project Management dialog}
|
||||||
|
|
||||||
\li Review the project settings, and select \uicontrol{Finish} (on Windows and
|
\li Review the project settings, and select \uicontrol{Finish} (on Windows and
|
||||||
Linux) or \uicontrol Done (on \macos) to create the project.
|
Linux) or \uicontrol Done (on \macos) to create the project.
|
||||||
@@ -106,7 +104,7 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\image qtcreator-textfinder-contents.png "TextFinder project contents"
|
\image qtcreator-textfinder-contents.png {TextFinder project contents}
|
||||||
|
|
||||||
The .h and .cpp files come with the necessary boiler plate code.
|
The .h and .cpp files come with the necessary boiler plate code.
|
||||||
|
|
||||||
@@ -120,14 +118,14 @@
|
|||||||
|
|
||||||
\section2 Designing the User Interface
|
\section2 Designing the User Interface
|
||||||
|
|
||||||
\image qtcreator-textfinder-ui.png "Text Finder UI"
|
\image qtcreator-textfinder-ui.png {Text Finder UI}
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li In the \uicontrol{Editor} mode, double-click the textfinder.ui file in the
|
\li In the \uicontrol{Editor} mode, double-click the textfinder.ui file in the
|
||||||
\uicontrol{Projects} view to launch the integrated \QD.
|
\uicontrol{Projects} view to launch the integrated \QD.
|
||||||
|
|
||||||
\li Drag and drop the following widgets to the form:
|
\li Drag the following widgets to the form:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
@@ -137,13 +135,13 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\image qtcreator-textfinder-ui-widgets.png "Adding widgets to Text Finder UI"
|
\image qtcreator-textfinder-ui-widgets.png {Adding widgets to Text Finder UI}
|
||||||
|
|
||||||
\note To easily locate the widgets, use the search box at the top of the
|
\note To easily locate the widgets, use the search box at the top of the
|
||||||
\uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing
|
\uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing
|
||||||
the word \b label.
|
the word \b label.
|
||||||
|
|
||||||
\image qtcreator-textfinder-filter.png "Filter field"
|
\image qtcreator-textfinder-filter.png {Filter field}
|
||||||
|
|
||||||
\li Double-click the \uicontrol{Label} widget and enter the text
|
\li Double-click the \uicontrol{Label} widget and enter the text
|
||||||
\b{Keyword}.
|
\b{Keyword}.
|
||||||
@@ -154,21 +152,21 @@
|
|||||||
\li In the \uicontrol Properties view, change the \uicontrol objectName to
|
\li In the \uicontrol Properties view, change the \uicontrol objectName to
|
||||||
\b findButton.
|
\b findButton.
|
||||||
|
|
||||||
\image qtcreator-textfinder-objectname.png "Changing object names"
|
\image qtcreator-textfinder-objectname.png {Changing object names}
|
||||||
|
|
||||||
\li Press \key {Ctrl+A} (or \key {Cmd+A}) to select the widgets and
|
\li Press \key {Ctrl+A} (or \key {Cmd+A}) to select the widgets and
|
||||||
select \uicontrol{Lay out Horizontally} (or press \key {Ctrl+H} on Linux or
|
select \uicontrol{Lay out Horizontally} (or press \key {Ctrl+H} on Linux or
|
||||||
Windows or \key {Ctrl+Shift+H} on \macos) to apply a horizontal
|
Windows or \key {Ctrl+Shift+H} on \macos) to apply a horizontal
|
||||||
layout (QHBoxLayout).
|
layout (QHBoxLayout).
|
||||||
|
|
||||||
\image qtcreator-textfinder-ui-horizontal-layout.png "Applying horizontal layout"
|
\image qtcreator-textfinder-ui-horizontal-layout.png {Applying horizontal layout}
|
||||||
|
|
||||||
\li Drag and drop a \uicontrol{Text Edit} widget (QTextEdit) to the form.
|
\li Drag a \uicontrol{Text Edit} widget (QTextEdit) to the form.
|
||||||
|
|
||||||
\li Select the screen area, and then select \uicontrol{Lay out Vertically}
|
\li Select the screen area, and then select \uicontrol{Lay out Vertically}
|
||||||
(or press \key {Ctrl+L}) to apply a vertical layout (QVBoxLayout).
|
(or press \key {Ctrl+L}) to apply a vertical layout (QVBoxLayout).
|
||||||
|
|
||||||
\image qtcreator-textfinder-ui.png "Text Finder UI"
|
\image qtcreator-textfinder-ui.png {Text Finder UI}
|
||||||
|
|
||||||
Applying the horizontal and vertical layouts ensures that the
|
Applying the horizontal and vertical layouts ensures that the
|
||||||
application UI scales to different screen sizes.
|
application UI scales to different screen sizes.
|
||||||
@@ -274,11 +272,11 @@
|
|||||||
\li Select \uicontrol File > \uicontrol {New File} >
|
\li Select \uicontrol File > \uicontrol {New File} >
|
||||||
\uicontrol Qt > \uicontrol {Qt Resource File} > \uicontrol Choose.
|
\uicontrol Qt > \uicontrol {Qt Resource File} > \uicontrol Choose.
|
||||||
|
|
||||||
\image qtcreator-add-resource-wizard.png "New File dialog"
|
\image qtcreator-add-resource-wizard.png {New File dialog}
|
||||||
|
|
||||||
The \uicontrol {Choose the Location} dialog opens.
|
The \uicontrol {Choose the Location} dialog opens.
|
||||||
|
|
||||||
\image qtcreator-add-resource-wizard2.png "Choose the Location dialog"
|
\image qtcreator-add-resource-wizard2.png {Choose the Location dialog}
|
||||||
|
|
||||||
\li In the \uicontrol{Name} field, enter \b{textfinder}.
|
\li In the \uicontrol{Name} field, enter \b{textfinder}.
|
||||||
|
|
||||||
@@ -287,7 +285,7 @@
|
|||||||
|
|
||||||
The \uicontrol{Project Management} dialog opens.
|
The \uicontrol{Project Management} dialog opens.
|
||||||
|
|
||||||
\image qtcreator-add-resource-wizard3.png "Project Management dialog"
|
\image qtcreator-add-resource-wizard3.png {Project Management dialog}
|
||||||
|
|
||||||
|
|
||||||
\li In the \uicontrol{Add to project} field, select \b{TextFinder}
|
\li In the \uicontrol{Add to project} field, select \b{TextFinder}
|
||||||
@@ -302,7 +300,7 @@
|
|||||||
\li Select \uicontrol Add > \uicontrol {Add Files}, to locate and add
|
\li Select \uicontrol Add > \uicontrol {Add Files}, to locate and add
|
||||||
input.txt.
|
input.txt.
|
||||||
|
|
||||||
\image qtcreator-add-resource.png "Editing resource files"
|
\image qtcreator-add-resource.png {Editing resource files}
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
@@ -320,6 +318,6 @@
|
|||||||
|
|
||||||
Now that you have all the necessary files, select the
|
Now that you have all the necessary files, select the
|
||||||
\inlineimage icons/run_small.png
|
\inlineimage icons/run_small.png
|
||||||
button to compile and run your Application.
|
button to compile and run your application.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
\section1 Basics
|
\section1 Basics
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l{Getting and Building Qt Creator}
|
\li \l{Getting Qt and Qt Creator}
|
||||||
\li \l{Creating Your First Plugin}
|
\li \l{Creating Your First Plugin}
|
||||||
\li \l{Plugin Meta Data}
|
\li \l{Plugin Meta Data}
|
||||||
\li \l{Plugin Life Cycle}
|
\li \l{Plugin Life Cycle}
|
||||||
|
@@ -3,53 +3,67 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\page getting-and-building.html
|
\page getting-and-building.html
|
||||||
\title Getting and Building Qt Creator
|
\title Getting Qt and Qt Creator
|
||||||
|
|
||||||
\code
|
To create and build a \QC plugin, you need a compatible version of Qt,
|
||||||
TODO: This should be extended.
|
and either a \QC package (released or snapshot) or your own \QC build.
|
||||||
* Windows specific hassle, see README in \QC sources
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
There are several reasons why you might want to do your own build of \QC,
|
There are several reasons why you might want to do your own build of \QC,
|
||||||
like using the most current development version and being able to tweak \QC
|
like using the most current development version and being able to tweak \QC
|
||||||
at one or the other place. It is also necessary if you want to create your
|
at one or the other place. But it is not strictly necessary for creating
|
||||||
own \QC plugin.
|
plugins. The \QC packages contain a \uicontrol {Plugin Development}
|
||||||
|
component that enables plugin development with the \QC contained in the
|
||||||
|
package.
|
||||||
|
|
||||||
\section1 Getting Qt
|
\section1 Getting Qt
|
||||||
|
|
||||||
Prebuilt \QC packages usually use the latest stable release of Qt. You can
|
Prebuilt \QC packages usually use the latest stable release of Qt.
|
||||||
see the exact minimum requirement at the top of \QC's \c {qtcreator.pro}.
|
See the exact Qt version that a \QC package was built with in its
|
||||||
(You can find the current version in our source repository here:
|
\uicontrol {About \QC} dialog.
|
||||||
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/qtcreator.pro#n4}.)
|
|
||||||
|
The minimum requirement for building \QC is stated in the
|
||||||
|
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git/about/README.md}
|
||||||
|
{README.md} and near the top of the
|
||||||
|
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/cmake/QtCreatorAPI.cmake}
|
||||||
|
{cmake/QtCreatorAPI.cmake} file in the sources.
|
||||||
|
|
||||||
You can get prebuilt Qt packages from
|
You can get prebuilt Qt packages from
|
||||||
\l{https://download.qt.io}{Qt Downloads}. If you want to use Qt as provided
|
\l{https://download.qt.io}{Qt Downloads}. If you want to use Qt as provided
|
||||||
by your Linux distribution, you need to make sure that all Qt development
|
by your Linux distribution, you need to make sure that all Qt development
|
||||||
packages and private header packages are also installed.
|
packages and private header packages are also installed.
|
||||||
|
|
||||||
\section1 Getting and Building \QC
|
\section1 Getting \QC
|
||||||
|
|
||||||
|
\section2 Installing a Prebuilt Package
|
||||||
|
|
||||||
|
The prebuilt \QC packages contain a \uicontrol {Plugin Development}
|
||||||
|
component that contains the CMake files, headers and other files
|
||||||
|
that you need to build a plugin. It is not installed by default, so make
|
||||||
|
sure to select the component when installing \QC.
|
||||||
|
|
||||||
|
When developing your plugin, point the \c {CMAKE_PREFIX_PATH} to the
|
||||||
|
installation location of \QC, or the \QC app on macOS.
|
||||||
|
|
||||||
|
Get prebuilt packages either from the
|
||||||
|
\l{https://download.qt.io/official_releases/online_installers/}
|
||||||
|
{Qt online installer}, or a standalone \QC installer either for a
|
||||||
|
\l{https://download.qt.io/official_releases/qtcreator/}
|
||||||
|
{released \QC version} or a \l{https://download.qt.io/snapshots/qtcreator/}
|
||||||
|
{development snapshot}.
|
||||||
|
|
||||||
|
\section2 Building \QC
|
||||||
|
|
||||||
You can get the \QC sources for a specific version either by using one of
|
You can get the \QC sources for a specific version either by using one of
|
||||||
the released source bundles, or from the Git repository
|
the released source bundles or by cloning the sources from the Git repository
|
||||||
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git}. If you intend to
|
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git}. If you intend to
|
||||||
contribute to \QC itself, you should use the repository from our Gerrit
|
contribute to \QC itself, you should use the repository from our Gerrit
|
||||||
review tool as described in:
|
review tool as described in:
|
||||||
\l{https://wiki.qt.io/Setting_up_Gerrit}{Setting up Gerrit}.
|
\l{https://wiki.qt.io/Setting_up_Gerrit}{Setting up Gerrit}.
|
||||||
|
|
||||||
We strongly encourage you to do out-of-source builds of \QC (also called
|
Refer to the
|
||||||
shadow-builds).
|
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git/about/README.md}
|
||||||
|
{README.md} included in the sources for details on building \QC.
|
||||||
|
|
||||||
After you put the \QC sources somewhere (lets call the path
|
When developing your plugin, point the \c {CMAKE_PREFIX_PATH} to the
|
||||||
\c {<QtCreatorSources>})
|
build location of \QC.
|
||||||
you build it on Linux and Mac with
|
|
||||||
|
|
||||||
\code
|
|
||||||
cd <QtCreatorSources>/..
|
|
||||||
mkdir qtcreator-build
|
|
||||||
cd qtcreator-build
|
|
||||||
<QtInstall>/bin/qmake -r <QtCreatorSources>
|
|
||||||
make
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
or the corresponding commands on Windows systems.
|
|
||||||
*/
|
*/
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
// 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 extending-index.html
|
\page index.html
|
||||||
\title Extending Qt Creator Manual
|
\title Extending Qt Creator Manual
|
||||||
|
|
||||||
\QC is a cross-platform integrated development environment (IDE) tailored to
|
\QC is a cross-platform integrated development environment (IDE) tailored to
|
||||||
|
@@ -200,11 +200,6 @@
|
|||||||
\list
|
\list
|
||||||
\li \l{Writing Code}
|
\li \l{Writing Code}
|
||||||
\list
|
\list
|
||||||
\li \l{Working in Edit Mode}
|
|
||||||
\list
|
|
||||||
\li \l{Browsing Project Contents}
|
|
||||||
\li \l{Viewing Output}
|
|
||||||
\endlist
|
|
||||||
\li \l{Semantic Highlighting}
|
\li \l{Semantic Highlighting}
|
||||||
\li \l{Checking Code Syntax}
|
\li \l{Checking Code Syntax}
|
||||||
\li \l{Completing Code}
|
\li \l{Completing Code}
|
||||||
|
@@ -47,9 +47,8 @@
|
|||||||
\section2 Source Component
|
\section2 Source Component
|
||||||
|
|
||||||
The \uicontrol {Source Component} property defines the component for
|
The \uicontrol {Source Component} property defines the component for
|
||||||
\uicontrol Loader3D to instantiate. Currently, the
|
\uicontrol Loader3D to instantiate. Currently, you need to define the
|
||||||
\uicontrol {Source component} needs to be defined in code using the
|
\uicontrol {Source component} in the \l {Code} view.
|
||||||
\l {Working in Edit Mode}{Edit} mode or the \l {Code} view.
|
|
||||||
|
|
||||||
\section2 Asynchronous
|
\section2 Asynchronous
|
||||||
|
|
||||||
|
@@ -129,7 +129,7 @@
|
|||||||
\li Provides a code editor for viewing and modifying the code
|
\li Provides a code editor for viewing and modifying the code
|
||||||
generated by the visual editors.
|
generated by the visual editors.
|
||||||
\li \image ok.png
|
\li \image ok.png
|
||||||
\li \l {Working in Edit Mode}
|
\li \l {Writing Code}
|
||||||
\row
|
\row
|
||||||
\li \l Projects
|
\li \l Projects
|
||||||
\li Shows a list of open projects and the files they contain.
|
\li Shows a list of open projects and the files they contain.
|
||||||
@@ -201,12 +201,12 @@
|
|||||||
That is, returns the focus to the last location in the last file it
|
That is, returns the focus to the last location in the last file it
|
||||||
was on.
|
was on.
|
||||||
\li \key Alt+< (\key Opt+Cmd+< on \macos)
|
\li \key Alt+< (\key Opt+Cmd+< on \macos)
|
||||||
\li \l{Navigating Between Open Files and Symbols}
|
\li
|
||||||
\row
|
\row
|
||||||
\li \inlineimage icons/next.png
|
\li \inlineimage icons/next.png
|
||||||
\li \uicontrol {Go Forward}: moves a step forward in your location history.
|
\li \uicontrol {Go Forward}: moves a step forward in your location history.
|
||||||
\li \key Alt+> (\key Opt+Cmd+> on \macos)
|
\li \key Alt+> (\key Opt+Cmd+> on \macos)
|
||||||
\li \l{Navigating Between Open Files and Symbols}
|
\li
|
||||||
\row
|
\row
|
||||||
\li \inlineimage icons/close.png
|
\li \inlineimage icons/close.png
|
||||||
\li \uicontrol {Close Document}: closes the current file.
|
\li \uicontrol {Close Document}: closes the current file.
|
||||||
|
@@ -21,8 +21,7 @@
|
|||||||
\uicontrol Edit > \uicontrol {Find/Replace} > \uicontrol {Find/Replace}.
|
\uicontrol Edit > \uicontrol {Find/Replace} > \uicontrol {Find/Replace}.
|
||||||
You can also select \key Ctrl + \key {F}.
|
You can also select \key Ctrl + \key {F}.
|
||||||
|
|
||||||
You can use a subset of the functions available in the
|
The view offers the following features:
|
||||||
\l{Writing Code}{Edit mode}:
|
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l{Semantic Highlighting}
|
\li \l{Semantic Highlighting}
|
||||||
|
@@ -6,16 +6,16 @@ import qbs.Utilities
|
|||||||
Module {
|
Module {
|
||||||
Depends { name: "cpp"; required: false }
|
Depends { name: "cpp"; required: false }
|
||||||
|
|
||||||
property string qtcreator_display_version: '11.0.0-rc1'
|
property string qtcreator_display_version: '11.0.0'
|
||||||
property string ide_version_major: '10'
|
property string ide_version_major: '11'
|
||||||
property string ide_version_minor: '0'
|
property string ide_version_minor: '0'
|
||||||
property string ide_version_release: '84'
|
property string ide_version_release: '0'
|
||||||
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
|
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
|
||||||
+ ide_version_release
|
+ ide_version_release
|
||||||
|
|
||||||
property string ide_compat_version_major: '10'
|
property string ide_compat_version_major: '11'
|
||||||
property string ide_compat_version_minor: '0'
|
property string ide_compat_version_minor: '0'
|
||||||
property string ide_compat_version_release: '84'
|
property string ide_compat_version_release: '0'
|
||||||
property string qtcreator_compat_version: ide_compat_version_major + '.'
|
property string qtcreator_compat_version: ide_compat_version_major + '.'
|
||||||
+ ide_compat_version_minor + '.' + ide_compat_version_release
|
+ ide_compat_version_minor + '.' + ide_compat_version_release
|
||||||
|
|
||||||
|
@@ -27,8 +27,11 @@ qt_add_qml_module(%{TargetName}
|
|||||||
QML_FILES Main.qml
|
QML_FILES Main.qml
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
set_target_properties(%{TargetName} PROPERTIES
|
set_target_properties(%{TargetName} PROPERTIES
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.%{TargetName}
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
|
@@ -17,8 +17,11 @@ qt_add_qml_module(%{TargetName}
|
|||||||
QML_FILES main.qml %{AdditionalQmlFiles}
|
QML_FILES main.qml %{AdditionalQmlFiles}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
set_target_properties(%{TargetName} PROPERTIES
|
set_target_properties(%{TargetName} PROPERTIES
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.%{TargetName}
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
|
@@ -61,8 +61,14 @@ endif()
|
|||||||
target_link_libraries(%{ProjectName}
|
target_link_libraries(%{ProjectName}
|
||||||
PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)
|
PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
|
if(${QT_VERSION} VERSION_LESS 6.1.0)
|
||||||
|
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.%{ProjectName})
|
||||||
|
endif()
|
||||||
set_target_properties(%{ProjectName} PROPERTIES
|
set_target_properties(%{ProjectName} PROPERTIES
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
${BUNDLE_ID_OPTION}
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
|
@@ -64,8 +64,14 @@ endif()
|
|||||||
|
|
||||||
target_link_libraries(%{ProjectName} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
target_link_libraries(%{ProjectName} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
|
||||||
|
|
||||||
|
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
|
||||||
|
# If you are developing for iOS or macOS you should consider setting an
|
||||||
|
# explicit, fixed bundle identifier manually though.
|
||||||
|
if(${QT_VERSION} VERSION_LESS 6.1.0)
|
||||||
|
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.%{ProjectName})
|
||||||
|
endif()
|
||||||
set_target_properties(%{ProjectName} PROPERTIES
|
set_target_properties(%{ProjectName} PROPERTIES
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
${BUNDLE_ID_OPTION}
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1614,7 +1614,7 @@ void TaskNode::invokeEndHandler(bool success)
|
|||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
The task tree above has a top level element of the Group type that contains
|
The task tree above has a top level element of the Group type that contains
|
||||||
tasks of the type ProcessTask, FileTransferTask, and ConcurrentCallTask<int>.
|
tasks of the ProcessTask, FileTransferTask, and ConcurrentCallTask<int> type.
|
||||||
After taskTree->start() is called, the tasks are run in a chain, starting
|
After taskTree->start() is called, the tasks are run in a chain, starting
|
||||||
with ProcessTask. When the ProcessTask finishes successfully, the ConcurrentCallTask<int>
|
with ProcessTask. When the ProcessTask finishes successfully, the ConcurrentCallTask<int>
|
||||||
task is started. Finally, when the asynchronous task finishes successfully, the
|
task is started. Finally, when the asynchronous task finishes successfully, the
|
||||||
@@ -1765,7 +1765,7 @@ void TaskNode::invokeEndHandler(bool success)
|
|||||||
\section2 Task's Start Handler
|
\section2 Task's Start Handler
|
||||||
|
|
||||||
When a corresponding task class object is created and before it's started,
|
When a corresponding task class object is created and before it's started,
|
||||||
the task tree invokes a mandatory user-provided setup handler. The setup
|
the task tree invokes an optionally user-provided setup handler. The setup
|
||||||
handler should always take a \e reference to the associated task class object:
|
handler should always take a \e reference to the associated task class object:
|
||||||
|
|
||||||
\code
|
\code
|
||||||
@@ -2150,7 +2150,7 @@ void TaskNode::invokeEndHandler(bool success)
|
|||||||
|
|
||||||
\section1 Task Adapters
|
\section1 Task Adapters
|
||||||
|
|
||||||
To extend a TaskTree with new a task type, implement a simple adapter class
|
To extend a TaskTree with a new task type, implement a simple adapter class
|
||||||
derived from the TaskAdapter class template. The following class is an
|
derived from the TaskAdapter class template. The following class is an
|
||||||
adapter for a single shot timer, which may be considered as a new
|
adapter for a single shot timer, which may be considered as a new
|
||||||
asynchronous task:
|
asynchronous task:
|
||||||
@@ -2164,10 +2164,11 @@ void TaskNode::invokeEndHandler(bool success)
|
|||||||
task()->setInterval(1000);
|
task()->setInterval(1000);
|
||||||
connect(task(), &QTimer::timeout, this, [this] { emit done(true); });
|
connect(task(), &QTimer::timeout, this, [this] { emit done(true); });
|
||||||
}
|
}
|
||||||
|
private:
|
||||||
void start() final { task()->start(); }
|
void start() final { task()->start(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
QTC_DECLARE_CUSTOM_TASK(TimeoutTask, TimeoutTaskAdapter);
|
TASKING_DECLARE_TASK(TimeoutTask, TimeoutTaskAdapter);
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
You must derive the custom adapter from the TaskAdapter class template
|
You must derive the custom adapter from the TaskAdapter class template
|
||||||
@@ -2178,12 +2179,12 @@ void TaskNode::invokeEndHandler(bool success)
|
|||||||
accessible through the TaskAdapter::task() method. The constructor
|
accessible through the TaskAdapter::task() method. The constructor
|
||||||
of TimeoutTaskAdapter initially configures the QTimer object and connects
|
of TimeoutTaskAdapter initially configures the QTimer object and connects
|
||||||
to the QTimer::timeout signal. When the signal is triggered, TimeoutTaskAdapter
|
to the QTimer::timeout signal. When the signal is triggered, TimeoutTaskAdapter
|
||||||
emits the done(true) signal to inform the task tree that the task finished
|
emits the \c done(true) signal to inform the task tree that the task finished
|
||||||
successfully. If it emits done(false), the task finished with an error.
|
successfully. If it emits \c done(false), the task finished with an error.
|
||||||
The TaskAdapter::start() method starts the timer.
|
The TaskAdapter::start() method starts the timer.
|
||||||
|
|
||||||
To make QTimer accessible inside TaskTree under the \e TimeoutTask name,
|
To make QTimer accessible inside TaskTree under the \e TimeoutTask name,
|
||||||
register it with QTC_DECLARE_CUSTOM_TASK(TimeoutTask, TimeoutTaskAdapter).
|
register it with TASKING_DECLARE_TASK(TimeoutTask, TimeoutTaskAdapter).
|
||||||
TimeoutTask becomes a new task type inside Tasking namespace, using TimeoutTaskAdapter.
|
TimeoutTask becomes a new task type inside Tasking namespace, using TimeoutTaskAdapter.
|
||||||
|
|
||||||
The new task type is now registered, and you can use it in TaskTree:
|
The new task type is now registered, and you can use it in TaskTree:
|
||||||
|
@@ -218,14 +218,6 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
|
|||||||
template<class OutputContainer, class InputContainer1, class InputContainer2, class Merge>
|
template<class OutputContainer, class InputContainer1, class InputContainer2, class Merge>
|
||||||
OutputContainer setUnionMerge(InputContainer1 &&input1, InputContainer2 &&input2, Merge merge);
|
OutputContainer setUnionMerge(InputContainer1 &&input1, InputContainer2 &&input2, Merge merge);
|
||||||
|
|
||||||
/////////////////////////
|
|
||||||
// usize / ssize
|
|
||||||
/////////////////////////
|
|
||||||
template<typename Container>
|
|
||||||
std::make_unsigned_t<typename Container::size_type> usize(Container container);
|
|
||||||
template<typename Container>
|
|
||||||
std::make_signed_t<typename Container::size_type> ssize(Container container);
|
|
||||||
|
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
// setUnion
|
// setUnion
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
@@ -1340,15 +1332,15 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
std::make_unsigned_t<typename Container::size_type> usize(Container container)
|
auto usize(const Container &container)
|
||||||
{
|
{
|
||||||
return static_cast<std::make_unsigned_t<typename Container::size_type>>(container.size());
|
return static_cast<std::make_unsigned_t<decltype(std::size(container))>>(std::size(container));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
std::make_signed_t<typename Container::size_type> ssize(Container container)
|
auto ssize(const Container &container)
|
||||||
{
|
{
|
||||||
return static_cast<std::make_signed_t<typename Container::size_type>>(container.size());
|
return static_cast<std::make_signed_t<decltype(std::size(container))>>(std::size(container));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Compare>
|
template<typename Compare>
|
||||||
|
@@ -1611,7 +1611,7 @@ CheckableDecider BoolAspect::askAgainCheckableDecider()
|
|||||||
{
|
{
|
||||||
return CheckableDecider(
|
return CheckableDecider(
|
||||||
[this] { return value(); },
|
[this] { return value(); },
|
||||||
[this] { setValue(true); }
|
[this] { setValue(false); }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,12 +21,11 @@ ProcessStubCreator::ProcessStubCreator(TerminalInterface *interface)
|
|||||||
: m_interface(interface)
|
: m_interface(interface)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
static const QLatin1String TerminalAppScript{R"(
|
static const QLatin1String TerminalAppScriptAttached{R"(
|
||||||
tell application "Terminal"
|
tell application "Terminal"
|
||||||
activate
|
activate
|
||||||
set newTab to do script "echo Preparing terminal..."
|
set newTab to do script "%1 && exit"
|
||||||
set win to (the id of window 1 where its tab 1 = newTab) as text
|
set win to (the id of window 1 where its tab 1 = newTab) as text
|
||||||
do script "%1 && exit" in newTab
|
|
||||||
repeat until ((count of processes of newTab) = 0)
|
repeat until ((count of processes of newTab) = 0)
|
||||||
delay 0.1
|
delay 0.1
|
||||||
end repeat
|
end repeat
|
||||||
@@ -34,14 +33,27 @@ static const QLatin1String TerminalAppScript{R"(
|
|||||||
end tell
|
end tell
|
||||||
)"};
|
)"};
|
||||||
|
|
||||||
|
static const QLatin1String TerminalAppScriptDetached{R"(
|
||||||
|
tell application "Terminal"
|
||||||
|
activate
|
||||||
|
do script "%1 && exit"
|
||||||
|
end tell
|
||||||
|
)"};
|
||||||
|
|
||||||
|
struct AppScript
|
||||||
|
{
|
||||||
|
QString attached;
|
||||||
|
QString detached;
|
||||||
|
};
|
||||||
|
|
||||||
expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData &setupData)
|
expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData &setupData)
|
||||||
{
|
{
|
||||||
const TerminalCommand terminal = TerminalCommand::terminalEmulator();
|
const TerminalCommand terminal = TerminalCommand::terminalEmulator();
|
||||||
bool detached = setupData.m_terminalMode == TerminalMode::Detached;
|
bool detached = setupData.m_terminalMode == TerminalMode::Detached;
|
||||||
|
|
||||||
if (HostOsInfo::isMacHost()) {
|
if (HostOsInfo::isMacHost()) {
|
||||||
static const QMap<QString, QString> terminalMap = {
|
static const QMap<QString, AppScript> terminalMap = {
|
||||||
{"Terminal.app", TerminalAppScript},
|
{"Terminal.app", {TerminalAppScriptAttached, TerminalAppScriptDetached}},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (terminalMap.contains(terminal.command.toString())) {
|
if (terminalMap.contains(terminal.command.toString())) {
|
||||||
@@ -49,29 +61,36 @@ expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData
|
|||||||
= Utils::transform(setupData.m_environment.toStringList(), [](const QString &env) {
|
= Utils::transform(setupData.m_environment.toStringList(), [](const QString &env) {
|
||||||
return CommandLine{"export", {env}}.toUserOutput();
|
return CommandLine{"export", {env}}.toUserOutput();
|
||||||
}).join('\n');
|
}).join('\n');
|
||||||
const QString shScript = QString("cd '%1'\n%2\nclear\n'%3' %4\n")
|
|
||||||
|
Process *process = new Process(detached ? nullptr : this);
|
||||||
|
if (detached) {
|
||||||
|
QObject::connect(process, &Process::done, process, &Process::deleteLater);
|
||||||
|
}
|
||||||
|
|
||||||
|
QTemporaryFile shFile;
|
||||||
|
shFile.setAutoRemove(false);
|
||||||
|
QTC_ASSERT(shFile.open(),
|
||||||
|
return make_unexpected(Tr::tr("Failed to open temporary script file.")));
|
||||||
|
|
||||||
|
const QString shScript = QString("cd '%1'\n%2\nclear\n'%3' %4\nrm '%5'\n")
|
||||||
.arg(setupData.m_workingDirectory.nativePath())
|
.arg(setupData.m_workingDirectory.nativePath())
|
||||||
.arg(env)
|
.arg(env)
|
||||||
.arg(setupData.m_commandLine.executable().nativePath())
|
.arg(setupData.m_commandLine.executable().nativePath())
|
||||||
.arg(setupData.m_commandLine.arguments());
|
.arg(setupData.m_commandLine.arguments())
|
||||||
|
.arg(shFile.fileName());
|
||||||
|
|
||||||
Process *process = new Process(detached ? nullptr : this);
|
shFile.write(shScript.toUtf8());
|
||||||
if (detached)
|
shFile.close();
|
||||||
QObject::connect(process, &Process::done, process, &Process::deleteLater);
|
|
||||||
|
|
||||||
QTemporaryFile *shFile = new QTemporaryFile(process);
|
FilePath::fromUserInput(shFile.fileName())
|
||||||
QTC_ASSERT(shFile->open(),
|
|
||||||
return make_unexpected(Tr::tr("Failed to open temporary script file.")));
|
|
||||||
shFile->write(shScript.toUtf8());
|
|
||||||
shFile->close();
|
|
||||||
|
|
||||||
FilePath::fromUserInput(shFile->fileName())
|
|
||||||
.setPermissions(QFile::ExeUser | QFile::ExeGroup | QFile::ExeOther | QFile::ReadUser
|
.setPermissions(QFile::ExeUser | QFile::ExeGroup | QFile::ExeOther | QFile::ReadUser
|
||||||
| QFile::ReadGroup | QFile::ReadOther | QFile::WriteUser
|
| QFile::ReadGroup | QFile::ReadOther | QFile::WriteUser
|
||||||
| QFile::WriteGroup | QFile::WriteOther);
|
| QFile::WriteGroup | QFile::WriteOther);
|
||||||
|
|
||||||
const QString script
|
const QString script = (detached
|
||||||
= terminalMap.value(terminal.command.toString()).arg(shFile->fileName());
|
? terminalMap.value(terminal.command.toString()).detached
|
||||||
|
: terminalMap.value(terminal.command.toString()).attached)
|
||||||
|
.arg(shFile.fileName());
|
||||||
|
|
||||||
process->setCommand({"osascript", {"-"}});
|
process->setCommand({"osascript", {"-"}});
|
||||||
process->setWriteData(script.toUtf8());
|
process->setWriteData(script.toUtf8());
|
||||||
|
@@ -34,7 +34,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
CppEditor::SymbolFinder m_symbolFinder;
|
CppEditor::SymbolFinder m_symbolFinder;
|
||||||
QString m_className;
|
QString m_className;
|
||||||
const CPlusPlus::Snapshot &m_snapshot;
|
CPlusPlus::Snapshot m_snapshot;
|
||||||
QMap<QString, QtTestCodeLocationAndType> m_privSlots;
|
QMap<QString, QtTestCodeLocationAndType> m_privSlots;
|
||||||
bool m_valid = false;
|
bool m_valid = false;
|
||||||
bool m_inherited = false;
|
bool m_inherited = false;
|
||||||
|
@@ -181,8 +181,9 @@ QList<Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(const Fi
|
|||||||
|
|
||||||
QList<Document::Ptr> foundDocs;
|
QList<Document::Ptr> foundDocs;
|
||||||
|
|
||||||
|
const Snapshot snapshot = QmlJSTools::Internal::ModelManager::instance()->snapshot();
|
||||||
for (const FilePath &path : std::as_const(dirs)) {
|
for (const FilePath &path : std::as_const(dirs)) {
|
||||||
const QList<Document::Ptr> docs = m_qmlSnapshot.documentsInDirectory(path);
|
const QList<Document::Ptr> docs = snapshot.documentsInDirectory(path);
|
||||||
for (const Document::Ptr &doc : docs) {
|
for (const Document::Ptr &doc : docs) {
|
||||||
const FilePath fi = doc->fileName();
|
const FilePath fi = doc->fileName();
|
||||||
//const QFileInfo fi(doc->fileName());
|
//const QFileInfo fi(doc->fileName());
|
||||||
|
@@ -92,7 +92,7 @@ void TestCodeParser::syncTestFrameworks(const QList<ITestParser *> &parsers)
|
|||||||
{
|
{
|
||||||
if (m_parserState != Idle) {
|
if (m_parserState != Idle) {
|
||||||
// there's a running parse
|
// there's a running parse
|
||||||
m_postponedUpdateType = UpdateType::NoUpdate;
|
m_postponedUpdateType = UpdateType::FullUpdate;
|
||||||
m_postponedFiles.clear();
|
m_postponedFiles.clear();
|
||||||
ProgressManager::cancelTasks(Constants::TASK_PARSE);
|
ProgressManager::cancelTasks(Constants::TASK_PARSE);
|
||||||
}
|
}
|
||||||
|
@@ -4,7 +4,9 @@
|
|||||||
#include "testprojectsettings.h"
|
#include "testprojectsettings.h"
|
||||||
|
|
||||||
#include "autotestconstants.h"
|
#include "autotestconstants.h"
|
||||||
|
#include "testcodeparser.h"
|
||||||
#include "testframeworkmanager.h"
|
#include "testframeworkmanager.h"
|
||||||
|
#include "testtreemodel.h"
|
||||||
|
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
#include <projectexplorer/projectmanager.h>
|
#include <projectexplorer/projectmanager.h>
|
||||||
@@ -49,7 +51,9 @@ void TestProjectSettings::activateFramework(const Id &id, bool activate)
|
|||||||
{
|
{
|
||||||
ITestFramework *framework = TestFrameworkManager::frameworkForId(id);
|
ITestFramework *framework = TestFrameworkManager::frameworkForId(id);
|
||||||
m_activeTestFrameworks[framework] = activate;
|
m_activeTestFrameworks[framework] = activate;
|
||||||
if (!activate)
|
if (TestTreeModel::instance()->parser()->isParsing())
|
||||||
|
framework->rootNode()->markForRemoval(!activate);
|
||||||
|
else if (!activate)
|
||||||
framework->resetRootNode();
|
framework->resetRootNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -214,11 +214,15 @@ bool TestTreeItem::modifyLineAndColumn(const TestParseResult *result)
|
|||||||
|
|
||||||
void TestTreeItem::markForRemoval(bool mark)
|
void TestTreeItem::markForRemoval(bool mark)
|
||||||
{
|
{
|
||||||
|
if (type() == Root)
|
||||||
|
m_status = mark ? ForcedRootRemoval : NewlyAdded;
|
||||||
|
else
|
||||||
m_status = mark ? MarkedForRemoval : Cleared;
|
m_status = mark ? MarkedForRemoval : Cleared;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestTreeItem::markForRemovalRecursively(bool mark)
|
void TestTreeItem::markForRemovalRecursively(bool mark)
|
||||||
{
|
{
|
||||||
|
if (type() != Root)
|
||||||
markForRemoval(mark);
|
markForRemoval(mark);
|
||||||
for (int row = 0, count = childCount(); row < count; ++row)
|
for (int row = 0, count = childCount(); row < count; ++row)
|
||||||
childItem(row)->markForRemovalRecursively(mark);
|
childItem(row)->markForRemovalRecursively(mark);
|
||||||
@@ -231,6 +235,7 @@ void TestTreeItem::markForRemovalRecursively(const QSet<FilePath> &filePaths)
|
|||||||
child->markForRemovalRecursively(filePaths);
|
child->markForRemovalRecursively(filePaths);
|
||||||
mark &= child->markedForRemoval();
|
mark &= child->markedForRemoval();
|
||||||
});
|
});
|
||||||
|
if (type() != Root)
|
||||||
markForRemoval(mark);
|
markForRemoval(mark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -167,6 +167,7 @@ private:
|
|||||||
{
|
{
|
||||||
NewlyAdded,
|
NewlyAdded,
|
||||||
MarkedForRemoval,
|
MarkedForRemoval,
|
||||||
|
ForcedRootRemoval, // only valid on rootNode
|
||||||
Cleared
|
Cleared
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -485,6 +485,10 @@ void TestTreeModel::markForRemoval(const QSet<Utils::FilePath> &filePaths)
|
|||||||
void TestTreeModel::sweep()
|
void TestTreeModel::sweep()
|
||||||
{
|
{
|
||||||
for (TestTreeItem *frameworkRoot : frameworkRootNodes()) {
|
for (TestTreeItem *frameworkRoot : frameworkRootNodes()) {
|
||||||
|
if (frameworkRoot->m_status == TestTreeItem::ForcedRootRemoval) {
|
||||||
|
frameworkRoot->framework()->resetRootNode();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
sweepChildren(frameworkRoot);
|
sweepChildren(frameworkRoot);
|
||||||
revalidateCheckState(frameworkRoot);
|
revalidateCheckState(frameworkRoot);
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,7 @@ ClangFormatSettings::ClangFormatSettings()
|
|||||||
|
|
||||||
usePredefinedStyle.setSettingsKey("usePredefinedStyle");
|
usePredefinedStyle.setSettingsKey("usePredefinedStyle");
|
||||||
usePredefinedStyle.setLabelText(Tr::tr("Use predefined style:"));
|
usePredefinedStyle.setLabelText(Tr::tr("Use predefined style:"));
|
||||||
|
usePredefinedStyle.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
|
||||||
usePredefinedStyle.setDefaultValue(true);
|
usePredefinedStyle.setDefaultValue(true);
|
||||||
|
|
||||||
predefinedStyle.setSettingsKey("predefinedStyle");
|
predefinedStyle.setSettingsKey("predefinedStyle");
|
||||||
|
@@ -59,26 +59,6 @@ void ClangEditorDocumentProcessor::semanticRehighlight()
|
|||||||
BuiltinEditorDocumentProcessor::semanticRehighlight();
|
BuiltinEditorDocumentProcessor::semanticRehighlight();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClangEditorDocumentProcessor::hasProjectPart() const
|
|
||||||
{
|
|
||||||
return !m_projectPart.isNull();
|
|
||||||
}
|
|
||||||
|
|
||||||
CppEditor::ProjectPart::ConstPtr ClangEditorDocumentProcessor::projectPart() const
|
|
||||||
{
|
|
||||||
return m_projectPart;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangEditorDocumentProcessor::clearProjectPart()
|
|
||||||
{
|
|
||||||
m_projectPart.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
::Utils::Id ClangEditorDocumentProcessor::diagnosticConfigId() const
|
|
||||||
{
|
|
||||||
return m_diagnosticConfigId;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangEditorDocumentProcessor::setParserConfig(
|
void ClangEditorDocumentProcessor::setParserConfig(
|
||||||
const CppEditor::BaseEditorDocumentParser::Configuration &config)
|
const CppEditor::BaseEditorDocumentParser::Configuration &config)
|
||||||
{
|
{
|
||||||
|
@@ -19,12 +19,6 @@ public:
|
|||||||
|
|
||||||
void semanticRehighlight() override;
|
void semanticRehighlight() override;
|
||||||
|
|
||||||
bool hasProjectPart() const;
|
|
||||||
CppEditor::ProjectPart::ConstPtr projectPart() const;
|
|
||||||
void clearProjectPart();
|
|
||||||
|
|
||||||
::Utils::Id diagnosticConfigId() const;
|
|
||||||
|
|
||||||
void setParserConfig(const CppEditor::BaseEditorDocumentParser::Configuration &config) override;
|
void setParserConfig(const CppEditor::BaseEditorDocumentParser::Configuration &config) override;
|
||||||
CppEditor::BaseEditorDocumentParser::Configuration parserConfig();
|
CppEditor::BaseEditorDocumentParser::Configuration parserConfig();
|
||||||
|
|
||||||
@@ -37,8 +31,6 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
TextEditor::TextDocument &m_document;
|
TextEditor::TextDocument &m_document;
|
||||||
CppEditor::ProjectPart::ConstPtr m_projectPart;
|
|
||||||
::Utils::Id m_diagnosticConfigId;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -232,9 +232,7 @@ ClangModelManagerSupport::ClangModelManagerSupport()
|
|||||||
connect(modelManager, &CppModelManager::abstractEditorSupportRemoved,
|
connect(modelManager, &CppModelManager::abstractEditorSupportRemoved,
|
||||||
this, &ClangModelManagerSupport::onAbstractEditorSupportRemoved);
|
this, &ClangModelManagerSupport::onAbstractEditorSupportRemoved);
|
||||||
connect(modelManager, &CppModelManager::projectPartsUpdated,
|
connect(modelManager, &CppModelManager::projectPartsUpdated,
|
||||||
this, &ClangModelManagerSupport::onProjectPartsUpdated);
|
this, &ClangModelManagerSupport::updateLanguageClient);
|
||||||
connect(modelManager, &CppModelManager::projectPartsRemoved,
|
|
||||||
this, &ClangModelManagerSupport::onProjectPartsRemoved);
|
|
||||||
connect(modelManager, &CppModelManager::fallbackProjectPartUpdated, this, [this] {
|
connect(modelManager, &CppModelManager::fallbackProjectPartUpdated, this, [this] {
|
||||||
if (sessionModeEnabled())
|
if (sessionModeEnabled())
|
||||||
return;
|
return;
|
||||||
@@ -861,37 +859,6 @@ void ClangModelManagerSupport::onTextMarkContextMenuRequested(TextEditor::TextEd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using ClangEditorDocumentProcessors = QVector<ClangEditorDocumentProcessor *>;
|
|
||||||
static ClangEditorDocumentProcessors clangProcessors()
|
|
||||||
{
|
|
||||||
ClangEditorDocumentProcessors result;
|
|
||||||
for (const CppEditorDocumentHandle *editorDocument : cppModelManager()->cppEditorDocuments())
|
|
||||||
result.append(qobject_cast<ClangEditorDocumentProcessor *>(editorDocument->processor()));
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangModelManagerSupport::onProjectPartsUpdated(Project *project)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(project, return);
|
|
||||||
|
|
||||||
updateLanguageClient(project);
|
|
||||||
|
|
||||||
QStringList projectPartIds;
|
|
||||||
const ProjectInfo::ConstPtr projectInfo = cppModelManager()->projectInfo(project);
|
|
||||||
QTC_ASSERT(projectInfo, return);
|
|
||||||
|
|
||||||
for (const ProjectPart::ConstPtr &projectPart : projectInfo->projectParts())
|
|
||||||
projectPartIds.append(projectPart->id());
|
|
||||||
onProjectPartsRemoved(projectPartIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangModelManagerSupport::onProjectPartsRemoved(const QStringList &projectPartIds)
|
|
||||||
{
|
|
||||||
if (!projectPartIds.isEmpty())
|
|
||||||
reinitializeBackendDocuments(projectPartIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangModelManagerSupport::onClangdSettingsChanged()
|
void ClangModelManagerSupport::onClangdSettingsChanged()
|
||||||
{
|
{
|
||||||
const bool sessionMode = sessionModeEnabled();
|
const bool sessionMode = sessionModeEnabled();
|
||||||
@@ -940,21 +907,4 @@ void ClangModelManagerSupport::onClangdSettingsChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static ClangEditorDocumentProcessors
|
|
||||||
clangProcessorsWithProjectParts(const QStringList &projectPartIds)
|
|
||||||
{
|
|
||||||
return ::Utils::filtered(clangProcessors(), [projectPartIds](ClangEditorDocumentProcessor *p) {
|
|
||||||
return p->hasProjectPart() && projectPartIds.contains(p->projectPart()->id());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClangModelManagerSupport::reinitializeBackendDocuments(const QStringList &projectPartIds)
|
|
||||||
{
|
|
||||||
const ClangEditorDocumentProcessors processors = clangProcessorsWithProjectParts(projectPartIds);
|
|
||||||
for (ClangEditorDocumentProcessor *processor : processors) {
|
|
||||||
processor->clearProjectPart();
|
|
||||||
processor->run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // ClangCodeModel::Internal
|
} // ClangCodeModel::Internal
|
||||||
|
@@ -81,12 +81,8 @@ private:
|
|||||||
int lineNumber,
|
int lineNumber,
|
||||||
QMenu *menu);
|
QMenu *menu);
|
||||||
|
|
||||||
void onProjectPartsUpdated(ProjectExplorer::Project *project);
|
|
||||||
void onProjectPartsRemoved(const QStringList &projectPartIds);
|
|
||||||
void onClangdSettingsChanged();
|
void onClangdSettingsChanged();
|
||||||
|
|
||||||
void reinitializeBackendDocuments(const QStringList &projectPartIds);
|
|
||||||
|
|
||||||
void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument);
|
void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument);
|
||||||
void connectToWidgetsMarkContextMenuRequested(QWidget *editorWidget);
|
void connectToWidgetsMarkContextMenuRequested(QWidget *editorWidget);
|
||||||
|
|
||||||
|
@@ -7,7 +7,6 @@
|
|||||||
#include "clangconstants.h"
|
#include "clangconstants.h"
|
||||||
#include "clangdclient.h"
|
#include "clangdclient.h"
|
||||||
#include "clangdiagnostictooltipwidget.h"
|
#include "clangdiagnostictooltipwidget.h"
|
||||||
#include "clangeditordocumentprocessor.h"
|
|
||||||
#include "clangutils.h"
|
#include "clangutils.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
@@ -49,46 +48,15 @@ Project *projectForCurrentEditor()
|
|||||||
if (filePath.isEmpty())
|
if (filePath.isEmpty())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
if (auto processor = ClangEditorDocumentProcessor::get(filePath)) {
|
if (ProjectPart::ConstPtr projectPart = projectPartForFile(filePath))
|
||||||
if (ProjectPart::ConstPtr projectPart = processor->projectPart())
|
|
||||||
return projectForProjectPart(*projectPart);
|
return projectForProjectPart(*projectPart);
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class DiagnosticType { Clang, Tidy, Clazy };
|
|
||||||
DiagnosticType diagnosticType(const ClangDiagnostic &diagnostic)
|
|
||||||
|
|
||||||
{
|
|
||||||
if (!diagnostic.disableOption.isEmpty())
|
|
||||||
return DiagnosticType::Clang;
|
|
||||||
|
|
||||||
const DiagnosticTextInfo textInfo(diagnostic.text);
|
|
||||||
if (DiagnosticTextInfo::isClazyOption(textInfo.option()))
|
|
||||||
return DiagnosticType::Clazy;
|
|
||||||
return DiagnosticType::Tidy;
|
|
||||||
}
|
|
||||||
|
|
||||||
void disableDiagnosticInConfig(ClangDiagnosticConfig &config, const ClangDiagnostic &diagnostic)
|
void disableDiagnosticInConfig(ClangDiagnosticConfig &config, const ClangDiagnostic &diagnostic)
|
||||||
{
|
{
|
||||||
switch (diagnosticType(diagnostic)) {
|
|
||||||
case DiagnosticType::Clang:
|
|
||||||
config.setClangOptions(config.clangOptions() + QStringList(diagnostic.disableOption));
|
config.setClangOptions(config.clangOptions() + QStringList(diagnostic.disableOption));
|
||||||
break;
|
|
||||||
case DiagnosticType::Tidy:
|
|
||||||
config.setChecks(ClangToolType::Tidy, config.checks(ClangToolType::Tidy) + QString(",-")
|
|
||||||
+ DiagnosticTextInfo(diagnostic.text).option());
|
|
||||||
break;
|
|
||||||
case DiagnosticType::Clazy: {
|
|
||||||
const DiagnosticTextInfo textInfo(diagnostic.text);
|
|
||||||
const QString checkName = DiagnosticTextInfo::clazyCheckName(textInfo.option());
|
|
||||||
QStringList newChecks = config.checks(ClangToolType::Clazy).split(',');
|
|
||||||
newChecks.removeOne(checkName);
|
|
||||||
config.setChecks(ClangToolType::Clazy, newChecks.join(','));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ClangDiagnosticConfig diagnosticConfig()
|
ClangDiagnosticConfig diagnosticConfig()
|
||||||
@@ -210,8 +178,10 @@ ClangDiagnostic convertDiagnostic(const ClangdDiagnostic &src,
|
|||||||
target.severity = convertSeverity(*src.severity());
|
target.severity = convertSeverity(*src.severity());
|
||||||
const Diagnostic::Code code = src.code().value_or(Diagnostic::Code());
|
const Diagnostic::Code code = src.code().value_or(Diagnostic::Code());
|
||||||
const QString * const codeString = std::get_if<QString>(&code);
|
const QString * const codeString = std::get_if<QString>(&code);
|
||||||
if (codeString && codeString->startsWith("-W"))
|
if (codeString && codeString->startsWith("-W")) {
|
||||||
target.enableOption = *codeString;
|
target.enableOption = *codeString;
|
||||||
|
target.disableOption = "-Wno-" + codeString->mid(2);
|
||||||
|
}
|
||||||
for (const CodeAction &codeAction : src.codeActions().value_or(QList<CodeAction>())) {
|
for (const CodeAction &codeAction : src.codeActions().value_or(QList<CodeAction>())) {
|
||||||
const std::optional<WorkspaceEdit> edit = codeAction.edit();
|
const std::optional<WorkspaceEdit> edit = codeAction.edit();
|
||||||
if (!edit)
|
if (!edit)
|
||||||
@@ -304,8 +274,9 @@ ClangdTextMark::ClangdTextMark(TextEditor::TextDocument *doc,
|
|||||||
actions << action;
|
actions << action;
|
||||||
|
|
||||||
// Remove diagnostic warning action
|
// Remove diagnostic warning action
|
||||||
Project *project = projectForCurrentEditor();
|
if (!diag.disableOption.isEmpty()) {
|
||||||
if (project && isDiagnosticConfigChangable(project)) {
|
if (Project * const project = projectForCurrentEditor();
|
||||||
|
project && isDiagnosticConfigChangable(project)) {
|
||||||
action = new QAction();
|
action = new QAction();
|
||||||
action->setIcon(Icons::BROKEN.icon());
|
action->setIcon(Icons::BROKEN.icon());
|
||||||
action->setToolTip(Tr::tr("Disable Diagnostic in Current Project"));
|
action->setToolTip(Tr::tr("Disable Diagnostic in Current Project"));
|
||||||
@@ -314,6 +285,7 @@ ClangdTextMark::ClangdTextMark(TextEditor::TextDocument *doc,
|
|||||||
});
|
});
|
||||||
actions << action;
|
actions << action;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return actions;
|
return actions;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
#include <ios/iosconstants.h>
|
#include <ios/iosconstants.h>
|
||||||
|
|
||||||
|
#include <webassembly/webassemblyconstants.h>
|
||||||
|
|
||||||
#include <coreplugin/find/itemviewfind.h>
|
#include <coreplugin/find/itemviewfind.h>
|
||||||
#include <projectexplorer/buildsteplist.h>
|
#include <projectexplorer/buildsteplist.h>
|
||||||
#include <projectexplorer/devicesupport/idevice.h>
|
#include <projectexplorer/devicesupport/idevice.h>
|
||||||
@@ -185,7 +187,8 @@ static bool supportsStageForInstallation(const Kit *kit)
|
|||||||
QTC_ASSERT(buildDevice, return false);
|
QTC_ASSERT(buildDevice, return false);
|
||||||
return runDevice->id() != buildDevice->id()
|
return runDevice->id() != buildDevice->id()
|
||||||
&& runDevice->type() != Android::Constants::ANDROID_DEVICE_TYPE
|
&& runDevice->type() != Android::Constants::ANDROID_DEVICE_TYPE
|
||||||
&& runDevice->type() != Ios::Constants::IOS_DEVICE_TYPE;
|
&& runDevice->type() != Ios::Constants::IOS_DEVICE_TYPE
|
||||||
|
&& runDevice->type() != WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
|
CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
|
||||||
@@ -242,7 +245,7 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
|
|||||||
env.set("NINJA_STATUS", ninjaProgressString + "%o/sec] ");
|
env.set("NINJA_STATUS", ninjaProgressString + "%o/sec] ");
|
||||||
env.modify(m_userEnvironmentChanges);
|
env.modify(m_userEnvironmentChanges);
|
||||||
|
|
||||||
if (m_useStaging)
|
if (m_useStaging && m_useStaging->value())
|
||||||
env.set("DESTDIR", currentStagingDir());
|
env.set("DESTDIR", currentStagingDir());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -60,10 +60,12 @@ public:
|
|||||||
autoFormatOnlyCurrentProject.setSettingsKey("autoFormatOnlyCurrentProject");
|
autoFormatOnlyCurrentProject.setSettingsKey("autoFormatOnlyCurrentProject");
|
||||||
autoFormatOnlyCurrentProject.setDefaultValue(true);
|
autoFormatOnlyCurrentProject.setDefaultValue(true);
|
||||||
autoFormatOnlyCurrentProject.setLabelText(Tr::tr("Restrict to files contained in the current project"));
|
autoFormatOnlyCurrentProject.setLabelText(Tr::tr("Restrict to files contained in the current project"));
|
||||||
|
autoFormatOnlyCurrentProject.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBox);
|
||||||
|
|
||||||
autoFormatMime.setSettingsKey("autoFormatMime");
|
autoFormatMime.setSettingsKey("autoFormatMime");
|
||||||
autoFormatMime.setDefaultValue("text/x-cmake");
|
autoFormatMime.setDefaultValue("text/x-cmake");
|
||||||
autoFormatMime.setLabelText(Tr::tr("Restrict to MIME types:"));
|
autoFormatMime.setLabelText(Tr::tr("Restrict to MIME types:"));
|
||||||
|
autoFormatMime.setDisplayStyle(StringAspect::LineEditDisplay);
|
||||||
|
|
||||||
setLayouter([this] {
|
setLayouter([this] {
|
||||||
using namespace Layouting;
|
using namespace Layouting;
|
||||||
@@ -73,9 +75,12 @@ public:
|
|||||||
Group {
|
Group {
|
||||||
title(Tr::tr("Automatic Formatting on File Save")),
|
title(Tr::tr("Automatic Formatting on File Save")),
|
||||||
autoFormatOnSave.groupChecker(),
|
autoFormatOnSave.groupChecker(),
|
||||||
Form {
|
// Conceptually, that's a Form, but this would look odd:
|
||||||
autoFormatMime, br,
|
// xxxxxx [____]
|
||||||
Span(2, autoFormatOnlyCurrentProject)
|
// [x] xxxxxxxxxxxxxx
|
||||||
|
Column {
|
||||||
|
Row { autoFormatMime },
|
||||||
|
autoFormatOnlyCurrentProject
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
st
|
st
|
||||||
|
@@ -379,8 +379,10 @@ static QMakeAndCMakePrefixPath qtInfoFromCMakeCache(const CMakeConfig &config,
|
|||||||
args.push_back(qtcQMakeProbeDir.path().path());
|
args.push_back(qtcQMakeProbeDir.path().path());
|
||||||
args.push_back("-B");
|
args.push_back("-B");
|
||||||
args.push_back(qtcQMakeProbeDir.filePath("build").path());
|
args.push_back(qtcQMakeProbeDir.filePath("build").path());
|
||||||
|
if (!cmakeGenerator.isEmpty()) {
|
||||||
args.push_back("-G");
|
args.push_back("-G");
|
||||||
args.push_back(cmakeGenerator);
|
args.push_back(cmakeGenerator);
|
||||||
|
}
|
||||||
if (!cmakeGeneratorPlatform.isEmpty()) {
|
if (!cmakeGeneratorPlatform.isEmpty()) {
|
||||||
args.push_back("-A");
|
args.push_back("-A");
|
||||||
args.push_back(cmakeGeneratorPlatform);
|
args.push_back(cmakeGeneratorPlatform);
|
||||||
@@ -708,8 +710,9 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
data->sysroot = cache.filePathValueOf("CMAKE_SYSROOT");
|
data->sysroot = cache.filePathValueOf("CMAKE_SYSROOT");
|
||||||
|
|
||||||
CMakeConfig config;
|
CMakeConfig config;
|
||||||
if (cache.valueOf("CMAKE_C_COMPILER").isEmpty()
|
const bool noCompilers = cache.valueOf("CMAKE_C_COMPILER").isEmpty()
|
||||||
&& cache.valueOf("CMAKE_CXX_COMPILER").isEmpty()) {
|
&& cache.valueOf("CMAKE_CXX_COMPILER").isEmpty();
|
||||||
|
if (noCompilers || !configurePreset.generator) {
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||||
config = configurationFromPresetProbe(importPath, projectDirectory(), configurePreset);
|
config = configurationFromPresetProbe(importPath, projectDirectory(), configurePreset);
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
@@ -751,6 +754,8 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
// Update QT_QMAKE_EXECUTABLE and CMAKE_C|XX_COMPILER config values
|
// Update QT_QMAKE_EXECUTABLE and CMAKE_C|XX_COMPILER config values
|
||||||
updateConfigWithDirectoryData(config, data);
|
updateConfigWithDirectoryData(config, data);
|
||||||
|
|
||||||
|
data->hasQmlDebugging = CMakeBuildConfiguration::hasQmlDebugging(config);
|
||||||
|
|
||||||
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
|
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
|
||||||
if (buildConfigurationTypes.front().isEmpty()) {
|
if (buildConfigurationTypes.front().isEmpty()) {
|
||||||
buildConfigurationTypes.clear();
|
buildConfigurationTypes.clear();
|
||||||
@@ -771,6 +776,13 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
DirectoryData *newData = new DirectoryData(*data);
|
DirectoryData *newData = new DirectoryData(*data);
|
||||||
newData->cmakeBuildType = buildType;
|
newData->cmakeBuildType = buildType;
|
||||||
|
|
||||||
|
// Handle QML Debugging
|
||||||
|
auto type = CMakeBuildConfigurationFactory::buildTypeFromByteArray(
|
||||||
|
newData->cmakeBuildType);
|
||||||
|
if (type == CMakeBuildConfigurationFactory::BuildTypeDebug
|
||||||
|
|| type == CMakeBuildConfigurationFactory::BuildTypeProfile)
|
||||||
|
newData->hasQmlDebugging = true;
|
||||||
|
|
||||||
result.emplace_back(newData);
|
result.emplace_back(newData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -246,6 +246,8 @@ void CMakeManager::reloadCMakePresets()
|
|||||||
{QMessageBox::Yes, Tr::tr("Reload")},
|
{QMessageBox::Yes, Tr::tr("Reload")},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
settings->writeSettings(Core::ICore::settings());
|
||||||
|
|
||||||
if (clickedButton == QMessageBox::Cancel)
|
if (clickedButton == QMessageBox::Cancel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@@ -296,6 +296,15 @@ bool parseConfigurePresets(const QJsonValue &jsonValue,
|
|||||||
if (strategy == "external")
|
if (strategy == "external")
|
||||||
preset.architecture->strategy
|
preset.architecture->strategy
|
||||||
= PresetsDetails::ValueStrategyPair::Strategy::external;
|
= PresetsDetails::ValueStrategyPair::Strategy::external;
|
||||||
|
} else {
|
||||||
|
preset.architecture->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const QString value = object.value("architecture").toString();
|
||||||
|
if (!value.isEmpty()) {
|
||||||
|
preset.architecture = PresetsDetails::ValueStrategyPair();
|
||||||
|
preset.architecture->value = value;
|
||||||
|
preset.architecture->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,6 +320,15 @@ bool parseConfigurePresets(const QJsonValue &jsonValue,
|
|||||||
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
||||||
if (strategy == "external")
|
if (strategy == "external")
|
||||||
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::external;
|
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::external;
|
||||||
|
} else {
|
||||||
|
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const QString value = object.value("toolset").toString();
|
||||||
|
if (!value.isEmpty()) {
|
||||||
|
preset.toolset = PresetsDetails::ValueStrategyPair();
|
||||||
|
preset.toolset->value = value;
|
||||||
|
preset.toolset->strategy = PresetsDetails::ValueStrategyPair::Strategy::set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -74,7 +74,7 @@ void CopilotPlugin::initialize()
|
|||||||
|
|
||||||
connect(requestAction, &QAction::triggered, this, [this] {
|
connect(requestAction, &QAction::triggered, this, [this] {
|
||||||
if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget()) {
|
if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget()) {
|
||||||
if (m_client->reachable())
|
if (m_client && m_client->reachable())
|
||||||
m_client->requestCompletions(editor);
|
m_client->requestCompletions(editor);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -143,6 +143,7 @@ const char G_HELP[] = "QtCreator.Group.Help";
|
|||||||
// File menu groups
|
// File menu groups
|
||||||
const char G_FILE_NEW[] = "QtCreator.Group.File.New";
|
const char G_FILE_NEW[] = "QtCreator.Group.File.New";
|
||||||
const char G_FILE_OPEN[] = "QtCreator.Group.File.Open";
|
const char G_FILE_OPEN[] = "QtCreator.Group.File.Open";
|
||||||
|
const char G_FILE_SESSION[] = "QtCreator.Group.File.Recent";
|
||||||
const char G_FILE_PROJECT[] = "QtCreator.Group.File.Project";
|
const char G_FILE_PROJECT[] = "QtCreator.Group.File.Project";
|
||||||
const char G_FILE_SAVE[] = "QtCreator.Group.File.Save";
|
const char G_FILE_SAVE[] = "QtCreator.Group.File.Save";
|
||||||
const char G_FILE_EXPORT[] = "QtCreator.Group.File.Export";
|
const char G_FILE_EXPORT[] = "QtCreator.Group.File.Export";
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
A common way to present the search results to the user, is to use the
|
A common way to present the search results to the user, is to use the
|
||||||
shared \uicontrol{Search Results} pane.
|
shared \uicontrol{Search Results} pane.
|
||||||
|
|
||||||
\image qtcreator-searchresults.png
|
\image qtcreator-search-results.webp {Search Results view}
|
||||||
|
|
||||||
If you want to implement a find filter that is doing a file based text
|
If you want to implement a find filter that is doing a file based text
|
||||||
search, you should use \l Core::BaseTextFind, which already implements all
|
search, you should use \l Core::BaseTextFind, which already implements all
|
||||||
|
@@ -319,7 +319,7 @@ using namespace Core::Internal;
|
|||||||
\brief The SearchResultWindow class is the implementation of a commonly
|
\brief The SearchResultWindow class is the implementation of a commonly
|
||||||
shared \uicontrol{Search Results} output pane.
|
shared \uicontrol{Search Results} output pane.
|
||||||
|
|
||||||
\image qtcreator-searchresults.png
|
\image qtcreator-search-results.webp {Search Results view}
|
||||||
|
|
||||||
Whenever you want to show the user a list of search results, or want
|
Whenever you want to show the user a list of search results, or want
|
||||||
to present UI for a global search and replace, use the single instance
|
to present UI for a global search and replace, use the single instance
|
||||||
|
@@ -475,6 +475,7 @@ void MainWindow::registerDefaultContainers()
|
|||||||
filemenu->menu()->setTitle(Tr::tr("&File"));
|
filemenu->menu()->setTitle(Tr::tr("&File"));
|
||||||
filemenu->appendGroup(Constants::G_FILE_NEW);
|
filemenu->appendGroup(Constants::G_FILE_NEW);
|
||||||
filemenu->appendGroup(Constants::G_FILE_OPEN);
|
filemenu->appendGroup(Constants::G_FILE_OPEN);
|
||||||
|
filemenu->appendGroup(Constants::G_FILE_SESSION);
|
||||||
filemenu->appendGroup(Constants::G_FILE_PROJECT);
|
filemenu->appendGroup(Constants::G_FILE_PROJECT);
|
||||||
filemenu->appendGroup(Constants::G_FILE_SAVE);
|
filemenu->appendGroup(Constants::G_FILE_SAVE);
|
||||||
filemenu->appendGroup(Constants::G_FILE_EXPORT);
|
filemenu->appendGroup(Constants::G_FILE_EXPORT);
|
||||||
|
@@ -130,8 +130,8 @@ void ProgressView::mousePressEvent(QMouseEvent *ev)
|
|||||||
static QPoint boundedInParent(QWidget *widget, const QPoint &pos, QWidget *parent)
|
static QPoint boundedInParent(QWidget *widget, const QPoint &pos, QWidget *parent)
|
||||||
{
|
{
|
||||||
QPoint bounded = pos;
|
QPoint bounded = pos;
|
||||||
bounded.setX(qBound(widget->rect().width(), bounded.x(), parent->width()));
|
bounded.setX(std::max(widget->rect().width(), std::min(bounded.x(), parent->width())));
|
||||||
bounded.setY(qBound(widget->rect().height(), bounded.y(), parent->height()));
|
bounded.setY(std::max(widget->rect().height(), std::min(bounded.y(), parent->height())));
|
||||||
return bounded;
|
return bounded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -100,7 +100,7 @@ SessionManager::SessionManager()
|
|||||||
ActionContainer *msession = ActionManager::createMenu(M_SESSION);
|
ActionContainer *msession = ActionManager::createMenu(M_SESSION);
|
||||||
msession->menu()->setTitle(PE::Tr::tr("S&essions"));
|
msession->menu()->setTitle(PE::Tr::tr("S&essions"));
|
||||||
msession->setOnAllDisabledBehavior(ActionContainer::Show);
|
msession->setOnAllDisabledBehavior(ActionContainer::Show);
|
||||||
mfile->addMenu(msession, Core::Constants::G_FILE_OPEN);
|
mfile->addMenu(msession, Core::Constants::G_FILE_SESSION);
|
||||||
sb_d->m_sessionMenu = msession->menu();
|
sb_d->m_sessionMenu = msession->menu();
|
||||||
connect(mfile->menu(), &QMenu::aboutToShow, this, [] { sb_d->updateSessionMenu(); });
|
connect(mfile->menu(), &QMenu::aboutToShow, this, [] { sb_d->updateSessionMenu(); });
|
||||||
|
|
||||||
@@ -609,6 +609,7 @@ bool SessionManager::loadSession(const QString &session, bool initial)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (loadImplicitDefault) {
|
} else if (loadImplicitDefault) {
|
||||||
|
emit SessionManager::instance()->sessionLoaded(DEFAULT_SESSION);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -492,6 +492,7 @@ void ClangdProjectSettings::setDiagnosticConfigId(Utils::Id configId)
|
|||||||
{
|
{
|
||||||
m_customSettings.diagnosticConfigId = configId;
|
m_customSettings.diagnosticConfigId = configId;
|
||||||
saveSettings();
|
saveSettings();
|
||||||
|
emit ClangdSettings::instance().changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClangdProjectSettings::blockIndexing()
|
void ClangdProjectSettings::blockIndexing()
|
||||||
|
@@ -56,7 +56,8 @@ void CppHighlighter::highlightBlock(const QString &text)
|
|||||||
const Tokens tokens = tokenize(text, initialLexerState);
|
const Tokens tokens = tokenize(text, initialLexerState);
|
||||||
lexerState = tokenize.state(); // refresh lexer state
|
lexerState = tokenize.state(); // refresh lexer state
|
||||||
|
|
||||||
initialLexerState &= ~0x80; // discard newline expected bit
|
static const auto lexerStateWithoutNewLineExpectedBit = [](int state) { return state & ~0x80; };
|
||||||
|
initialLexerState = lexerStateWithoutNewLineExpectedBit(initialLexerState);
|
||||||
int foldingIndent = initialBraceDepth;
|
int foldingIndent = initialBraceDepth;
|
||||||
if (TextBlockUserData *userData = TextDocumentLayout::textUserData(currentBlock())) {
|
if (TextBlockUserData *userData = TextDocumentLayout::textUserData(currentBlock())) {
|
||||||
userData->setFoldingIndent(0);
|
userData->setFoldingIndent(0);
|
||||||
@@ -220,7 +221,8 @@ void CppHighlighter::highlightBlock(const QString &text)
|
|||||||
if (text.length() > lastTokenEnd)
|
if (text.length() > lastTokenEnd)
|
||||||
formatSpaces(text, lastTokenEnd, text.length() - lastTokenEnd);
|
formatSpaces(text, lastTokenEnd, text.length() - lastTokenEnd);
|
||||||
|
|
||||||
if (!initialLexerState && lexerState && !tokens.isEmpty()) {
|
if (!initialLexerState && lexerStateWithoutNewLineExpectedBit(lexerState)
|
||||||
|
&& !tokens.isEmpty()) {
|
||||||
const Token &lastToken = tokens.last();
|
const Token &lastToken = tokens.last();
|
||||||
if (lastToken.is(T_COMMENT) || lastToken.is(T_DOXY_COMMENT)) {
|
if (lastToken.is(T_COMMENT) || lastToken.is(T_DOXY_COMMENT)) {
|
||||||
insertParen({Parenthesis::Opened, QLatin1Char('+'), lastToken.utf16charsBegin()});
|
insertParen({Parenthesis::Opened, QLatin1Char('+'), lastToken.utf16charsBegin()});
|
||||||
@@ -636,6 +638,30 @@ void CppHighlighterTest::test()
|
|||||||
QCOMPARE(actualFormat, expectedFormat);
|
QCOMPARE(actualFormat, expectedFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CppHighlighterTest::testParentheses_data()
|
||||||
|
{
|
||||||
|
QTest::addColumn<int>("line");
|
||||||
|
QTest::addColumn<int>("expectedParenCount");
|
||||||
|
|
||||||
|
QTest::newRow("function head") << 41 << 2;
|
||||||
|
QTest::newRow("function opening brace") << 42 << 1;
|
||||||
|
QTest::newRow("loop head") << 43 << 1;
|
||||||
|
QTest::newRow("comment") << 44 << 0;
|
||||||
|
QTest::newRow("loop end") << 45 << 3;
|
||||||
|
QTest::newRow("function closing brace") << 46 << 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CppHighlighterTest::testParentheses()
|
||||||
|
{
|
||||||
|
QFETCH(int, line);
|
||||||
|
QFETCH(int, expectedParenCount);
|
||||||
|
|
||||||
|
QTextBlock block = m_doc.findBlockByNumber(line - 1);
|
||||||
|
QVERIFY(block.isValid());
|
||||||
|
QCOMPARE(TextDocumentLayout::parentheses(block).count(), expectedParenCount);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
#endif // WITH_TESTS
|
#endif // WITH_TESTS
|
||||||
|
|
||||||
|
@@ -52,6 +52,8 @@ public:
|
|||||||
private slots:
|
private slots:
|
||||||
void test_data();
|
void test_data();
|
||||||
void test();
|
void test();
|
||||||
|
void testParentheses_data();
|
||||||
|
void testParentheses();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QTextDocument m_doc;
|
QTextDocument m_doc;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user