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:
Tim Jenssen
2023-07-20 22:18:47 +02:00
133 changed files with 2711 additions and 2322 deletions

1
.gitignore vendored
View File

@@ -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*

View File

@@ -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",

View File

@@ -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

View File

@@ -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.

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -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.
*/ */

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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
*/ */

View File

@@ -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

View File

@@ -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}.

View File

@@ -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}

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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}
*/ */

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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}
*/

View File

@@ -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
*/ */

View File

@@ -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}

View File

@@ -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

View File

@@ -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 )

View File

@@ -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}\}/

View File

@@ -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

View File

@@ -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

View File

@@ -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
*/

View File

@@ -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}
*/ */

View File

@@ -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

View File

@@ -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}).
*/

View File

@@ -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}
*/

View File

@@ -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}
*/

View File

@@ -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,

View File

@@ -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:

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -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
*/

View File

@@ -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

View File

@@ -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.
*/ */

View File

@@ -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}

View File

@@ -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.
*/ */

View File

@@ -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

View File

@@ -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}

View File

@@ -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

View File

@@ -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.

View 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}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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>

View File

@@ -1611,7 +1611,7 @@ CheckableDecider BoolAspect::askAgainCheckableDecider()
{ {
return CheckableDecider( return CheckableDecider(
[this] { return value(); }, [this] { return value(); },
[this] { setValue(true); } [this] { setValue(false); }
); );
} }

View File

@@ -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());

View File

@@ -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;

View File

@@ -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());

View File

@@ -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);
} }

View File

@@ -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();
} }

View File

@@ -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);
} }

View File

@@ -167,6 +167,7 @@ private:
{ {
NewlyAdded, NewlyAdded,
MarkedForRemoval, MarkedForRemoval,
ForcedRootRemoval, // only valid on rootNode
Cleared Cleared
}; };

View File

@@ -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);
} }

View File

@@ -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");

View File

@@ -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)
{ {

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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;
}); });
} }

View File

@@ -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());
}); });

View File

@@ -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

View File

@@ -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);
} }

View File

@@ -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;

View File

@@ -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;
} }
} }

View File

@@ -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);
} }
}); });

View File

@@ -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";

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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()

View File

@@ -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

View File

@@ -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