aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2024-03-06 15:10:15 +0100
committerEike Ziller <eike.ziller@qt.io>2024-03-06 15:10:15 +0100
commit8abc95331f1dddafb07c691857d3519829acb4ef (patch)
tree4b7b3f506917028540aa3df17d27d4534c8857c3
parentdb5ac2dc15f0ac607c03416e538ae2ffc5482467 (diff)
parent7b8f274b9e3956a2e8668f932ee9717f96568678 (diff)
Merge remote-tracking branch 'origin/13.0'
Conflicts: cmake/QtCreatorIDEBranding.cmake qbs/modules/qtc/qtc.qbs src/plugins/cppeditor/cppcodemodelsettings.cpp src/plugins/cppeditor/cppcodemodelsettings.h Change-Id: I54937c39b06897a72a105e4e0a8b5f8a76c38e26
-rw-r--r--.github/workflows/build_cmake.yml6
-rw-r--r--coin/instructions/common_environment.yaml8
-rw-r--r--dist/changelog/changes-13.0.0.md6
-rw-r--r--doc/qtcreator/images/icons/axivion-av.pngbin0 -> 153 bytes
-rw-r--r--doc/qtcreator/images/icons/axivion-cl.pngbin0 -> 315 bytes
-rw-r--r--doc/qtcreator/images/icons/axivion-cy.pngbin0 -> 306 bytes
-rw-r--r--doc/qtcreator/images/icons/axivion-de.pngbin0 -> 377 bytes
-rw-r--r--doc/qtcreator/images/icons/axivion-mv.pngbin0 -> 253 bytes
-rw-r--r--doc/qtcreator/images/icons/axivion-sv.pngbin0 -> 300 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-autotests-project-qt-test.pngbin9867 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.pngbin9287 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-axivion-annotation.webpbin4890 -> 11880 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-axivion-issue-search.webpbin0 -> 13232 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-axivion-view-rule.webpbin2544 -> 4010 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-axivion-view.webpbin4270 -> 4184 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-build-environment.pngbin34736 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-build-environment.webpbin0 -> 15496 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-clazy.pngbin22558 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-clazy.webpbin0 -> 14428 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-edit-cmake-configuration.webpbin0 -> 4844 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-edit-dashboard-configuration.webpbin3790 -> 3772 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webpbin3662 -> 70100 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-file-test-case.webpbin0 -> 6308 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-project-boost-test.webpbin0 -> 6572 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-project-catch2-test.webpbin0 -> 6958 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-project-google-test.webpbin0 -> 6694 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-project-qt-test.webpbin0 -> 5602 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-new-project-qtquick-test.webpbin0 -> 5368 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-axivion.webpbin2470 -> 2156 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-cmake-general.webpbin3406 -> 3816 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-testing-qttest.webpbin4594 -> 4690 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-projects-environment.webpbin4728 -> 6582 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-projects-settings-testing.webpbin0 -> 3032 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-run-environment.pngbin28561 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-run-environment.webpbin0 -> 15872 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-test-results.webpbin0 -> 5048 bytes
-rw-r--r--doc/qtcreator/src/analyze/creator-analyze.qdoc2
-rw-r--r--doc/qtcreator/src/analyze/creator-axivion.qdoc192
-rw-r--r--doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc10
-rw-r--r--doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc26
-rw-r--r--doc/qtcreator/src/cmake/creator-projects-cmake.qdoc4
-rw-r--r--doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc14
-rw-r--r--doc/qtcreator/src/editors/creator-code-refactoring.qdoc111
-rw-r--r--doc/qtcreator/src/editors/creator-coding.qdoc9
-rw-r--r--doc/qtcreator/src/editors/creator-locator.qdoc325
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc6
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc6
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc12
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-how-to-find-symbols.qdoc60
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc6
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-locator.qdoc265
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-text-editing-macros.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-quick-fixes.qdoc23
-rw-r--r--doc/qtcreator/src/editors/creator-search.qdoc4
-rw-r--r--doc/qtcreator/src/howto/creator-external-tools.qdoc2
-rw-r--r--doc/qtcreator/src/howto/creator-how-to-find-preferences.qdoc6
-rw-r--r--doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc906
-rw-r--r--doc/qtcreator/src/howto/creator-only/creator-how-to-silver-searcher.qdoc2
-rw-r--r--doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc110
-rw-r--r--doc/qtcreator/src/howto/creator-sessions.qdoc32
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-overview.qdoc59
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-reference.qdoc2
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-testing.qdoc7
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc8
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc6
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc63
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc1
-rw-r--r--doc/qtcreator/src/projects/creator-projects-running.qdoc2
-rw-r--r--doc/qtcreator/src/qtcreator-toc.qdoc7
-rw-r--r--doc/qtcreator/src/qtcreator.qdoc8
-rw-r--r--doc/qtcreator/src/user-interface/creator-file-system-view.qdoc2
-rw-r--r--doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc8
-rw-r--r--doc/qtcreator/src/user-interface/creator-projects-view.qdoc2
-rw-r--r--doc/qtcreator/src/user-interface/creator-reference-output-views.qdoc6
-rw-r--r--doc/qtcreator/src/user-interface/creator-ui.qdoc2
-rw-r--r--doc/qtdesignstudio/src/developers/studio-jump-to-the-code.qdoc4
-rw-r--r--doc/qtdesignstudio/src/overviews/studio-finding.qdoc6
-rw-r--r--doc/qtdesignstudio/src/qtdesignstudio-faq.qdoc2
-rw-r--r--doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc5
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-text-editor.qdoc25
-rwxr-xr-xscripts/deploy.py6
-rw-r--r--share/qtcreator/translations/qtcreator_de.ts2845
-rw-r--r--src/app/main.cpp3
-rw-r--r--src/libs/languageserverprotocol/callhierarchy.cpp2
-rw-r--r--src/libs/languageserverprotocol/callhierarchy.h4
-rw-r--r--src/libs/languageserverprotocol/jsonkeys.h2
m---------src/libs/qlitehtml0
-rw-r--r--src/libs/solutions/terminal/terminalsurface.cpp3
-rw-r--r--src/libs/solutions/terminal/terminalview.h4
-rw-r--r--src/libs/utils/itemviews.h16
-rw-r--r--src/libs/utils/processhelper.cpp5
-rw-r--r--src/libs/utils/store.cpp16
-rw-r--r--src/libs/utils/store.h25
-rw-r--r--src/plugins/android/androidbuildapkstep.cpp11
-rw-r--r--src/plugins/android/androidrunnerworker.cpp8
-rw-r--r--src/plugins/android/androidsdkmanagerwidget.cpp11
-rw-r--r--src/plugins/android/androidsettingswidget.cpp5
-rw-r--r--src/plugins/axivion/issueheaderview.cpp9
-rw-r--r--src/plugins/clangcodemodel/clangdsemantichighlighting.cpp4
-rw-r--r--src/plugins/clangcodemodel/clangmodelmanagersupport.cpp5
-rw-r--r--src/plugins/clangcodemodel/test/clangdtests.cpp10
-rw-r--r--src/plugins/clangformat/clangformatconfigwidget.cpp6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/projecttreehelper.cpp16
-rw-r--r--src/plugins/cmakeprojectmanager/projecttreehelper.h3
-rw-r--r--src/plugins/compilerexplorer/compilerexplorereditor.cpp28
-rw-r--r--src/plugins/compilerexplorer/compilerexplorersettings.h3
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorsview.cpp9
-rw-r--r--src/plugins/coreplugin/helpmanager.cpp6
-rw-r--r--src/plugins/coreplugin/helpmanager.h1
-rw-r--r--src/plugins/coreplugin/helpmanager_implementation.h1
-rw-r--r--src/plugins/coreplugin/icore.cpp8
-rw-r--r--src/plugins/coreplugin/welcomepagehelper.cpp13
-rw-r--r--src/plugins/coreplugin/welcomepagehelper.h4
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettings.cpp133
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettings.h29
-rw-r--r--src/plugins/cppeditor/cppdoxygen_test.cpp24
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.cpp8
-rw-r--r--src/plugins/cppeditor/cpptoolstestcase.cpp11
-rw-r--r--src/plugins/cppeditor/cpptoolstestcase.h2
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp16
-rw-r--r--src/plugins/debugger/gdb/gdbengine.h1
-rw-r--r--src/plugins/debugger/gdb/gdbsettings.cpp4
-rw-r--r--src/plugins/debugger/registerhandler.cpp3
-rw-r--r--src/plugins/debugger/registerhandler.h2
-rw-r--r--src/plugins/extensionmanager/extensionsbrowser.cpp11
-rw-r--r--src/plugins/help/helpmanager.cpp13
-rw-r--r--src/plugins/help/helpmanager.h1
-rw-r--r--src/plugins/languageclient/client.cpp3
-rw-r--r--src/plugins/mcusupport/dialogs/mcukitcreationdialog.cpp10
-rw-r--r--src/plugins/mcusupport/mcusupportoptions.cpp4
-rw-r--r--src/plugins/mcusupport/mcusupportoptions.h2
-rw-r--r--src/plugins/projectexplorer/addrunconfigdialog.cpp3
-rw-r--r--src/plugins/projectexplorer/projectwelcomepage.cpp6
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp14
-rw-r--r--src/plugins/projectexplorer/targetsetupwidget.cpp8
-rw-r--r--src/plugins/qtsupport/qtversionmanager.cpp51
-rw-r--r--src/plugins/texteditor/TextEditor.json.in12
-rw-r--r--src/plugins/texteditor/texteditor.cpp19
-rw-r--r--src/plugins/welcome/welcomeplugin.cpp33
m---------src/shared/qbs0
-rw-r--r--tests/system/shared/project.py12
-rw-r--r--tests/system/shared/welcome.py39
-rw-r--r--tests/system/suite_WELP/tst_WELP01/test.py55
-rw-r--r--tests/system/suite_WELP/tst_WELP02/test.py7
-rw-r--r--tests/system/suite_WELP/tst_WELP03/test.py3
-rw-r--r--tests/system/suite_WELP/tst_WELP04/test.py3
-rw-r--r--tests/system/suite_general/tst_session_handling/test.py6
151 files changed, 4114 insertions, 1914 deletions
diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml
index 6ac4564da1..794b38c6c1 100644
--- a/.github/workflows/build_cmake.yml
+++ b/.github/workflows/build_cmake.yml
@@ -7,7 +7,7 @@ on:
- 'doc/**'
env:
- QT_VERSION: 6.6.0
+ QT_VERSION: 6.6.2
MACOS_DEPLOYMENT_TARGET: 11.0
CLANG_VERSION: 17.0.1
ELFUTILS_VERSION: 0.175
@@ -202,12 +202,12 @@ jobs:
set(url_os "linux_x64")
set(qt_package_arch_suffix "gcc_64")
set(qt_dir_prefix "${qt_version}/gcc_64")
- set(qt_package_suffix "-Linux-RHEL_8_6-GCC-Linux-RHEL_8_6-X86_64")
+ set(qt_package_suffix "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64")
elseif ("${{ runner.os }}" STREQUAL "macOS")
set(url_os "mac_x64")
set(qt_package_arch_suffix "clang_64")
set(qt_dir_prefix "${qt_version}/macos")
- set(qt_package_suffix "-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64")
+ set(qt_package_suffix "-MacOS-MacOS_13-Clang-MacOS-MacOS_13-X86_64-ARM64")
endif()
set(qt_base_url "https://\${qt_mirror}/online/qtsdkrepository/${url_os}/desktop/qt6_${qt_version_dotless}")
diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml
index 6d4fe73802..e2d1190118 100644
--- a/coin/instructions/common_environment.yaml
+++ b/coin/instructions/common_environment.yaml
@@ -10,13 +10,13 @@ instructions:
variableValue: https://ci-files02-hki.ci.qt.io/packages/jenkins/qtcreator_libclang/libclang-release_17.0.1-based
- type: EnvironmentVariable
variableName: QTC_QT_BASE_URL
- variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/archive/qt/6.6/6.6.0-released/Qt"
+ variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/archive/qt/6.6/6.6.2-released/Qt"
- type: EnvironmentVariable
variableName: QTC_QT_MODULES
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
- type: EnvironmentVariable
variableName: MACOSX_DEPLOYMENT_TARGET
- variableValue: 10.15
+ variableValue: 11.0
- type: EnvironmentVariable
variableName: SDKTOOL_MACOSX_DEPLOYMENT_TARGET
variableValue: 10.14
@@ -39,7 +39,7 @@ instructions:
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
- variableValue: "-Linux-RHEL_8_6-GCC-Linux-RHEL_8_6-X86_64.7z"
+ variableValue: "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z"
- type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".tar.xz"
@@ -51,7 +51,7 @@ instructions:
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
- variableValue: "-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z"
+ variableValue: "-MacOS-MacOS_13-Clang-MacOS-MacOS_13-X86_64-ARM64.7z"
- type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".tar.xz"
diff --git a/dist/changelog/changes-13.0.0.md b/dist/changelog/changes-13.0.0.md
index 6ca281668f..163b25914c 100644
--- a/dist/changelog/changes-13.0.0.md
+++ b/dist/changelog/changes-13.0.0.md
@@ -41,6 +41,10 @@ General
([QTCREATORBUG-29886](https://bugreports.qt.io/browse/QTCREATORBUG-29886))
* Fixed issues with the window actions
([QTCREATORBUG-30381](https://bugreports.qt.io/browse/QTCREATORBUG-30381))
+* Known Issues
+ * Installers provided by The Qt Company mostly display English text, not
+ the system's language
+ ([QTIFW-3310](https://bugreports.qt.io/browse/QTIFW-3310))
Editing
-------
@@ -206,7 +210,7 @@ Analyzer
### Clang
-* Added `Edit Checks as Strings` for Clazy
+* Added `Edit Checks as String` for Clazy
([QTCREATORBUG-24846](https://bugreports.qt.io/browse/QTCREATORBUG-24846))
### Axivion
diff --git a/doc/qtcreator/images/icons/axivion-av.png b/doc/qtcreator/images/icons/axivion-av.png
new file mode 100644
index 0000000000..54dcd301ea
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-av.png
Binary files differ
diff --git a/doc/qtcreator/images/icons/axivion-cl.png b/doc/qtcreator/images/icons/axivion-cl.png
new file mode 100644
index 0000000000..0e2de82f18
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-cl.png
Binary files differ
diff --git a/doc/qtcreator/images/icons/axivion-cy.png b/doc/qtcreator/images/icons/axivion-cy.png
new file mode 100644
index 0000000000..11bddb048e
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-cy.png
Binary files differ
diff --git a/doc/qtcreator/images/icons/axivion-de.png b/doc/qtcreator/images/icons/axivion-de.png
new file mode 100644
index 0000000000..9c00fd42b4
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-de.png
Binary files differ
diff --git a/doc/qtcreator/images/icons/axivion-mv.png b/doc/qtcreator/images/icons/axivion-mv.png
new file mode 100644
index 0000000000..c34272c414
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-mv.png
Binary files differ
diff --git a/doc/qtcreator/images/icons/axivion-sv.png b/doc/qtcreator/images/icons/axivion-sv.png
new file mode 100644
index 0000000000..e8e0eb70ef
--- /dev/null
+++ b/doc/qtcreator/images/icons/axivion-sv.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-autotests-project-qt-test.png b/doc/qtcreator/images/qtcreator-autotests-project-qt-test.png
deleted file mode 100644
index aa5bee758c..0000000000
--- a/doc/qtcreator/images/qtcreator-autotests-project-qt-test.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png b/doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png
deleted file mode 100644
index 24d61b245a..0000000000
--- a/doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-annotation.webp b/doc/qtcreator/images/qtcreator-axivion-annotation.webp
index 5879a1c19f..9cfd1407e3 100644
--- a/doc/qtcreator/images/qtcreator-axivion-annotation.webp
+++ b/doc/qtcreator/images/qtcreator-axivion-annotation.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-issue-search.webp b/doc/qtcreator/images/qtcreator-axivion-issue-search.webp
new file mode 100644
index 0000000000..b7f13e5035
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-axivion-issue-search.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-view-rule.webp b/doc/qtcreator/images/qtcreator-axivion-view-rule.webp
index 30a5427885..9bbca00d9e 100644
--- a/doc/qtcreator/images/qtcreator-axivion-view-rule.webp
+++ b/doc/qtcreator/images/qtcreator-axivion-view-rule.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-view.webp b/doc/qtcreator/images/qtcreator-axivion-view.webp
index c019284503..0d1614b4eb 100644
--- a/doc/qtcreator/images/qtcreator-axivion-view.webp
+++ b/doc/qtcreator/images/qtcreator-axivion-view.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-build-environment.png b/doc/qtcreator/images/qtcreator-build-environment.png
deleted file mode 100644
index 9c1dc18281..0000000000
--- a/doc/qtcreator/images/qtcreator-build-environment.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-build-environment.webp b/doc/qtcreator/images/qtcreator-build-environment.webp
new file mode 100644
index 0000000000..48bf4753d2
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-build-environment.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-clazy.png b/doc/qtcreator/images/qtcreator-clazy.png
deleted file mode 100644
index 15dfb0aeb6..0000000000
--- a/doc/qtcreator/images/qtcreator-clazy.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-clazy.webp b/doc/qtcreator/images/qtcreator-clazy.webp
new file mode 100644
index 0000000000..1a7243b781
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-clazy.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-edit-cmake-configuration.webp b/doc/qtcreator/images/qtcreator-edit-cmake-configuration.webp
new file mode 100644
index 0000000000..d023c59deb
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-edit-cmake-configuration.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-edit-dashboard-configuration.webp b/doc/qtcreator/images/qtcreator-edit-dashboard-configuration.webp
index 3f76b4427a..43d997ec42 100644
--- a/doc/qtcreator/images/qtcreator-edit-dashboard-configuration.webp
+++ b/doc/qtcreator/images/qtcreator-edit-dashboard-configuration.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp b/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp
index 574b2a7547..9801512332 100644
--- a/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp
+++ b/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-file-test-case.webp b/doc/qtcreator/images/qtcreator-new-file-test-case.webp
new file mode 100644
index 0000000000..157396ce8f
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-file-test-case.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-boost-test.webp b/doc/qtcreator/images/qtcreator-new-project-boost-test.webp
new file mode 100644
index 0000000000..4fb27029e4
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-project-boost-test.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-catch2-test.webp b/doc/qtcreator/images/qtcreator-new-project-catch2-test.webp
new file mode 100644
index 0000000000..040f2a586b
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-project-catch2-test.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-google-test.webp b/doc/qtcreator/images/qtcreator-new-project-google-test.webp
new file mode 100644
index 0000000000..eca2110f03
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-project-google-test.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-qt-test.webp b/doc/qtcreator/images/qtcreator-new-project-qt-test.webp
new file mode 100644
index 0000000000..1838a4c1cf
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-project-qt-test.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp b/doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp
new file mode 100644
index 0000000000..82124b958d
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion.webp b/doc/qtcreator/images/qtcreator-preferences-axivion.webp
index f884259a54..a6b69dd1ff 100644
--- a/doc/qtcreator/images/qtcreator-preferences-axivion.webp
+++ b/doc/qtcreator/images/qtcreator-preferences-axivion.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp b/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp
index e6b7de61f3..fb3b61eff0 100644
--- a/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp
+++ b/doc/qtcreator/images/qtcreator-preferences-cmake-general.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp b/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp
index f6df07907e..b4cb5a5db1 100644
--- a/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp
+++ b/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-projects-environment.webp b/doc/qtcreator/images/qtcreator-projects-environment.webp
index 36011d2226..eeaed5eaa0 100644
--- a/doc/qtcreator/images/qtcreator-projects-environment.webp
+++ b/doc/qtcreator/images/qtcreator-projects-environment.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-projects-settings-testing.webp b/doc/qtcreator/images/qtcreator-projects-settings-testing.webp
new file mode 100644
index 0000000000..6f8fe53a22
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-projects-settings-testing.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-run-environment.png b/doc/qtcreator/images/qtcreator-run-environment.png
deleted file mode 100644
index 515ec87053..0000000000
--- a/doc/qtcreator/images/qtcreator-run-environment.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-run-environment.webp b/doc/qtcreator/images/qtcreator-run-environment.webp
new file mode 100644
index 0000000000..3a0313f994
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-run-environment.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-test-results.webp b/doc/qtcreator/images/qtcreator-test-results.webp
new file mode 100644
index 0000000000..409c897096
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-test-results.webp
Binary files differ
diff --git a/doc/qtcreator/src/analyze/creator-analyze.qdoc b/doc/qtcreator/src/analyze/creator-analyze.qdoc
index 7438249701..a29ab10015 100644
--- a/doc/qtcreator/src/analyze/creator-analyze.qdoc
+++ b/doc/qtcreator/src/analyze/creator-analyze.qdoc
@@ -44,7 +44,7 @@
example, and use the results to make the tests more efficient and
complete.
- \li \l{Static Code Analysis}{Axivion}
+ \li \l{Prevent code erosion}{Axivion}
Do static code analysis and architecture analysis to detect and
eliminate unnecessary complexity of code.
diff --git a/doc/qtcreator/src/analyze/creator-axivion.qdoc b/doc/qtcreator/src/analyze/creator-axivion.qdoc
index f188c84151..b45d1f5fb1 100644
--- a/doc/qtcreator/src/analyze/creator-axivion.qdoc
+++ b/doc/qtcreator/src/analyze/creator-axivion.qdoc
@@ -1,16 +1,17 @@
-// Copyright (C) 2023 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
- \previouspage creator-coco.html
\page creator-axivion.html
- \nextpage creator-valgrind-overview.html
+ \previouspage creator-how-tos.html
- \title Static Code Analysis
+ \ingroup creator-how-to-analyze
+
+ \title Prevent code erosion
\l{https://www.axivion.com/en/products/axivion-suite/}{Axivion Suite} is
- a tool suite for protecting software from erosion. Static code analysis,
- architecture analysis, and code-smells-detection enable you to:
+ a tool suite for protecting software from erosion. With static code analysis,
+ architecture analysis, and code-smells-detection, you can:
\list
\li Check the source code for potential runtime errors.
@@ -22,50 +23,164 @@
\li Detect unreachable code.
\endlist
- The experimental Axivion plugin integrates the Axivion dashboard server into
- \QC.
+ Connect to an Axivion dashboard server from \QC to view results of code
+ analysis.
\note Enable the Axivion plugin to use it.
To use the plugin, you must set up a project in the Axivion dashboard
- server and link to it from \QC. You can then see style violations in the
- \uicontrol Edit mode and descriptions and issue counts in the
- \uicontrol Axivion view.
+ server and link to it from \QC. You can then see found issues in the
+ \uicontrol Edit mode, issues in the \uicontrol Axivion dashboard, and
+ issue details in the \uicontrol Axivion sidebar view.
- The editor shows style violations as inline annotations. Hover the mouse over
+ The editor shows found issues as inline annotations. Hover the mouse over
an annotation to bring up a tool tip with a short description of the issue.
\image qtcreator-axivion-annotation.webp {Annotation popup}
- Select the \inlineimage icons/info.png
- button to view detailed information about the issue in the \uicontrol Axivion
- view.
+ Select \inlineimage icons/info.png to view detailed information about the
+ issue in the \uicontrol Axivion sidebar view.
+
+ \image qtcreator-axivion-view-rule.webp {Axivion sidebar view}
- \image qtcreator-axivion-view-rule.webp {Axivion view}
+ \section1 View issue counts
To view the issue counts, select \inlineimage icons/home.png
- (\uicontrol {Show Dashboard}).
+ (\uicontrol {Show Dashboard}) in the \uicontrol Axivion dashboard.
+
+ \image qtcreator-axivion-view.webp {Axivion dashboard}
+
+ The \uicontrol Axivion dashboard lists the numbers of the following types of
+ issues that Axivion found in the linked project:
+
+ \table
+ \header
+ \li Icon
+ \li Type
+ \li Description
+ \row
+ \li \inlineimage icons/axivion-av.png
+ \li \uicontrol AV
+ \li Architecture violations, such as hidden dependencies.
+ \row
+ \li \inlineimage icons/axivion-cl.png
+ \li \uicontrol CL
+ \li Clones, such as duplicates and similar pieces of code.
+ \row
+ \li \inlineimage icons/axivion-cy.png
+ \li \uicontrol CY
+ \li Cyclic dependencies, such as call, component, and include cycles.
+ \row
+ \li \inlineimage icons/axivion-de.png
+ \li \uicontrol DE
+ \li Dead entities are callable entities in the source code that cannot
+ be reached from the entry points of the system under analysis.
+ \row
+ \li \inlineimage icons/axivion-mv.png
+ \li \uicontrol MV
+ \li Violations of metrics based on lines and tokens,
+ nesting, cyclomatic complexity, control flow, and so on.
+ \row
+ \li \inlineimage icons/axivion-sv.png
+ \li \uicontrol SV
+ \li Style violations, such as deviations from the naming
+ or coding conventions.
+ \endtable
+
+ To clear the view, select \inlineimage icons/clean_pane_small.png
+ (\uicontrol Clear).
+
+ To view issues, select \inlineimage icons/zoom.png
+ (\uicontrol {Search for Issues}).
+
+ \section1 Filter issues
+
+ \image qtcreator-axivion-issue-search.webp {Issues in Axivion view}
+
+ To filter issues, select:
+
+ \list
+ \li The icon of an issue type.
+ \li Two analyzed versions to compare. Select \uicontrol EMPTY to see
+ issues from the version you select in the right-side version box.
+ \li \inlineimage icons/arrowup.png to see only added issues.
+ \li \inlineimage icons/arrowdown.png to see only removed issues.
+ \li The owner of the issue. Select \uicontrol ANYBODY to see all issues,
+ \uicontrol NOBODY to see issues that are not associated with a user,
+ or a user name to see issues owned by a particular user.
+ \li Path patterns to show issues in the files in the directories that
+ match the pattern.
+ \endlist
+
+ The information you see depends on the issue type. Double-click an issue
+ to see more information about it in the \uicontrol Axivion sidebar view.
+
+ \section1 Jump to issues in the editor
+
+ Typically, the details for cycles and clones show several paths. To view the
+ issues in the editor:
+
+ \list
+ \li Click in a location column (that shows a file or line) to open the
+ respective location (if it can be found).
+ \li Click in other columns to open the first link in the issue details.
+ Usually, it leads to the \uicontrol {Left location} or
+ \uicontrol {Source location}.
+ \endlist
+
+ The easiest way to jump to the \uicontrol {Right location} is to
+ select the link in the details or in the \uicontrol {Right Path}
+ or \uicontrol {Target Path} column.
+
+ \sa {Enable and disable plugins}, {Link projects to Axivion dashboards},
+ {Axivion}
+*/
+
+/*!
+ \page creator-preferences-axivion.html
+ \previouspage creator-reference.html
+
+ \ingroup creator-reference-preferences
+
+ \title Axivion
+
+ \brief Create a connection to an Axivion dashboard server.
+
+ Set preferences for the Axivion static code analysis tool in
+ \preferences > \uicontrol Axivion.
- \section1 Connecting to Axivion Dashboard Servers
+ \image qtcreator-preferences-axivion.webp {General tab in Axivion Preferences}
- To connect to Axivion:
+ To connect to an Axivion dashboard server:
\list 1
- \li Select \preferences > \uicontrol Axivion.
- \image qtcreator-preferences-axivion.webp {General tab in Axivion Preferences}
\li Select \uicontrol Edit to create a connection to the Axivion
dashboard server.
\image qtcreator-edit-dashboard-configuration.webp {Edit Dashboard Configuration dialog}
\li In \uicontrol {Dashboard URL}, enter the URL of the server.
- \li In \uicontrol Description, enter a free-text description of the
- server.
- \li In \uicontrol {Access token}, enter the IDE application token that
- you created in the server, in user preferences.
+ \li In \uicontrol Username, enter the username to access the server.
\endlist
- \section1 Linking to Dashboards
+ The first time you access the server, you must enter the password that
+ matches the username. It is stored safely in your keychain that is provided
+ by the OS for later use.
+
+ Select \uicontrol {Highlight marks} to highlight found issues on the
+ scrollbar in the editor.
+
+ \sa {Enable and disable plugins}, {Link projects to Axivion dashboards},
+ {Prevent code erosion}
+*/
+
+/*!
+ \page creator-link-axivion-dashboards.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-projects-configure
- To link a project to a dashboard:
+ \title Link projects to Axivion dashboards
+
+ To link a project to an Axivion dashboard:
\list 1
\li \uicontrol Projects > \uicontrol {Project Settings} >
@@ -78,26 +193,5 @@
To unlink a project, select \uicontrol {Unlink Project}.
- \section1 Viewing Issue Counts
-
- \image qtcreator-axivion-view.webp {Axivion view}
-
- The \uicontrol Axivion view lists the numbers of the following types of
- issues that Axivion found in the linked project:
-
- \list
- \li \uicontrol AV - architecture violations, such as hidden dependencies
- \li \uicontrol CL - duplicates and similar pieces of code
- \li \uicontrol CY - call, component, and include cycles
- \li \uicontrol DE - dead code
- \li \uicontrol MV - violations of metrics based on lines and tokens,
- nesting, cyclomatic complexity, control flow, and so on.
- \li \uicontrol SV - style violations, such as deviations from the naming
- or coding conventions
- \endlist
-
- To clear the view, select \inlineimage icons/clean_pane_small.png
- (\uicontrol Clear).
-
- \sa {Enable and disable plugins}
+ \sa {Enable and disable plugins}, {Prevent code erosion}, {Axivion}
*/
diff --git a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
index c13e626edc..b1b1cd9a8f 100644
--- a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
+++ b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
@@ -247,20 +247,24 @@
\l{https://clang-analyzer.llvm.org/available_checks.html}
{Clang Static Analyzer documentation}.
- \li To edit the selected check as plain text, select
+ \li To edit the selected checks as plain text, select
\uicontrol {Edit Checks as String}.
\li In the \uicontrol {Clazy Checks} tab, select the level of Clazy
checks to perform.
- \image qtcreator-clazy.png {Clazy Checks tab}
+ \image qtcreator-clazy.webp {Clazy Checks tab}
+
+ \li To edit the selected checks as plain text, select
+ \uicontrol {Edit Checks as String}.
+
\li In the \uicontrol Filters field, select topics to view
only checks related to those areas in the \uicontrol Checks field.
To filter the checks in the selected areas, enter a string in the
\uicontrol {Filter by name} field.
- \li To view all checks again, select \uicontrol {Reset Filter}.
+ \li To view all checks again, select \uicontrol {Reset Topic Filter}.
\li To view more information about the checks online, select the
\uicontrol {Web Page} links next to them.
diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
index c8da5117fb..0bf54dde2f 100644
--- a/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
+++ b/doc/qtcreator/src/cmake/creator-projects-cmake-building.qdoc
@@ -94,9 +94,9 @@
You can select several variables and apply an action to them. To clear
the selection, click anywhere in the view.
- To change the environment variable values for the CMake build environment,
- select \uicontrol {Batch Edit}. For more information, see
- \l{Batch edit environment settings}.
+ To batch edit variable values, select \uicontrol {Batch Edit}.
+
+ \image qtcreator-edit-cmake-configuration.webp {Edit CMake Configuration dialog}
To build using the current configuration, select \uicontrol {Run CMake}.
While building, the button text changes to \uicontrol {Stop CMake}. Select
@@ -200,6 +200,26 @@
\image qtcreator-build-configuration-set-clicolor-force.webp {Build Environment with CLICOLOR_FORCE set}
+ \section1 Using Junction Points on Windows
+
+ To overcome issues with long paths on Windows, create and use
+ \l{https://learn.microsoft.com/en-us/sysinternals/downloads/junction}
+ {junction points} for the source and build directories. At a junction point,
+ a directory serves as an alias to another directory on the computer.
+
+ To use the junction points for CMake configure, build, and install
+ operations, go to \preferences > \uicontrol CMake > \uicontrol General and
+ select \uicontrol {Use junctions for CMake configuration and build operations}.
+
+ \image qtcreator-preferences-cmake-general.webp {CMake General preferences}
+
+ \QC stores junction points in \c {C:\ProgramData\QtCreator\Links}. To use
+ another path, set it as the value of the \c QTC_CMAKE_JUNCTIONS_DIR
+ environment variable.
+
+ Set the \c QTC_CMAKE_JUNCTIONS_HASH_LENGTH environment variable to shorten
+ the MD5 hash key length from the default length value of 32.
+
\section1 CMake Build Steps
\QC builds CMake projects by running \c {cmake . --build}, which then runs
diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
index f4abbfa86e..a1130b7a89 100644
--- a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
+++ b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc
@@ -198,8 +198,8 @@
\uicontrol Projects view and select \uicontrol {Open With} >
\uicontrol {CMake Editor}.
- You can also use the \c cmo filter in the \l {Searching with the Locator}
- {locator} to open the CMakeLists.txt file for the current run configuration
+ You can also use the \c cmo filter in the \l {Navigate with locator}{locator}
+ to open the CMakeLists.txt file for the current run configuration
in the editor. This is the same build target as when you select
\uicontrol Build > \uicontrol {Build for Run Configuration}.
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
index 914ee67465..34ea75fc52 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
@@ -115,9 +115,17 @@
\title Launching the Debugger
- To start an application from an open project under the control of a
- debugger, select the \inlineimage icons/qtcreator-debug-button.png
- (\uicontrol {Start Debugging of Startup Project}) button or press \key F5.
+ You can start an application from an open project under the control of a
+ debugger in the following ways:
+
+ \list
+ \li Select \inlineimage icons/qtcreator-debug-button.png
+ (\uicontrol {Start Debugging of Startup Project}).
+ \li Press \key F5.
+ \li Enter \c {dr} in the locator, and select the project to debug.
+ \li Go to \uicontrol Debug > \uicontrol {Start Debugging} >
+ \uicontrol {Start Debugging of Startup Project}.
+ \endlist
\QC checks whether the compiled application is up-to-date, and rebuilds and
deploys it if you set the \uicontrol {Build before deploying} field to
diff --git a/doc/qtcreator/src/editors/creator-code-refactoring.qdoc b/doc/qtcreator/src/editors/creator-code-refactoring.qdoc
index 413ffe9ef5..5a94f1c08d 100644
--- a/doc/qtcreator/src/editors/creator-code-refactoring.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-refactoring.qdoc
@@ -2,100 +2,35 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
- \page creator-editor-refactoring.html
- \previouspage creator-jump-to-the-code.html
- \nextpage creator-editor-options.html
-
- \title Refactoring
-
- To quickly and conveniently apply actions to refactor your
- code, \l{Apply quick fixes}{select quick fixes in a context menu}.
-
- By default, the refactored files are saved automatically. To disable
- this feature, deselect \preferences > \uicontrol Environment >
- \uicontrol System > \uicontrol {Auto-save files after refactoring}.
-
- \if defined(qtcreator)
- \section1 Finding Symbols
-
- To find instances of a specific symbol in your Qt C++ project, place the
- cursor on the symbol in the editor and select \uicontrol Tools >
- \uicontrol {C++} > \uicontrol {Find References to Symbol Under Cursor} or
- press \key {Ctrl+Shift+U}.
-
- \image qtcreator-find-references-to-symbol-under-cursor.png {Search results for finding references to symbols}
-
- To view the same results color-coded according to the access type, such as
- read, write, or declaration, select \uicontrol Tools > \uicontrol {C++} >
- \uicontrol {Find References with Access Type}.
-
- \note Select \uicontrol Edit > \uicontrol {Find/Replace} >
- \uicontrol {Advanced Find} > \uicontrol {C++ Symbols} to search for
- classes, functions, enums, and declarations (including type aliases) either
- from files listed as part of the project or from all files that are used by
- the code, such as include files.
- \image qtcreator-search-cpp-symbols.png
- \endif
-
- \section1 Viewing Search Results
-
- \QC searches from the following locations:
-
- \list
- \li Files listed as a part of the project
- \li Files directly used by the project files (for example, generated
- files)
- \if defined(qtcreator)
- \li Header files of used frameworks and libraries
- \endif
- \endlist
-
- \l{Search Results View} shows the location and number of search hits in the
- current project.
-
- \if defined(qtcreator)
- \image qtcreator-refactoring-find.png
+ \page creator-how-to-rename-symbols.html
+ \if defined(qtdesignstudio)
+ \previouspage studio-finding.html
\else
- \image qml-find-usages.png
+ \previouspage creator-how-tos.html
\endif
- Browse the search results in the following ways:
-
- \list
- \li To go directly to an instance, double-click the instance in
- \uicontrol {Search Results}.
- \li To move between instances, click the \inlineimage icons/next.png
- (\uicontrol {Next Item}) button and \inlineimage icons/prev.png
- (\uicontrol {Previous Item}) button in \uicontrol {Search Results}.
- \li To expand and collapse the list of all instances, click the
- \inlineimage icons/qtcreator-expand.png
- (\uicontrol {Expand All}) button.
- \li To filter the search results for the usage of symbols according to
- access type, such as read, write, or declaration, click the
- \inlineimage icons/filtericon.png
- (\uicontrol {Filter Tree}) button and select the access type.
- \li To clear the search results, click the
- \inlineimage icons/clean_pane_small.png
- (\uicontrol Clear) button.
- \li To start a new search, click the
- \inlineimage icons/qtcreator-new-search-icon.png
- (\uicontrol {New Search}) button.
- \endlist
+ \ingroup creator-how-to-search
- \section1 Renaming Symbols
+ \title Rename symbols
You can rename symbols in all files in a project.
+
\if defined(qtcreator)
When you rename a class, you can also change filenames that match the
class name.
- To rename a C++ symbol in a project, place the cursor
- on it and select \uicontrol Tools > \uicontrol {C++} >
- \uicontrol {Rename Symbol Under Cursor} or press \key {Ctrl+Shift+R}.
- Use the keyboard shortcut to rename Python symbols.
+ To rename a C++ symbol in a project:
+
+ \list 1
+ \li Place the cursor on the symbol in the editor.
+ \li Go to \uicontrol Tools > \uicontrol {C++} >
+ \uicontrol {Rename Symbol Under Cursor}, or press \key {Ctrl+Shift+R}.
+
+ Use the keyboard shortcut to rename Python symbols.
+ \endlist
\endif
- To rename a QML type in a project, select \uicontrol Tools >
+ To rename a QML type in a project, go to \uicontrol Tools >
\uicontrol {QML/JS} > \uicontrol {Rename Symbol Under Cursor}
or press \key {Ctrl+Shift+R}.
@@ -109,23 +44,23 @@
\endif
To replace all selected instances, enter the name of the new symbol
- in the \uicontrol {Replace with} text box, and select \uicontrol Replace.
- To omit an instance, deselect the check box next to the instance.
+ in \uicontrol {Replace with}, and select \uicontrol Replace.
+ To omit an instance, clear the check box next to the instance.
\note This action replaces all selected instances of the symbol in
all files listed in \uicontrol {Search Results}. You cannot
undo this action.
\if defined(qtcreator)
- If the symbol is a class, select the \uicontrol {Rename files} check
- box to also change the filenames that match the class name.
+ If the symbol is a class, select \uicontrol {Rename files} to also change
+ the filenames that match the class name.
\note Renaming local symbols does not open \uicontrol {Search Results}.
The instances of the symbol are highlighted in code, and you can edit
the symbol. All instances of the local symbol are changed as you type.
- \sa {Specify settings for quick fixes}, {Quick Fixes}, {C++ Quick Fixes}
-
+ \sa {Find symbols}, {Specify settings for quick fixes}, {Quick Fixes},
+ {C++ Quick Fixes}
\endif
\sa {Apply quick fixes}, {QML Quick Fixes}
diff --git a/doc/qtcreator/src/editors/creator-coding.qdoc b/doc/qtcreator/src/editors/creator-coding.qdoc
index 38c6f3f596..5df03c90cc 100644
--- a/doc/qtcreator/src/editors/creator-coding.qdoc
+++ b/doc/qtcreator/src/editors/creator-coding.qdoc
@@ -46,13 +46,6 @@
and file systems.
\endif
- \li \l{Refactoring}
-
- Code refactoring is the process of improving and simplifying code
- without modifying the existing functionality of an application. You
- can easily find and rename symbols and apply predefined actions to
- refactor code.
-
\li \l{Configuring the Editor}
You can change the fonts, colors, highlighting, and indentation.
@@ -65,5 +58,7 @@
\if defined(qtcreator)
\sa {Using GitHub Copilot}
+ \else
+ \sa {Apply quick fixes}
\endif
*/
diff --git a/doc/qtcreator/src/editors/creator-locator.qdoc b/doc/qtcreator/src/editors/creator-locator.qdoc
deleted file mode 100644
index 292b35ff30..0000000000
--- a/doc/qtcreator/src/editors/creator-locator.qdoc
+++ /dev/null
@@ -1,325 +0,0 @@
-// Copyright (C) 2023 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
-
-/*!
- \page creator-editor-locator.html
- \previouspage creator-how-to-advanced-search.html
- \if defined(qtdesignstudio)
- \nextpage creator-jump-to-the-code.html
- \else
- \nextpage creator-how-tos.html
- \endif
-
- \title Searching with the Locator
-
- The locator is the fastest way to find a particular project, file, class, or
- function, or almost anything else in your project.
-
- By default, you can find the locator in the bottom left of the \QC window.
- To open it as a centered popup, click \inlineimage icons/magnifier.png
- (\uicontrol Options) in it and select \uicontrol {Open as Centered Popup}.
-
- \image qtcreator-locator.webp "List of locator filters"
-
- \section1 Activating the Locator
-
- To activate the locator:
-
- \list
-
- \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos).
-
- \li Select \uicontrol Tools > \uicontrol Locate.
-
- \li Select \uicontrol Edit > \uicontrol {Go to Line}.
- \if defined(qtcreator)
- \li Click the line and column indicator on the
- \l{Edit Mode}{editor toolbar}.
- \endif
- \endlist
-
- \section1 Using Locator Filters
-
- You can locate not only files, but any items defined by \e{locator filters},
- as well as trigger global actions and perform other tasks, such as build
- projects or run external tools.
-
- The filters that are available depend on the file type. For more information
- about what a particular locator filter does, see the tooltips that appear
- when you hover over a filter in the locator. For longer descriptions of the
- filters, select \uicontrol Configure to open the \uicontrol Locator
- \l{Creating Locator Filters}{preferences}.
-
- To use a locator filter, type its prefix followed by \key Space. The prefix
- is usually short, from one to three characters. Then type the search string
- (for example, a filename or class name) or the command to execute.
-
- You can also double-click a locator filter in the filter list to use it. Use
- the up and down arrow keys or the \key Ctrl+P and \key Ctrl+N
- keyboard shortcuts to move up and down the list, and then press \key Enter
- to use the selected filter.
-
- As you type a search string,
- the locator shows the occurrences of that string regardless of where in the
- name of an component it appears. Some locator filters, such as colon, \c m,
- and \c t, support \e fuzzy matching, which means that you can enter the
- uppercase letters to locate a symbol when using camel case or the letters
- after the underscore when using snake case.
-
- To narrow down the search results, use the following wildcard characters:
-
- \list
-
- \li To match any number of any or no characters, enter \c{*}.
-
- \li To match a single instance of any character, enter \c{?}.
-
- \endlist
-
- \section2 Locating Lines and Columns
-
- To move directly to a particular line and column in the document when you
- open the document, append the line and column number to the file name in
- the locator, separated by plus signs (+) or colons (:).
-
- For example, to open \e HelloWorld.qml to line
- 41 and column 2, enter:
-
- \code
- HelloWorld.qml:41:2
- \endcode
-
- \section2 Creating Files and Directories from Locator
-
- To create a new file and open it in the editor, type \c f
- followed by \key Space, followed by path and file name, and then press
- \key Enter or select \uicontrol {Create and Open File}. To create a
- directory, select \uicontrol {Create Directory}.
-
- \section2 Opening Sessions from Locator
-
- You can use the filter that triggers menu commands to open
- \l{Manage sessions}{sessions}. Enter
- \c {t yoursess} or \c {t sess yoursess} to trigger \uicontrol File >
- \uicontrol Sessions > \e <session_name>.
-
- \section2 Default Filters
-
- By default, you can use the following preset locator filters without a
- prefix:
-
- \list
-
- \li Going to a line and column in the current file (\c {l}).
-
- \li Going to an open file (\c {o}).
-
- \li Going to a file in any open project (\c {a}).
-
- \endlist
-
- \section1 Changing Locator Filters
-
- You can change the preset locator filters to match your use case. For
- example, you can change the filter prefix and restrict the search to
- items that match the filter.
-
- \image qtcreator-locator-filter-edit-ai.webp {Filter Configuration dialog}
-
- To configure a locator filter:
-
- \list 1
-
- \li In the locator, click \inlineimage icons/magnifier.png
- (\uicontrol Options) and select \uicontrol Configure to open the
- \uicontrol Locator preferences.
-
- \li Select a filter, and then select \uicontrol Edit.
-
- \li Specify the prefix string.
-
- \li To implicitly include the filter even when not typing a prefix as a
- part of the search string, select \uicontrol {Include by default}.
-
- \li Set other available preferences.
-
- \endlist
-
- \section2 Adding Web Search Engines
-
- You can use the \uicontrol {Web Search (r)} locator filter to perform
- web searches. URLs and search commands for Bing, Google, Yahoo! Search,
- cplusplus.com, and Wikipedia are configured by default.
-
- To find out the format of the search command to use for your favorite
- web search engine, perform a search in your browser and copy the resulting
- URL to the locator filter configuration. Replace the search term with the
- variable \c {%1}.
-
- To add URLs and search commands to the list:
-
- \list 1
-
- \li Select \preferences > \uicontrol Environment > \uicontrol Locator >
- \uicontrol {Web Search} > \uicontrol Edit.
-
- \li Select \uicontrol Add to add a new entry to the list.
-
- \image qtcreator-add-online-doc.webp "List of URLs in Filter Configuration dialog"
-
- \li Double-click the new entry to specify a URL and a search command.
- For example, \c {http://www.google.com/search?q=%1}.
-
- \li Click \uicontrol OK.
-
- \endlist
-
- \section1 Creating Locator Filters
-
- You can create custom locator filters for searching in a directory structure
- or on the web.
-
- To quickly access files not directly mentioned in your project, you can
- create your own directory filters. That way you can locate files in a
- directory structure you have defined.
-
- To create custom locator filters:
-
- \list 1
-
- \li In the locator, select \uicontrol Options >
- \uicontrol Configure to open the \uicontrol Locator preferences.
-
- \image qtcreator-locator-customize.webp "Locator preferences"
-
- \li Select \uicontrol Add > \uicontrol {Files in Directories} to add
- a directory filter or \uicontrol {URL Template} to add a URL
- filter. The settings to specify depend on the filter type.
-
- \image qtcreator-locator-generic-directory-filter.png "Filter Configuration dialog"
-
- \li In the \uicontrol Name field, enter a name for your filter.
-
- \li In the \uicontrol Directories field, select at least one
- directory. The locator searches directories recursively.
-
- \li In the \uicontrol {File pattern} field, specify file patterns to
- restrict the search to files that match the pattern.
- Separate the patterns with commas. For example, to search for all
- \c {.qml} and \c {.ui.qml} files, enter \c{*.qml,*.ui.qml}
-
- \li In the \uicontrol {Exclusion pattern} field, specify file
- patterns to omit files from the search.
-
- \li In the \uicontrol Prefix field, specify the prefix string.
-
- To implicitly include the filter even when not typing a prefix
- as a part of the search string, select
- \uicontrol {Include by default}.
-
- \li Select \uicontrol OK.
-
- \endlist
-
- \section1 Configuring Locator Cache
-
- The locator searches the files matching your file pattern in the directories
- you have selected and caches that information. \QC updates the cache for all
- preset filters as you write code. By default, \QC updates your custom
- filters once an hour.
-
- To update the cached information manually, select \uicontrol Options >
- \uicontrol Refresh in the locator.
-
- To set a new cache update time:
-
- \list 1
-
- \li Select \preferences > \uicontrol Environment > \uicontrol Locator.
-
- \li In \uicontrol {Refresh interval}, define new time in minutes.
-
- \endlist
-
- \section1 Executing JavaScript
-
- The locator has a JavaScript interpreter for performing calculations.
-
- Beside simple mathematical operations, like ((1 + 2) * 3), the following
- built-in functions exist:
-
- \table
- \header
- \li Function
- \li Purpose
- \row
- \li abs(x)
- \li Returns the absolute value of x
- \row
- \li acos(x)
- \li Returns the arccosine of x, in radians
- \row
- \li asin(x)
- \li Returns the arcsine of x, in radians
- \row
- \li atan(x)
- \li Returns the arctangent of x, in radians
- \row
- \li atan2(x, y)
- \li Returns the arctangent of the quotient of its arguments
- \row
- \li bin(x)
- \li Returns the binary representation of x
- \row
- \li ceil(x)
- \li Returns the value of x rounded up to the next integer
- \row
- \li cos(x)
- \li Returns the cosine of x (x is in radians)
- \row
- \li exp(x)
- \li Returns the value of E to the power of x
- \row
- \li e()
- \li Returns Euler's number E (2.71828...)
- \row
- \li floor(x)
- \li Returns the value of x rounded down to the next integer
- \row
- \li hex(x)
- \li Returns the hexadecimal representation of x
- \row
- \li log(x)
- \li Returns the natural logarithm (base E) of x
- \row
- \li max([value1[, value2[, ...]]])
- \li Returns the highest value of the given numbers
- \row
- \li min([value1[, value2[, ...]]])
- \li Returns the lowest value of the given numbers
- \row
- \li oct(x)
- \li Returns the octal representation of x
- \row
- \li pi()
- \li Returns PI (3.14159...)
- \row
- \li pow(x, y)
- \li Returns the value of x to the power of y
- \row
- \li random()
- \li Returns a random number between 0 and 1
- \row
- \li round(x)
- \li Returns the value of x rounded to the next integer
- \row
- \li sin(x)
- \li Returns the sine of x (x is in radians)
- \row
- \li sqrt(x)
- \li Returns the square root of x
- \row
- \li tan(x)
- \li Returns the tangent of x (x is in radians)
- \endtable
-*/
diff --git a/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc b/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc
index 1bc7cd48bc..e4706d6711 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc
@@ -27,7 +27,7 @@
\li Syntactic and \l{Semantic Highlighting}{semantic highlighting}
- \li Navigating in the code by using the \l{Searching with the Locator}
+ \li Navigating in the code by using the \l{Navigate with locator}
{locator}, \l{Move to symbol definition or declaration}
{following symbols}, and so on
@@ -38,7 +38,9 @@
\li \l{View function tooltips}{Tooltips}
- \li \l{Finding Symbols}{Finding and renaming symbols}
+ \li \l{Find symbols}{Finding symbols}
+
+ \li \l{Rename symbols}{Renaming symbols}
\li \l{Apply quick fixes}{Quick fixes}
diff --git a/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc b/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
index 8e0105b18b..bb730e402a 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
@@ -173,7 +173,7 @@
\sa {Edit Code}{How To: Edit Code},
{Manage Language Servers}{How To: Manage Language Servers},
- {Searching with the Locator}, {Keyboard Shortcuts}, {Sidebar Views}
+ {Navigate with locator}, {Keyboard Shortcuts}, {Sidebar Views}
*/
/*!
@@ -258,7 +258,7 @@
\endlist
\sa {Edit Code}{How To: Edit Code}, {Edit Mode},
- {Searching with the Locator}, {File System}, {Projects}
+ {Navigate with locator}, {File System}, {Projects}
*/
/*!
@@ -378,7 +378,7 @@
\image qtcreator-add-resource.png {Resource Browser}
\sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Editing Keyboard Shortcuts},
- {Searching with the Locator}
+ {Navigate with locator}
*/
/*!
diff --git a/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc b/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
index 8855d4017f..d2ca268130 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
@@ -78,7 +78,7 @@
To manually request a suggestion at the current editor's cursor position,
enter \uicontrol {t} (\uicontrol {Request Copilot Suggestion}) in the
- \l{Searching with the Locator}{locator}.
+ \l{Navigate with locator}{locator}.
Hover the mouse over a suggestion to show a toolbar with
\inlineimage icons/prev.png
diff --git a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
index 7df63851dc..44cc63bbf6 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
@@ -70,8 +70,8 @@
To return non-trivial objects by using a \c const reference, select the
\uicontrol {Return non-value types by const reference} check box.
- \sa {Apply quick fixes}, {Specify settings for quick fixes},
- {C++ Quick Fixes}, {QML Quick Fixes}, {Refactoring}
+ \sa {Apply quick fixes}, {Find symbols}, {Rename symbols},
+ {Specify settings for quick fixes}, {C++ Quick Fixes}, {QML Quick Fixes}
*/
/*!
@@ -786,8 +786,8 @@
\li Documentation comment for a function
\endtable
- \sa {Apply quick fixes}, {Specify settings for quick fixes},
- {QML Quick Fixes}, {Quick Fixes}, {Refactoring}
+ \sa {Apply quick fixes}, {Find symbols}, {Rename symbols},
+ {Specify settings for quick fixes}, {QML Quick Fixes}, {Quick Fixes}
*/
/*!
@@ -811,6 +811,6 @@
delete the custom settings, select \uicontrol {Use global settings}, and
then select \uicontrol {Delete Custom Settings File}.
- \sa {Apply quick fixes}, {C++ Quick Fixes}, {QML Quick Fixes}, {Quick Fixes},
- {Configuring Projects}, {Refactoring}
+ \sa {Apply quick fixes}, {Find symbols}, {Rename symbols},
+ {C++ Quick Fixes}, {QML Quick Fixes}, {Quick Fixes}, {Configuring Projects}
*/
diff --git a/doc/qtcreator/src/editors/creator-only/creator-how-to-find-symbols.qdoc b/doc/qtcreator/src/editors/creator-only/creator-how-to-find-symbols.qdoc
new file mode 100644
index 0000000000..b377f8c7da
--- /dev/null
+++ b/doc/qtcreator/src/editors/creator-only/creator-how-to-find-symbols.qdoc
@@ -0,0 +1,60 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page creator-editor-how-to-find-symbols.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-search
+
+ \title Find symbols
+
+ You can search for references to a particular symbol or search for symbols
+ with a name that matches a pattern.
+
+ \section1 Find references to a symbol
+
+ To find instances of a particular symbol in your Qt C++ project:
+
+ \list 1
+ \li Place the cursor on the symbol in the editor.
+ \li Go to \uicontrol Tools > \uicontrol {C++} >
+ \uicontrol {Find References to Symbol Under Cursor},
+ or press \key {Ctrl+Shift+U}.
+ \image qtcreator-find-references-to-symbol-under-cursor.png {Search results for finding references to symbols}
+ \endlist
+
+ \section2 Color-code access type
+
+ To view the same results color-coded according to the access type, such as
+ read, write, or declaration, go to \uicontrol Tools > \uicontrol {C++} >
+ \uicontrol {Find References with Access Type}.
+
+ \section1 Find symbols that match search criteria
+
+ Go to \uicontrol Edit > \uicontrol {Find/Replace} >
+ \uicontrol {Advanced Find} and select \uicontrol {C++ Symbols} to search for
+ classes, functions, enums, and declarations (including type aliases) either
+ from files listed as part of the project or from all files that are used by
+ the code, such as include files.
+
+ \image qtcreator-search-cpp-symbols.png
+
+ \QC searches from the following locations:
+
+ \list
+ \li Files listed as a part of the project
+ \li Files directly used by the project files (for example, generated
+ files)
+ \li Header files of used frameworks and libraries
+ \endlist
+
+ \section1 View found symbols
+
+ \l{Search Results View} shows the location and number of search hits in the
+ current project.
+
+ \image qtcreator-refactoring-find.png
+
+ \sa {Search}{How To: Search}, {Search Results View}
+*/
diff --git a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc
index a89ca3c7ef..897facbe4a 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc
@@ -29,15 +29,15 @@
\li \l{Semantic Highlighting}{Semantic highlighting}, as defined in
\l{https://github.com/microsoft/vscode-languageserver-node/pull/367}
{Proposal of the semantic highlighting protocol extension}
- \li Navigating in the code by using the \l{Searching with the Locator}
+ \li Navigating in the code by using the \l{Navigate with locator}
{locator} or \l{Move to symbol definition or declaration}
{moving to the symbol definition}
\li Inspecting code by viewing the document outline in the
\l{Outline} view or in the \uicontrol Symbols list on the
\l{Edit Mode}{editor toolbar}
\li \l{Call Hierarchy}{Viewing the callers and callees of a function}
- \li \l{Finding Symbols}{Finding references to symbols}
- \li \l{Renaming Symbols}{Renaming the symbol under cursor}
+ \li \l{Find references to a symbol}{Finding references to symbols}
+ \li \l{Rename symbols}{Renaming the symbol under the cursor}
\li Code actions
\li Displaying diagnostics from the language server as tooltips. You can
also select a code range to display diagnostics for.
diff --git a/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc b/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc
new file mode 100644
index 0000000000..af9f3a3d82
--- /dev/null
+++ b/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc
@@ -0,0 +1,265 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page creator-editor-locator.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-search
+
+ \title Navigate with locator
+
+ Locate not only files, but any items defined by \e{locator filters},
+ as well as trigger global actions and perform other tasks, such as build
+ projects or run external tools.
+
+ \image qtcreator-locator.webp {List of locator filters}
+
+ \section1 Go to the locator
+
+ To activate the locator:
+
+ \list
+
+ \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos).
+
+ \li Go to \uicontrol Tools, and then select \uicontrol Locate.
+
+ \li Go to \uicontrol Edit, and then select \uicontrol {Go to Line}.
+
+ \li Click the line and column indicator on the
+ \l{Edit Mode}{editor toolbar}.
+
+ \endlist
+
+ By default, you can find the locator in the bottom left of the \QC window.
+ To open it as a centered popup, select \inlineimage icons/magnifier.png, and
+ then select \uicontrol {Open as Centered Popup}.
+
+ \section1 Use locator filters
+
+ The filters that are available depend on the file type. For more information
+ about what a particular locator filter does, see the tooltips that appear
+ when you hover over a filter in the locator. For longer descriptions of the
+ filters, select \inlineimage icons/magnifier.png > \uicontrol Configure to
+ open the \l{Locator} preferences.
+
+ To use a locator filter:
+
+ \list
+ \li Type the locator filter prefix followed by \key Space. The prefix
+ is usually short, from one to three characters. Then type the search
+ string (for example, a filename or class name) or the command to
+ execute.
+
+ \li Double-click a locator filter in the filter list to use it. Press
+ the up and down arrow keys or press \key Ctrl+P and \key Ctrl+N
+ to move up and down the list, and then press \key Enter to use the
+ selected filter.
+ \endlist
+
+ As you type a search string,
+ the locator shows the occurrences of that string regardless of where in the
+ name of an object it appears. Some locator filters, such as colon, \c m,
+ and \c t, support \e fuzzy matching, which means that you can enter the
+ uppercase letters to locate a symbol when using camel case or the letters
+ after the underscore when using snake case.
+
+ \section2 Use wildcard characters in search strings
+
+ To narrow down the search results, use the following wildcard characters:
+
+ \list
+
+ \li To match any number of any or no characters, enter \c{*}.
+
+ \li To match a single instance of any character, enter \c{?}.
+
+ \endlist
+
+ \section1 Omit default filters
+
+ By default, you can use the following preset locator filters without a
+ prefix:
+
+ \list
+
+ \li Going to a line and column in the current file (\c {l}).
+
+ \li Going to an open file (\c {o}).
+
+ \li Going to a file in any open project (\c {a}).
+
+ \endlist
+
+ \section1 Locate lines and columns
+
+ To move directly to a particular line and column in the document when you
+ open the document, append the line and column number to the file name in
+ the locator, separated by plus signs (+) or colons (:).
+
+ For example, to open \e HelloWorld.qml to line
+ 41 and column 2, enter:
+
+ \code
+ HelloWorld.qml:41:2
+ \endcode
+
+ \section1 Search the web
+
+ Use the \uicontrol {Web Search (r)} locator filter to perform web searches.
+
+ URLs and search commands for Bing, Google, Yahoo! Search, cplusplus.com, and
+ Wikipedia are configured by default. Add search commands for other web search
+ engines in the locator preferences.
+
+ \section1 Create files and directories from the locator
+
+ To create a new file and open it in the editor:
+
+ \list 1
+ \li Type \c f followed by \key Space, followed by path and file name
+ \li Press \key Enter or select \uicontrol {Create and Open File}.
+ \endlist
+
+ To create a directory, select \uicontrol {Create Directory}.
+
+ \sa {Search}{How To: Search}, {Manage sessions}, {Perform calculations},
+ {Locator}
+
+*/
+
+/*!
+ \page creator-preferences-locator.html
+ \previouspage creator-reference.html
+
+ \ingroup creator-reference-preferences
+
+ \title Locator
+
+ \brief Add and change locator filters.
+
+ To set locator preferences, go to \preferences > \uicontrol Environment >
+ \uicontrol Locator.
+
+ \image qtcreator-locator-customize.webp {Locator preferences}
+
+ \section1 Changing Locator Filters
+
+ You can change the preset locator filters to match your use case. For
+ example, change the filter prefix and restrict the search to
+ items that match the filter.
+
+ To configure a locator filter:
+
+ \list 1
+
+ \li Go to \preferences > \uicontrol Environment > \uicontrol Locator.
+
+ \li Select a filter, and then select \uicontrol Edit.
+
+ \li Specify the prefix string.
+
+ \image qtcreator-locator-filter-edit-ai.webp {Filter Configuration dialog}
+
+ \li To implicitly include the filter even when not typing a prefix as a
+ part of the search string, select \uicontrol {Include by default}.
+
+ \endlist
+
+ \section1 Adding Web Search Engines
+
+ By default, the \uicontrol {Web Search (r)} locator filter includes the URLs
+ and search commands for Bing, Google, Yahoo! Search, cplusplus.com, and
+ Wikipedia.
+
+ To find out the format of the search command to use for your favorite
+ web search engine, perform a search in your browser and copy the resulting
+ URL to the locator filter configuration. Replace the search term with the
+ variable \c {%1}.
+
+ To add URLs and search commands to the list:
+
+ \list 1
+
+ \li Go to \preferences > \uicontrol Environment > \uicontrol Locator.
+
+ \li Select \uicontrol {Web Search} > \uicontrol Edit.
+
+ \li Select \uicontrol Add to add a URL filter to the list.
+
+ \image qtcreator-add-online-doc.webp {List of URLs in Filter Configuration dialog}
+
+ \li Double-click the new entry to specify a URL and a search command.
+ For example, \c {http://www.google.com/search?q=%1}.
+
+ \li Click \uicontrol OK.
+
+ \endlist
+
+ To add a new separate web search locator filter instead of updating the
+ default filter, select \uicontrol Add > \uicontrol {URL Template}.
+
+ \section1 Creating Locator Filters
+
+ To quickly access files not directly mentioned in your project,
+ create your own directory filters. That way you can locate files in a
+ directory structure you have defined.
+
+ To create custom locator filters:
+
+ \list 1
+
+ \li Go to \preferences > \uicontrol Environment > \uicontrol Locator.
+
+ \li Select \uicontrol Add > \uicontrol {Files in Directories} to add
+ a directory filter.
+
+ \image qtcreator-locator-generic-directory-filter.png {Filter Configuration dialog}
+
+ \li In \uicontrol Name, enter a name for your filter.
+
+ \li Select \uicontrol Add to add directories to \uicontrol Directories.
+ The locator searches directories recursively.
+
+ \li In \uicontrol {File pattern}, specify file patterns to
+ restrict the search to files that match the pattern.
+ Separate the patterns with commas. For example, to search for all
+ \c {.qml} and \c {.ui.qml} files, enter \c{*.qml,*.ui.qml}
+
+ \li In \uicontrol {Exclusion pattern}, specify file
+ patterns to omit files from the search.
+
+ \li In \uicontrol Prefix, specify the prefix string.
+
+ To implicitly include the filter even when not typing a prefix
+ as a part of the search string, select
+ \uicontrol {Include by default}.
+
+ \li Select \uicontrol OK.
+
+ \endlist
+
+ \section1 Configuring Locator Cache
+
+ The locator searches the files matching your file pattern in the directories
+ you have selected and caches that information. \QC updates the cache for all
+ preset filters as you write code. By default, \QC updates your custom
+ filters once an hour.
+
+ To update the cached information manually, select
+ \inlineimage icons/magnifier.png > \uicontrol Refresh in the locator.
+
+ To set a new cache update time:
+
+ \list 1
+
+ \li Go to \preferences > \uicontrol Environment > \uicontrol Locator.
+
+ \li In \uicontrol {Refresh interval}, set a new time in minutes.
+
+ \endlist
+
+ \sa {Navigate with locator}, {Search}{How To: Search}, {Perform calculations},
+ {Locator}
+*/
diff --git a/doc/qtcreator/src/editors/creator-only/creator-text-editing-macros.qdoc b/doc/qtcreator/src/editors/creator-only/creator-text-editing-macros.qdoc
index 1ea89d69d8..fd4b4a8b70 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-text-editing-macros.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-text-editing-macros.qdoc
@@ -28,7 +28,7 @@
\uicontrol Keyboard. For more information, see \l{Assign keyboard shortcuts}.
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{Navigate with locator}.
To view and remove saved macros, select \preferences >
\uicontrol {Text Editor} > \uicontrol Macros.
diff --git a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
index af49d65612..a2db91d761 100644
--- a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
+++ b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
@@ -4,12 +4,14 @@
/*!
\page creator-editor-quick-fixes.html
\if defined(qtdesignstudio)
- \previouspage creator-editor-refactoring.html
+ \previouspage creator-jump-to-the-code.html
+ \nextpage creator-reference-qml-quick-fixes.html
\else
\previouspage creator-how-tos.html
\endif
\ingroup creator-how-to-edit
+ \ingroup studio-code-view
\title Apply quick fixes
@@ -35,6 +37,10 @@
Or, press \key {Alt+Enter} to open a context menu that has
quick fixes available in the current cursor position.
+ By default, the refactored files are saved automatically. To turn off
+ this feature, go to \preferences > \uicontrol Environment >
+ \uicontrol System and select \uicontrol {Auto-save files after refactoring}.
+
\if defined(qtcreator)
\section1 Create functions
@@ -85,21 +91,24 @@
\image qtcreator-refactoring-constructor.png "Constructor dialog"
- \sa {Specify settings for quick fixes}, {Quick Fixes}, {C++ Quick Fixes}
+ \sa {Find symbols}, {Specify settings for quick fixes}, {Quick Fixes},
+ {C++ Quick Fixes}
\endif
- \sa {QML Quick Fixes}, {Refactoring}
+ \sa {Rename symbols}, {QML Quick Fixes}
*/
/*!
\page creator-reference-qml-quick-fixes.html
\if defined(qtdesignstudio)
- \previouspage creator-editor-refactoring.html
+ \previouspage creator-editor-quick-fixes.html
+ \nextpage creator-editor-options.html
\else
\previouspage creator-reference.html
\endif
\ingroup creator-reference
+ \ingroup studio-code-view
\title QML Quick Fixes
@@ -168,10 +177,10 @@
\endtable
- \sa {Apply quick fixes}, {Refactoring}
+ \sa {Apply quick fixes}, {Rename symbols}
\if defined(qtcreator)
- \sa {Exclude files from to-do lists}, {Specify settings for quick fixes},
- {Quick Fixes}, {C++ Quick Fixes}
+ \sa {Exclude files from to-do lists}, {Find symbols},
+ {Specify settings for quick fixes}, {Quick Fixes}, {C++ Quick Fixes}
\endif
*/
diff --git a/doc/qtcreator/src/editors/creator-search.qdoc b/doc/qtcreator/src/editors/creator-search.qdoc
index 42ca482a5f..c3bd9e1fa2 100644
--- a/doc/qtcreator/src/editors/creator-search.qdoc
+++ b/doc/qtcreator/src/editors/creator-search.qdoc
@@ -131,7 +131,7 @@
\page creator-how-to-advanced-search.html
\if defined(qtdesignstudio)
\previouspage creator-editor-finding.html
- \nextpage creator-editor-locator.html
+ \nextpage creator-how-to-rename-symbols.html
\else
\previouspage creator-how-tos.html
\endif
@@ -215,7 +215,7 @@
\l {Preserve case when replacing} apply here as well.
\if defined(qtcreator)
- \sa {Search}{How To: Search}, {Finding Symbols}, {Turn on Silver Searcher}
+ \sa {Search}{How To: Search}, {Find symbols}, {Turn on Silver Searcher}
\else
\sa {Search in current file}
\endif
diff --git a/doc/qtcreator/src/howto/creator-external-tools.qdoc b/doc/qtcreator/src/howto/creator-external-tools.qdoc
index dda7eeb62a..13927f3d67 100644
--- a/doc/qtcreator/src/howto/creator-external-tools.qdoc
+++ b/doc/qtcreator/src/howto/creator-external-tools.qdoc
@@ -117,7 +117,7 @@
\sa {Run QML files}, {Use external text editors}, {Use Qt Linguist}
\if defined(qtcreator)
- \sa {Batch edit environment settings}, {Specify the environment for projects},
+ \sa {Edit environment settings}, {Specify the environment for projects},
{Use Qt Creator variables}
\endif
*/
diff --git a/doc/qtcreator/src/howto/creator-how-to-find-preferences.qdoc b/doc/qtcreator/src/howto/creator-how-to-find-preferences.qdoc
index b59e970921..b0be3871e3 100644
--- a/doc/qtcreator/src/howto/creator-how-to-find-preferences.qdoc
+++ b/doc/qtcreator/src/howto/creator-how-to-find-preferences.qdoc
@@ -40,12 +40,16 @@
\image qtcreator-preferences.webp {Filtering preferences}
+ \if defined(qtcreator)
\section1 Go to tabs in Preferences
To go to a tab in the \uicontrol Preferences dialog from anywhere in \QC,
- use the \c t \l{Searching with the Locator}{locator} filter. For example,
+ use the \c t \l{Navigate with locator}{locator} filter. For example,
to open the \uicontrol Interface tab, enter \c {t preferences interface}
in the locator.
\image qtcreator-locator-filter-t.webp {Using the locator to open a tab in Preferences}
+
+ \sa {Navigate with locator}
+ \endif
*/
diff --git a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
index b7fc37ddb5..f05c16181a 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
@@ -1,167 +1,157 @@
-// Copyright (C) 2023 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
-/*!
- \previouspage creator-ctf-visualizer.html
- \page creator-autotest.html
- \nextpage creator-squish.html
-
- \title Running Autotests
- \QC supports both \e {code based tests} and \e {build system based tests}.
- Code based testing offers special handling for particular testing
- frameworks that strongly ties to the underlying code models or
- specialized parsers. Build system based testing is independent from any
- testing frameworks. It retrieves information directly from the underlying
- build system and uses it or even the build system as such to execute the
- respective tests.
+/*!
+ \page creator-how-to-create-qt-tests.html
+ \previouspage creator-how-tos.html
- \QC integrates the following testing frameworks for unit testing
- applications and libraries:
+ \ingroup creator-how-to-test
- \list
- \li \l{https://www.boost.org/doc/libs/1_81_0/libs/test/doc/html/index.html}
- {Boost.Test}
- \li \l{https://github.com/catchorg/Catch2}{Catch2 test framework}
- \li \l{https://github.com/google/googletest}{Google C++ Testing Framework}
- \li \l{Qt Test} framework
- \endlist
+ \title Create Qt tests
- In addition, \QC offers build system based support for
- \l{https://cmake.org/cmake/help/latest/manual/ctest.1.html}{CTest}.
+ \QC integrates the \l{Qt Test} framework for unit testing Qt applications and
+ libraries.
- You can use \QC to create, build, and run code based tests for your
- projects.
+ To create a Qt test:
- \image qtcreator-autotests.png
+ \list 1
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Test Project}.
+ \li Select \uicontrol {Qt Test Project} > \uicontrol Choose.
+ \li In the \uicontrol {Project and Test Information} dialog, specify
+ settings for the project and test.
+ \image qtcreator-new-project-qt-test.webp {Project and Test Information - Qt Test}
+ \li In \uicontrol {Test case name}, enter a name for the test case.
+ \li Select \uicontrol {Requires \QApplication} to add the include
+ statement for QApplication to the main.cpp file of the project.
+ \li Select \uicontrol {GUI Application} to create a Qt application.
+ \li Select \uicontrol {Generate initialization and cleanup code}
+ to add functions to your test that the testing framework
+ executes to initialize and clean up the test.
+ \li In \uicontrol {Build system}, select the build system to use
+ for building the project: CMake, qmake, or Qbs.
+ \endlist
- \section1 Build System Based Tests
+ \QC creates the test in the specified project directory. Edit the .cpp file
+ to add private slots for each test function in your test.
- By default, \QC does not handle build system based tests to avoid
- interference with code based parsers. To enable build system based tests,
- select the respective test tool in \preferences > \uicontrol Testing
- > \uicontrol General.
+ For more information about creating Qt tests, see \l{Creating a Test}.
- The detection of tests is usually much faster for build system based
- tests as this normally does not involve scanning or parsing.
- The information in the tests tree is usually more detailed
- when using code based tests.
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
- If you enable both code based and build system based tests, you
- may duplicate tests inside the tests tree. See also \l {Selecting Tests to Run}.
+/*!
+ \page creator-how-to-create-qtquick-tests.html
+ \previouspage creator-how-tos.html
- \section1 Creating Tests
+ \ingroup creator-how-to-test
- Use a wizard to create projects that have tests.
+ \title Create Qt Quick tests
- \section2 Creating Qt and Qt Quick Tests
+ \QC integrates the \l{Qt Quick Test} unit test framework for Qt Quick
+ applications, where you write test cases as JavaScript functions.
- To create a Qt or Qt Quick test:
+ To create a Qt Quick test:
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Test Project} > \uicontrol {Qt Test Project} >
- \uicontrol Choose to create a project with boilerplate code for a
- Qt test, or \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Test Project} > \uicontrol {Qt Quick Test Project} >
- \uicontrol Choose to create a Qt Quick test.
-
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Test Project}.
+ \li Select \uicontrol {Qt Quick Test Project} > \uicontrol Choose.
\li In the \uicontrol {Project and Test Information} dialog, specify
- settings for the project and test:
-
- \list 1
-
- \li For a Qt test, select the \uicontrol {GUI Application} check
- box to create a Qt application.
-
- \image qtcreator-autotests-project-qt-test.png {Autotest project wizard - Qt Test}
-
- \li In the \uicontrol {Test case name} field, enter a name for
- the test case.
-
- \li For a Qt test, select the \uicontrol {Requires \QApplication}
- check box to add the include statement for QApplication to
- the main.cpp file of the project.
-
- \li For a Qt Quick test, select the
- \uicontrol {Generate setup code} check box to execute C++
- code before running any of the QML tests. The testing
- framework will call slots and invocable functions, as
- described in \l{Executing C++ Before QML Tests}.
-
- \image qtcreator-autotests-project-qtquick-test.png {Autotest project wizard - Qt Quick Test}
-
- \li Select the \uicontrol {Generate initialization and cleanup
- code} checkbox to add functions to your test that the
- testing framework executes to initialize and clean
- up the test.
+ settings for the project and test.
+ \image qtcreator-new-project-qtquick-test.webp {Project and Test Information - Qt Quick Test}
+ \li In \uicontrol {Test case name}, enter a name for the test case.
+ \li Select \uicontrol {Generate setup code} to execute C++
+ code before running any of the QML tests. The testing
+ framework will call slots and invocable functions, as
+ described in \l{Executing C++ Before QML Tests}.
+ \li Select \uicontrol {Generate initialization and cleanup code}
+ to add functions to your test that the testing framework
+ executes to initialize and clean up the test.
+ \li In \uicontrol {Build system}, select the build system to use
+ for building the project: CMake, qmake, or Qbs.
+ \endlist
- \li In the \uicontrol {Build system} field, select the build
- system to use for building the project: qmake, CMake, or
- Qbs.
+ \QC creates the test in the specified project directory. Edit the .cpp file
+ to add private slots for each test function in your test.
- \endlist
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
- \endlist
+/*!
+ \page creator-how-to-create-google-tests.html
+ \previouspage creator-how-tos.html
- \QC creates the test in the specified project directory. Edit the .cpp file
- to add private slots for each test function in your test. For more information
- about creating Qt tests, see \l{Creating a Test}.
+ \ingroup creator-how-to-test
- \section2 Creating Google Tests
+ \title Create Google tests
To create a Google test:
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Test Project} > \uicontrol {Google Test Project} >
- \uicontrol Choose to create a project with boilerplate code for a
- Google test.
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Test Project}.
+
+ \li Select \uicontrol {Google Test Project} > \uicontrol Choose to create
+ a project with boilerplate code for a Google test.
\li In the \uicontrol {Project and Test Information} dialog, specify
settings for the project and test:
+ \image qtcreator-new-project-google-test.webp {Project and Test Information - Google test}
+
\list 1
- \li In the \uicontrol {Test framework} field, select
+ \li In \uicontrol {Test framework}, select
\uicontrol {Google Test (shared libraries)} to link against
- Google Test, or \uicontrol {Google Test (headers only)} to
+ Google Test or \uicontrol {Google Test (headers only)} to
include necessary Google Test sources into the project.
- \li In the \uicontrol {Test suite name} field, enter a name for
+ \li In \uicontrol {Test suite name}, enter a name for
the test suite.
- \li In the \uicontrol {Test case name} field, enter a name for
+ \li In \uicontrol {Test case name}, enter a name for
the test case.
- \li Select the \uicontrol {Enable C++ 11} check box to
- support C++ 11 features in the test.
-
- \li In the \uicontrol {Google test repository} field, select
- a directory that has a clone of the googletest
- repository.
+ \li For a shared library test, you can set the path to a
+ Google C++ testing framework installation in
+ \uicontrol {Googletest install directory (optional)}.
- To use an installed Google C++ Testing framework instead,
- see \l{Setting Up the Google C++ Testing Framework}.
+ \li For a header-only test, you can set the path to
+ a googletest repository clone in
+ \uicontrol {Googletest source directory (optional)}.
- \li In the \uicontrol {Build system} field, select the build
- system to use for building the project: qmake, CMake, or
- Qbs.
+ \li In \uicontrol {Build system}, select the build system to use
+ for building the project: CMake, qmake, or Qbs.
\endlist
\endlist
\QC creates the test in the specified project directory.
+
For more information about creating Google tests, see the
\l{https://github.com/google/googletest/blob/master/docs/primer.md}
{Google Test Primer}.
- \section2 Creating Boost Tests
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
+
+/*!
+ \page creator-how-to-create-boost-tests.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-test
- To build and run Boost tests, you must have the Boost.Test installed on the
- development host. Typically, the Boost installation includes it. You can
- download Boost from \l{https://www.boost.org/}{Boost.org}.
+ \title Create Boost tests
+
+ To build and run Boost tests, install Boost.Test on the computer.
+ Typically, the Boost installation includes it. Download Boost from
+ \l{https://www.boost.org/}{Boost.org}.
If the compiler and build system can find the Boost libraries, you
do not need to specify the include directory when creating the test.
@@ -169,37 +159,49 @@
To create a Boost test:
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Test Project} > \uicontrol {Boost Test Project} >
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Test Project}.
+ \li Select \uicontrol {Boost Test Project} >
\uicontrol Choose to create a project with boilerplate code for a
Boost test.
\li In the \uicontrol {Project and Test Information} dialog, specify
settings for the project and test:
+ \image qtcreator-new-project-boost-test.webp {Project and Test Information - Boost test}
\list 1
- \li In the \uicontrol {Test framework} field, select
- \uicontrol {Boost Test (headers only)} to include needed
+ \li In \uicontrol {Test framework}, select
+ \uicontrol {Boost Test (header only)} to include needed
headers, or \uicontrol {Boost Test (shared libraries)}
to link against Boost Test.
- \li In the \uicontrol {Test suite name} field, enter a name for
+ \li In \uicontrol {Test suite name}, enter a name for
the test suite.
- \li In the \uicontrol {Test case name} field, enter a name for
+ \li In \uicontrol {Test case name}, enter a name for
the test case.
- \li In the \uicontrol {Boost include dir (optional)} field,
+ \li In \uicontrol {Boost include directory (optional)},
enter the path to the directory that has files needed
by Boost.Test, such as \e version.hpp and the \e test
subfolder that contains the test header files.
- \li In the \uicontrol {Build system} field, select the build
- system to use for building the project: qmake, CMake, or
- Qbs.
+ \li In \uicontrol {Build system}, select the build
+ system to use for building the project: CMake, qmake, or Qbs.
\endlist
\endlist
\QC creates the test in the project directory.
+
For more information about creating Boost tests, see
\l{https://www.boost.org/doc/libs/1_81_0/libs/test/doc/html/index.html}
{Boost.Test}.
- \section2 Creating Catch2 Tests
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
+
+/*!
+ \page creator-how-to-create-catch2-tests.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-test
+
+ \title Create Catch2 tests
To build and run Catch2 tests, you can either install Catch2
libraries and headers or use the single include header file in the
@@ -211,38 +213,50 @@
To create a basic Catch2 test:
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Test Project} > \uicontrol {Catch2 Test Project} >
- \uicontrol Choose to create a project with boilerplate code for a
- Catch2 test.
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Test Project}.
+ \li Select \uicontrol {Catch2 Test Project} > \uicontrol Choose to create
+ a project with boilerplate code for a Catch2 test.
\li In the \uicontrol {Project and Test Information} dialog, specify
settings for the project and test:
+ \image qtcreator-new-project-catch2-test.webp {Project and Test Information dialog - Catch2 test}
\list 1
- \li In the \uicontrol {Test framework} field, select
+ \li In \uicontrol {Test framework}, select
\uicontrol {Catch2 v3 (shared libraries)} to link against
Catch2 (recommended for version 3), or
\uicontrol {Catch2 v2 (header only)} to use a single header
include (recommended for version 2).
- \li In the \uicontrol {Test case name} field, specify a name
+ \li In \uicontrol {Test case name}, specify a name
for the test case file.
- \li Select the \uicontrol {Use Qt libraries} check box
- to use a self-defined main function and set up the project
- to use Qt features.
- \li In the \uicontrol {Catch2 include directory (optional)} field,
- you may enter a path to the directory that has the
+ \li In \uicontrol {Catch2 install directory (optional)},
+ you can enter a path to the directory that has the
Catch2 header files.
- \li In the \uicontrol {Build system} field, select the build
- system to use for building the project: qmake, CMake, or
- Qbs.
+ \li Select \uicontrol {Use own main} to use a self-defined
+ main function.
+ \li Select \uicontrol {Use Qt libraries} set up the project to
+ use Qt features.
+ \li In \uicontrol {Build system}, select the build
+ system to use for building the project: CMake, qmake, or Qbs.
\endlist
\endlist
\QC creates the test in the project directory.
+
For more information about creating Catch2 tests, see
\l{https://github.com/catchorg/Catch2/blob/master/docs/Readme.md}
{Catch2}.
- \section2 Creating CTest Based Tests
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
+
+/*!
+ \page creator-how-to-create-ctests.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-test
+
+ \title Create CTest Based Tests
CTest can execute tests for CMake based projects regardless of the test
framework. You configure tests in the project file, usually, CMakeLists.txt.
@@ -256,75 +270,52 @@
Add \c test_example as an executable before trying to register it as test.
It may be any executable command including arguments.
- For detailed information on how to use CTest see
+
+ For more information about how to use CTest, see
\l{https://gitlab.kitware.com/cmake/community/-/wikis/doc/ctest/Testing-With-CTest}
{Testing with CTest}.
- \section1 Adding Tests To Existing Test Projects
-
- Use a wizard to add a new file containing additional tests for projects
- containing a test project.
-
- Select \uicontrol File > \uicontrol {New File} > \uicontrol {Test Case} >
- \uicontrol Choose to add a new test case.
-
- \note This is only supported for code based test frameworks except for
- Qt Tests. There is no official support for having multiple test cases
- inside a single Qt test application and it is better to create
- a separate test sub project for each test case.
-
- In \uicontrol {Test framework}, select the test framework in use.
- This has to match the test framework you are using inside the project
- you want to add this file to.
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
- Depending on the chosen test framework, you can specify the test case
- name, test suite name, the used filename, or further options. For a
- detailed explanation, see the general information provided for each
- test framework on its own in \l {Creating Tests}.
+/*!
+ \page creator-how-to-add-tests-to-projects.html
+ \previouspage creator-how-tos.html
- \section1 Setting Up the Google C++ Testing Framework
+ \ingroup creator-how-to-test
- To build and run Google tests, install and configure the Google C++ Testing
- framework on the development host. You can either clone it from Git Hub or
- install it from an installation package.
+ \title Add tests to existing test projects
- To configure a project to use a cloned Google testing framework, edit the
- \c INCLUDEPATH variable in the project file (.pro) to include the source
- and \c include folders of Google Test's \c googletest and \c googlemock.
- Usually, you need to add the following subfolders:
+ To add a new file that has test cases to a project that contains a test
+ project:
- \list
- \li \c googletest
- \li \c googlemock
- \li \c googletest/include
- \li \c googlemock/include
+ \list 1
+ \li Go to \uicontrol File > \uicontrol {New File}.
+ \li Select \uicontrol {Test Case} > \uicontrol Choose.
+ \li In \uicontrol {Test framework}, select the test framework in use.
+ This has to match the test framework you are using inside the project
+ you want to add this file to.
+ \image qtcreator-new-file-test-case.webp {Test Information dialog}
\endlist
- Also, add the necessary files to the \c SOURCES variable. For example:
+ The settings to specify depend on the selected test framework.
- \list
- \li \c googletest/src/gtest-all.cc
- \li \c googlemock/src/gmock-all.cc
- \endlist
-
- To configure a project to use an installed Google testing framework package,
- add the following include paths to the .pro file:
+ \note This is only supported for code based test frameworks, except for
+ Qt Tests. There is no official support for having multiple test cases
+ inside a single Qt test application, and it is better to create
+ a separate test sub project for each test case.
- \list
- \li \c <googletest_install_path>/include/gtest
- \li \c <googletest_install_path>/include/gmock
- \endlist
+ \sa {Test}{How To: Test}, {Testing}, {Test Results}
+*/
- Then add linker options to be able to find the libraries and to link against
- them. For example, for qmake based projects, you typically need to add the
- following values to the .pro file:
+/*!
+ \page creator-how-to-build-and-run-tests.html
+ \previouspage creator-how-tos.html
- \list
- \li \c {LIBS += -lgtest -L<path_to_gtest_lib>}
- \li \c {LIBS += -lgmock -L<path_to_gmock_lib>}
- \endlist
+ \ingroup creator-how-to-test
- \section1 Building and Running Tests
+ \title Build and run tests
To build and run tests:
@@ -334,7 +325,7 @@
\li In the \uicontrol Tests view, select the tests to run.
- \li In the \uicontrol {Test Results}, select:
+ \li In the \uicontrol {Test Results} view, select:
\list
\li \inlineimage icons/run_small.png
@@ -359,20 +350,20 @@
To run the selected tests without deployment, select
\uicontrol {Run Selected Tests Without Deployment}.
- The functions to run tests are also available in the context menu in the
- \uicontrol Tests view and in \uicontrol Tools > \uicontrol Tests.
+ You can run tests also from the context menu in the \uicontrol Tests view or
+ by going to \uicontrol Tools > \uicontrol Tests.
\note If you enable both build system based and code based tests,
- you may run tests twice when using \uicontrol {Run All Tests} or
+ you may run tests twice when selecting \uicontrol {Run All Tests} or
\uicontrol {Run Selected Tests}. This happens if the tests can be
found by the code based test frameworks and are registered as test
with the build system.
If a test takes more than a minute to execute, the default timeout might
- stop the test execution. To increase the timeout, select \preferences >
+ stop the test execution. To increase the timeout, go to \preferences >
\uicontrol {Testing} > \uicontrol General.
- \section2 Selecting Tests to Run
+ \section1 Select tests to run
The \uicontrol Tests view shows all the tests found for the currently active
test frameworks in the current project. Select the test cases to run.
@@ -398,10 +389,10 @@
select \inlineimage icons/leafsort.png
(\uicontrol {Sort Naturally}).
- \section2 Running and Debugging Tests from Code Editor
+ \section1 Run and debug tests from code editor
You can run and debug tests in the file currently open in the code editor.
- To run all tests in the open file, select \uicontrol Tools >
+ To run all tests in the open file, go to \uicontrol Tools >
\uicontrol Tests > \uicontrol {Run Tests for Current File}.
\note Available only for code based test frameworks.
@@ -414,230 +405,395 @@
\note Availability for build system based tests depends on the build system
tool's abilities.
- \section1 Specifying Test Settings
+ \section1 Turn on build system based tests
- To customize the handling of tests, test frameworks, and test tools, select
- \preferences > \uicontrol {Testing} > \uicontrol General.
+ By default, \QC does not handle build system based tests to avoid
+ interference with code based parsers. To turn on build system based tests,
+ select the respective test tool in \preferences > \uicontrol Testing
+ > \uicontrol General.
- \image qtcreator-preferences-testing-general.webp {General tab in Testing preferences}
+ The detection of tests is usually much faster for build system based
+ tests as this normally does not involve scanning or parsing.
+ The information in the tests tree is usually more detailed
+ when using code based tests.
- You can customize some settings at project level. To change settings
- for the current project instead of globally, select \uicontrol Projects >
- \uicontrol {Project Settings} > \uicontrol {Testing}.
+ If you turn on both code based and build system based tests, you
+ may duplicate tests inside the tests tree.
+
+ \section1 Locate Qt Test data tags
+
+ To locate Qt Test data tags:
+
+ \list 1
+ \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos) to activate the locator.
+ \li Enter \c qdt, followed by a space.
+ \endlist
- In the \uicontrol {Active Test Frameworks} list, select tests for \QC to
- handle. To improve the performance of full scans for tests, disable
- test frameworks you do not use.
+ \sa {Test}{How To: Test}, {Select the build system}, {Testing},
+ {Test Results}
+*/
- To group related test cases for an active test framework, select the
- \uicontrol Group check box next to the framework name in the
- \uicontrol {Active Test Frameworks} list.
- By default, \QC groups tests that are in the same directory.
+/*!
+ \page creator-preferences-testing.html
+ \previouspage creator-reference.html
- By default, \QC uses a quarter of the available logical CPUs when
- scanning for tests. You can set the amount of worker threads used
- in \uicontrol {Scan threads}.
+ \ingroup creator-reference-preferences
- \QC omits internal messages and run configuration warnings for
- deduced configurations by default. To view them, deselect the
- \uicontrol {Omit internal messages} and
- \uicontrol {Omit run configuration warnings} check boxes.
+ \title Testing
- By default, test result output shows a maximum of 100,000 characters. The
- view automatically scrolls to show the latest results. To display
- full results, deselect the \uicontrol {Limit result output} check box.
- To disable automatic scrolling, deselect the
- \uicontrol {Automatically scroll results} check box.
+ \brief Customize the handling of tests, test frameworks, and test tools.
- Set the maximum number of lines in the test result tooltip and description
- in \uicontrol {Limit result description}.
+ To set preferences for handling tests, go to
+ \preferences > \uicontrol {Testing} > \uicontrol General.
- To group test results by the executable path that you use to run the
- tests, select \uicontrol {Group results by application}. This is useful
- if you have multiple test executables and run them all at once.
+ \image qtcreator-preferences-testing-general.webp {General tab in Testing preferences}
- To automatically run tests after successfully building the current project,
- select them in \uicontrol {Automatically run}.
+ The following table summarizes the general testing preferences.
- Sometimes, \QC cannot deduce which executable or run configuration to use.
- If \QC repeatedly asks you to select the tests to run when trying to execute
- tests, you can let it cache your choices and use them where appropriate. \QC
- clears the cache when you switch to another project, close the current one,
- or select \uicontrol {Reset Cached Choices}.
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Scan threads}
+ \li Set the amount of worker threads used when scanning for tests.
+ By default, \QC uses a quarter of the available logical CPUs.
+ \row
+ \li \uicontrol {Omit internal messages}
+ \li Omit internal messages.
+ \row
+ \li \uicontrol {Omit run configuration warnings}
+ \li Omit run configuration warnings for deduced configurations.
+ \row
+ \li \uicontrol {Limit result output}
+ \li By default, test result output shows a maximum of 100,000 characters.
+ \row
+ \li \uicontrol {Limit result description}
+ \li Set the maximum number of lines in the test result tooltip and
+ description.
+ \row
+ \li \uicontrol {Open results when tests start}
+ \li Show test results automatically when testing starts.
+ \row
+ \li \uicontrol {Open results when tests finish}
+ \li Show test results automatically when testing ends.
+ \row
+ \li \uicontrol {Open results only for unsuccesfull test runs}
+ \li Show test results only if thy contain failed, fatal, or
+ unexpectedly passed tests.
+ \row
+ \li \uicontrol {Automatically scroll results}
+ \li The view automatically scrolls to show the latest results.
+ \row
+ \li \uicontrol {Group results by application}
+ \li Group test results by the executable path that you use to run the
+ tests. This is useful if you have multiple test executables and run
+ them all at once.
+ \row
+ \li \uicontrol {Process arguments}
+ \li Pass arguments to the test executable that you specify in the
+ \l {Configure projects for running}{run configuration}. This is an
+ experimental feature that might cause the execution of the test
+ executable to fail.
+ \row
+ \li \uicontrol {Automatically run}
+ \li Automatically run all or selected tests after successfully building
+ the current project.
+ \row
+ \li \uicontrol {Timeout}
+ \li The maximum time in seconds to execute a test case.
+ \row
+ \li \uicontrol {Reset Cached Choices}
+ \li Sometimes, \QC cannot deduce which executable or run configuration to
+ use. If it repeatedly asks you to select the tests to run when trying
+ to execute tests, you can let it cache your choices and use them where
+ appropriate. \QC clears the cache when you switch to another project,
+ close the current one, or select this setting.
+ \row
+ \li \uicontrol {Active Test Frameworks}
+ \li Select tests for \QC to handle. To improve the performance of full
+ scans for tests, disable test frameworks you do not use.
+ \row
+ \li \uicontrol {Group}
+ \li Group related test cases for an active test framework.
+ By default, \QC groups tests that are in the same directory.
+ \endtable
- Select the \uicontrol {Process arguments} check box to pass arguments to the
- test executable that you specify in the \l {Configure projects for running}
- {run configuration}. This is an experimental feature that might cause the
- execution of the test executable to fail.
+ To select the testing framework for the current project, go to
+ \uicontrol Projects > \uicontrol {Project Settings} > \uicontrol {Testing}.
- \section2 Specifying Settings for Running Qt Tests
+ \section1 Qt Tests
- The code inside a benchmark test is measured, and possibly also repeated
- several times in order to get an accurate measurement. This depends on the
- measurement back-end that you can select in the
- \uicontrol {Benchmark Metrics} group in \preferences > \uicontrol {Testing} >
- \uicontrol {Qt Test}:
- walltime, CPU tick counter, event counter, Valgrind Callgrind, and Linux
- Perf. For more information, see \l{Creating a Benchmark}.
+ To set preference for Qt tests, go to \preferences > \uicontrol {Testing} >
+ \uicontrol {Qt Test}.
\image qtcreator-preferences-testing-qttest.webp {Qt Tests tab in Testing preferences}
- To receive verbose output when running benchmarks, select the
- \uicontrol {Verbose benchmarks} check box.
-
- To allow the debugger to interrupt Qt tests on assertions, select the
- \uicontrol {Disable crash handler while debugging} check box.
+ The code inside a benchmark test is measured, and possibly also repeated
+ several times in order to get an accurate measurement. This depends on the
+ measurement back-end that you select in \uicontrol {Benchmark Metrics}:
- To record information about signals and slots in the test log, select the
- \uicontrol {Log signals and slots} check box.
+ \list
+ \li Walltime
+ \li CPU tick counter
+ \li Event counter
+ \li Valgrind Callgrind
+ \li Linux Perf
+ \endlist
- To explicitly limit the maximum number of warnings in the test log, select
- the \uicontrol {Limit warnings} check box and set the limit. Set it to 0 if
- you want no limit at all. The default number is 2000.
+ For more information, see \l{Creating a Benchmark}.
- To check for Qt Quick Tests that are derived from TestCase, select the
- \uicontrol {Check for derived Qt Quick tests} check box.
+ The following table summarizes the other Qt test preferences.
- \note This feature is rather expensive and increases the
- scan time significantly.
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Disable crash handler while debugging}
+ \li Allow the debugger to interrupt Qt tests on assertions.
+ \row
+ \li \uicontrol {Use XML output}
+ \li XML output avoids parsing issues, but plain text is more human
+ readable.
+ \note Plain text misses some information, such as duration.
+ \row
+ \li \uicontrol {Verbose benchmarks}
+ \li Receive verbose output when running benchmarks.
+ \row
+ \li \uicontrol {Log signals and slots}
+ \li Record information about signals and slots in the test log.
+ \row
+ \li \uicontrol {Limit warnings}
+ \li Explicitly limit the maximum number of warnings in the test log.
+ Set the limit to 0 if you want no limit at all. The default limit
+ is 2000.
+ \row
+ \li \uicontrol {Check for derived Qt Quick tests}
+ \li Check for Qt Quick Tests that are derived from TestCase.
+ \note This feature is rather expensive and increases the scan time
+ significantly.
+ \row
+ \li \uicontrol {Find user-defined locations}
+ \li Parse messages for the following pattern and use it as location
+ information: \c {file://filepath:line}
+
+ where \":line\" is optional.
+
+ \note If the patterns are used in code, the location information
+ for debug messages and other messages might improve, at the risk
+ of some incorrect locations and lower performance.
+ \endtable
- \section2 Specifying Settings for Running Google Tests
+ \section1 Google Tests
- To specify settings for running Google tests, select \preferences >
+ To specify settings for running Google tests, go to \preferences >
\uicontrol {Testing} > \uicontrol {Google Test}.
\image qtcreator-preferences-testing-googletest.webp {Gooble Test tab in Testing preferences}
- To run disabled tests, select the \uicontrol {Run disabled tests} check box.
+ The following table summarizes the Google test preferences.
- To turn assertion failures into C++ exceptions, select the
- \uicontrol {Throw on failure} check box.
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Run disabled tests}
+ \li Execute disabled tests during a test run.
+ \row
+ \li \uicontrol {Throw on failure}
+ \li Turn assertion failures into C++ exceptions.
+ \row
+ \li \uicontrol {Break on failure while debugging}
+ \li Turn failures into debugger breakpoints.
+ \row
+ \li \uicontrol {Repeat tests}
+ \li Run several iterations of the tests.
+ \row
+ \li \uicontrol Iterations
+ \li The number of times to run the tests.
+ \row
+ \li \uicontrol {Shuffle tests}
+ \li Make sure that the tests are independent and repeatable by running
+ them in a different order each time.
+ \row
+ \li \uicontrol Seed
+ \li The seed for initializing the randomizer. The value 0 generates
+ a seed based on the current timestamp.
+ \row
+ \li \uicontrol {Group mode}
+ \li Group Google tests by using a \uicontrol {GTest Filter}.
+ \row
+ \li \uicontrol {Active filter}
+ \li The GTest filter to use.
+ \endtable
- To turn failures into debugger breakpoints, select the
- \uicontrol {Break on failure while debugging} check box.
+ For more information about GTest filters, see
+ \l{https://github.com/google/googletest/blob/master/docs/advanced.md#running-a-subset-of-the-tests}
+ {Running a Subset of the Tests}.
- To run several iterations of the tests, select the \uicontrol {Repeat tests}
- check box and enter the number of times to run the tests in the
- \uicontrol Iterations field. To make sure that the tests are independent and
- repeatable, run them in a different order each time by selecting the
- \uicontrol {Shuffle tests} check box. Set the seed for initializing the
- randomizer in the \uicontrol Seed field. The value 0 generates a seed
- based on the current timestamp.
+ \section1 Boost Tests
+ To specify settings for running Boost tests, go to \preferences >
+ \uicontrol {Testing} > \uicontrol {Boost Test}.
- To group Google tests by using a GTest filter, select
- \uicontrol {GTest Filter} in the \uicontrol {Group mode} field,
- and specify the filter in the \uicontrol {Active filter}
- field. For more information about GTest filters, see
- \l{https://github.com/google/googletest/blob/master/docs/advanced.md#running-a-subset-of-the-tests}
- {Running a Subset of the Tests}.
+ \image qtcreator-preferences-testing-boosttest.webp {Boost Test tab in Testing preferences}
- \section2 Specifying Settings for Running Boost Tests
+ The following table summarizes the Boost test preferences.
- \list 1
- \li To specify settings for running Boost tests, select \preferences >
- \uicontrol {Testing} > \uicontrol {Boost Test}.
- \image qtcreator-preferences-testing-boosttest.webp {Boost Test tab in Testing preferences}
- \li In the \uicontrol {Log format} field, select the error report
- format to specify the type of events to record in the
- test report.
- \li In the \uicontrol {Report level} field, select the verbosity level
- of the test result report. Select \uicontrol No if you do not want
- a report.
- \li Select the \uicontrol Randomize check box to execute the tests in
- a random order, using the seed specified in the \uicontrol Seed
- field for initializing the randomizer. The value 0 means no
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Log format}
+ \li The type of events to record in the test report.
+ \row
+ \li \uicontrol {Report level}
+ \li The verbosity level of the test result report. Select \uicontrol No
+ if you do not want a report.
+ \row
+ \li \uicontrol Randomize
+ \li Execute the tests in a random order.
+ \row
+ \li \uicontrol Seed
+ \li The seed for initializing the randomizer. The value 0 means no
randomization, the value 1 uses the current time, and any other
value generates a random seed.
- \li Select the \uicontrol {Catch system errors} check box to catch
- system errors.
- \li Select the \uicontrol {Floating point exceptions} check box to
- detect floating point exceptions.
- \li Select the \uicontrol {Detect memory leaks} check box to detect
- memory leaks.
- \endlist
+ \row
+ \li \uicontrol {Catch system errors}
+ \li Catch or ignore system errors.
+ \row
+ \li \uicontrol {Floating point exceptions}
+ \li Detect floating point exception traps.
+ \row
+ \li \uicontrol {Detect memory leaks}
+ \li Detect memory leaks.
+ \endtable
- \section2 Specifying Settings for Running Catch2 Tests
- \list 1
- \li To specify settings for running Catch2 tests, select
- \preferences > \uicontrol {Testing} > \uicontrol {Catch Test}.
- \image qtcreator-preferences-testing-catchtest.webp {Catch Test tab in Testing preferences}
- \li Select the \uicontrol {Show success} check box to show succeeding
- expressions as well. By default Catch2 will print only fails.
- \li Select the \uicontrol {Break on failure while debugging} check box
- to turn failures into debugger breakpoints.
- \li Select the \uicontrol {Skip throwing assertions} check box to skip
- any assertion that test for throwing an exception.
- \li Select the \uicontrol {Visualize whitespace} check box to turn
- whitespace into escape sequences.
- \li Select the \uicontrol {Warn on empty tests} check box to get a
- warning when a test case does not check any assertion.
- \li Select the \uicontrol {Abort after} check box to abort the test
- after the number of failures specified inside the spin box.
- \li Select the \uicontrol {Benchmark samples} check box to specify
- the number of samples to collect while running benchmarks.
- \li Select the \uicontrol {Benchmark resamples} check box to specify
- the number of resamples to use for statistical bootstrapping after
+ \section1 Catch2 Tests
+
+ To specify settings for running Catch2 tests, go to \preferences >
+ \uicontrol {Testing} > \uicontrol {Catch Test}.
+
+ \image qtcreator-preferences-testing-catchtest.webp {Catch Test tab in Testing preferences}
+
+ The following table summarizes the Catch2 test preferences.
+
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Show success}
+ \li Show succeeding expressions as well. By default Catch2 prints only
+ failed expressions.
+ \row
+ \li \uicontrol {Break on failure while debugging}
+ \li Turn failures into debugger breakpoints.
+ \row
+ \li \uicontrol {Skip throwing assertions}
+ \li Skip assertions that test for thrown exceptions.
+ \row
+ \li \uicontrol {Visualize whitespace}
+ \li Turn whitespace into escape sequences.
+ \row
+ \li \uicontrol {Abort after}
+ \li Abort the test after the number of failures specified inside the box.
+ \row
+ \li \uicontrol {Benchmark samples}
+ \li The number of samples to collect while running benchmarks.
+ \row
+ \li \uicontrol {Benchmark resamples}
+ \li The number of resamples to use for statistical bootstrapping after
benchmarking.
- \li Select the \uicontrol {Benchmark confidence interval} check box
- to specify the confidence interval for statistical bootstrapping.
- \li Select the \uicontrol {Benchmark warmup time} check box to specify
- the warmup time for each test before benchmarking starts.
- \li Select the \uicontrol {Disable analysis} check box to disable
- statistical analysis and bootstrapping.
- \endlist
+ \row
+ \li \uicontrol {Benchmark confidence interval}
+ \li The confidence interval for statistical bootstrapping.
+ \row
+ \li \uicontrol {Benchmark warmup time}
+ \li The warmup time for each test before benchmarking starts.
+ \row
+ \li \uicontrol {Disable analysis}
+ \li Disable statistical analysis and bootstrapping.
+ \endtable
\section2 Specifying Settings for Running CTest-Based Tests
- \list 1
- \li To specify settings for running CTest-based tests, select
- \preferences > \uicontrol {Testing} > \uicontrol {CTest}.
- \image qtcreator-preferences-testing-ctest.webp {CTest tab in Testing preferences}
- \li Select the \uicontrol {Output on failure} check box to show test
- specific output if a test fails. Contrary to the CTest default
- this is enabled by default.
- \li Select \uicontrol {Schedule random} to execute the tests in
- random order.
- \li Select \uicontrol {Stop on failure} to automatically stop the
- test execution on the first failing test.
- \li In the \uicontrol {Output mode} field, select the verbosity level
- of the CTest output.
- \note This only influences the output on the text display.
- \li Select \uicontrol {Repeat tests} if you want to re-run tests
- under certain circumstances.
- \li In the \uicontrol {Repetition mode} field, select the mode for
- re-running tests. Set the maximum count for repeating a test in
- the \uicontrol {Count} field.
- \li Select \uicontrol {Run in parallel} to run the tests in parallel
- using the specified number of \uicontrol {Jobs}.
- \li Select \uicontrol {Test load} to limit the parallel
+
+ To specify settings for running CTest-based tests, go to \preferences >
+ \uicontrol {Testing} > \uicontrol {CTest}.
+
+ \image qtcreator-preferences-testing-ctest.webp {CTest tab in Testing preferences}
+
+ The following table summarizes the CTest preferences.
+
+ \table
+ \header
+ \li Setting
+ \li Value
+ \row
+ \li \uicontrol {Output on failure}
+ \li Show test specific output if a test fails. Contrary to the
+ CTest default this setting is on by default.
+ \row
+ \li \uicontrol {Schedule random}
+ \li Execute the tests in random order.
+ \row
+ \li \uicontrol {Stop on failure}
+ \li Automatically stop the test execution on the first failing test.
+ \row
+ \li \uicontrol {Output mode},
+ \li The verbosity level of the CTest output.
+ \note This setting only influences the output on the text display.
+ \row
+ \li \uicontrol {Repeat tests}
+ \li Re-run tests, as determined by \uicontrol {Repetition mode}. Set the
+ maximum number of times for repeating a test in \uicontrol {Count}.
+ \row
+ \li \uicontrol {Run in parallel}
+ \li Run the tests in parallel using the specified number of
+ \uicontrol {Jobs}. In \uicontrol {Test load}, limit the parallel
execution. CTest will not start a new test if it would cause the
CPU load to pass the threshold set in \uicontrol {Threshold}.
- \endlist
+ \endtable
+
+ \sa {Test}{How To: Test}, {Test Results}
+*/
- \section1 Viewing Test Output
+/*!
+ \page creator-test-results.html
+ \previouspage creator-reference.html
- 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.
+ \ingroup creator-reference-output-views
+
+ \title Test Results
+
+ \brief View test results.
- \section2 Qt Test Output
+ View and filter test results in the \uicontrol{Test Results} view.
+
+ \image qtcreator-test-results.webp {Visual display in the Test Results view}
+
+ \section1 Qt Test Output
+
+ The \uicontrol{Test Results} view shows Qt and Qt Quick test results
+ in XML format and other test results in plain text format.
XML can be parsed more easily and reliably than plain text. However, if a Qt
or Qt Quick test crashes, it might not produce complete XML
code that can be parsed, which might lead to information loss. You might see
the lost information when viewing the results as plain text.
- To view the
- results of Qt and Qt Quick tests as plain text, select \preferences >
- \uicontrol {Testing} > \uicontrol {Qt Test}, and
- then deselect the \uicontrol {Use XML output} check box. Then select the
- \inlineimage icons/text.png
- (\uicontrol {Switch Between Visual and Text Display}) button in
+ To view the results of Qt and Qt Quick tests as plain text, go to
+ \preferences > \uicontrol {Testing} > \uicontrol {Qt Test} and then clear
+ \uicontrol {Use XML output}. Then select \inlineimage icons/text.png
+ (\uicontrol {Switch Between Visual and Text Display}) in
\uicontrol {Test Results} to switch to the text display.
- \section2 Summary of Messages
+ \section1 Summary of Messages
- The following table lists the messages that \uicontrol {Test Results}
- displays:
+ The following table lists the messages that \uicontrol {Test Results} shows.
\table
\header
@@ -685,11 +841,17 @@
\endtable
+ \section1 Filtering Test Results
+
To view only messages of a particular type, select
- \inlineimage icons/filtericon.png
- (\uicontrol {Filter Test Results}), and then select the types of messages to
- show. To show all messages, select \uicontrol {Check All Filters}. To
- deselect all message types, select \uicontrol {Uncheck All Filters}.
+ \inlineimage icons/filtericon.png (\uicontrol {Filter Test Results}) and
+ then select the types of messages to show.
+
+ To show all messages, select \uicontrol {Check All Filters}.
+
+ To deselect all message types, select \uicontrol {Uncheck All Filters}.
+
+ \section1 Blacklisting Tests
Since Qt 5.4, you can add a BLACKLIST file for tests. It is mainly used
internally by the Qt CI system.
@@ -712,4 +874,6 @@
\li Blacklisted test case passed even though it was expected to fail.
\endtable
+
+ \sa {Test}{How To: Test}, {Test Results}
*/
diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-to-silver-searcher.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-to-silver-searcher.qdoc
index b632145832..4f60c3b569 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-how-to-silver-searcher.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-how-to-silver-searcher.qdoc
@@ -49,5 +49,5 @@
\endlist
\sa {Enable and disable plugins}, {Search}{How To: Search},
- {Batch edit environment settings}
+ {Edit environment settings}
*/
diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc
index 3696b29263..07459d9a9b 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc
@@ -93,6 +93,18 @@
\generatelist creator-how-to-get-help
+ \section1 Test
+
+ \QC supports both \e {code based tests} and \e {build system based tests}.
+ Code based testing offers special handling for particular testing
+ frameworks that strongly ties to the underlying code models or
+ specialized parsers. Build system based testing is independent from any
+ testing frameworks. It retrieves information directly from the underlying
+ build system and uses it or even the build system as such to execute the
+ respective tests.
+
+ \generatelist creator-how-to-test
+
\section1 Use \QC
\generatelist creator-how-to-use
@@ -218,13 +230,99 @@
\title Perform calculations
- Open the \uicontrol Locator with \key {Ctrl+K} and type =, followed by a space.
- You can now do basic calculations, with options to copy the results to the clipboard
- by navigating through the entries and pressing \key {Enter}.
+ To do basic calculations in the locator:
- \image qtcreator-locator.webp "List of locator filters"
+ \list 1
+ \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos) to activate the locator.
+ \li Enter \c =, followed by a space.
+ \image qtcreator-locator.webp {List of locator filters}
+ \li Perform calculations.
+ \endlist
- \sa {Executing JavaScript}
+ Navigate through the entries and press \key {Enter} to copy the results to
+ the clipboard
+
+ \section1 Built-in functions
+
+ Beside simple mathematical operations, like ((1 + 2) * 3), the following
+ built-in functions exist:
+
+ \table
+ \header
+ \li Function
+ \li Purpose
+ \row
+ \li abs(x)
+ \li Returns the absolute value of x
+ \row
+ \li acos(x)
+ \li Returns the arccosine of x, in radians
+ \row
+ \li asin(x)
+ \li Returns the arcsine of x, in radians
+ \row
+ \li atan(x)
+ \li Returns the arctangent of x, in radians
+ \row
+ \li atan2(x, y)
+ \li Returns the arctangent of the quotient of its arguments
+ \row
+ \li bin(x)
+ \li Returns the binary representation of x
+ \row
+ \li ceil(x)
+ \li Returns the value of x rounded up to the next integer
+ \row
+ \li cos(x)
+ \li Returns the cosine of x (x is in radians)
+ \row
+ \li exp(x)
+ \li Returns the value of E to the power of x
+ \row
+ \li e()
+ \li Returns Euler's number E (2.71828...)
+ \row
+ \li floor(x)
+ \li Returns the value of x rounded down to the next integer
+ \row
+ \li hex(x)
+ \li Returns the hexadecimal representation of x
+ \row
+ \li log(x)
+ \li Returns the natural logarithm (base E) of x
+ \row
+ \li max([value1[, value2[, ...]]])
+ \li Returns the highest value of the given numbers
+ \row
+ \li min([value1[, value2[, ...]]])
+ \li Returns the lowest value of the given numbers
+ \row
+ \li oct(x)
+ \li Returns the octal representation of x
+ \row
+ \li pi()
+ \li Returns PI (3.14159...)
+ \row
+ \li pow(x, y)
+ \li Returns the value of x to the power of y
+ \row
+ \li random()
+ \li Returns a random number between 0 and 1
+ \row
+ \li round(x)
+ \li Returns the value of x rounded to the next integer
+ \row
+ \li sin(x)
+ \li Returns the sine of x (x is in radians)
+ \row
+ \li sqrt(x)
+ \li Returns the square root of x
+ \row
+ \li tan(x)
+ \li Returns the tangent of x (x is in radians)
+ \endtable
+
+ \sa {Navigate with locator}, {Locator}
*/
/*!
@@ -269,7 +367,7 @@
\li Go to \uicontrol {Follow Symbol Under Cursor} in the context menu.
\endlist
- \sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Searching with the Locator}
+ \sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Navigate with locator}
*/
/*!
diff --git a/doc/qtcreator/src/howto/creator-sessions.qdoc b/doc/qtcreator/src/howto/creator-sessions.qdoc
index 348bea2139..e047169118 100644
--- a/doc/qtcreator/src/howto/creator-sessions.qdoc
+++ b/doc/qtcreator/src/howto/creator-sessions.qdoc
@@ -82,7 +82,12 @@
\section1 Open sessions
- To switch between sessions, select \uicontrol {Open}.
+ To switch between sessions:
+
+ \list
+ \li Go to \uicontrol File > \uicontrol Sessions, and select a session.
+ \li Select \uicontrol {Open} in \uicontrol {Session Manager}.
+ \endlist
\if defined(qtcreator)
@@ -93,17 +98,30 @@
\image qtcreator-welcome-session.png
- You can also use the \c t locator filter to open a session. For more
- information, see \l{Searching with the Locator}.
-
To view more information about a session, select the down arrow icon that
appears when you move the mouse cursor over the session name. Select actions
to clone, rename, and delete sessions.
When you start \QC from the command line, you can give the name of
- a session as an argument and \QC will start with this session.
+ a session as an argument to start \QC with this session.
- \sa {Command-Line Options}, {Searching with the Locator}
- \endif
+ \section1 Open sessions from the locator
+
+ Use the \c t filter that triggers menu commands to open sessions.
+ To locate a session:
+
+ \list 1
+ \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos) to activate the locator.
+ \li Enter:
+ \list
+ \li \c {t} \e {<session_name>}
+ \li \c {t sess} \e {<session_name>}
+ \endlist
+ where \e <session_name> is the name of the session to open.
+ \li Double-click the session name to open it.
+ \endlist
+
+ \sa {Navigate with locator}, {Command-Line Options}
+ \endif
*/
diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc
index eb0bcf8ec3..3a74a671e2 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc
@@ -27,7 +27,7 @@
\image qt-app-dev-flow.webp {Application development life-cycle}
\caption Application development life-cycle
- \section1 Projects
+ \section1 Managing Projects
First, you need a \e project. \QC relies on a separate build system, such as
CMake, qmake, or Qbs for building the project. From the build system, \QC
@@ -63,12 +63,12 @@
For more information, see \l{Manage Projects}{How To: Manage Projects}.
- \section1 User Interfaces
+ \section1 Designing User Interfaces
\image heartgame-start.webp {Heart Rate Game}
- To create intuitive, modern-looking, fluid user interfaces, use \l{Qt Quick}
- and \l{Qt Design Studio Manual}{\QDS}:
+ To create intuitive, modern-looking, fluid user interfaces (UI), use
+ \l{Qt Quick} and \l{Qt Design Studio Manual}{\QDS}:
\list
\li \l {\QMLD}
@@ -101,7 +101,7 @@
For more information, see \l{Design UIs}{How To: Design UIs} and
\l{UI Design}.
- \section1 Code
+ \section1 Editing Code
Writing, editing, and navigating in source code are core tasks in application
development. Therefore, the code editor is one of the key components of \QC.
@@ -116,13 +116,13 @@
such as Python, for which a \e {language server} is available that provides
information about the code to IDEs.
- \section2 Find
+ \section2 Finding
Use the incremental and advanced search to search in currently open projects
or files on the file system or use the locator to browse through projects,
files, classes, functions, documentation, and file systems.
- \section2 Refactor
+ \section2 Refactoring Code
\e {Code refactoring} is the process of improving and simplifying code
without modifying the existing functionality of an application. Find
@@ -137,7 +137,7 @@
\li Simplify code structure
\endlist
- \section2 Configure the Editor
+ \section2 Configuring the Text Editor
Configure the text editor to suit your specific needs. Change the fonts,
colors, highlighting, and indentation.
@@ -147,7 +147,7 @@
For more information, see \l{Edit Code}{How To: Edit Code} and \l{Editors}.
- \section1 Build, Deploy, and Run
+ \section1 Building, Deploying, and Running Applications
Run and deploy Qt applications that you build for different target
platforms or with different compilers, debuggers, or Qt versions.
@@ -182,7 +182,7 @@
For more information, see \l{Connecting Devices} and \l{Deploying to Devices}.
- \section2 Preview QML
+ \section2 Previewing QML
Use the QML live preview to preview a QML file or an entire Qt Quick
application on the desktop, as well as on Android and embedded Linux
@@ -191,7 +191,7 @@
For more information, see \l{Validating with Target Hardware}.
- \section1 Debug
+ \section1 Debugging Applications
A debugger lets you see what happens \e inside an application while it runs
or when it crashes. A debugger can do the following to help you find errors
@@ -214,7 +214,7 @@
For more information, see \l{Debugging}.
- \section1 Analyze
+ \section1 Analyzing Source Code
Devices have limited memory and CPU power, so you should use them carefully.
\QC integrates code analysis tools for detecting memory leaks, profiling
@@ -227,17 +227,42 @@
For more information, see \l{Analyzing Code}.
- \section1 Autotest
+ \section1 Running Tests
- Create, build and run Qt tests, Qt Quick tests, Google tests, and Boost tests
- to unit test applications and libraries.
+ \QC supports both \e {code based tests} and \e {build system based tests}.
+ Code based testing offers special handling for particular testing
+ frameworks that strongly ties to the underlying code models or
+ specialized parsers. Build system based testing is independent from any
+ testing frameworks. It retrieves information directly from the underlying
+ build system and uses it or even the build system as such to execute the
+ respective tests.
+
+ \QC integrates the following testing frameworks for unit testing
+ applications and libraries:
+
+ \list
+ \li \l{https://www.boost.org/doc/libs/1_81_0/libs/test/doc/html/index.html}
+ {Boost.Test}
+ \li \l{https://github.com/catchorg/Catch2}{Catch2 test framework}
+ \li \l{https://github.com/google/googletest}{Google C++ Testing Framework}
+ \li \l{Qt Quick Test} framework
+ \li \l{Qt Test} framework
+ \endlist
+
+ In addition, \QC offers build system based support for
+ \l{https://cmake.org/cmake/help/latest/manual/ctest.1.html}{CTest}.
+
+ You can use \QC to create, build, and run code based tests for your
+ projects.
+
+ \image qtcreator-autotests.png
Map AUTs (Application Under Test) to \QC and run Squish test suites
and cases from it.
- For more information, see \l{Running Autotests} and \l{Using Squish}.
+ For more information, see \l{Test}{How To: Test} and \l{Using Squish}.
- \section1 Publish
+ \section1 Publishing Applications
Create installation packages for mobile devices that you publish to
application stores and other channels. You must make sure that the
diff --git a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc
index c26df6eb3e..1fe8e41e28 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc
@@ -37,7 +37,7 @@
\section1 Preferences
- Set prefecerences that apply globally to all projects.
+ Set preferences that apply globally to all projects.
\annotatedlist creator-reference-preferences
diff --git a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc b/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc
index 26ef6701d6..34297d34fa 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc
@@ -12,7 +12,7 @@
\page creator-testing.html
\nextpage creator-debugging.html
- \title Testing
+ \title Debugging and Analyzing
\image front-testing.png
@@ -35,11 +35,6 @@
from \QC. However, the QML Profiler is installed as part of \QC
for profiling Qt Quick applications.
- \li \l{Running Autotests}
-
- Create, build and run Qt tests, Qt Quick tests, Google
- tests, and Boost tests using \QC.
-
\li \l{Using Squish}
Map AUTs to \QC and run Squish test suites and cases from it.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
index d03263d462..83808a6a1e 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
@@ -18,9 +18,8 @@
\image qtcreator-new-file.webp {New File wizard}
\note You can also use the \c f locator filter to create a new
- file and open it in the editor. For more information, see
- \l {Creating Files and Directories from Locator}. However, you must
- manually add the created file to a project.
+ file and open it in the editor. However, you must manually add
+ the created file to a project.
\section1 Select file type
@@ -74,7 +73,8 @@
\li Empty Nim source and script files.
\endtable
- \sa {Add Files}{How To: Add Files}, {Create UML-style models},
+ \sa {Navigate with locator}, {Add Files}{How To: Add Files},
+ {Add tests to existing test projects}, {Create UML-style models},
{Use project wizards}
*/
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
index 13b7d6eb9a..512a3886ab 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-building.qdoc
@@ -81,7 +81,7 @@
Select \uicontrol {Build for Run Configuration} to
build the executable that corresponds to the selected run configuration.
- You can also use the \c cm filter in the \l {Searching with the Locator}
+ You can also use the \c cm filter in the \l {Navigate with locator}
{locator}.
To remove all build artifacts, select one of \uicontrol {Clean} menu commands.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
index 60fb9686fd..1efac95137 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
@@ -168,8 +168,8 @@
\uicontrol Impl there.
\sa {Assign keyboard shortcuts}, {Activate kits for a project},
- {Create files}, {Create Projects}{How To: Create Projects},
- {Creating Projects}
+ {Create files}, {Test}{How To: Test},
+ {Create Projects}{How To: Create Projects}, {Creating Projects}
*/
/*!
@@ -198,7 +198,7 @@
directory in the \l {File System} view.
Declaring files as a part of the project also makes them visible to the
- \l{Searching with the Locator}{locator} and
+ \l{Navigate with locator}{locator} and
\l{Search in projects or file systems}{project-wide search}.
\section1 CMake Projects
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc
index d856f420c5..4d0e903863 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc
@@ -152,7 +152,7 @@
\li Select \uicontrol Change to modify environment variable values for
build environments in the \uicontrol {Edit Environment Changes}
dialog. For more information about how to add and remove variable
- values, see \l{Batch edit environment settings}.
+ values, see \l{Edit environment settings}.
\row
\li \uicontrol {Force UTF-8 MSVC compiler output}
\li Either switches the language of MSVC to English or keeps the
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc
index 3f200320fc..ce809fc536 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc
@@ -16,7 +16,7 @@
By default, the environment in which \QC was started is used and modified
to include the Qt version. Depending on the selected Qt version, \QC
automatically sets the necessary environment variables. You can edit
- existing environment variables or add, reset and unset new variables
+ existing environment variables or add, reset, and unset variables
based on your project requirements.
The final environment is specified separately for each kit. With
@@ -35,7 +35,7 @@
To globally change the environment from the one in which \QC is started,
select \preferences > \uicontrol Environment > \uicontrol System, and then
- select \uicontrol Change in the \uicontrol Environment field.
+ select \uicontrol Change in \uicontrol Environment.
\image qtcreator-preferences-environment-system.webp "Environment preferences System tab"
@@ -47,42 +47,43 @@
\image qtcreator-projects-environment.webp {Environment tab in Project Settings}
+ You can edit existing environment variables or add, reset, unset, or
+ temporarily disable variables.
+
\section1 Specify the build environment
- Specify the build environment to use for a kit in \uicontrol Projects >
- \uicontrol {Build Settings} > \uicontrol {Build Environment}.
+ To specify the build environment to use for a kit, go to \uicontrol Projects
+ > \uicontrol {Build Settings} and select \uicontrol {Build Environment}.
+
+ \image qtcreator-build-environment.webp {Build Environment section in Build Settings}
+
+ To change the values of environment variables for the build environment,
+ select the variable and then select \uicontrol Edit. Enter the new value
+ in the editor on the righ side.
- \image qtcreator-build-environment.png {Build Environment section in Build Settings}
+ To add new variables, select \uicontrol {Add}.
\section2 Clear the build environment
- To build with a clean system environment, select the \uicontrol {Clear
- system environment} check box. \QC discards the current environment, and
- populates a clean system environment with the environment variables that
+ To build with a clean system environment, select
+ \uicontrol {Clear system environment}. \QC discards the current environment,
+ and populates a clean system environment with the environment variables that
the compilers and tools need. Therefore, the environment is never totally
empty, even after you clear it.
\section1 Specify the run environment
\QC automatically selects the environment used for running the application
- based on the \l{glossary-device}{device} type. You can edit the environment
- or select another environment in \uicontrol Projects >
- \uicontrol {Run Settings} > \uicontrol {Environment}.
+ based on the \l{glossary-device}{device} type. To edit the environment
+ or select another environment, go to \uicontrol Projects >
+ \uicontrol {Run Settings} and select \uicontrol {Environment}.
- You can edit existing environment variables or add, reset and unset new
- variables.
-
- \image qtcreator-run-environment.png {Environment section in Run Settings}
+ \image qtcreator-run-environment.webp {Environment section in Run Settings}
When running on the desktop, the \uicontrol {Build Environment} is used by
default, but you can also use the \uicontrol {System Environment} without the
additions made to the build environment.
- To modify the environment variable values for the run environment,
- double-click environment variables or their values and change them inline,
- or select \uicontrol {Batch Edit} to change several variable values at a
- time.
-
\section2 Clean the run environment
To run in a clean system environment, select \uicontrol {Clean Environment}.
@@ -107,32 +108,32 @@
\section2 Use device environment
- When running on a mobile device connected to the development host, \QC
+ When you run applications on a mobile device connected to the computer, \QC
fetches information about the \uicontrol {Device Environment} from the device.
Usually, it does not make sense to edit the device environment.
- \sa {Batch edit environment settings}, {Configure projects for building},
+ \sa {Edit environment settings}, {Configure projects for building},
{Configure projects for running}, {Use Qt Creator variables}
*/
/*!
- \page creator-how-to-batch-edit-environment-settings.html
+ \page creator-how-to-edit-environment-settings.html
\previouspage creator-how-tos.html
\ingroup creator-how-to-projects
- \title Batch edit environment settings
+ \title Edit environment settings
You can change the environment variable values for build or run environments
- either for a particular project or globally for all projects in the
- \uicontrol {Edit Environment} dialog:
+ either for a particular project or globally:
\list
- \li To change values globally, select \uicontrol Change in the
- \l {Globally change the environment}{global environment preferences}.
- \li To change values for a project, select \uicontrol {Batch Edit} in the
- \l {Change the environment for a project}{project},
- \l {Specify the build environment}{build}, or
+ \li To change values globally, go to \preferences >
+ \uicontrol Environment > \uicontrol System, and select
+ \uicontrol Change in \uicontrol {Environment}.
+ \li To change values for a project, select \uicontrol Edit or
+ \uicontrol {Add} in the \l {Change the environment for a project}
+ {project}, \l {Specify the build environment}{build}, or
\l {Specify the run environment}{run} environment settings.
\endlist
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
index 27ff2fccff..7902f21938 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
@@ -79,6 +79,7 @@
the project:
\list
+ \li \l{Link projects to Axivion dashboards}{Axivion}
\li \l{Specify clangd settings}{Clangd}
\li \l{Speficy Clang tools settings}{Clang Tools}
\li \l{Specify code style}{C++ Code Style}
diff --git a/doc/qtcreator/src/projects/creator-projects-running.qdoc b/doc/qtcreator/src/projects/creator-projects-running.qdoc
index 43d80f08c8..0b39d0d707 100644
--- a/doc/qtcreator/src/projects/creator-projects-running.qdoc
+++ b/doc/qtcreator/src/projects/creator-projects-running.qdoc
@@ -49,7 +49,7 @@
\section1 Select run targets
If your project has several run targets defined, such as
- \l{Running Autotests}{tests}, you can select them in the kit selector.
+ \l{Build and run tests}{tests}, you can select them in the kit selector.
\image qtcreator-kit-selector-run-targets.png {Run targets in the kit selector}
diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc
index 933fadb3a0..c38beb825d 100644
--- a/doc/qtcreator/src/qtcreator-toc.qdoc
+++ b/doc/qtcreator/src/qtcreator-toc.qdoc
@@ -36,7 +36,6 @@
\li \l{Using Text Editing Macros}
\li \l{Comparing Files}
\endlist
- \li \l{Refactoring}
\li \l{Configuring the Editor}
\li \l{Using GitHub Copilot}
\endlist
@@ -69,7 +68,7 @@
\li \l{Building Applications for the Web}
\endlist
\endlist
- \li \l{Testing}
+ \li \l{Debugging and Analyzing}
\list
\li \l{Debugging}
\list
@@ -102,7 +101,6 @@
\list
\li \l{Profiling QML Applications}
\li \l{Checking Code Coverage}
- \li \l{Static Code Analysis}
\li \l{Using Valgrind Code Analysis Tools}
\list
\li \l{Detecting Memory Leaks with Memcheck}
@@ -114,7 +112,6 @@
\li \l{Analyzing Code with Cppcheck}
\li \l{Visualizing Chrome Trace Events}
\endlist
- \li \l{Running Autotests}
\li \l{Using Squish}
\endlist
\li \l{How To}
@@ -159,6 +156,8 @@
\endlist
\li Read Documentation
\generatelist creator-how-to-get-help
+ \li Test
+ \generatelist creator-how-to-test
\li Use \QC
\generatelist creator-how-to-use
\li Use the UI
diff --git a/doc/qtcreator/src/qtcreator.qdoc b/doc/qtcreator/src/qtcreator.qdoc
index eaceebf177..ddc9b74cca 100644
--- a/doc/qtcreator/src/qtcreator.qdoc
+++ b/doc/qtcreator/src/qtcreator.qdoc
@@ -50,7 +50,6 @@
\li \b {\l{Coding}}
\list
\li \l{Writing Code}
- \li \l{Refactoring}
\li \l{Configuring the Editor}
\endlist
\li \b {\l{Building and Running}}
@@ -65,11 +64,10 @@
\li \inlineimage front-help.png
\li \inlineimage front-advanced.png
\row
- \li \b {\l{Testing}}
+ \li \b {\l{Debugging and Analyzing}}
\list
\li \l{Debugging}
\li \l{Analyzing Code}
- \li \l{Running Autotests}
\li \l{Using Squish}
\endlist
\li \b {\l{How To}}
@@ -80,6 +78,10 @@
\li \l{Design UIs}
\li \l{Edit Code}
\li \l{Manage Projects}
+ \li \l{Read Documentation}
+ \li \l{Test}
+ \li \l{Use \QC}
+ \li \l{Use the UI}
\li \l{How To}{See More...}
\endlist
\li \b {\l{Reference}}
diff --git a/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc b/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc
index 3b8a7d59cf..06226006d5 100644
--- a/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-file-system-view.qdoc
@@ -18,7 +18,7 @@
\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{Navigate with 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. Use the \e {file system (f)} filter
to open files from anywhere in the file system.
diff --git a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc
index 3eb7a3c2d4..87760c448c 100644
--- a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc
@@ -49,7 +49,7 @@
automatically save changed files at the intervals specified in
the \uicontrol Interval field.
\li Select the \uicontrol {Auto-save files after refactoring} check
- box to automatically save \l{Refactoring}{refactored files}.
+ box to automatically save refactored files.
\li Select the \uicontrol {Auto-suspend unmodified files} check
box to automatically free the resources of open files after
prolonged inactivity. The files are still listed in the
@@ -62,4 +62,10 @@
field, set the number of recently opened files listed in
\uicontrol File > \uicontrol {Recent Files}.
\endlist
+
+ \sa {Apply quick fixes}, {Rename symbols}
+
+ \if defined(qtcreator)
+ \sa {Find symbols}
+ \endif
*/
diff --git a/doc/qtcreator/src/user-interface/creator-projects-view.qdoc b/doc/qtcreator/src/user-interface/creator-projects-view.qdoc
index 99e3b469cc..b6b74f0993 100644
--- a/doc/qtcreator/src/user-interface/creator-projects-view.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-projects-view.qdoc
@@ -25,7 +25,7 @@
\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{Navigate with 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.
\else
diff --git a/doc/qtcreator/src/user-interface/creator-reference-output-views.qdoc b/doc/qtcreator/src/user-interface/creator-reference-output-views.qdoc
index 60b8b72d5a..0381320085 100644
--- a/doc/qtcreator/src/user-interface/creator-reference-output-views.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-reference-output-views.qdoc
@@ -142,8 +142,14 @@
\list
\li To clear the search results, select
\inlineimage icons/clean_pane_small.png (\uicontrol Clear).
+ \li To move between instances, select \inlineimage icons/next.png
+ (\uicontrol {Next Item}) and \inlineimage icons/prev.png
+ (\uicontrol {Previous Item}).
\li To expand and collapse the search results, select
\inlineimage icons/qtcreator-expand.png (\uicontrol {Expand All}).
+ \li To filter the search results for the usage of symbols according to
+ access type, such as read, write, or declaration, select
+ \inlineimage icons/filtericon.png (\uicontrol {Filter Tree}).
\li To start a new search, select
\inlineimage icons/qtcreator-new-search-icon.png
(\uicontrol {New Search}).
diff --git a/doc/qtcreator/src/user-interface/creator-ui.qdoc b/doc/qtcreator/src/user-interface/creator-ui.qdoc
index d70c94d90e..066e93fbbf 100644
--- a/doc/qtcreator/src/user-interface/creator-ui.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-ui.qdoc
@@ -55,7 +55,7 @@
\li \inlineimage numbers/06.png
\li Locator
\li Find a particular project, file, class, or function.
- \li \l{Searching with the Locator}
+ \li \l{Navigate with locator}
\row
\li \inlineimage numbers/07.png
\li Output
diff --git a/doc/qtdesignstudio/src/developers/studio-jump-to-the-code.qdoc b/doc/qtdesignstudio/src/developers/studio-jump-to-the-code.qdoc
index d5a83080bf..d7178236e3 100644
--- a/doc/qtdesignstudio/src/developers/studio-jump-to-the-code.qdoc
+++ b/doc/qtdesignstudio/src/developers/studio-jump-to-the-code.qdoc
@@ -2,9 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
- \previouspage creator-editor-locator.html
+ \previouspage creator-how-to-rename-symbols.html
\page creator-jump-to-the-code.html
- \nextpage creator-editor-refactoring.html
+ \nextpage creator-editor-quick-fixes.html
\title Jump to the Code
diff --git a/doc/qtdesignstudio/src/overviews/studio-finding.qdoc b/doc/qtdesignstudio/src/overviews/studio-finding.qdoc
index bd1e24a505..ead5bc33af 100644
--- a/doc/qtdesignstudio/src/overviews/studio-finding.qdoc
+++ b/doc/qtdesignstudio/src/overviews/studio-finding.qdoc
@@ -20,11 +20,9 @@
With advanced search, you can search in currently open projects or
files on the file system.
- \li \l{Searching with the Locator}
+ \li \l{Rename symbols}
- Use the locator to browse
- through projects, files, classes, functions, documentation and
- file systems.
+ Search for QML types and rename them in all files in a project.
\li \l{Jump to the Code}
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-faq.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-faq.qdoc
index f7dec4de03..8f7267e0d3 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-faq.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-faq.qdoc
@@ -109,7 +109,7 @@
However, you can rename symbols in all files within a project. To rename a
QML type in a project, select \uicontrol Tools > \uicontrol QML/JS >
\uicontrol {Rename Symbol Under Cursor} or press \key Ctrl+Shift+R. For more
- information, see \l {Renaming Symbols}.
+ information, see \l {Rename symbols}.
\section2 How can I add .qml files to my project in Qt Creator?
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
index f18a71fb65..d0b451e629 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
@@ -213,10 +213,11 @@
\list
\li \l{Search in current file}
\li \l{Search in projects or file systems}
- \li \l{Searching with the Locator}
+ \li \l{Rename symbols}
\li \l{Jump to the Code}
\endlist
- \li \l{Refactoring}
+ \li \l{Apply quick fixes}
+ \li \l{QML quick fixes}
\li \l{Configuring the Editor}
\list
\li \l{Font & Colors}
diff --git a/doc/qtdesignstudio/src/views/qtquick-text-editor.qdoc b/doc/qtdesignstudio/src/views/qtquick-text-editor.qdoc
index f2f5a80ade..f6666daa50 100644
--- a/doc/qtdesignstudio/src/views/qtquick-text-editor.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-text-editor.qdoc
@@ -1,4 +1,4 @@
-// Copyright (C) 2021 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
@@ -17,10 +17,6 @@
You can also view and modify other types of text files.
- To open the search dialog in the \uicontrol {Code} view, go to
- \uicontrol Edit > \uicontrol {Find/Replace} > \uicontrol {Find/Replace}.
- You can also select \key Ctrl + \key {F}.
-
The view offers the following features:
\list
@@ -30,4 +26,23 @@
\li \l{Indent text or code}
\li \l{Using Qt Quick Toolbars}
\endlist
+
+ \section1 Refactoring Code
+
+ Code refactoring is the process of improving and simplifying code without
+ modifying the existing functionality of an application. You can easily find
+ and rename symbols and apply quick fixes in the \uicontrol Code view to
+ refactor code.
+
+ \section1 Searching in Code
+
+ To open the search dialog in the \uicontrol {Code} view:
+
+ \list
+ \li Go to \uicontrol Edit > \uicontrol {Find/Replace} >
+ \uicontrol {Find/Replace}.
+ \li Select \key Ctrl + \key {F} (or \key Cmd + \key F on \macos).
+ \endlist
+
+ \sa {Finding}, {Apply quick fixes}, {QML Quick Fixes}
*/
diff --git a/scripts/deploy.py b/scripts/deploy.py
index 20ade283d2..8df90f1ac1 100755
--- a/scripts/deploy.py
+++ b/scripts/deploy.py
@@ -236,7 +236,7 @@ def deploy_qt_conf_files(qtc_binary_path):
if common.is_linux_platform():
qt_prefix_path = os.path.join(qtc_binary_path, '..', 'lib', 'Qt')
add_qt_conf(os.path.join(qtc_binary_path, '..', 'libexec', 'qtcreator'), qt_prefix_path)
- add_qt_conf(os.path.join(qtc_binary_path, '..', 'lib', 'Qt', 'bin'), qt_prefix_path) # qtdiag
+ add_qt_conf(os.path.join(qtc_binary_path, '..', 'lib', 'Qt', 'bin'), qt_prefix_path) # qtdiag etc
add_qt_conf(qtc_binary_path, qt_prefix_path) # QtC itself
if common.is_windows_platform():
add_qt_conf(qtc_binary_path, qtc_binary_path) # QtC itself, libexec, and qtdiag etc
@@ -409,8 +409,9 @@ def deploy_qt_mac(qtc_binary_path, qt_install):
puppets = glob(os.path.join(libexec_path, 'qml2puppet*'))
for puppet in puppets:
additional_paths.append(puppet)
- # qtdiag
+ # qtdiag, qtplugininfo
additional_paths.append(os.path.join(bin_path, 'qtdiag'))
+ additional_paths.append(os.path.join(bin_path, 'qtplugininfo'))
# other libexec
additional_paths.append(os.path.join(libexec_path, 'sdktool'))
additional_paths.append(os.path.join(libexec_path, 'qtpromaker'))
@@ -470,6 +471,7 @@ def main():
else os.path.dirname(args.qtcreator_binary))
deploy_binary('qtdiag', qtcreator_binary_path, qt_install)
+ deploy_binary('qtplugininfo', qtcreator_binary_path, qt_install)
deploy_binary('qsb', qtcreator_binary_path, qt_install)
deploy_plugins(qtcreator_binary_path, qt_install)
deploy_imports(qtcreator_binary_path, qt_install)
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index b15b6a1af2..d8edc96b61 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -73,13 +73,6 @@
</message>
</context>
<context>
- <name>AccountImage</name>
- <message>
- <source>Account</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>AddImageToResources</name>
<message>
<source>File Name</source>
@@ -447,7 +440,7 @@ Bind to AmbientSound.Infinite to loop the current sound forever.</source>
</message>
<message>
<source>Animated image</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Animiertes Bild</translation>
</message>
<message>
<source>Speed</source>
@@ -467,6 +460,165 @@ Bind to AmbientSound.Infinite to loop the current sound forever.</source>
</message>
</context>
<context>
+ <name>AnimatedSpriteSpecifics</name>
+ <message>
+ <source>Animated Sprite</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Adds an image from the local file system.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the width and height of the frame.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>W</source>
+ <comment>width</comment>
+ <extracomment>The width of the animated sprite frame</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Width.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H</source>
+ <comment>height</comment>
+ <extracomment>The height of the animated sprite frame</extracomment>
+ <translation type="unfinished">H</translation>
+ </message>
+ <message>
+ <source>Height.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame coordinates</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the coordinates of the first frame of the animated sprite.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>X</source>
+ <comment>Frame X</comment>
+ <extracomment>The width of the animated sprite frame</extracomment>
+ <translation type="unfinished">X</translation>
+ </message>
+ <message>
+ <source>Frame X coordinate.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Y</source>
+ <comment>Frame Y</comment>
+ <extracomment>The height of the animated sprite frame</extracomment>
+ <translation type="unfinished">Y</translation>
+ </message>
+ <message>
+ <source>Frame Y coordinate.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame count</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the number of frames in this animated sprite.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the number of frames per second to show in the animation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame duration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the duration of each frame of the animation in milliseconds.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frame sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets frame advancements one frame each time a frame is rendered to the screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Loops</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>After playing the animation this many times, the animation will automatically stop.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Interpolate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If true, interpolation will occur between sprite frames to make the animation appear smoother.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Finish behavior</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sets the behavior when the animation finishes on its own.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reverse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If true, the animation will be played in reverse.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Running</source>
+ <translation type="unfinished">Läuft</translation>
+ </message>
+ <message>
+ <source>Whether the sprite is animating or not.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Paused</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>When paused, the current frame can be advanced manually.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Current frame</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>When paused, the current frame can be advanced manually by setting this property.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>AnimationSection</name>
<message>
<source>Animation</source>
@@ -791,117 +943,6 @@ A positive value will increase reverb for higher frequencies and dampen lower fr
</message>
</context>
<context>
- <name>Axivion</name>
- <message>
- <source>Project:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Lines of code:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Analysis timestamp:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="unfinished">unbekannt</translation>
- </message>
- <message>
- <source>Total:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Show dashboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Axivion</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Show rule details</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Certificate Error</source>
- <translation type="unfinished">Zertifikatsfehler</translation>
- </message>
- <message>
- <source>Server certificate for %1 cannot be authenticated.
-Do you want to disable SSL verification for this server?
-Note: This can expose you to man-in-the-middle attack.</source>
- <translation type="unfinished">Server-Zertifikat für %1 kann nicht authentifiziert werden.
-Möchten Sie die SSL-Verifikation für diesen Server abschalten?
-Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
- </message>
- <message>
- <source>Dashboard projects:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Fetch Projects</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Link Project</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unlink Project</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>This project is not linked to a dashboard project.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>This project is linked to &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Incomplete or misconfigured settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>curl:</source>
- <translation type="unfinished">curl:</translation>
- </message>
- <message>
- <source>Dashboard URL:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description:</source>
- <translation type="unfinished">Beschreibung:</translation>
- </message>
- <message>
- <source>Non-empty description</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Access token:</source>
- <translation type="unfinished">Zugriffstoken:</translation>
- </message>
- <message>
- <source>IDE Access Token</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Edit...</source>
- <translation type="unfinished">Bearbeiten...</translation>
- </message>
- <message>
- <source>Edit Dashboard Configuration</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>General</source>
- <translation type="unfinished">Allgemein</translation>
- </message>
-</context>
-<context>
<name>BackgroundColorMenuActions</name>
<message>
<source>Background Color Actions</source>
@@ -1198,6 +1239,29 @@ It should be a relative path.</source>
</message>
</context>
<context>
+ <name>BrandBar</name>
+ <message>
+ <source>Welcome to</source>
+ <translation type="unfinished">Willkommen bei</translation>
+ </message>
+ <message>
+ <source>Qt Design Studio</source>
+ <translation type="unfinished">Qt Design Studio</translation>
+ </message>
+ <message>
+ <source>Community Edition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enterprise Edition</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Professional Edition</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>BusyIndicatorSpecifics</name>
<message>
<source>Busy Indicator</source>
@@ -1396,7 +1460,7 @@ It should be a relative path.</source>
</message>
<message>
<source>Emphasis</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Hervorherbung</translation>
</message>
<message>
<source>Sets the text to bold, italic, underlined, or strikethrough.</source>
@@ -1505,6 +1569,112 @@ It should be a relative path.</source>
</message>
</context>
<context>
+ <name>CollectionDetailsToolbar</name>
+ <message>
+ <source>Add property left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add property right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete selected property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Insert row below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Insert row above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete selected row</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save changes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Export model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Column</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Column name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model already contains &quot;%1&quot;!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation type="unfinished">Typ:</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation type="unfinished">Hinzufügen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>CollectionDetailsView</name>
+ <message>
+ <source>Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sort Ascending</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sort Descending</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add row above</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add row below</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete this row</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select a model to continue</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete Column</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Are you sure that you want to delete column &quot;%1&quot;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+</context>
+<context>
<name>CollectionItem</name>
<message>
<source>Delete</source>
@@ -1515,18 +1685,32 @@ It should be a relative path.</source>
<translation type="unfinished">Umbenennen</translation>
</message>
<message>
- <source>Deleting whole collection</source>
+ <source>Assign to the selected node</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <source>Deleting the model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Are you sure that you want to delete model &quot;%1&quot;?
+The model will be deleted permanently.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Rename collection</source>
+ <source>Are you sure that you want to delete model &quot;%1&quot;?
+The model will be removed from the project but the file will not be deleted.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Rename model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+ <message>
<source>New name:</source>
<translation type="unfinished">Neuer Name:</translation>
</message>
@@ -1534,19 +1718,15 @@ It should be a relative path.</source>
<context>
<name>CollectionView</name>
<message>
- <source>Collections</source>
+ <source>Data Models</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Import Json</source>
+ <source>Import a model</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Import CSV</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Add new collection</source>
+ <source>Add a new model</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1980,6 +2160,10 @@ It should be a relative path.</source>
<source>Write the conditions for the components and the signals manually.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Jump to the code.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ConnectionsListView</name>
@@ -2314,53 +2498,6 @@ It should be a relative path.</source>
</message>
</context>
<context>
- <name>CsvImport</name>
- <message>
- <source>Import A CSV File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>New CSV File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not load the file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while trying to load the file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>File name: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Open</source>
- <translation type="unfinished">Öffnen</translation>
- </message>
- <message>
- <source>Collection name: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>File name can not be empty</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Collection name can not be empty</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Import</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
- </message>
-</context>
-<context>
<name>DelayButtonSpecifics</name>
<message>
<source>Delay Button</source>
@@ -2525,6 +2662,25 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
</context>
<context>
+ <name>DownloadButton</name>
+ <message>
+ <source>Update available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Example was already downloaded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Network or example is not available or the link is broken.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Download the example.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>DownloadPane</name>
<message>
<source>Downloading...</source>
@@ -2540,6 +2696,21 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
</context>
<context>
+ <name>DownloadPanel</name>
+ <message>
+ <source>Progress:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished">%</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished">Öffnen</translation>
+ </message>
+</context>
+<context>
<name>DrawerSpecifics</name>
<message>
<source>Drawer</source>
@@ -2597,38 +2768,77 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
</context>
<context>
- <name>EffectCompositionNode</name>
+ <name>EditPropertyDialog</name>
<message>
- <source>Remove</source>
+ <source>Edit Column</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Enable/Disable Node</source>
+ <source>Name</source>
+ <translation type="unfinished">Name</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>Conversion from %1 to %2 may lead to data loss</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Apply</source>
+ <translation type="unfinished">Anwenden</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
</context>
<context>
- <name>EffectMaker</name>
+ <name>EffectComposer</name>
<message>
- <source>Open Shader in Code Editor</source>
+ <source>Remove all effect nodes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open Shader in Code Editor.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add an effect node to start</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Effect Composer is disabled on MCU projects</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
- <name>EffectMakerPreview</name>
+ <name>EffectComposer::EffectComposerView</name>
<message>
- <source>Zoom out</source>
+ <source>Effect Composer [beta]</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EffectComposer::EffectComposerWidget</name>
+ <message>
+ <source>Effect Composer</source>
+ <comment>Title of effect composer widget</comment>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>EffectComposerPreview</name>
<message>
<source>Zoom In</source>
<translation type="unfinished">Vergrößern</translation>
</message>
<message>
+ <source>Zoom out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Zoom Fit</source>
<translation type="unfinished"></translation>
</message>
@@ -2642,13 +2852,29 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
</context>
<context>
- <name>EffectMakerTopBar</name>
+ <name>EffectComposerTopBar</name>
+ <message>
+ <source>Add new composition</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
- <source>Save in Library</source>
+ <source>Save current composition</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>How to use Effect Maker:
+ <source>Save current composition with a new name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Assign current composition to selected item</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Untitled</source>
+ <translation type="unfinished">Unbenannt</translation>
+ </message>
+ <message>
+ <source>How to use Effect Composer:
1. Click &quot;+ Add Effect&quot; to add effect node
2. Adjust the effect nodes properties
3. Change the order of the effects, if you like
@@ -2658,6 +2884,24 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
</context>
<context>
+ <name>EffectCompositionNode</name>
+ <message>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable/Disable Node</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EffectNode</name>
+ <message>
+ <source>Existing effect has conflicting properties, this effect cannot be added.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>EffectNodesComboBox</name>
<message>
<source>+ Add Effect</source>
@@ -3060,7 +3304,7 @@ defined in &lt;b&gt;Step size&lt;/b&gt;.</source>
</message>
<message>
<source>Emphasis</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Hervorherbung</translation>
</message>
<message>
<source>Sets the text to bold, italic, underlined, or strikethrough.</source>
@@ -3675,6 +3919,57 @@ a highlight component.</source>
</message>
</context>
<context>
+ <name>ImportDialog</name>
+ <message>
+ <source>Import a model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Model path</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select a model file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished">Öffnen</translation>
+ </message>
+ <message>
+ <source>Could not load the file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>An error occurred while trying to load the file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File name can not be empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model name can not be empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Import</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+</context>
+<context>
<name>InsetSection</name>
<message>
<source>Inset</source>
@@ -3724,10 +4019,6 @@ a highlight component.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Category</source>
- <translation type="unfinished">Kategorie</translation>
- </message>
- <message>
<source>Object name</source>
<translation type="unfinished"></translation>
</message>
@@ -3844,45 +4135,6 @@ IDs müssen außerdem mit einem Kleinbuchstaben beginnen.</translation>
</message>
</context>
<context>
- <name>JsonImport</name>
- <message>
- <source>Import Collections</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>New Json File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not load the file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while trying to load the file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>File name: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Open</source>
- <translation type="unfinished">Öffnen</translation>
- </message>
- <message>
- <source>File name cannot be empty.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Import</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
- </message>
-</context>
-<context>
<name>Label</name>
<message>
<source>This property is not available in this configuration.</source>
@@ -4283,6 +4535,10 @@ a highlight component.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>State Groups are not supported with Qt for MCUs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Switch State Group</source>
<translation type="unfinished"></translation>
</message>
@@ -4347,30 +4603,6 @@ a highlight component.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Predefined Categories</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select the categories to track</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select all</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Custom Categories</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Manage your own categories</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Add new Category</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Set runtime configuration for the project.</source>
<translation type="unfinished"></translation>
</message>
@@ -4423,6 +4655,10 @@ a highlight component.</source>
<translation type="unfinished">Schließen</translation>
</message>
<message>
+ <source>Sets the visible &lt;b&gt;Views&lt;/b&gt; to immovable across the Workspaces.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source> Workspace</source>
<translation type="unfinished"></translation>
</message>
@@ -4468,6 +4704,83 @@ a highlight component.</source>
</message>
</context>
<context>
+ <name>MainGridStack</name>
+ <message>
+ <source>Create a new project using the &quot;&lt;b&gt;Create Project&lt;/b&gt;&quot; or open an existing project using the &quot;&lt;b&gt;Open Project&lt;/b&gt;&quot; option. </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove Project from Recent Projects</source>
+ <translation type="unfinished">Projekt aus der Liste der zuletzt bearbeiteten Projekte entfernen</translation>
+ </message>
+ <message>
+ <source>Clear Recent Project List</source>
+ <translation type="unfinished">Liste der zuletzt bearbeiteten Projekte löschen</translation>
+ </message>
+</context>
+<context>
+ <name>MainScreen</name>
+ <message>
+ <source>Create Project ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open Project ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New to Qt?</source>
+ <translation type="unfinished">Neu bei Qt?</translation>
+ </message>
+ <message>
+ <source>Get Started</source>
+ <translation type="unfinished">Schnelleinstieg</translation>
+ </message>
+ <message>
+ <source>Recent Projects</source>
+ <translation type="unfinished">Zuletzt bearbeitete Projekte</translation>
+ </message>
+ <message>
+ <source>Examples</source>
+ <translation type="unfinished">Beispiele</translation>
+ </message>
+ <message>
+ <source>Tutorials</source>
+ <translation type="unfinished">Anleitungen</translation>
+ </message>
+ <message>
+ <source>UI Tour</source>
+ <translation type="unfinished">Oberfläche vorführen</translation>
+ </message>
+ <message>
+ <source>User Guide</source>
+ <translation type="unfinished">Handbuch</translation>
+ </message>
+ <message>
+ <source>Blog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Forums</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Account</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Get Qt</source>
+ <translation type="unfinished">Qt</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>MainWindow</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>MarginSection</name>
<message>
<source>Margin</source>
@@ -4665,6 +4978,14 @@ a highlight component.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Adds an image from the local file system.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Playback rate</source>
<translation type="unfinished"></translation>
</message>
@@ -4751,33 +5072,6 @@ Error:
</message>
</context>
<context>
- <name>ModelSourceItem</name>
- <message>
- <source>Delete</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Rename</source>
- <translation type="unfinished">Umbenennen</translation>
- </message>
- <message>
- <source>Deleting source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
- </message>
- <message>
- <source>Rename source</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>New name:</source>
- <translation type="unfinished">Neuer Name:</translation>
- </message>
-</context>
-<context>
<name>MouseAreaSpecifics</name>
<message>
<source>Enabled</source>
@@ -4917,15 +5211,23 @@ Error:
<context>
<name>NewCollectionDialog</name>
<message>
- <source>Add a new Collection</source>
+ <source>Add a new Model</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Collection name: </source>
+ <source>Model</source>
+ <translation type="unfinished">Modell</translation>
+ </message>
+ <message>
+ <source>The model name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Collection name can not be empty</source>
+ <source>The model name can not be empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model name already exists %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -5663,6 +5965,77 @@ operation is in progress.</source>
</message>
</context>
<context>
+ <name>QKeychain::Job</name>
+ <message>
+ <source>No error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The specified item could not be found in the keychain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>User canceled the operation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>User interaction is not allowed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No keychain is available. You may need to restart your computer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The user name or passphrase you entered is not correct</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A cryptographic verification failure has occurred</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Function or operation not implemented</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>I/O error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Already open with with write permission</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid parameters passed to a function</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to allocate memory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bad parameter or invalid state for operation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>An internal component failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The specified item already exists in the keychain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to decode the provided data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unknown error</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>QObject</name>
<message>
<source>All syntax definitions are up-to-date.</source>
@@ -5759,10 +6132,14 @@ operation is in progress.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Ensure that you have saved it in Qt Quick Effect Maker.
+ <source>Ensure that you have saved it in the Effect Composer.
Do you want to edit this effect?</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Minimize</source>
+ <translation type="unfinished">Minimieren</translation>
+ </message>
</context>
<context>
<name>QmlDesigner::AbstractEditorDialog</name>
@@ -5938,7 +6315,7 @@ Do you want to edit this effect?</source>
</message>
<message>
<source>Advanced Options</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Erweiterte Optionen</translation>
</message>
<message>
<source>Export assets</source>
@@ -6099,6 +6476,14 @@ Exporting assets: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Failed to Delete Effect Resources</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not delete &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed to Add Files</source>
<translation type="unfinished">Dateien konnten nicht hinzugefügt werden</translation>
</message>
@@ -6248,21 +6633,143 @@ Exporting assets: %2</source>
</message>
</context>
<context>
- <name>QmlDesigner::CollectionView</name>
+ <name>QmlDesigner::CollectionSourceModel</name>
+ <message>
+ <source>Node is not indexed in the models.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Node should be a JSON model.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A model with the identical name already exists.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Selected node must have a valid source file address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t read or write &quot;%1&quot;.
+%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; is corrupted.
+%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t clean &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t write to &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No model is available for the JSON model group.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>JSON document type should be an object containing models.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rename Model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid node</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t rename the node</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
- <source>Collection Editor</source>
+ <source>Invalid node type</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Collection Editor view</source>
+ <source>The model group doesn&apos;t contain the old model name (%1).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model name &quot;%1&quot; already exists in the model group.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete Model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The selected node has an invalid source address</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The model group doesn&apos;t contain the model name (%1).</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlDesigner::CollectionView</name>
+ <message>
+ <source>Model Editor</source>
+ <translation type="unfinished">Model-Editor</translation>
+ </message>
+ <message>
+ <source>Model Editor view</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QmlDesigner::CollectionWidget</name>
<message>
- <source>Collection View</source>
- <comment>Title of collection view widget</comment>
+ <source>Model Editor</source>
+ <comment>Title of model editor widget</comment>
+ <translation type="unfinished">Model-Editor</translation>
+ </message>
+ <message>
+ <source>Cannot Create QtQuick View</source>
+ <translation type="unfinished">QtQuick View konnte nicht erzeugt werden</translation>
+ </message>
+ <message>
+ <source>StatesEditorWidget: %1 cannot be created.%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can not open the file to write.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can not add a model to the JSON file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The imported model is empty or is not supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can not import to the main model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The data store is not available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The default model node is not available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to add a model to the default model group</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -6658,6 +7165,106 @@ Exporting assets: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Viewport Shading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wireframe</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show models as wireframe.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation type="unfinished">Vorgabe</translation>
+ </message>
+ <message>
+ <source>Rendering occurs as normal.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Base Color</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The base or diffuse color of a material is passed through without any lighting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Roughness</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The roughness of a material is passed through as an unlit greyscale value.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Metalness</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The metalness of a material is passed through as an unlit greyscale value.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Normals</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The interpolated world space normal value of the material mapped to an RGB color.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambient Occlusion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Only the ambient occlusion of the material.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Emission</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Only the emissive contribution of the material.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Shadow Occlusion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The occlusion caused by shadows as a greyscale value.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Diffuse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Only the diffuse contribution of the material after all lighting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Specular</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Only the specular contribution of the material after all lighting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset All Viewports</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset all shading options for all viewports.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>3D view is not supported in MCU projects.</source>
<translation type="unfinished"></translation>
</message>
@@ -7036,6 +7643,10 @@ Exporting assets: %2</source>
<translation type="unfinished">Verwalten...</translation>
</message>
<message>
+ <source>Lock Workspaces</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Reset Active</source>
<translation type="unfinished"></translation>
</message>
@@ -7204,6 +7815,10 @@ Exporting assets: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Enable DockWidget content minimum size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Show property editor warnings</source>
<translation>Zeige Warnungen des Eigenschafteneditors</translation>
</message>
@@ -7301,6 +7916,41 @@ Exporting assets: %2</source>
</message>
</context>
<context>
+ <name>QmlDesigner::Internal::TypeAnnotationReader</name>
+ <message>
+ <source>Illegal state while parsing.</source>
+ <translation type="unfinished">Ungültiger Zustand bei der Auswertung.</translation>
+ </message>
+ <message>
+ <source>No property definition allowed.</source>
+ <translation type="unfinished">Eigenschaftsdefinition nicht zulässig.</translation>
+ </message>
+ <message>
+ <source>Invalid type %1</source>
+ <translation type="unfinished">Ungültiger Typ %1</translation>
+ </message>
+ <message>
+ <source>Unknown property for Type %1</source>
+ <translation type="unfinished">Unbekannte Eigenschaft für Typ %1</translation>
+ </message>
+ <message>
+ <source>Unknown property for ItemLibraryEntry %1</source>
+ <translation type="unfinished">Unbekannte Eigenschaft für ItemLibraryEntry %1</translation>
+ </message>
+ <message>
+ <source>Unknown property for Property %1</source>
+ <translation type="unfinished">Unbekannte Eigenschaft für Eigenschaft %1</translation>
+ </message>
+ <message>
+ <source>Unknown property for QmlSource %1</source>
+ <translation type="unfinished">Unbekannte Eigenschaft für QmlSource %1</translation>
+ </message>
+ <message>
+ <source>Unknown property for ExtraFile %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>QmlDesigner::InvalidArgumentException</name>
<message>
<source>Failed to create item of type %1</source>
@@ -8240,6 +8890,10 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished">Werkzeuge</translation>
</message>
<message>
+ <source>Enable Experimental Features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Hide top-level menus with advanced functionality to simplify the UI. &lt;b&gt;Build&lt;/b&gt; is generally not required in the context of Qt Design Studio. &lt;b&gt;Debug&lt;/b&gt; and &lt;b&gt;Analyze&lt;/b&gt; are only required for debugging and profiling. &lt;b&gt;Tools&lt;/b&gt; can be useful for bookmarks and git integration.</source>
<translation type="unfinished"></translation>
</message>
@@ -8268,6 +8922,14 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Experimental Features</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This option enables experimental features in Qt Design Studio. Please provide feedback and bug reports at: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>The menu visibility change will take effect after restart.</source>
<translation type="unfinished"></translation>
</message>
@@ -8870,7 +9532,7 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Effect Maker Files</source>
+ <source>Effect Composer Files</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -8925,11 +9587,15 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Remove This Handler</source>
+ <source>Edit the Connection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Add Signal Handler</source>
+ <source>Remove the Connection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add new Connection</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -9009,6 +9675,10 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Jump to the Code</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Go to Implementation</source>
<translation>Zu Implementierung gehen</translation>
</message>
@@ -9594,6 +10264,10 @@ Locked components cannot be modified or selected.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Minimize</source>
+ <translation type="unfinished">Minimieren</translation>
+ </message>
+ <message>
<source>Close Other Groups</source>
<translation type="unfinished"></translation>
</message>
@@ -9937,6 +10611,26 @@ Locked components cannot be modified or selected.</source>
<translation>Für alle installierten Qt-Versionen sind alle notwendigen Pakete installiert.</translation>
</message>
<message>
+ <source>The selected path does not exist or is not readable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not find &quot;%1&quot; in the selected path.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The selected path does not contain a valid JDK. (%1 failed: %2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unexpected output from &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unsupported JDK version (needs to be %1): %2 (parsed: %3)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>OpenSSL path exists.</source>
<translation>Pfad zu OpenSSL existiert.</translation>
</message>
@@ -11521,6 +12215,129 @@ und das Ãœberschreiben Ihrer Einstellungen erfordert. Das Ãœberschreiben erlaube
</message>
</context>
<context>
+ <name>QtC::AppManager</name>
+ <message>
+ <source>Create Application Manager package with CMake</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create Application Manager package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Source directory:</source>
+ <translation type="unfinished">Quellverzeichnis:</translation>
+ </message>
+ <message>
+ <source>Package file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Automatic Application Manager Deploy Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deploy Application Manager package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Target directory:</source>
+ <translation type="unfinished">Zielverzeichnis:</translation>
+ </message>
+ <message>
+ <source>Uploading finished.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Uploading failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Install Application Manager package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Starting command &quot;%1&quot;.</source>
+ <translation type="unfinished">Starte Kommando &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Command finished successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Process failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Process finished with exit code %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Run an Application Manager Package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Run and Debug an Application Manager Package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clean Environment</source>
+ <translation type="unfinished">Saubere Umgebung</translation>
+ </message>
+ <message>
+ <source>%1 exited.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Starting Application Manager debugging...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Using: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot debug: Only QML and native applications are supported.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot debug: Local executable is not set.</source>
+ <translation type="unfinished">Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben.</translation>
+ </message>
+ <message>
+ <source>Application ID:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Application Manager instance ID:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Default instance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Document URL:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Customize step</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Disables the automatic updates based on the current run configuration and allows customizing the values.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Packager:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>QtC::Autotest</name>
<message>
<source>General</source>
@@ -12449,6 +13266,14 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
<translation>&quot;Valgrind Callgrind&quot; zur Benchmarkausführung benutzen (dazu muss es installiert sein).</translation>
</message>
<message>
+ <source>Find user-defined locations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Parse messages for the following pattern and use it as location information:&lt;pre&gt;file://filepath:line&lt;/pre&gt;where &quot;:line&quot; is optional.&lt;p&gt;Warning: If the patterns are used in code, the location information for debug messages and other messages might improve,at the risk of some incorrect locations and lower performance.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Callgrind</source>
<translation>Callgrind</translation>
</message>
@@ -12809,6 +13634,14 @@ Siehe auch die Einstellungen für Google Test.</translation>
<source>Running tests for &quot;%1&quot;.</source>
<translation>Führe Tests für &quot;%1&quot; aus.</translation>
</message>
+ <message>
+ <source>Locate Qt Test data tags</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Locates Qt Test data tags found inside the active project.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtC::AutotoolsProjectManager</name>
@@ -12857,6 +13690,184 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message>
</context>
<context>
+ <name>QtC::Axivion</name>
+ <message>
+ <source>Project:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Lines of code:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Analysis timestamp:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="unfinished">unbekannt</translation>
+ </message>
+ <message>
+ <source>Total:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Owner</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path globbing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Total rows:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Axivion</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show dashboard</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Search for issues</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show rule details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Certificate Error</source>
+ <translation type="unfinished">Zertifikatsfehler</translation>
+ </message>
+ <message>
+ <source>Server certificate for %1 cannot be authenticated.
+Do you want to disable SSL verification for this server?
+Note: This can expose you to man-in-the-middle attack.</source>
+ <translation type="unfinished">Server-Zertifikat für %1 kann nicht authentifiziert werden.
+Möchten Sie die SSL-Verifikation für diesen Server abschalten?
+Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
+ </message>
+ <message>
+ <source>Unknown Dto structure deserialization error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The ApiToken cannot be read in a secure way.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The ApiToken cannot be stored in a secure way.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The ApiToken cannot be deleted in a secure way.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Key chain message: &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter the password for:
+Dashboard: %1
+User: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Axivion Server Password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The stored ApiToken is not valid anymore, removing it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fetching DashboardInfo error.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The DashboardInfo doesn&apos;t contain project &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The activated link appears to be external.
+Do you want to open &quot;%1&quot; with its default application?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open External Links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fetch Projects</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Link Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unlink Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dashboard projects:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This project is not linked to a dashboard project.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This project is linked to &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Incomplete or misconfigured settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Highlight marks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Marks issues on the scroll bar.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dashboard URL:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Username:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>User name</source>
+ <translation type="unfinished">Benutzername</translation>
+ </message>
+ <message>
+ <source>Edit...</source>
+ <translation type="unfinished">Bearbeiten...</translation>
+ </message>
+ <message>
+ <source>Edit Dashboard Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>General</source>
+ <translation type="unfinished">Allgemein</translation>
+ </message>
+ <message>
+ <source>Fetching...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>QtC::BareMetal</name>
<message>
<source>Set up Debug Server or Hardware Debugger</source>
@@ -14960,6 +15971,14 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
<translation>Erweiterte Optionen standardmäßig anzeigen</translation>
</message>
<message>
+ <source>Use junctions for CMake configuration and build operations</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create and use junctions for the source and build directories to overcome issues with long paths on Windows.&lt;br&gt;&lt;br&gt;Junctions are stored under &lt;tt&gt;C:\ProgramData\QtCreator\Links&lt;/tt&gt; (overridable via the &lt;tt&gt;QTC_CMAKE_JUNCTIONS_DIR&lt;/tt&gt; environment variable).&lt;br&gt;&lt;br&gt;With &lt;tt&gt;QTC_CMAKE_JUNCTIONS_HASH_LENGTH&lt;/tt&gt;, you can shorten the MD5 hash key length to a value smaller than the default length value of 32.&lt;br&gt;&lt;br&gt;Junctions are used for CMake configure, build and install operations.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>General</source>
<translation>Allgemein</translation>
</message>
@@ -15216,22 +16235,6 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
<translation>Konfiguriere &quot;%1&quot;</translation>
</message>
<message>
- <source>CMake process failed to start.</source>
- <translation>Der CMake-Prozess konnte nicht gestartet werden.</translation>
- </message>
- <message>
- <source>CMake process was canceled by the user.</source>
- <translation>Der CMake-Prozess wurde vom Benutzer abgebrochen.</translation>
- </message>
- <message>
- <source>CMake process crashed.</source>
- <translation>Der CMake-Prozess ist abgestürzt.</translation>
- </message>
- <message>
- <source>CMake process exited with exit code %1.</source>
- <translation>Der CMake-Prozess wurde mit dem Rückgabewert %1 beendet.</translation>
- </message>
- <message>
<source>&lt;Build Directory&gt;</source>
<translation>&lt;Build-Verzeichnis&gt;</translation>
</message>
@@ -15788,6 +16791,10 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der
<translation>C++-Probleme, die Clangd im aktuellen Dokument gefunden hat.</translation>
</message>
<message>
+ <source>Update Potentially Stale Clangd Index Entries</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Generate Compilation Database</source>
<translation>Kompilierungsdatenbank erzeugen</translation>
</message>
@@ -15928,16 +16935,16 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der
<context>
<name>QtC::ClangFormat</name>
<message>
- <source>Clang-Format Style</source>
- <translation>Clang-Format-Stil</translation>
- </message>
- <message>
<source>Current ClangFormat version: %1.</source>
<translation>Aktuelle ClangFormat-Version: %1.</translation>
</message>
<message>
- <source>The widget was generated for ClangFormat %1. If you use a different version, the widget may work incorrectly.</source>
- <translation>Diese Benutzeroberfläche wurde für ClangFormat %1 generiert. Sie funktioniert möglicherweise nicht korrekt, wenn Sie eine andere ClangFormat-Version verwenden.</translation>
+ <source>Warning: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The current ClangFormat (C++ &gt; Code Style &gt; ClangFormat) settings are not valid. Are you sure you want to apply them?</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Open Used .clang-format Configuration File</source>
@@ -15966,14 +16973,22 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
<translation>Bearbeiteten Quelltext beim Speichern der Datei formatieren</translation>
</message>
<message>
- <source>Override .clang-format file</source>
- <translation>.clang-format-Datei außer Kraft setzen</translation>
+ <source>Use custom settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Use built-in indenter</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Use global settings</source>
<translation>Globale Einstellungen verwenden</translation>
</message>
<message>
+ <source>Please note that the current project includes a .clang-format file, which will be used for code indenting and formatting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>ClangFormat settings:</source>
<translation>Einstellungen für ClangFormat:</translation>
</message>
@@ -15986,10 +17001,6 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
<translation>Komplette Formatierung</translation>
</message>
<message>
- <source>Disable</source>
- <translation>Deaktivieren</translation>
- </message>
- <message>
<source>The current project has its own .clang-format file which can be overridden by the settings below.</source>
<translation>Das aktuelle Projekt hat ihre eigene .clang-format-Datei, die in den untenstehenden Einstellungen überschrieben werden kann.</translation>
</message>
@@ -16319,6 +17330,10 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
<translation>Das Projekt konnte nicht erstellt werden.</translation>
</message>
<message>
+ <source>Diagnostics</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed to start the analyzer.</source>
<translation>Das Analyse-Werkzeug konnte nicht gestartet werden.</translation>
</message>
@@ -16839,10 +17854,6 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
<translation>Auschecken rückgängig machen</translation>
</message>
<message>
- <source>&amp;Undo Check Out &quot;%1&quot;</source>
- <translation>A&amp;uschecken von &quot;%1&quot; rückgängig machen</translation>
- </message>
- <message>
<source>Meta+L,Meta+U</source>
<translation>Meta+L,Meta+U</translation>
</message>
@@ -17846,6 +18857,15 @@ Trotzdem fortfahren?</translation>
<translation>Tastenkombinationen in Kontextmenüs anzeigen (Vorgabe: %1)</translation>
</message>
<message>
+ <source>Override cursors for views</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Provide cursors for resizing views.
+If the system cursors for resizing views are not displayed properly, you can use the cursors provided by %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Toolbar style:</source>
<translation>Werkzeugleisten-Stil:</translation>
</message>
@@ -17874,10 +18894,22 @@ Trotzdem fortfahren?</translation>
<translation>DPI-Rundungsstrategie:</translation>
</message>
<message>
+ <source>The following environment variables are set and can influence the UI scaling behavior of %1:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Environment influences UI scaling behavior.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Text codec for tools:</source>
<translation>Zeichenkodierung für Werkzeuge:</translation>
</message>
<message>
+ <source>The cursors for resizing views will change after restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>The language change will take effect after restart.</source>
<translation>Die Änderung der Sprache wird nach einem Neustart wirksam.</translation>
</message>
@@ -18076,10 +19108,6 @@ Trotzdem fortfahren?</translation>
<translation>Menüleiste verbergen</translation>
</message>
<message>
- <source>This will hide the menu bar completely. You can show it again by typing %1.</source>
- <translation>Dies verbirgt die Menüleiste. Sie können Sie durch Eingeben von %1 wieder anzeigen.</translation>
- </message>
- <message>
<source>Version:</source>
<translation>Version:</translation>
</message>
@@ -18116,6 +19144,10 @@ Trotzdem fortfahren?</translation>
<translation>Ctrl+Meta+W</translation>
</message>
<message>
+ <source>This will hide the menu bar completely. You can show it again by typing %1.&lt;br&gt;&lt;br&gt;Or, trigger the &quot;%2&quot; action from the &quot;%3&quot; locator filter (%4).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Change Log...</source>
<translation>Änderungshistorie...</translation>
</message>
@@ -18327,10 +19359,6 @@ Trotzdem fortfahren?</translation>
<translation>Änderungen der Plugins werden nach einem Neustart wirksam.</translation>
</message>
<message>
- <source>Plugin Details of %1</source>
- <translation>Beschreibung zu %1</translation>
- </message>
- <message>
<source>Plugin Errors of %1</source>
<translation>Fehler in %1</translation>
</message>
@@ -18439,6 +19467,10 @@ Trotzdem fortfahren?</translation>
<translation>Ãœber %1</translation>
</message>
<message>
+ <source>Copy and Close</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>&lt;br/&gt;From revision %1&lt;br/&gt;</source>
<translation>&lt;br/&gt;Revision %1&lt;br/&gt;</translation>
</message>
@@ -19359,6 +20391,14 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
<translation>Verzeichnisse:</translation>
</message>
<message>
+ <source>Cannot Create File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create file &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Create Directory</source>
<translation>Verzeichnis erzeugen</translation>
</message>
@@ -19605,6 +20645,10 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
<translation>Alle aufklappen</translation>
</message>
<message>
+ <source>Show Paths in Relation to Active Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Filter Results</source>
<translation>Resultate filtern</translation>
</message>
@@ -19617,6 +20661,10 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
<translation>Alle einklappen</translation>
</message>
<message>
+ <source>Show Full Paths</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Search Results</source>
<translation>Suchergebnisse</translation>
</message>
@@ -19781,6 +20829,14 @@ Möchten Sie es beenden?</translation>
<translation>Vollbildmodus einschalten</translation>
</message>
<message>
+ <source>Proxy Authentication Required</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do not ask again.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>No themes found in installation.</source>
<translation>Keine Themen in der Installation gefunden.</translation>
</message>
@@ -19861,6 +20917,10 @@ Möchten Sie es beenden?</translation>
<translation>Ein Kommentar.</translation>
</message>
<message>
+ <source>Convert string to pure ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Create Folder</source>
<translation>Verzeichnis erzeugen</translation>
</message>
@@ -20037,10 +21097,6 @@ Möchten Sie sie jetzt auschecken?</translation>
<translation>Ctrl+W</translation>
</message>
<message>
- <source>Alternative Close</source>
- <translation>Schließen (alternativ)</translation>
- </message>
- <message>
<source>Ctrl+F4</source>
<translation>Ctrl+F4</translation>
</message>
@@ -20550,14 +21606,6 @@ provided they were unmodified before the refactoring.</source>
<translation>Mit Groß-/Kleinschreibung:</translation>
</message>
<message>
- <source> (%1)</source>
- <translation> (%1)</translation>
- </message>
- <message>
- <source>%1 %2%3</source>
- <translation>%1 %2%3</translation>
- </message>
- <message>
<source>Based on Qt %1 (%2, %3)</source>
<translation>Auf Qt %1 (%2, %3) beruhend</translation>
</message>
@@ -21419,6 +22467,10 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
<translation>Alle Funktionsdefinitionen nach %1 verschieben</translation>
</message>
<message>
+ <source>Move Definition Here</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Move Definition to Class</source>
<translation>Definition in Klasse verschieben</translation>
</message>
@@ -22072,6 +23124,14 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header-
<translation>&quot;#pragma once&quot; statt Include-Guards mit &quot;#ifndef&quot; verwenden</translation>
</message>
<message>
+ <source>Headers</source>
+ <translation type="unfinished">Header-Dateien</translation>
+ </message>
+ <message>
+ <source>Sources</source>
+ <translation type="unfinished">Quelldateien</translation>
+ </message>
+ <message>
<source>S&amp;uffix:</source>
<translation>E&amp;ndung:</translation>
</message>
@@ -22621,6 +23681,10 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun
<translation>Bei Code-Vervollständigung Header-Dateien hinzufügen</translation>
</message>
<message>
+ <source>Automatic</source>
+ <translation type="unfinished">Automatisch</translation>
+ </message>
+ <message>
<source>Ignore files greater than</source>
<translation>Dateien ignorieren, wenn sie größer sind als</translation>
</message>
@@ -25171,6 +26235,10 @@ markers in the source code editor.</source>
<translation>Alle Zeichen als druckbar betrachten</translation>
</message>
<message>
+ <source>%1 of length %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Show Unprintable Characters as Escape Sequences</source>
<translation>Nicht druckbare Zeichen als Escape-Sequenz anzeigen</translation>
</message>
@@ -26377,28 +27445,24 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
<translation>&lt;a href=&quot;qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html&quot;&gt;Was sind die Voraussetzungen?&lt;/a&gt;</translation>
</message>
<message>
- <source>Enable C++ debugger.</source>
- <translation>C++-Debugger aktivieren.</translation>
- </message>
- <message>
- <source>Try to determine need for C++ debugger.</source>
- <translation>Versuche, die Notwendigkeit eines C++-Debuggers automatisch festzustellen.</translation>
+ <source>Enable %1 debugger.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Enable QML debugger.</source>
- <translation>QML-Debugger aktivieren.</translation>
+ <source>Disable %1 debugger.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Try to determine need for QML debugger.</source>
- <translation>Versuche, die Notwendigkeit eines QML-Debuggers automatisch festzustellen.</translation>
+ <source>Try to determine need for %1 debugger.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Without additional startup commands.</source>
- <translation>Ohne zusätzliche Kommandos beim Start.</translation>
+ <source>No additional startup commands.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>With additional startup commands.</source>
- <translation>Mit zusätzlichen Kommandos beim Start.</translation>
+ <source>Use additional startup commands.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>C++ debugger:</source>
@@ -26409,6 +27473,10 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
<translation>QML-Debugger:</translation>
</message>
<message>
+ <source>Python debugger:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Enable Debugging of Subprocesses</source>
<translation>Debuggen von Unterprozessen zulassen</translation>
</message>
@@ -28683,6 +29751,85 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
</message>
</context>
<context>
+ <name>QtC::ExtensionManager</name>
+ <message>
+ <source>Extensions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Get started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Install the extension from above. Installation starts automatically. You can always uninstall the extension afterwards.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>More information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Online Documentation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tutorials</source>
+ <translation type="unfinished">Anleitungen</translation>
+ </message>
+ <message>
+ <source>Examples</source>
+ <translation type="unfinished">Beispiele</translation>
+ </message>
+ <message>
+ <source>Extension library details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation type="unfinished">Größe</translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation type="unfinished">Version</translation>
+ </message>
+ <message>
+ <source>Location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Extension details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Released</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Related tags</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Platforms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dependencies</source>
+ <translation type="unfinished">Abhängigkeiten</translation>
+ </message>
+ <message>
+ <source>Extensions in pack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Manage Extensions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Install...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>QtC::ExtensionSystem</name>
<message>
<source>Name:</source>
@@ -28717,6 +29864,10 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<translation>Abhängigkeiten:</translation>
</message>
<message>
+ <source>Plugin Details of %1</source>
+ <translation type="unfinished">Beschreibung zu %1</translation>
+ </message>
+ <message>
<source>Group:</source>
<translation>Gruppe:</translation>
</message>
@@ -28981,7 +30132,13 @@ Grund: %3</translation>
<translation>Plugin ist auf dieser Plattform nicht verfügbar.</translation>
</message>
<message>
+ <source>%1 (deprecated)</source>
+ <extracomment>%1 is a plugin name</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>%1 (experimental)</source>
+ <extracomment>%1 is a plugin name</extracomment>
<translation>%1 (experimentell)</translation>
</message>
<message>
@@ -29051,6 +30208,10 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
%2</translation>
</message>
<message>
+ <source>Details</source>
+ <translation type="unfinished">Details</translation>
+ </message>
+ <message>
<source>The following plugins have errors and cannot be loaded:</source>
<translation>Die folgenden Plugins sind fehlerhaft und können nicht geladen werden:</translation>
</message>
@@ -29063,6 +30224,10 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
<translation>Fortsetzen</translation>
</message>
<message>
+ <source>Multiple versions of the same plugin have been found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>%1 &gt; About Plugins</source>
<translation>%1 &gt; Plugins</translation>
</message>
@@ -30694,6 +31859,10 @@ Jetzt Commit ausführen?</translation>
<translation>pull mit rebase</translation>
</message>
<message>
+ <source>Git command:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Set &quot;HOME&quot; environment variable</source>
<translation>Umgebungsvariable &quot;HOME&quot; setzen</translation>
</message>
@@ -31158,18 +32327,6 @@ wenn es außerhalb von git bash aufgerufen wird.</translation>
<translation>Anfrage an Gerrit</translation>
</message>
<message>
- <source>Error running %1: %2</source>
- <translation>Fehler bei Ausführung von %1: %2</translation>
- </message>
- <message>
- <source>%1 crashed.</source>
- <translation>%1 ist abgestürzt.</translation>
- </message>
- <message>
- <source>%1 returned %2.</source>
- <translation>%1 gab %2 zurück.</translation>
- </message>
- <message>
<source>Timeout</source>
<translation>Zeitüberschreitung</translation>
</message>
@@ -31967,15 +33124,6 @@ Leer lassen, um das Dateisystem zu durchsuchen.</translation>
<translation>Diff für aktuelle Datei</translation>
</message>
<message>
- <source>Git Blame</source>
- <translation>Git Blame</translation>
- </message>
- <message>
- <source>&lt;b&gt;Note:&lt;/b&gt; &quot;%1&quot; or &quot;%2&quot; is enabled in the instant blame settings.</source>
- <extracomment>%1 and %2 are the &quot;ignore whitespace changes&quot; and &quot;ignore line moves&quot; options</extracomment>
- <translation>&lt;b&gt;Hinweis:&lt;/b&gt; &quot;%1&quot; oder &quot;%2&quot; ist in den Einstellungen für Instant Blame aktiviert.</translation>
- </message>
- <message>
<source>Diff of &quot;%1&quot;</source>
<comment>Avoid translating &quot;Diff&quot;</comment>
<translation>Diff für &quot;%1&quot;</translation>
@@ -32150,10 +33298,6 @@ Leer lassen, um das Dateisystem zu durchsuchen.</translation>
<translation>Es wurde eine nicht unterstützte Version von Git festgestellt. Es wird Git %1 oder neuer benötigt.</translation>
</message>
<message>
- <source>You</source>
- <translation>Sie selbst</translation>
- </message>
- <message>
<source>Amend %1</source>
<translation>Abgabe %1 ändern (amend)</translation>
</message>
@@ -33622,6 +34766,18 @@ Möchten Sie sie überschreiben?</translation>
<translation>Die Info.plist ist möglicherweise fehlerhaft.</translation>
</message>
<message>
+ <source>Deployment canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to run devicectl: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>devicectl returned unexpected output ... deployment might have failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>The provisioning profile &quot;%1&quot; (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail.</source>
<translation>Das zum Signieren der Anwendung verwendete Provisioning-Profil &quot;%1&quot; (%2) deckt das Gerät %3 (%4) nicht ab. Deployment auf dieses wird scheitern.</translation>
</message>
@@ -33736,6 +34892,10 @@ Möchten Sie sie überschreiben?</translation>
<translation>Keine Verbindung zu %1.</translation>
</message>
<message>
+ <source>Debugging and profiling is currently not supported for devices with iOS 17 and later.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Device type:</source>
<translation>Gerätetyp:</translation>
</message>
@@ -33756,8 +34916,8 @@ Möchten Sie sie überschreiben?</translation>
<translation>Der Start der Anwendung im Simulator ist gescheitert. Der Bundle-Pfad %1 ist ungültig</translation>
</message>
<message>
- <source>Application launch on simulator failed. Simulator not running.</source>
- <translation>Der Start der Anwendung im Simulator ist gescheitert. Der Simulator läuft nicht.</translation>
+ <source>Application launch on simulator failed. Simulator not running. %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Application install on simulator failed. %1</source>
@@ -33780,6 +34940,26 @@ Möchten Sie sie überschreiben?</translation>
<translation>Ungültige Antwort des Simulators. Die Geräte-IDs stimmen nicht überein. Geräte-ID = %1 Antwort-ID = %2</translation>
</message>
<message>
+ <source>Running failed. No iOS device found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Running canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; exited.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to determine bundle identifier.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Running &quot;%1&quot; on %2...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Could not find %1.</source>
<translation>%1 konnte nicht gefunden werden.</translation>
</message>
@@ -34141,6 +35321,82 @@ Ablaufdatum: %3</translation>
<source>Reset to Default</source>
<translation>Auf Vorgabe zurücksetzen</translation>
</message>
+ <message>
+ <source>Failed to parse devicectl output: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Operation failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to parse devicectl output: &quot;result&quot; is missing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>devicectl returned unexpected output ... running failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to start process.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Process was canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Process was forced to exit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot find xcrun.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>xcrun is not executable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid Empty UDID.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to start simulator app.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Simulator device is not available. (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Simulator start was canceled.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot start Simulator device. Previous instance taking too long to shut down. (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot start Simulator device. Simulator not in shutdown state. (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot start Simulator device. Simulator not in booted state. (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bundle path does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid (empty) bundle identifier.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to convert inferior pid. (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtC::LanguageClient</name>
@@ -34209,6 +35465,46 @@ Ablaufdatum: %3</translation>
<translation>Verwalten...</translation>
</message>
<message>
+ <source>Install npm Package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Running &quot;%1&quot; to install %2.</source>
+ <translation type="unfinished">Führe &quot;%1&quot; aus, um %2 zu installieren.</translation>
+ </message>
+ <message>
+ <source>The installation of &quot;%1&quot; was canceled by timeout.</source>
+ <translation type="unfinished">Die Installation von &quot;%1&quot; wurde wegen Zeitüberschreitung abgebrochen.</translation>
+ </message>
+ <message>
+ <source>The installation of &quot;%1&quot; was canceled by the user.</source>
+ <translation type="unfinished">Die Installation von &quot;%1&quot; wurde vom Benutzer abgebrochen.</translation>
+ </message>
+ <message>
+ <source>Installing &quot;%1&quot; failed with exit code %2.</source>
+ <translation type="unfinished">Die Installation von &quot;%1&quot; ist mit dem Rückgabewert %2 fehlgeschlagen.</translation>
+ </message>
+ <message>
+ <source>Install %1 language server via npm.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Setup %1 language server (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Install</source>
+ <translation type="unfinished">Installieren</translation>
+ </message>
+ <message>
+ <source>Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 Language Server</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Name:</source>
<translation>Name:</translation>
</message>
@@ -34428,6 +35724,10 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Langu
<translation>Alle aufklappen</translation>
</message>
<message>
+ <source>Collapse All</source>
+ <translation type="unfinished">Alle einklappen</translation>
+ </message>
+ <message>
<source>Client Message</source>
<translation>Client-Nachricht</translation>
</message>
@@ -35120,6 +36420,14 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Langu
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Read about Using QtMCUs in the Qt Design Studio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Go to the Documentation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Create new kits</source>
<translation type="unfinished"></translation>
</message>
@@ -36859,6 +38167,11 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>&amp;Hijack</translation>
</message>
<message>
+ <source>Error running &quot;where&quot; on %1: The file is not mapped.</source>
+ <extracomment>Failed to run p4 &quot;where&quot; to resolve a Perforce file name to a local file system name.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>p4 revert</source>
<translation>Rückgängig machen</translation>
</message>
@@ -36899,18 +38212,6 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>p4 changelists %1</translation>
</message>
<message>
- <source>Could not start perforce &quot;%1&quot;. Please check your settings in the preferences.</source>
- <translation>Das Perforce-Kommando &quot;%1&quot; konnte nicht gestartet werden. Bitte überprüfen Sie die Einstellungen.</translation>
- </message>
- <message>
- <source>Perforce did not respond within timeout limit (%1 s).</source>
- <translation>Perforce reagierte nicht innerhalb des Zeitlimits (%1 s).</translation>
- </message>
- <message>
- <source>The process terminated with exit code %1.</source>
- <translation>Der Prozess wurde beendet, Rückgabewert %1.</translation>
- </message>
- <message>
<source>Close Submit Editor</source>
<translation>Submit-Editor schließen</translation>
</message>
@@ -36927,20 +38228,6 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>Submit fehlgeschlagen: %1.</translation>
</message>
<message>
- <source>p4 submit failed: %1</source>
- <translation>Fehler beim Submit: %1</translation>
- </message>
- <message>
- <source>Error running &quot;where&quot; on %1: %2</source>
- <extracomment>Failed to run p4 &quot;where&quot; to resolve a Perforce file name to a local file system name.</extracomment>
- <translation>Fehler bei der Ausführung von &quot;where&quot; bei Datei &quot;%1&quot;: %2</translation>
- </message>
- <message>
- <source>The file is not mapped</source>
- <extracomment>File is not managed by Perforce</extracomment>
- <translation>Die Datei wird nicht von Perforce verwaltet</translation>
- </message>
- <message>
<source>Perforce repository: %1</source>
<translation>Perforce-Repository: %1</translation>
</message>
@@ -36949,10 +38236,6 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>Perforce: Das Repository von konnte nicht bestimmt werden: %1</translation>
</message>
<message>
- <source>The process terminated abnormally.</source>
- <translation>Der Prozess wurde unnormal beendet.</translation>
- </message>
- <message>
<source>Perforce is not correctly configured.</source>
<translation>Perforce ist nicht richtig konfiguriert.</translation>
</message>
@@ -37231,10 +38514,6 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>Ãœberspringe deaktivierten Schritt %1.</translation>
</message>
<message>
- <source>Variable already exists.</source>
- <translation>Variable existiert bereits.</translation>
- </message>
- <message>
<source>Ed&amp;it</source>
<translation>Bearbe&amp;iten</translation>
</message>
@@ -37263,10 +38542,6 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
<translation>Pfad voranstellen...</translation>
</message>
<message>
- <source>&amp;Batch Edit...</source>
- <translation>Als &amp;Text bearbeiten...</translation>
- </message>
- <message>
<source>Open &amp;Terminal</source>
<translation>&amp;Terminalfenster öffnen</translation>
</message>
@@ -38183,6 +39458,14 @@ Bitte versuchen Sie es erneut.</translation>
<translation>Führt eine Ausführungskonfiguration des aktiven Projekts aus.</translation>
</message>
<message>
+ <source>Debug Run Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Starts debugging a run configuration of the active project.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Switch Run Configuration</source>
<translation>Ausführungskonfiguration auswählen</translation>
</message>
@@ -38821,6 +40104,10 @@ The name of the build configuration created by default for a generic project.</e
<translation>&amp;Fortsetzen</translation>
</message>
<message>
+ <source>Remote process did not finish in time. Connectivity lost?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Starting %1...</source>
<translation>Starte %1...</translation>
</message>
@@ -39890,14 +41177,6 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
<translation>QMainWindow einbinden</translation>
</message>
<message>
- <source>Include QDeclarativeItem - Qt Quick 1</source>
- <translation>QDeclarativeItem einbinden - Qt Quick 1</translation>
- </message>
- <message>
- <source>Include QQuickItem - Qt Quick 2</source>
- <translation>QQuickItem einbinden - Qt Quick 2</translation>
- </message>
- <message>
<source>Include QSharedData</source>
<translation>QSharedData einbinden</translation>
</message>
@@ -40632,6 +41911,10 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
<translation>PySide 6</translation>
</message>
<message>
+ <source>Include QQuickItem</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Qt 6.2</source>
<translation>Qt 6.2</translation>
</message>
@@ -40856,6 +42139,26 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
<translation>Qt Quick Test-Projekt</translation>
</message>
<message>
+ <source>Creates a translation file that you can add to a Qt project.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Qt Translation File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2.x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>3.x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Catch2 version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Creates a CMake-based test project for which a code snippet can be entered.</source>
<translation>Erstellt ein CMake-basiertes Testprojekt, für welches ein Code-Ausschnitt angegeben werden kann.</translation>
</message>
@@ -41380,6 +42683,11 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</translation>
</message>
<message>
+ <source>* Failed to create: %1
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>The platform selected for the wizard.</source>
<translation>Die für den Assistenten ausgewählte Plattform.</translation>
</message>
@@ -41508,16 +42816,8 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
<translation>Wählen Sie das Wurzelverzeichnis</translation>
</message>
<message>
- <source>Replacement for</source>
- <translation>Ersatz für</translation>
- </message>
- <message>
- <source>Replacement for &quot;%1&quot;</source>
- <translation>Ersatz für &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Project &quot;%1&quot; was configured for kit &quot;%2&quot; with id %3, which does not exist anymore. The new kit &quot;%4&quot; was created in its place, in an attempt not to lose custom project settings.</source>
- <translation>Das Projekt &quot;%1&quot; wurde für das Kit &quot;%2&quot; mit dem Bezeichner %3 konfiguriert. Dieses Kit existiert nicht mehr. Das neue Kit &quot;%4&quot; wurde an seiner Stelle erzeugt, um den Verlust von benutzerdefinierten Projekteinstellungen zu verhindern.</translation>
+ <source>Project &quot;%1&quot; was configured for kit &quot;%2&quot; with id %3, which does not exist anymore. You can create a new kit or copy the steps of the vanished kit to another kit in %4 mode.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Could not find any qml_*.qm file at &quot;%1&quot;</source>
@@ -41768,6 +43068,43 @@ Sie werden erhalten.</numerusform>
<translation>Nicht passende Zeilen anzeigen</translation>
</message>
<message>
+ <source>The project was configured for kits that no longer exist. Select one of the following options in the context menu to restore the project&apos;s settings:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create a new kit with the same name for the same device type, with the original build, deploy, and run steps. Other kit settings are not restored.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy the build, deploy, and run steps to another kit.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 (%2)</source>
+ <extracomment>vanished target display role: vanished target name (device type name)</extracomment>
+ <translation type="unfinished">%1 (%2)</translation>
+ </message>
+ <message>
+ <source>Create a New Kit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Steps to Another Kit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove Vanished Target &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove All Vanished Targets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vanished Targets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Project Settings</source>
<translation>Projekteinstellungen</translation>
</message>
@@ -42041,10 +43378,6 @@ Was soll %1 tun?</translation>
<translation>Debug-Version von Frameworks verwenden (DYLD_IMAGE_SUFFIX=_debug)</translation>
</message>
<message>
- <source>Interpreter:</source>
- <translation>Interpreter:</translation>
- </message>
- <message>
<source>X11 Forwarding:</source>
<translation>X11-Weiterleitung:</translation>
</message>
@@ -42065,10 +43398,6 @@ Was soll %1 tun?</translation>
<translation>MAKEFLAGS überschreiben</translation>
</message>
<message>
- <source>&lt;code&gt;MAKEFLAGS&lt;/code&gt; specifies parallel jobs. Check &quot;%1&quot; to override.</source>
- <translation>&lt;code&gt;MAKEFLAGS&lt;/code&gt; legt parallele Jobs fest. Wählen Sie &quot;%1&quot;, um dies zu überstimmen.</translation>
- </message>
- <message>
<source>Disable in subdirectories:</source>
<translation>In Unterverzeichnissen deaktivieren:</translation>
</message>
@@ -42109,6 +43438,18 @@ Was soll %1 tun?</translation>
<translation>&lt;b&gt;Make:&lt;/b&gt; %1 konnte in der Umgebung nicht gefunden werden.</translation>
</message>
<message>
+ <source>Overriding &lt;code&gt;MAKEFLAGS&lt;/code&gt; environment variable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;code&gt;MAKEFLAGS&lt;/code&gt; specifies a conflicting job count.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No conflict with &lt;code&gt;MAKEFLAGS&lt;/code&gt; environment variable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Enable connection sharing:</source>
<translation>Verbindungsfreigabe aktivieren:</translation>
</message>
@@ -42215,6 +43556,14 @@ Was soll %1 tun?</translation>
<translation>Shadow-Build:</translation>
</message>
<message>
+ <source>Build directory contains potentially problematic character &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> This warning can be suppressed &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>The project is currently being parsed.</source>
<translation>Das Projekt wird gerade ausgewertet.</translation>
</message>
@@ -42524,6 +43873,14 @@ Was soll %1 tun?</translation>
<translation>Erstellungsprozesse mit niedriger Priorität starten</translation>
</message>
<message>
+ <source>Warn against build directories with spaces or non-ASCII characters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Some legacy build tools do not deal well with paths that contain &quot;special&quot; characters such as spaces, potentially resulting in spurious build errors.&lt;p&gt;Uncheck this option if you do not work with such tools.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Do Not Build Anything</source>
<translation>Nichts erstellen</translation>
</message>
@@ -42568,6 +43925,14 @@ Was soll %1 tun?</translation>
<translation>jom statt nmake verwenden</translation>
</message>
<message>
+ <source>Environment changes to apply to run configurations, but not build configurations.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Application environment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Projects Directory</source>
<translation>Projektverzeichnis</translation>
</message>
@@ -42966,6 +44331,10 @@ fails because Clang does not understand the target architecture.</source>
<translation>Als &amp;Vorgabe setzen</translation>
</message>
<message>
+ <source>&amp;Generate Kit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>&amp;Clean Up</source>
<translation>&amp;Bereiningen</translation>
</message>
@@ -43002,11 +44371,6 @@ fails because Clang does not understand the target architecture.</source>
<translation>Language Server-Konfiguration</translation>
</message>
<message>
- <source>%1 (Windowed)</source>
- <extracomment>&lt;python display name&gt; (Windowed)</extracomment>
- <translation>%1 (mit Fenster)</translation>
- </message>
- <message>
<source>Python interpreter:</source>
<translation>Python-Interpreter:</translation>
</message>
@@ -43035,12 +44399,20 @@ fails because Clang does not understand the target architecture.</source>
<translation>PySide-Version auswählen</translation>
</message>
<message>
- <source>Select which PySide version to install:</source>
- <translation>Wählen Sie die zu installierende PySide-Version aus:</translation>
+ <source>Installing PySide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Latest PySide from the Python Package Index</source>
- <translation>Letzte PySide-Version aus dem Python-Paketindex</translation>
+ <source>Select which version to install:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Latest PySide from the PyPI</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>PySide %1 Wheel (%2)</source>
@@ -43091,8 +44463,28 @@ fails because Clang does not understand the target architecture.</source>
<translation>Geben Sie den Ort des PySide Projektwerkzeugs ein.</translation>
</message>
<message>
- <source>General</source>
- <translation>Allgemein</translation>
+ <source>PySide uic tool:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter location of PySide uic tool.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Effective venv:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New Virtual Environment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Global Python</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> Virtual Environment</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>REPL</source>
@@ -43167,16 +44559,48 @@ fails because Clang does not understand the target architecture.</source>
<translation>PySide-Version:</translation>
</message>
<message>
- <source>Create new virtual environment</source>
- <translation>Neue virtuelle Umgebung erstellen</translation>
+ <source>Issues parsed from Python runtime output.</source>
+ <translation>Probleme, die in der Laufzeitausgabe von Python gefunden wurden.</translation>
</message>
<message>
- <source>Path to virtual environment:</source>
- <translation>Pfad zur virtuellen Umgebung:</translation>
+ <source>None</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>Issues parsed from Python runtime output.</source>
- <translation>Probleme, die in der Laufzeitausgabe von Python gefunden wurden.</translation>
+ <source>The interpreter used for Python based projects.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No Python setup.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Python &quot;%1&quot; not found.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Python &quot;%1&quot; is not executable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Python &quot;%1&quot; does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Python &quot;%1&quot; does not contain a usable venv. venv is the recommended way to isolate a development environment for a project from the globally installed Python.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name of Python Interpreter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Path to Python Interpreter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No Python interpreter set for kit &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -43545,6 +44969,10 @@ The affected files are:
Die betroffenen Dateien sind:
%2</translation>
</message>
+ <message>
+ <source>Qbs Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QtC::Qdb</name>
@@ -46867,7 +48295,7 @@ Speichern fehlgeschlagen.</translation>
</message>
<message>
<source>Advanced Options</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Erweiterte Optionen</translation>
</message>
<message>
<source>File %1 will be created.
@@ -47060,6 +48488,14 @@ Are you sure?</source>
<translation type="unfinished">Build-Verzeichnis:</translation>
</message>
<message>
+ <source>The Selected Kit Is Not Supported</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>You cannot use the selected kit to preview Qt for MCUs applications.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed to find valid Qt for MCUs kit</source>
<translation type="unfinished"></translation>
</message>
@@ -47214,10 +48650,6 @@ Möchten Sie fortfahren?</translation>
<translation>Es gibt keine lokale Datei &quot;%1&quot;.</translation>
</message>
<message>
- <source>Remote chmod failed for file &quot;%1&quot;: %2</source>
- <translation>&quot;chmod&quot; für die entfernte Datei &quot;%1&quot; ist fehlgeschlagen: %2</translation>
- </message>
- <message>
<source>No device configuration set.</source>
<translation>Es ist keine Gerätekonfiguration gesetzt.</translation>
</message>
@@ -47384,6 +48816,10 @@ wirklich löschen?</translation>
<translation>Qt %{Qt:Version} (%2)</translation>
</message>
<message>
+ <source> (on %1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Qt version is not properly installed, please run make install</source>
<translation>Die Qt-Version ist nicht richtig installiert, führen Sie bitte make install aus</translation>
</message>
@@ -47892,8 +49328,12 @@ wirklich löschen?</translation>
<translation>Deaktiviert QML-Debuggen. QML-Profiling funktioniert weiterhin.</translation>
</message>
<message>
- <source>If you plan to provide translations for your project&apos;s user interface via the Qt Linguist tool, please select a language here. A corresponding translation (.ts) file will be generated for you.</source>
- <translation>Falls Sie planen, Übersetzungen für die Benutzeroberfläche Ihres Projekts über das Qt Linguist-Werkzeug bereit zu stellen, wählen Sie hier eine Sprache. Eine zugehörige Übersetzungsdatei (.ts) wird für Sie erzeugt.</translation>
+ <source>Select a language for which a corresponding translation (.ts) file will be generated for you.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you plan to provide translations for your project&apos;s user interface via the Qt Linguist tool, select a language here. A corresponding translation (.ts) file will be generated for you.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>&lt;none&gt;</source>
@@ -48080,10 +49520,6 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
<translation>Es gibt keine lokale Datei &quot;%1&quot;.</translation>
</message>
<message>
- <source>Remote chmod failed for file &quot;%1&quot;: %2</source>
- <translation>&quot;chmod&quot; für die entfernte Datei &quot;%1&quot; ist fehlgeschlagen: %2</translation>
- </message>
- <message>
<source>Incremental deployment</source>
<translation>Inkrementelles Deployment</translation>
</message>
@@ -48132,6 +49568,19 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
<translation>Alle angegebenen Ports sind verfügbar.</translation>
</message>
<message>
+ <source>Connecting to device...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Connected. Now doing extended checks.
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Basic connectivity test failed, device is considered unusable.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Device replied to echo with unexpected contents: &quot;%1&quot;</source>
<translation>Das Gerät hat auf das Echo mit unerwartetem Inhalt geantwortet: &quot;%1&quot;</translation>
</message>
@@ -48444,6 +49893,14 @@ Der Kontrollprozess konnte nicht gestartet werden.</translation>
<translation>SSH-Verbindungsfehler:</translation>
</message>
<message>
+ <source>Device is disconnected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t send control signal to the %1 device. The device might have been disconnected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Remote Linux</source>
<translation>Entferntes Linuxgerät</translation>
</message>
@@ -48452,10 +49909,26 @@ Der Kontrollprozess konnte nicht gestartet werden.</translation>
<translation>Fehler</translation>
</message>
<message>
+ <source>Establishing initial connection to device &quot;%1&quot;. This might take a moment.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Device &quot;%1&quot; is currently marked as disconnected.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The device was not available when trying to connect previously.&lt;br&gt;No further connection attempts will be made until the device is manually reset by running a successful connection test via the &lt;a href=&quot;dummy&quot;&gt;settings page&lt;/a&gt;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed: %1</source>
<translation>Fehlgeschlagen: %1</translation>
</message>
<message>
+ <source>Device is considered unconnected. Re-run device test to reset state.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Remote Linux Device</source>
<translation>Entferntes Linuxgerät</translation>
</message>
@@ -48590,10 +50063,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
<translation>Ãœbertragungsmethode:</translation>
</message>
<message>
- <source>Use rsync if available. Otherwise use default transfer.</source>
- <translation>Benutze rsync, sofern verfügbar. Sonst Standardmethode verwenden.</translation>
- </message>
- <message>
<source>Use sftp if available. Otherwise use default transfer.</source>
<translation>Benutze SFTP, sofern verfügbar. Sonst Standardmethode verwenden.</translation>
</message>
@@ -48606,6 +50075,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
<translation>Beim Erstellen von entfernten Verzeichnissen ist ein unbekannter Fehler aufgetreten</translation>
</message>
<message>
+ <source>Transfer method was downgraded from &quot;%1&quot; to &quot;%2&quot;. If this is unexpected, please re-test device &quot;%3&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>rsync failed to start: %1</source>
<translation>rsync konnte nicht gestartet werden: %1</translation>
</message>
@@ -48626,6 +50099,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
<translation>Fehlende Dateien ignorieren:</translation>
</message>
<message>
+ <source>Use rsync or sftp if available, but prefer rsync. Otherwise use default transfer.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>rsync is only supported for transfers between different devices.</source>
<translation>rsync wird nur für das Übertragen zwischen unterschiedlichen Geräten unterstützt.</translation>
</message>
@@ -50213,6 +51690,22 @@ Testfall &quot;%2&quot; wird nicht aufgezeichnet.</translation>
<translation>Test-Suites</translation>
</message>
<message>
+ <source>Do you really want to delete &quot;%1&quot; permanently?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove Shared File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+ <message>
+ <source>Failed to remove &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Remove &quot;%1&quot; from the list of shared folders?</source>
<translation>&quot;%1&quot; aus der Liste der gemeinsamen Verzeichnisse entfernen?</translation>
</message>
@@ -50952,7 +52445,6 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>Sends Esc to terminal instead of %1.</source>
- <extracomment>%1 is the application name (Qt Creator)</extracomment>
<translation>Sendet Escape zum Terminal statt zu %1.</translation>
</message>
<message>
@@ -50965,12 +52457,10 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>%1 shortcuts are blocked when focus is inside the terminal.</source>
- <extracomment>%1 is the application name (Qt Creator)</extracomment>
<translation>Tastenkombinationen von %1 werden blockiert, wenn der Fokus im Terminal ist.</translation>
</message>
<message>
<source>%1 shortcuts take precedence.</source>
- <extracomment>%1 is the application name (Qt Creator)</extracomment>
<translation>Tastenkombinationen von %1 werden bevorzugt.</translation>
</message>
<message>
@@ -51178,6 +52668,10 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
<translation>Einfügen</translation>
</message>
<message>
+ <source>Select All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Clear Selection</source>
<translation>Auswahl löschen</translation>
</message>
@@ -51483,6 +52977,10 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
<translation>Kopieren...</translation>
</message>
<message>
+ <source>Custom settings:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Delete</source>
<translation>Löschen</translation>
</message>
@@ -51757,10 +53255,6 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
<translation>Importieren...</translation>
</message>
<message>
- <source>Current settings:</source>
- <translation>Aktuelle Einstellungen:</translation>
- </message>
- <message>
<source>Copy Code Style</source>
<translation>Coding Style kopieren</translation>
</message>
@@ -51805,6 +53299,10 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
<translation>%1 [eingebaut]</translation>
</message>
<message>
+ <source>%1 [customizable]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Files in File System</source>
<translation>Dateien aus Dateisystem</translation>
</message>
@@ -52202,6 +53700,14 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
<translation>Zeilenende-Kodierung anzeigen</translation>
</message>
<message>
+ <source>&amp;Highlight selection</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Adds a colored background and a marker to the scrollbar to occurrences of the selected text.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Next to editor content</source>
<translation>Neben Editorinhalt</translation>
</message>
@@ -52912,8 +54418,8 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
<translation>Alt+U</translation>
</message>
<message>
- <source>&amp;Sort Selected Lines</source>
- <translation>Auswahl &amp;sortieren</translation>
+ <source>&amp;Sort Lines</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Meta+Shift+S</source>
@@ -54127,10 +55633,23 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.</translation>
<translation>In die Zwischenablage kopieren</translation>
</message>
<message>
+ <source>Git Blame</source>
+ <translation type="unfinished">Git Blame</translation>
+ </message>
+ <message>
<source>Copy SHA1 to Clipboard</source>
<translation>SHA1 in die Zwischenablage kopieren</translation>
</message>
<message>
+ <source>&lt;b&gt;Note:&lt;/b&gt; &quot;%1&quot; or &quot;%2&quot; is enabled in the instant blame settings.</source>
+ <extracomment>%1 and %2 are the &quot;ignore whitespace changes&quot; and &quot;ignore line moves&quot; options</extracomment>
+ <translation type="unfinished">&lt;b&gt;Hinweis:&lt;/b&gt; &quot;%1&quot; oder &quot;%2&quot; ist in den Einstellungen für Instant Blame aktiviert.</translation>
+ </message>
+ <message>
+ <source>You</source>
+ <translation type="unfinished">Sie selbst</translation>
+ </message>
+ <message>
<source>Show Preview</source>
<translation>Vorschau anzeigen</translation>
</message>
@@ -54143,10 +55662,6 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.</translation>
<translation>Hervorherbung</translation>
</message>
<message>
- <source>Strong</source>
- <translation>Fett</translation>
- </message>
- <message>
<source>Inline Code</source>
<translation>Inline-Quelltext</translation>
</message>
@@ -54761,10 +56276,6 @@ Die Trace-Daten sind verloren.</translation>
<translation>Vorgabe wiederherstellen</translation>
</message>
<message>
- <source>Automatically Hide View Title Bars</source>
- <translation>Titelleisten von Anzeigen automatisch ausblenden</translation>
- </message>
- <message>
<source>Name contains white space.</source>
<translation>Der Name enthält Leerzeichen.</translation>
</message>
@@ -54837,8 +56348,8 @@ Die Trace-Daten sind verloren.</translation>
<translation>Das Kommando &quot;%1&quot; konnte nicht gestartet werden.</translation>
</message>
<message>
- <source>The command &quot;%1&quot; did not respond within the timeout limit (%2 s).</source>
- <translation>Das Kommando &quot;%1&quot; hat nicht innerhalb des Zeitlimits (%2 s) geantwortet.</translation>
+ <source>The command &quot;%1&quot; was canceled after %2 ms.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Invalid command</source>
@@ -54881,6 +56392,10 @@ Die Trace-Daten sind verloren.</translation>
<translation>Das Kommando &quot;%1&quot; konnte nicht ausgeführt werden: %2</translation>
</message>
<message>
+ <source>Failed to start terminal process. The stub exited before the inferior was started.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Cannot set permissions on temporary directory &quot;%1&quot;: %2</source>
<translation>Die Berechtigungen für das temporäre Verzeichnis &quot;%1&quot; konnten nicht gesetzt werden: %2</translation>
</message>
@@ -54917,6 +56432,10 @@ Die Trace-Daten sind verloren.</translation>
<translation>createTempFile ist für &quot;%1&quot; nicht implementiert.</translation>
</message>
<message>
+ <source>Refusing to remove the standard directory &quot;%1&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Refusing to remove root directory.</source>
<translation>Das Wurzelverzeichnis kann nicht entfernt werden.</translation>
</message>
@@ -54972,6 +56491,10 @@ Die Trace-Daten sind verloren.</translation>
</translation>
</message>
<message>
+ <source>Device is not connected</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed reading file &quot;%1&quot;: %2</source>
<translation>Die Datei &quot;%1&quot; konnte nicht gelesen werden: %2</translation>
</message>
@@ -55024,6 +56547,10 @@ Die Trace-Daten sind verloren.</translation>
<translation>Es konnte keine temporäre Datei erstellt in %1 werden: %2</translation>
</message>
<message>
+ <source>Cannot create temporary file %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Overwrite File?</source>
<translation>Datei überschreiben?</translation>
</message>
@@ -55353,15 +56880,9 @@ Um eine Variable zu deaktivieren, stellen Sie der Zeile &quot;#&quot; voran.</tr
</message>
<message>
<source>&lt;VARIABLE&gt;</source>
- <extracomment>Name when inserting a new variable</extracomment>
<translation>&lt;VARIABLE&gt;</translation>
</message>
<message>
- <source>&lt;VALUE&gt;</source>
- <extracomment>Value when inserting a new variable</extracomment>
- <translation>&lt;VALUE&gt;</translation>
- </message>
- <message>
<source>Elapsed time: %1.</source>
<translation>Verstrichene Zeit: %1.</translation>
</message>
@@ -57124,8 +58645,8 @@ Check settings or ensure Valgrind is installed and available in PATH.</source>
<translation>Führe aus: %1</translation>
</message>
<message>
- <source>Running in &quot;%1&quot;: %2.</source>
- <translation>Führe in &quot;%1&quot; aus: %2.</translation>
+ <source>Running in &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Failed to retrieve data.</source>
@@ -57465,8 +58986,8 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Willkommen</translation>
</message>
<message>
- <source>New to Qt?</source>
- <translation>Neu bei Qt?</translation>
+ <source>Welcome to %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Create Project...</source>
@@ -57477,6 +58998,10 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Projekt öffnen...</translation>
</message>
<message>
+ <source>Explore more</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Get Started</source>
<translation>Schnelleinstieg</translation>
</message>
@@ -58312,13 +59837,6 @@ defined in step size.</source>
</message>
</context>
<context>
- <name>RemoteLinux::SshProcessInterface</name>
- <message>
- <source>Can&apos;t send control signal to the %1 device. The device might have been disconnected.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>RenameFolderDialog</name>
<message>
<source>Rename Folder</source>
@@ -58463,6 +59981,64 @@ defined in step size.</source>
</message>
</context>
<context>
+ <name>SaveAsDialog</name>
+ <message>
+ <source>Save Effect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Effect name: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name contains invalid characters.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name must start with a capital letter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name must have at least 3 characters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name cannot contain white space</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Speichern</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>SaveChangesDialog</name>
+ <message>
+ <source>Save Changes</source>
+ <translation type="unfinished">Änderungen speichern</translation>
+ </message>
+ <message>
+ <source>Current composition has unsaved changes.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Abbrechen</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Speichern</translation>
+ </message>
+ <message>
+ <source>Discard Changes</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ScaleToolAction</name>
<message>
<source>Activate Scale Tool</source>
@@ -58816,6 +60392,13 @@ This is used for calculating the total implicit size.</source>
</message>
</context>
<context>
+ <name>SocialButton</name>
+ <message>
+ <source>Text</source>
+ <translation type="unfinished">Text</translation>
+ </message>
+</context>
+<context>
<name>SpatialSoundSection</name>
<message>
<source>Spatial Sound</source>
@@ -58997,6 +60580,13 @@ it reaches the start or end.</source>
</message>
</context>
<context>
+ <name>SplitViewToggleAction</name>
+ <message>
+ <source>Toggle Split View On/Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>StackLayoutSpecifics</name>
<message>
<source>Stack Layout</source>
@@ -59136,6 +60726,10 @@ it reaches the start or end.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Jump to the code</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Reset when Condition</source>
<translation type="unfinished">Zurücksetzen bei Bedingung</translation>
</message>
@@ -59512,6 +61106,13 @@ This is used for calculating the total implicit size.</source>
</message>
</context>
<context>
+ <name>Tag</name>
+ <message>
+ <source>tag name</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>TemplateMerge</name>
<message>
<source>Merge With Template</source>
@@ -59531,6 +61132,41 @@ This is used for calculating the total implicit size.</source>
</message>
</context>
<context>
+ <name>TestControlPanel</name>
+ <message>
+ <source>X</source>
+ <translation type="unfinished">X</translation>
+ </message>
+ <message>
+ <source>Theme</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>light</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dark</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Basic</source>
+ <translation type="unfinished">Grundlegend</translation>
+ </message>
+ <message>
+ <source>Community</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>TextAreaSpecifics</name>
<message>
<source>Text</source>
@@ -59975,6 +61611,29 @@ This is used for calculating the total implicit size.</source>
</message>
</context>
<context>
+ <name>ThumbnailDelegate</name>
+ <message>
+ <source>Overwrite Example?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Example already exists.&lt;br&gt;Do you want to replace it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Downloading...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Extracting...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Recently Downloaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>TimelineBarItem</name>
<message>
<source>Range from %1 to %2</source>
@@ -60078,6 +61737,104 @@ This is used for calculating the total implicit size.</source>
</message>
</context>
<context>
+ <name>TourModel</name>
+ <message>
+ <source>Welcome Page</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The welcome page of Qt Design Studio.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Workspaces</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Introduction to the most important workspaces.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Top Toolbar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Short explanation of the top toolbar.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>States</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>An introduction to states.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sorting Components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A way to organize multiple components.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Connecting Components</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A way to connect components with actions.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Adding Assets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A way to add new assets to the project.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Creating 2D Animation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A way to create a 2D Animation.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Border and Arc</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Work with Border and Arc Studio Components.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ellipse and Pie</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Work with Ellipse and Pie Studio Components.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Complex Shapes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Work with Polygon, Triangle and Rectangle Studio Components.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TourRestartButton</name>
+ <message>
+ <source>Restart</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>TumblerSpecifics</name>
<message>
<source>Tumbler</source>
@@ -60186,7 +61943,7 @@ Are you sure you want to remove the %1?</source>
<name>VideoSection</name>
<message>
<source>Video</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Video</translation>
</message>
<message>
<source>Source</source>
@@ -60343,50 +62100,6 @@ Are you sure you want to remove the %1?</source>
<context>
<name>main</name>
<message>
- <source>Recent Projects</source>
- <translation>Zuletzt bearbeitete Projekte</translation>
- </message>
- <message>
- <source>Examples</source>
- <translation>Beispiele</translation>
- </message>
- <message>
- <source>Tutorials</source>
- <translation>Anleitungen</translation>
- </message>
- <message>
- <source>Welcome to</source>
- <translation>Willkommen bei</translation>
- </message>
- <message>
- <source>Qt Design Studio</source>
- <translation>Qt Design Studio</translation>
- </message>
- <message>
- <source>Create New</source>
- <translation>Neu erstellen</translation>
- </message>
- <message>
- <source>Open Project</source>
- <translation>Projekt öffnen</translation>
- </message>
- <message>
- <source>Help</source>
- <translation>Hilfe</translation>
- </message>
- <message>
- <source>Community</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Blog</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Community Edition</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Continue</source>
<translation type="unfinished">Fortsetzen</translation>
</message>
diff --git a/src/app/main.cpp b/src/app/main.cpp
index b875850722..6c5fb9a306 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -414,9 +414,8 @@ QStringList lastSessionArgument()
QString crashReportsPath()
{
std::unique_ptr<Utils::QtcSettings> settings(createUserSettings());
- QFileInfo(settings->fileName()).path() + "/crashpad_reports";
if (Utils::HostOsInfo::isMacHost())
- return QFileInfo(createUserSettings()->fileName()).path() + "/crashpad_reports";
+ return QFileInfo(settings->fileName()).path() + "/crashpad_reports";
else
return QCoreApplication::applicationDirPath()
+ '/' + RELATIVE_LIBEXEC_PATH + "crashpad_reports";
diff --git a/src/libs/languageserverprotocol/callhierarchy.cpp b/src/libs/languageserverprotocol/callhierarchy.cpp
index fc61faf664..4b19d71fa8 100644
--- a/src/libs/languageserverprotocol/callhierarchy.cpp
+++ b/src/libs/languageserverprotocol/callhierarchy.cpp
@@ -7,7 +7,7 @@ namespace LanguageServerProtocol {
bool CallHierarchyItem::isValid() const
{
- return contains(nameKey) && contains(symbolKindKey) && contains(rangeKey) && contains(uriKey)
+ return contains(nameKey) && contains(kindKey) && contains(rangeKey) && contains(uriKey)
&& contains(selectionRangeKey);
}
diff --git a/src/libs/languageserverprotocol/callhierarchy.h b/src/libs/languageserverprotocol/callhierarchy.h
index a284611a12..1cc022d6d1 100644
--- a/src/libs/languageserverprotocol/callhierarchy.h
+++ b/src/libs/languageserverprotocol/callhierarchy.h
@@ -15,8 +15,8 @@ public:
QString name() const { return typedValue<QString>(nameKey); }
void setName(const QString &name) { insert(nameKey, name); }
- SymbolKind symbolKind() const { return SymbolKind(typedValue<int>(symbolKindKey)); }
- void setSymbolKind(const SymbolKind &symbolKind) { insert(symbolKindKey, int(symbolKind)); }
+ SymbolKind symbolKind() const { return SymbolKind(typedValue<int>(kindKey)); }
+ void setSymbolKind(const SymbolKind &symbolKind) { insert(kindKey, int(symbolKind)); }
Range range() const { return typedValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
diff --git a/src/libs/languageserverprotocol/jsonkeys.h b/src/libs/languageserverprotocol/jsonkeys.h
index f9ef7b4bed..236d28bfda 100644
--- a/src/libs/languageserverprotocol/jsonkeys.h
+++ b/src/libs/languageserverprotocol/jsonkeys.h
@@ -143,7 +143,7 @@ constexpr Key parametersKey{"parameters"};
constexpr Key paramsKey{"params"};
constexpr Key patternKey{"pattern"};
constexpr Key percentageKey{"percentage"};
-constexpr Key placeHolderKey{"placeHolder"};
+constexpr Key placeHolderKey{"placeholder"};
constexpr Key positionKey{"position"};
constexpr Key prepareProviderKey{"prepareProvider"};
constexpr Key prepareSupportKey{"prepareSupport"};
diff --git a/src/libs/qlitehtml b/src/libs/qlitehtml
-Subproject 7e8eb0f5eaee53b0aeb04208bdaba74fcffc3a3
+Subproject 9c7b5d073bf4713250648cf7ea35580f489f7fd
diff --git a/src/libs/solutions/terminal/terminalsurface.cpp b/src/libs/solutions/terminal/terminalsurface.cpp
index e51c09d894..00f26ce188 100644
--- a/src/libs/solutions/terminal/terminalsurface.cpp
+++ b/src/libs/solutions/terminal/terminalsurface.cpp
@@ -456,6 +456,9 @@ std::u32string::value_type TerminalSurface::fetchCharAt(int x, int y) const
if (cell->width == 0)
return 0;
+ if (cell->chars[0] == 0xffffffff)
+ return 0;
+
QString s = QString::fromUcs4(cell->chars, 6).normalized(QString::NormalizationForm_C);
const QList<uint> ucs4 = s.toUcs4();
return std::u32string(ucs4.begin(), ucs4.end()).front();
diff --git a/src/libs/solutions/terminal/terminalview.h b/src/libs/solutions/terminal/terminalview.h
index 4079eb7ddc..c69fbcd14e 100644
--- a/src/libs/solutions/terminal/terminalview.h
+++ b/src/libs/solutions/terminal/terminalview.h
@@ -32,8 +32,8 @@ struct SearchHit
bool operator==(const SearchHit &other) const { return !operator!=(other); }
};
-QString defaultFontFamily();
-int defaultFontSize();
+QString TERMINAL_EXPORT defaultFontFamily();
+int TERMINAL_EXPORT defaultFontSize();
class TERMINAL_EXPORT TerminalView : public QAbstractScrollArea
{
diff --git a/src/libs/utils/itemviews.h b/src/libs/utils/itemviews.h
index 50e8a4af01..ff1f5328b1 100644
--- a/src/libs/utils/itemviews.h
+++ b/src/libs/utils/itemviews.h
@@ -59,6 +59,22 @@ public:
BaseT::keyPressEvent(event);
}
+ virtual bool userWantsContextMenu(const QMouseEvent *) const
+ {
+ return false;
+ }
+
+ void mousePressEvent(QMouseEvent *e) override
+ {
+ if (!userWantsContextMenu(e))
+ BaseT::mousePressEvent(e);
+ }
+
+ void mouseReleaseEvent(QMouseEvent *e) override
+ {
+ if (!userWantsContextMenu(e))
+ BaseT::mouseReleaseEvent(e);
+ }
};
class QTCREATOR_UTILS_EXPORT TreeView : public View<QTreeView>
diff --git a/src/libs/utils/processhelper.cpp b/src/libs/utils/processhelper.cpp
index 2ca23fe138..6045b77bec 100644
--- a/src/libs/utils/processhelper.cpp
+++ b/src/libs/utils/processhelper.cpp
@@ -59,9 +59,6 @@ void ProcessStartHandler::setWindowsSpecificStartupFlags(bool belowNormalPriorit
bool createConsoleWindow)
{
#ifdef Q_OS_WIN
- if (!belowNormalPriority && !createConsoleWindow)
- return;
-
m_process->setCreateProcessArgumentsModifier(
[belowNormalPriority, createConsoleWindow](QProcess::CreateProcessArguments *args) {
if (createConsoleWindow) {
@@ -71,6 +68,8 @@ void ProcessStartHandler::setWindowsSpecificStartupFlags(bool belowNormalPriorit
if (belowNormalPriority)
args->flags |= BELOW_NORMAL_PRIORITY_CLASS;
+
+ args->flags |= CREATE_DEFAULT_ERROR_MODE;
});
#else // Q_OS_WIN
Q_UNUSED(belowNormalPriority)
diff --git a/src/libs/utils/store.cpp b/src/libs/utils/store.cpp
index 37f939f5a8..fa8d4232c0 100644
--- a/src/libs/utils/store.cpp
+++ b/src/libs/utils/store.cpp
@@ -190,4 +190,20 @@ void storeToSettings(const Key &groupKey, QtcSettings *s, const Store &store)
s->endGroup();
}
+void storeToSettingsWithDefault(const Key &groupKey,
+ QtcSettings *s,
+ const Store &store,
+ const Store &defaultStore)
+{
+ QTC_ASSERT(store.size() == defaultStore.size(), storeToSettings(groupKey, s, store); return);
+
+ s->beginGroup(groupKey);
+ for (auto it = store.begin(), defaultIt = defaultStore.begin(), end = store.end(); it != end;
+ ++it, ++defaultIt)
+ s->setValueWithDefault(it.key(),
+ mapEntryFromStoreEntry(it.value()),
+ mapEntryFromStoreEntry(defaultIt.value()));
+ s->endGroup();
+}
+
} // Utils
diff --git a/src/libs/utils/store.h b/src/libs/utils/store.h
index 97e71b0eec..c538f34c5f 100644
--- a/src/libs/utils/store.h
+++ b/src/libs/utils/store.h
@@ -15,26 +15,7 @@ class QtcSettings;
using KeyList = QList<Key>;
-class Store : public QMap<Key, QVariant>
-{
-public:
- using QMap<Key, QVariant>::QMap;
-
- template<typename T>
- void insertValueWithDefault(const Key &key, const T &val, const T &defaultValue)
- {
- if (val != defaultValue)
- insert(key, val);
- }
-
- template<typename T>
- void insertValueWithDefault(const Key &key, const T &val)
- {
- if (val != T())
- insert(key, val);
- }
-};
-
+using Store = QMap<Key, QVariant>;
using OldStore = QMap<QByteArray, QVariant>;
QTCREATOR_UTILS_EXPORT KeyList keysFromStrings(const QStringList &list);
@@ -60,6 +41,10 @@ QTCREATOR_UTILS_EXPORT QVariant mapEntryFromStoreEntry(const QVariant &value);
// Don't use in new code.
QTCREATOR_UTILS_EXPORT Store storeFromSettings(const Key &groupKey, QtcSettings *s);
QTCREATOR_UTILS_EXPORT void storeToSettings(const Key &groupKey, QtcSettings *s, const Store &store);
+QTCREATOR_UTILS_EXPORT void storeToSettingsWithDefault(const Key &groupKey,
+ QtcSettings *s,
+ const Store &store,
+ const Store &defaultStore);
} // Utils
diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp
index dfd8f4d3ce..940b373298 100644
--- a/src/plugins/android/androidbuildapkstep.cpp
+++ b/src/plugins/android/androidbuildapkstep.cpp
@@ -228,11 +228,12 @@ AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step)
m_step->setBuildToolsVersion(buildToolsSdkComboBox->itemData(idx).value<QVersionNumber>());
});
- const int initIdx = (m_step->buildToolsVersion().majorVersion() < 1)
- ? buildToolsVersions.indexOf(buildToolsVersions.last())
- : buildToolsVersions.indexOf(m_step->buildToolsVersion());
- buildToolsSdkComboBox->setCurrentIndex(initIdx);
-
+ if (!buildToolsVersions.isEmpty()) {
+ const int initIdx = (m_step->buildToolsVersion().majorVersion() < 1)
+ ? buildToolsVersions.indexOf(buildToolsVersions.last())
+ : buildToolsVersions.indexOf(m_step->buildToolsVersion());
+ buildToolsSdkComboBox->setCurrentIndex(initIdx);
+ }
auto createAndroidTemplatesButton = new QPushButton(Tr::tr("Create Templates"));
createAndroidTemplatesButton->setToolTip(
diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp
index 9dcf2d502a..6f875d1ddd 100644
--- a/src/plugins/android/androidrunnerworker.cpp
+++ b/src/plugins/android/androidrunnerworker.cpp
@@ -754,6 +754,7 @@ void AndroidRunnerWorker::handleJdbWaiting()
m_jdbProcess->setProcessChannelMode(QProcess::MergedChannels);
m_jdbProcess->setCommand({jdbPath, jdbArgs});
m_jdbProcess->setReaperTimeout(s_jdbTimeout);
+ m_jdbProcess->setProcessMode(ProcessMode::Writer);
m_jdbProcess->start();
if (!m_jdbProcess->waitForStarted()) {
emit remoteProcessFinished(Tr::tr("Failed to start JDB."));
@@ -770,6 +771,7 @@ void AndroidRunnerWorker::handleJdbSettled()
for (int i = 0; i < 120 && m_jdbProcess->state() == QProcess::Running; ++i) {
m_jdbProcess->waitForReadyRead(500ms);
const QByteArray lines = m_jdbProcess->readAllRawStandardOutput();
+ qCDebug(androidRunWorkerLog) << "JDB output:" << lines;
const auto linesList = lines.split('\n');
for (const auto &line : linesList) {
auto msg = line.trimmed();
@@ -780,11 +782,13 @@ void AndroidRunnerWorker::handleJdbSettled()
return false;
};
- const QStringList commands{"threads", "cont", "exit"};
+ const QStringList commands{"suspend", "resume", "cont", "exit"};
for (const QString &command : commands) {
- if (waitForCommand())
+ if (waitForCommand()) {
+ qCDebug(androidRunWorkerLog) << "JDB input:" << command;
m_jdbProcess->write(QString("%1\n").arg(command));
+ }
}
if (!m_jdbProcess->waitForFinished(s_jdbTimeout)) {
diff --git a/src/plugins/android/androidsdkmanagerwidget.cpp b/src/plugins/android/androidsdkmanagerwidget.cpp
index e5f0d27345..7b1ca4e88f 100644
--- a/src/plugins/android/androidsdkmanagerwidget.cpp
+++ b/src/plugins/android/androidsdkmanagerwidget.cpp
@@ -7,6 +7,8 @@
#include "androidsdkmodel.h"
#include "androidtr.h"
+#include <coreplugin/icore.h>
+
#include <utils/async.h>
#include <utils/layoutbuilder.h>
#include <utils/outputformatter.h>
@@ -275,7 +277,7 @@ void AndroidSdkManagerWidget::installEssentials()
{
m_sdkModel->selectMissingEssentials();
if (!m_sdkModel->missingEssentials().isEmpty()) {
- QMessageBox::warning(this,
+ QMessageBox::warning(Core::ICore::dialogParent(),
Tr::tr("Android SDK Changes"),
Tr::tr("%1 cannot find the following essential packages: \"%2\".\n"
"Install them manually after the current operation is done.\n")
@@ -321,8 +323,11 @@ void AndroidSdkManagerWidget::onApplyButton(const QString &extraMessage)
QString message = Tr::tr("%n Android SDK packages shall be updated.", "", packagesToUpdate.count());
if (!extraMessage.isEmpty())
message.prepend(extraMessage + "\n\n");
- QMessageBox messageDlg(QMessageBox::Information, Tr::tr("Android SDK Changes"),
- message, QMessageBox::Ok | QMessageBox::Cancel, this);
+ QMessageBox messageDlg(QMessageBox::Information,
+ Tr::tr("Android SDK Changes"),
+ message,
+ QMessageBox::Ok | QMessageBox::Cancel,
+ Core::ICore::dialogParent());
QString details;
if (!uninstallPackages.isEmpty())
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index f08848049a..1266d3211c 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -10,6 +10,7 @@
#include "androidtr.h"
#include <coreplugin/dialogs/ioptionspage.h>
+#include <coreplugin/messagemanager.h>
#include <projectexplorer/projectexplorerconstants.h>
@@ -361,8 +362,10 @@ AndroidSettingsWidget::AndroidSettingsWidget()
m_openJdkLocationPathChooser->setValidationFunction([](const QString &s) {
return Utils::asyncRun([s]() -> expected_str<QString> {
expected_str<void> test = testJavaC(FilePath::fromUserInput(s));
- if (!test)
+ if (!test) {
+ Core::MessageManager::writeSilently(test.error());
return make_unexpected(test.error());
+ }
return s;
});
});
diff --git a/src/plugins/axivion/issueheaderview.cpp b/src/plugins/axivion/issueheaderview.cpp
index ce432eb126..a9dfd38b8d 100644
--- a/src/plugins/axivion/issueheaderview.cpp
+++ b/src/plugins/axivion/issueheaderview.cpp
@@ -16,13 +16,16 @@ static QIcon iconForSorted(SortOrder order)
{
const Utils::Icon UNSORTED(
{{":/axivion/images/sortAsc.png", Utils::Theme::IconsDisabledColor},
- {":/axivion/images/sortDesc.png", Utils::Theme::IconsDisabledColor}});
+ {":/axivion/images/sortDesc.png", Utils::Theme::IconsDisabledColor}},
+ Utils::Icon::MenuTintedStyle);
const Utils::Icon SORT_ASC(
{{":/axivion/images/sortAsc.png", Utils::Theme::PaletteText},
- {":/axivion/images/sortDesc.png", Utils::Theme::IconsDisabledColor}});
+ {":/axivion/images/sortDesc.png", Utils::Theme::IconsDisabledColor}},
+ Utils::Icon::MenuTintedStyle);
const Utils::Icon SORT_DESC(
{{":/axivion/images/sortAsc.png", Utils::Theme::IconsDisabledColor},
- {":/axivion/images/sortDesc.png", Utils::Theme::PaletteText}});
+ {":/axivion/images/sortDesc.png", Utils::Theme::PaletteText}},
+ Utils::Icon::MenuTintedStyle);
static const QIcon unsorted = UNSORTED.icon();
static const QIcon sortedAsc = SORT_ASC.icon();
static const QIcon sortedDesc = SORT_DESC.icon();
diff --git a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
index dd63565bd5..c5bc3d7235 100644
--- a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
+++ b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
@@ -386,8 +386,6 @@ void doSemanticHighlighting(
}
if (isOutputParameter(token))
styles.mixinStyles.push_back(C_OUTPUT_ARGUMENT);
- qCDebug(clangdLogHighlight) << "adding highlighting result"
- << token.line << token.column << token.length << int(styles.mainStyle);
return HighlightingResult(token.line, token.column, token.length, styles);
};
@@ -420,6 +418,8 @@ void doSemanticHighlighting(
}
QList<Range> virtualRanges;
for (const HighlightingResult &r : results) {
+ qCDebug(clangdLogHighlight)
+ << '\t' << r.line << r.column << r.length << int(r.textStyles.mainStyle);
if (r.textStyles.mainStyle != C_VIRTUAL_METHOD)
continue;
const Position startPos(r.line - 1, r.column - 1);
diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
index c034ad82f6..3d8965248f 100644
--- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
+++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
@@ -798,11 +798,6 @@ void ClangModelManagerSupport::watchForExternalChanges()
if (!LanguageClientManager::hasClients<ClangdClient>())
return;
for (const FilePath &file : files) {
- if (TextEditor::TextDocument::textDocumentForFilePath(file)) {
- // if we have a document for that file we should receive the content
- // change via the document signals
- continue;
- }
const ProjectFile::Kind kind = ProjectFile::classify(file.toString());
if (!ProjectFile::isSource(kind) && !ProjectFile::isHeader(kind))
continue;
diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp
index 1edec4c290..bfe7ea9536 100644
--- a/src/plugins/clangcodemodel/test/clangdtests.cpp
+++ b/src/plugins/clangcodemodel/test/clangdtests.cpp
@@ -2207,15 +2207,21 @@ void ClangdTestExternalChanges::test()
QVERIFY(curDoc->marks().isEmpty());
// Now trigger an external change in an open, but not currently visible file and
- // verify that we get diagnostics in the current editor.
+ // verify that we get a new client and diagnostics in the current editor.
TextDocument * const docToChange = document("mainwindow.cpp");
docToChange->setSilentReload();
QFile otherSource(filePath("mainwindow.cpp").toString());
QVERIFY(otherSource.open(QIODevice::WriteOnly));
otherSource.write("blubb");
otherSource.close();
+ QVERIFY(waitForSignalOrTimeout(LanguageClientManager::instance(),
+ &LanguageClientManager::clientAdded, timeOutInMs()));
+ ClangdClient * const newClient = ClangModelManagerSupport::clientForProject(project());
+ QVERIFY(newClient);
+ QVERIFY(newClient != oldClient);
+ newClient->enableTesting();
if (curDoc->marks().isEmpty())
- QVERIFY(waitForSignalOrTimeout(client(), &ClangdClient::textMarkCreated, timeOutInMs()));
+ QVERIFY(waitForSignalOrTimeout(newClient, &ClangdClient::textMarkCreated, timeOutInMs()));
}
diff --git a/src/plugins/clangformat/clangformatconfigwidget.cpp b/src/plugins/clangformat/clangformatconfigwidget.cpp
index 98de337022..9adf94cafc 100644
--- a/src/plugins/clangformat/clangformatconfigwidget.cpp
+++ b/src/plugins/clangformat/clangformatconfigwidget.cpp
@@ -227,8 +227,6 @@ void ClangFormatConfigWidget::initEditor(TextEditor::ICodeStylePreferences *code
QShortcut *saveSC = new QShortcut(QKeySequence("Ctrl+S"), this);
connect(saveSC, &QShortcut::activated, this, [this] { apply(); });
-
- m_editorScrollArea->show();
}
void ClangFormatConfigWidget::initPreview(TextEditor::ICodeStylePreferences *codeStyle)
@@ -345,8 +343,8 @@ void ClangFormatConfigWidget::apply()
}
QMessageBox mBox;
- mBox.setText(
- Tr::tr("The current settings are not valid. Are you sure you want to apply them?"));
+ mBox.setText(Tr::tr("The current ClangFormat (C++ > Code Style > ClangFormat) settings are not "
+ "valid. Are you sure you want to apply them?"));
mBox.setStandardButtons(QMessageBox::No | QMessageBox::Yes);
mBox.setDefaultButton(QMessageBox::No);
if (mBox.exec() == QMessageBox::Yes)
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 25352f0b5d..23c68a6e64 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -210,7 +210,7 @@ void CMakeProject::setupBuildPresets(Internal::PresetsData &presetsData)
{
for (auto &buildPreset : presetsData.buildPresets) {
if (buildPreset.inheritConfigureEnvironment) {
- if (!buildPreset.configurePreset) {
+ if (!buildPreset.configurePreset && !buildPreset.hidden) {
TaskHub::addTask(BuildSystemTask(
Task::TaskType::Error,
Tr::tr("Build preset %1 is missing a corresponding configure preset.")
diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
index fb7ca30166..e17505095a 100644
--- a/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
+++ b/src/plugins/cmakeprojectmanager/projecttreehelper.cpp
@@ -35,7 +35,8 @@ void addCMakeVFolder(FolderNode *base,
int priority,
const QString &displayName,
std::vector<std::unique_ptr<FileNode>> &&files,
- bool sourcesOrHeaders)
+ bool sourcesOrHeaders,
+ bool listInProject)
{
if (files.size() == 0)
return;
@@ -45,6 +46,10 @@ void addCMakeVFolder(FolderNode *base,
folder = newFolder.get();
base->addNode(std::move(newFolder));
}
+ if (!listInProject) {
+ for (auto it = files.begin(); it != files.end(); ++it)
+ (*it)->setListInProject(false);
+ }
folder->addNestedNodes(std::move(files));
folder->forEachFolderNode([] (FolderNode *fn) { fn->compress(); });
}
@@ -68,10 +73,7 @@ void addCMakeInputs(FolderNode *root,
std::unique_ptr<ProjectNode> cmakeVFolder = std::make_unique<CMakeInputsNode>(root->filePath());
QSet<Utils::FilePath> knownFiles;
- root->forEachGenericNode([&knownFiles](const Node *n) {
- if (n->listInProject())
- knownFiles.insert(n->filePath());
- });
+ root->forEachGenericNode([&knownFiles](const Node *n) { knownFiles.insert(n->filePath()); });
addCMakeVFolder(cmakeVFolder.get(),
sourceDir,
@@ -87,7 +89,9 @@ void addCMakeInputs(FolderNode *root,
Utils::FilePath(),
10,
Tr::tr("<Other Locations>"),
- removeKnownNodes(knownFiles, std::move(rootInputs)));
+ removeKnownNodes(knownFiles, std::move(rootInputs)),
+ /*sourcesOrHeaders=*/false,
+ /*listInProject=*/false);
root->addNode(std::move(cmakeVFolder));
}
diff --git a/src/plugins/cmakeprojectmanager/projecttreehelper.h b/src/plugins/cmakeprojectmanager/projecttreehelper.h
index 08707360ed..bcd5500db9 100644
--- a/src/plugins/cmakeprojectmanager/projecttreehelper.h
+++ b/src/plugins/cmakeprojectmanager/projecttreehelper.h
@@ -21,7 +21,8 @@ void addCMakeVFolder(ProjectExplorer::FolderNode *base,
int priority,
const QString &displayName,
std::vector<std::unique_ptr<ProjectExplorer::FileNode>> &&files,
- bool sourcesOrHeaders = false);
+ bool sourcesOrHeaders = false,
+ bool listInProject = true);
std::vector<std::unique_ptr<ProjectExplorer::FileNode>> &&removeKnownNodes(
const QSet<Utils::FilePath> &knownFiles,
diff --git a/src/plugins/compilerexplorer/compilerexplorereditor.cpp b/src/plugins/compilerexplorer/compilerexplorereditor.cpp
index 0defb33163..651ee59620 100644
--- a/src/plugins/compilerexplorer/compilerexplorereditor.cpp
+++ b/src/plugins/compilerexplorer/compilerexplorereditor.cpp
@@ -389,7 +389,7 @@ CompilerWidget::CompilerWidget(const std::shared_ptr<SourceSettings> &sourceSett
removeCompilerBtn->setToolTip(Tr::tr("Remove Compiler"));
connect(removeCompilerBtn, &QToolButton::clicked, this, &CompilerWidget::remove);
- compile(m_sourceSettings->source());
+ compile(m_sourceSettings->source.volatileValue());
connect(&m_sourceSettings->source, &Utils::StringAspect::volatileValueChanged, this, [this] {
compile(m_sourceSettings->source.volatileValue());
@@ -446,6 +446,22 @@ Core::SearchableTerminal *CompilerWidget::createTerminal()
m_resultTerminal->setColors(colors);
+ auto setFontSize = [this](const TextEditor::FontSettings &fontSettings) {
+ QFont f;
+ f.setFixedPitch(true);
+ f.setFamily(TerminalSolution::defaultFontFamily());
+ f.setPointSize(TerminalSolution::defaultFontSize() * (fontSettings.fontZoom() / 100.0f));
+
+ m_resultTerminal->setFont(f);
+ };
+
+ setFontSize(TextEditorSettings::instance()->fontSettings());
+
+ connect(TextEditorSettings::instance(),
+ &TextEditorSettings::fontSettingsChanged,
+ this,
+ setFontSize);
+
return m_resultTerminal;
}
@@ -459,7 +475,7 @@ void CompilerWidget::doCompile()
{
using namespace Api;
- QString compilerId = m_compilerSettings->compiler();
+ QString compilerId = m_compilerSettings->compiler.volatileValue();
if (compilerId.isEmpty())
compilerId = "clang_trunk";
@@ -924,6 +940,14 @@ EditorFactory::EditorFactory()
m_actionHandler.setUnhandledCallback(
[undoStackFromEditor](Utils::Id cmdId, Core::IEditor *editor) {
+ if (cmdId == TextEditor::Constants::INCREASE_FONT_SIZE) {
+ TextEditor::TextEditorSettings::instance()->increaseFontZoom();
+ return true;
+ } else if (cmdId == TextEditor::Constants::DECREASE_FONT_SIZE) {
+ TextEditor::TextEditorSettings::instance()->decreaseFontZoom();
+ return true;
+ }
+
if (cmdId != Core::Constants::UNDO && cmdId != Core::Constants::REDO)
return false;
diff --git a/src/plugins/compilerexplorer/compilerexplorersettings.h b/src/plugins/compilerexplorer/compilerexplorersettings.h
index 4b3ac849a2..cd8c953363 100644
--- a/src/plugins/compilerexplorer/compilerexplorersettings.h
+++ b/src/plugins/compilerexplorer/compilerexplorersettings.h
@@ -39,7 +39,8 @@ public:
Api::Config apiConfig() const
{
- return Api::Config(Utils::NetworkAccessManager::instance(), compilerExplorerUrl());
+ return Api::Config(Utils::NetworkAccessManager::instance(),
+ compilerExplorerUrl.volatileValue());
}
};
diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.cpp b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
index 350cdac142..cc7451b939 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsview.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
@@ -66,6 +66,8 @@ private:
void activateEditor(const QModelIndex &index);
void closeDocument(const QModelIndex &index);
+ bool userWantsContextMenu(const QMouseEvent *) const final;
+
ProxyModel *m_model;
};
@@ -138,6 +140,13 @@ void OpenEditorsWidget::closeDocument(const QModelIndex &index)
updateCurrentItem(EditorManager::currentEditor());
}
+bool OpenEditorsWidget::userWantsContextMenu(const QMouseEvent *e) const
+{
+ // block activating on entry on right click otherwise we might switch into another mode
+ // see QTCREATORBUG-30357
+ return e->button() == Qt::RightButton;
+}
+
void OpenEditorsWidget::contextMenuRequested(QPoint pos)
{
QMenu contextMenu;
diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp
index 2fda96bf1e..01fc7eff47 100644
--- a/src/plugins/coreplugin/helpmanager.cpp
+++ b/src/plugins/coreplugin/helpmanager.cpp
@@ -97,5 +97,11 @@ void showHelpUrl(const QString &url, HelpViewerLocation location)
showHelpUrl(QUrl(url), location);
}
+void setBlockedDocumentation(const QStringList &fileNames)
+{
+ if (checkInstance())
+ m_instance->setBlockedDocumentation(fileNames);
+}
+
} // HelpManager
} // Core
diff --git a/src/plugins/coreplugin/helpmanager.h b/src/plugins/coreplugin/helpmanager.h
index 845b508015..55d449e696 100644
--- a/src/plugins/coreplugin/helpmanager.h
+++ b/src/plugins/coreplugin/helpmanager.h
@@ -38,6 +38,7 @@ enum HelpViewerLocation {
CORE_EXPORT QString documentationPath();
CORE_EXPORT void registerDocumentation(const QStringList &fileNames);
+CORE_EXPORT void setBlockedDocumentation(const QStringList &fileNames);
CORE_EXPORT void unregisterDocumentation(const QStringList &fileNames);
CORE_EXPORT QMultiMap<QString, QUrl> linksForIdentifier(const QString &id);
diff --git a/src/plugins/coreplugin/helpmanager_implementation.h b/src/plugins/coreplugin/helpmanager_implementation.h
index c0d2356340..798a5a340e 100644
--- a/src/plugins/coreplugin/helpmanager_implementation.h
+++ b/src/plugins/coreplugin/helpmanager_implementation.h
@@ -17,6 +17,7 @@ protected:
public:
virtual void registerDocumentation(const QStringList &fileNames) = 0;
+ virtual void setBlockedDocumentation(const QStringList &fileNames) = 0;
virtual void unregisterDocumentation(const QStringList &fileNames) = 0;
virtual QMultiMap<QString, QUrl> linksForIdentifier(const QString &id) = 0;
virtual QMultiMap<QString, QUrl> linksForKeyword(const QString &keyword) = 0;
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index 54462f3051..1834a79560 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -2189,15 +2189,17 @@ void ICorePrivate::openFileFromDevice()
static void acceptModalDialogs()
{
const QWidgetList topLevels = QApplication::topLevelWidgets();
- QList<QDialog *> dialogsToClose;
+ QList<QPointer<QDialog>> dialogsToClose;
for (QWidget *topLevel : topLevels) {
if (auto dialog = qobject_cast<QDialog *>(topLevel)) {
if (dialog->isModal())
dialogsToClose.append(dialog);
}
}
- for (QDialog *dialog : dialogsToClose)
- dialog->accept();
+ for (QDialog *dialog : dialogsToClose) {
+ if (dialog)
+ dialog->accept();
+ }
}
} // Internal
diff --git a/src/plugins/coreplugin/welcomepagehelper.cpp b/src/plugins/coreplugin/welcomepagehelper.cpp
index 636888d6b4..c1cf35beb3 100644
--- a/src/plugins/coreplugin/welcomepagehelper.cpp
+++ b/src/plugins/coreplugin/welcomepagehelper.cpp
@@ -856,10 +856,8 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
painter->save();
painter->translate(bgRGlobal.topLeft());
- const QColor fill(themeColor(hovered ? Theme::Token_Foreground_Muted
- : Theme::Token_Background_Muted));
- const QPen pen(themeColor(hovered ? Theme::Token_Foreground_Muted
- : Theme::Token_Stroke_Subtle), itemOutlineWidth);
+ const QColor fill(themeColor(hovered ? cardHoverBackground : cardDefaultBackground));
+ const QPen pen(themeColor(hovered ? cardHoverStroke : cardDefaultStroke), itemOutlineWidth);
WelcomePageHelpers::drawCardBackground(painter, bgR, fill, pen, itemCornerRounding);
const int shiftY = thumbnailAreaR.bottom();
@@ -915,7 +913,7 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
constexpr int filterMargin = hoverBlurRadius;
QImage thumbnail(bgR.size() + QSize(filterMargin, filterMargin) * 2,
QImage::Format_ARGB32_Premultiplied);
- thumbnail.fill(themeColor(Theme::Token_Foreground_Muted));
+ thumbnail.fill(themeColor(cardHoverBackground));
QPainter thumbnailPainter(&thumbnail);
thumbnailPainter.translate(filterMargin, filterMargin);
thumbnailPainter.fillRect(thumbnailAreaR,
@@ -924,8 +922,7 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
thumbnailPainter.setPen(titleTF.color());
drawPixmapOverlay(item, &thumbnailPainter, option, thumbnailAreaR);
thumbnailPainter.setOpacity(1.0 - hoverBlurOpacity);
- thumbnailPainter.fillRect(thumbnail.rect(),
- themeColor(Theme::Token_Foreground_Muted));
+ thumbnailPainter.fillRect(thumbnail.rect(), themeColor(cardHoverBackground));
thumbnailPainter.end();
qt_blurImage(thumbnail, hoverBlurRadius, false, false);
@@ -944,7 +941,7 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
const QPixmap thumbnailPortionPM = m_blurredThumbnail.copy(backgroundPortionR);
painter->drawPixmap(backgroundPortionR.topLeft(), thumbnailPortionPM);
} else {
- painter->fillRect(thumbnailAreaR, themeColor(Theme::Token_Foreground_Muted));
+ painter->fillRect(thumbnailAreaR, themeColor(cardHoverBackground));
}
}
diff --git a/src/plugins/coreplugin/welcomepagehelper.h b/src/plugins/coreplugin/welcomepagehelper.h
index 6856a59a99..84a6ec358b 100644
--- a/src/plugins/coreplugin/welcomepagehelper.h
+++ b/src/plugins/coreplugin/welcomepagehelper.h
@@ -59,6 +59,10 @@ public:
CORE_EXPORT void setBackgroundColor(QWidget *widget, Utils::Theme::Color colorRole);
constexpr qreal defaultCardBackgroundRounding = 3.75;
+constexpr Utils::Theme::Color cardDefaultBackground = Utils::Theme::Token_Background_Muted;
+constexpr Utils::Theme::Color cardDefaultStroke = Utils::Theme::Token_Stroke_Subtle;
+constexpr Utils::Theme::Color cardHoverBackground = Utils::Theme::Token_Foreground_Subtle;
+constexpr Utils::Theme::Color cardHoverStroke = cardHoverBackground;
CORE_EXPORT void drawCardBackground(QPainter *painter, const QRectF &rect,
const QBrush &fill, const QPen &pen = QPen(Qt::NoPen),
qreal rounding = defaultCardBackgroundRounding);
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp
index c767bc6426..07d3d92658 100644
--- a/src/plugins/cppeditor/cppcodemodelsettings.cpp
+++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp
@@ -86,26 +86,15 @@ bool operator==(const CppEditor::CppCodeModelSettings::Data &s1,
Store CppCodeModelSettings::Data::toMap() const
{
- const CppCodeModelSettings::Data def;
Store store;
- store.insertValueWithDefault(enableLowerClazyLevelsKey(),
- enableLowerClazyLevels,
- def.enableLowerClazyLevels);
- store.insertValueWithDefault(pchUsageKey(), pchUsage, def.pchUsage);
- store.insertValueWithDefault(interpretAmbiguousHeadersAsCHeadersKey(),
- interpretAmbigiousHeadersAsC,
- def.interpretAmbigiousHeadersAsC);
- store.insertValueWithDefault(skipIndexingBigFilesKey(),
- skipIndexingBigFiles,
- def.skipIndexingBigFiles);
- store.insertValueWithDefault(ignoreFilesKey(), ignoreFiles, def.ignoreFiles);
- store.insertValueWithDefault(ignorePatternKey(), ignorePattern, def.ignorePattern);
- store.insertValueWithDefault(useBuiltinPreprocessorKey(),
- useBuiltinPreprocessor,
- def.useBuiltinPreprocessor);
- store.insertValueWithDefault(indexerFileSizeLimitKey(),
- indexerFileSizeLimitInMb,
- def.indexerFileSizeLimitInMb);
+ store.insert(enableLowerClazyLevelsKey(), enableLowerClazyLevels);
+ store.insert(pchUsageKey(), pchUsage);
+ store.insert(interpretAmbiguousHeadersAsCHeadersKey(), interpretAmbigiousHeadersAsC);
+ store.insert(skipIndexingBigFilesKey(), skipIndexingBigFiles);
+ store.insert(ignoreFilesKey(), ignoreFiles);
+ store.insert(ignorePatternKey(), ignorePattern);
+ store.insert(useBuiltinPreprocessorKey(), useBuiltinPreprocessor);
+ store.insert(indexerFileSizeLimitKey(), indexerFileSizeLimitInMb);
return store;
}
@@ -136,7 +125,8 @@ void CppCodeModelSettings::fromSettings(QtcSettings *s)
void CppCodeModelSettings::toSettings(QtcSettings *s)
{
- storeToSettings(Constants::CPPEDITOR_SETTINGSGROUP, s, m_data.toMap());
+ const Data def;
+ storeToSettingsWithDefault(Constants::CPPEDITOR_SETTINGSGROUP, s, m_data.toMap(), def.toMap());
emit changed(); // TODO: Why?
}
@@ -432,7 +422,11 @@ void ClangdSettings::loadSettings()
void ClangdSettings::saveSettings()
{
const auto settings = Core::ICore::settings();
- Utils::storeToSettings(clangdSettingsKey(), settings, m_data.toMap());
+ const ClangdSettings::Data defaultData;
+ Utils::storeToSettingsWithDefault(clangdSettingsKey(),
+ settings,
+ m_data.toMap(),
+ defaultData.toMap());
settings->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP);
diagnosticConfigsToSettings(settings, m_data.customDiagnosticConfigs);
settings->endGroup();
@@ -534,70 +528,37 @@ Store ClangdSettings::Data::toMap() const
{
Store map;
- map.insertValueWithDefault(useClangdKey(), useClangd, DefaultUseClangd);
-
- const QString clangdPath = executableFilePath != fallbackClangdFilePath()
- ? executableFilePath.toString()
- : QString();
-
- map.insertValueWithDefault(clangdPathKey(), clangdPath);
-
- map.insertValueWithDefault(clangdIndexingKey(), indexingPriority != IndexingPriority::Off, true);
- map.insertValueWithDefault(clangdIndexingPriorityKey(),
- int(indexingPriority),
- int(DefaultIndexingPriority));
- map.insertValueWithDefault(clangdProjectIndexPathKey(), projectIndexPathTemplate,
- defaultProjectIndexPathTemplate());
- map.insertValueWithDefault(clangdSessionIndexPathKey(), sessionIndexPathTemplate,
- defaultSessionIndexPathTemplate());
-
- map.insertValueWithDefault(clangdHeaderSourceSwitchModeKey(),
- int(headerSourceSwitchMode),
- int(DefaultHeaderSourceSwitchMode));
-
- map.insertValueWithDefault(clangdCompletionRankingModelKey(),
- int(completionRankingModel),
- int(DefaultCompletionRankingModel));
-
- map.insertValueWithDefault(clangdHeaderInsertionKey(),
- autoIncludeHeaders,
- DefaultAutoIncludeHeaders);
-
- map.insertValueWithDefault(clangdThreadLimitKey(), workerThreadLimit, DefaultWorkerThreadLimit);
-
- map.insertValueWithDefault(clangdDocumentThresholdKey(),
- documentUpdateThreshold,
- DefaultDocumentUpdateThreshold);
-
- map.insertValueWithDefault(clangdSizeThresholdEnabledKey(),
- sizeThresholdEnabled,
- DefaultSizeThresholdEnabled);
-
- map.insertValueWithDefault(clangdSizeThresholdKey(),
- sizeThresholdInKb,
- DefaultSizeThresholdInKb);
-
- map.insertValueWithDefault(sessionsWithOneClangdKey(), sessionsWithOneClangd);
-
- map.insertValueWithDefault(diagnosticConfigIdKey(),
- diagnosticConfigId.toSetting(),
- initialClangDiagnosticConfigId().toSetting());
-
+ map.insert(useClangdKey(), useClangd);
+
+ map.insert(clangdPathKey(),
+ executableFilePath != fallbackClangdFilePath() ? executableFilePath.toString()
+ : QString());
+
+ map.insert(clangdIndexingKey(), indexingPriority != IndexingPriority::Off);
+ map.insert(clangdIndexingPriorityKey(), int(indexingPriority));
+ map.insert(clangdProjectIndexPathKey(), projectIndexPathTemplate);
+ map.insert(clangdSessionIndexPathKey(), sessionIndexPathTemplate);
+ map.insert(clangdHeaderSourceSwitchModeKey(), int(headerSourceSwitchMode));
+ map.insert(clangdCompletionRankingModelKey(), int(completionRankingModel));
+ map.insert(clangdHeaderInsertionKey(), autoIncludeHeaders);
+ map.insert(clangdThreadLimitKey(), workerThreadLimit);
+ map.insert(clangdDocumentThresholdKey(), documentUpdateThreshold);
+ map.insert(clangdSizeThresholdEnabledKey(), sizeThresholdEnabled);
+ map.insert(clangdSizeThresholdKey(), sizeThresholdInKb);
+ map.insert(sessionsWithOneClangdKey(), sessionsWithOneClangd);
+ map.insert(diagnosticConfigIdKey(), diagnosticConfigId.toSetting());
if (haveCheckedHardwareReqirements != false)
map.insert(checkedHardwareKey(), true);
-
- map.insertValueWithDefault(completionResultsKey(),
- completionResults,
- defaultCompletionResults());
+ map.insert(completionResultsKey(), completionResults);
return map;
}
void ClangdSettings::Data::fromMap(const Store &map)
{
- useClangd = map.value(useClangdKey(), DefaultUseClangd).toBool();
+ useClangd = map.value(useClangdKey(), true).toBool();
executableFilePath = FilePath::fromString(map.value(clangdPathKey()).toString());
indexingPriority = IndexingPriority(
- map.value(clangdIndexingPriorityKey(), int(DefaultIndexingPriority)).toInt());
+ map.value(clangdIndexingPriorityKey(), int(this->indexingPriority)).toInt());
const auto it = map.find(clangdIndexingKey());
if (it != map.end() && !it->toBool())
indexingPriority = IndexingPriority::Off;
@@ -605,17 +566,15 @@ void ClangdSettings::Data::fromMap(const Store &map)
= map.value(clangdProjectIndexPathKey(), defaultProjectIndexPathTemplate()).toString();
sessionIndexPathTemplate
= map.value(clangdSessionIndexPathKey(), defaultSessionIndexPathTemplate()).toString();
- headerSourceSwitchMode = HeaderSourceSwitchMode(
- map.value(clangdHeaderSourceSwitchModeKey(), int(DefaultHeaderSourceSwitchMode)).toInt());
- completionRankingModel = CompletionRankingModel(
- map.value(clangdCompletionRankingModelKey(), int(DefaultCompletionRankingModel)).toInt());
- autoIncludeHeaders = map.value(clangdHeaderInsertionKey(), DefaultAutoIncludeHeaders).toBool();
- workerThreadLimit = map.value(clangdThreadLimitKey(), DefaultWorkerThreadLimit).toInt();
- documentUpdateThreshold
- = map.value(clangdDocumentThresholdKey(), DefaultDocumentUpdateThreshold).toInt();
- sizeThresholdEnabled
- = map.value(clangdSizeThresholdEnabledKey(), DefaultSizeThresholdEnabled).toBool();
- sizeThresholdInKb = map.value(clangdSizeThresholdKey(), DefaultSizeThresholdInKb).toLongLong();
+ headerSourceSwitchMode = HeaderSourceSwitchMode(map.value(clangdHeaderSourceSwitchModeKey(),
+ int(headerSourceSwitchMode)).toInt());
+ completionRankingModel = CompletionRankingModel(map.value(clangdCompletionRankingModelKey(),
+ int(completionRankingModel)).toInt());
+ autoIncludeHeaders = map.value(clangdHeaderInsertionKey(), false).toBool();
+ workerThreadLimit = map.value(clangdThreadLimitKey(), 0).toInt();
+ documentUpdateThreshold = map.value(clangdDocumentThresholdKey(), 500).toInt();
+ sizeThresholdEnabled = map.value(clangdSizeThresholdEnabledKey(), false).toBool();
+ sizeThresholdInKb = map.value(clangdSizeThresholdKey(), 1024).toLongLong();
sessionsWithOneClangd = map.value(sessionsWithOneClangdKey()).toStringList();
diagnosticConfigId = Id::fromSetting(map.value(diagnosticConfigIdKey(),
initialClangDiagnosticConfigId().toSetting()));
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h
index c81fbda6f0..b13acb3f05 100644
--- a/src/plugins/cppeditor/cppcodemodelsettings.h
+++ b/src/plugins/cppeditor/cppcodemodelsettings.h
@@ -19,7 +19,6 @@
namespace ProjectExplorer { class Project; }
namespace Utils {
class MacroExpander;
-class Store;
} // namespace Utils
namespace CppEditor {
@@ -135,32 +134,22 @@ public:
ClangDiagnosticConfigs customDiagnosticConfigs;
Utils::Id diagnosticConfigId;
- int workerThreadLimit = DefaultWorkerThreadLimit;
- int documentUpdateThreshold = DefaultDocumentUpdateThreshold;
- qint64 sizeThresholdInKb = DefaultSizeThresholdInKb;
- bool useClangd = DefaultUseClangd;
- IndexingPriority indexingPriority = DefaultIndexingPriority;
+ int workerThreadLimit = 0;
+ int documentUpdateThreshold = 500;
+ qint64 sizeThresholdInKb = 1024;
+ bool useClangd = true;
+ IndexingPriority indexingPriority = IndexingPriority::Low;
QString projectIndexPathTemplate = defaultProjectIndexPathTemplate();
QString sessionIndexPathTemplate = defaultSessionIndexPathTemplate();
- HeaderSourceSwitchMode headerSourceSwitchMode = DefaultHeaderSourceSwitchMode;
- CompletionRankingModel completionRankingModel = DefaultCompletionRankingModel;
- bool autoIncludeHeaders = DefaultAutoIncludeHeaders;
- bool sizeThresholdEnabled = DefaultSizeThresholdEnabled;
+ HeaderSourceSwitchMode headerSourceSwitchMode = HeaderSourceSwitchMode::Both;
+ CompletionRankingModel completionRankingModel = CompletionRankingModel::Default;
+ bool autoIncludeHeaders = false;
+ bool sizeThresholdEnabled = false;
bool haveCheckedHardwareReqirements = false;
int completionResults = defaultCompletionResults();
private:
static int defaultCompletionResults();
-
- static constexpr auto DefaultWorkerThreadLimit = 0;
- static constexpr auto DefaultDocumentUpdateThreshold = 500;
- static constexpr auto DefaultSizeThresholdInKb = 1024ll;
- static constexpr auto DefaultUseClangd = true;
- static constexpr auto DefaultIndexingPriority = ClangdSettings::IndexingPriority::Low;
- static constexpr auto DefaultHeaderSourceSwitchMode = HeaderSourceSwitchMode::Both;
- static constexpr auto DefaultCompletionRankingModel = CompletionRankingModel::Default;
- static constexpr auto DefaultAutoIncludeHeaders = false;
- static constexpr auto DefaultSizeThresholdEnabled = false;
};
ClangdSettings(const Data &data) : m_data(data) {}
diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp
index 2cab76ee49..2d85345303 100644
--- a/src/plugins/cppeditor/cppdoxygen_test.cpp
+++ b/src/plugins/cppeditor/cppdoxygen_test.cpp
@@ -225,26 +225,30 @@ void DoxygenTest::testBasic_data()
/// test cpp style doxygen comment when inside a indented scope
QTest::newRow("cpp_styleA_indented") << _(
- " bool preventFolding;\n"
+ "void func() {\n"
" ///|\n"
" int a;\n"
+ "}\n"
) << _(
- " bool preventFolding;\n"
+ "void func() {\n"
" ///\n"
" /// \\brief a\n"
" ///\n"
- " int a;\n") << int(CommandPrefix::Auto);
+ " int a;\n"
+ "}\n") << int(CommandPrefix::Auto);
QTest::newRow("cpp_styleB_indented") << _(
- " bool preventFolding;\n"
+ "void func() {\n"
" //!|\n"
" int a;\n"
+ "}\n"
) << _(
- " bool preventFolding;\n"
+ "void func() {\n"
" //!\n"
" //! \\brief a\n"
" //!\n"
- " int a;\n") << int(CommandPrefix::Auto);
+ " int a;\n"
+ "}\n") << int(CommandPrefix::Auto);
QTest::newRow("cpp_styleA_indented_preserve_mixed_indention_continuation") << _(
"\t bool preventFolding;\n"
@@ -491,6 +495,14 @@ void DoxygenTest::runTest(const QByteArray &original,
QCoreApplication::sendEvent(testDocument.m_editorWidget, &event);
const QByteArray result = testDocument.m_editorWidget->document()->toPlainText().toUtf8();
+ if (isClangFormatPresent()) {
+ QEXPECT_FAIL("noContinuationForExpressionAndComment1",
+ "ClangFormat indents differently",
+ Continue);
+ QEXPECT_FAIL("noContinuationForExpressionAndComment2",
+ "ClangFormat indents differently",
+ Continue);
+ }
QCOMPARE(QLatin1String(result), QLatin1String(expected));
testDocument.m_editorWidget->undo();
diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp
index d6de78b376..98650baa21 100644
--- a/src/plugins/cppeditor/cppquickfix_test.cpp
+++ b/src/plugins/cppeditor/cppquickfix_test.cpp
@@ -12,8 +12,6 @@
#include "cppsourceprocessertesthelper.h"
#include "cpptoolssettings.h"
-#include <extensionsystem/pluginmanager.h>
-#include <extensionsystem/pluginspec.h>
#include <utils/fileutils.h>
#include <QDebug>
@@ -5406,12 +5404,6 @@ void QuickfixTest::testInsertDefsFromDecls()
void QuickfixTest::testInsertAndFormatDefsFromDecls()
{
- static const auto isClangFormatPresent = [] {
- using namespace ExtensionSystem;
- return Utils::contains(PluginManager::plugins(), [](const PluginSpec *plugin) {
- return plugin->name() == "ClangFormat" && plugin->isEffectivelyEnabled();
- });
- };
if (!isClangFormatPresent())
QSKIP("This test reqires ClangFormat");
diff --git a/src/plugins/cppeditor/cpptoolstestcase.cpp b/src/plugins/cppeditor/cpptoolstestcase.cpp
index a55895affc..b0151e7a81 100644
--- a/src/plugins/cppeditor/cpptoolstestcase.cpp
+++ b/src/plugins/cppeditor/cpptoolstestcase.cpp
@@ -13,6 +13,9 @@
#include <coreplugin/editormanager/editormanager.h>
+#include <extensionsystem/pluginmanager.h>
+#include <extensionsystem/pluginspec.h>
+
#include <cplusplus/CppDocument.h>
#include <projectexplorer/buildsystem.h>
@@ -39,6 +42,14 @@ using namespace Utils;
namespace CppEditor::Internal::Tests {
+bool isClangFormatPresent()
+{
+ using namespace ExtensionSystem;
+ return Utils::contains(PluginManager::plugins(), [](const PluginSpec *plugin) {
+ return plugin->name() == "ClangFormat" && plugin->isEffectivelyEnabled();
+ });
+};
+
CppTestDocument::CppTestDocument(const QByteArray &fileName, const QByteArray &source,
char cursorMarker)
: m_fileName(QString::fromUtf8(fileName))
diff --git a/src/plugins/cppeditor/cpptoolstestcase.h b/src/plugins/cppeditor/cpptoolstestcase.h
index 13548630e6..99969621b3 100644
--- a/src/plugins/cppeditor/cpptoolstestcase.h
+++ b/src/plugins/cppeditor/cpptoolstestcase.h
@@ -35,6 +35,8 @@ class CppEditorWidget;
namespace Internal::Tests {
+bool isClangFormatPresent();
+
class CppTestDocument;
typedef QSharedPointer<CppTestDocument> TestDocumentPtr;
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 70766eafca..e4873de775 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -784,8 +784,8 @@ void GdbEngine::runCommand(const DebuggerCommand &command)
}
// Start Watchdog.
- if (m_commandTimer.interval() <= 20000)
- m_commandTimer.setInterval(commandTimeoutTime());
+ const int watchDogMilliSecs = settings().gdbWatchdogTimeout() * 1000;
+ m_commandTimer.setInterval(watchDogMilliSecs);
// The process can die for external reason between the "-gdb-exit" was
// sent and a response could be retrieved. We don't want the watchdog
// to bark in that case since the only possible outcome is a dead
@@ -798,12 +798,6 @@ void GdbEngine::runCommand(const DebuggerCommand &command)
}
}
-int GdbEngine::commandTimeoutTime() const
-{
- const int time = settings().gdbWatchdogTimeout();
- return 1000 * qMax(20, time);
-}
-
void GdbEngine::commandTimeout()
{
const QList<int> keys = Utils::sorted(m_commandForToken.keys());
@@ -3442,7 +3436,7 @@ void GdbEngine::handleRegisterListing(const DebuggerResponse &response)
reg.name = parts.at(0);
reg.size = parts.at(4).toInt();
reg.reportedType = parts.at(5);
- reg.groups = Utils::toSet(parts.at(6).split(','));
+ reg.groups = parts.at(6).split(',');
m_registers[gdbRegisterNumber] = reg;
}
}
@@ -3880,6 +3874,10 @@ void GdbEngine::handleGdbStarted()
runCommand({"show version", CB(handleShowVersion)});
runCommand({"show debug-file-directory", CB(handleDebugInfoLocation)});
+ // Show supported architectures.
+ runCommand({"set max-completions 1000"}); // gdb-multiarch needs ~250
+ runCommand({"complete set arch "}); // Keep the space!
+
//runCommand("-enable-timings");
//rurun print static-members off"); // Seemingly doesn't work.
//runCommand("set debug infrun 1");
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index f002f8c33f..33eec793a4 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -116,7 +116,6 @@ private: ////////// General Interface //////////
QHash<int, DebuggerCommand> m_commandForToken;
QHash<int, int> m_flagsForToken;
- int commandTimeoutTime() const;
QTimer m_commandTimer;
QString m_pendingConsoleStreamOutput;
diff --git a/src/plugins/debugger/gdb/gdbsettings.cpp b/src/plugins/debugger/gdb/gdbsettings.cpp
index 3d1bed263c..538e44643c 100644
--- a/src/plugins/debugger/gdb/gdbsettings.cpp
+++ b/src/plugins/debugger/gdb/gdbsettings.cpp
@@ -193,9 +193,9 @@ GdbSettings::GdbSettings()
"calls and is very likely to destroy your debugging session.</p></body></html>"));
gdbWatchdogTimeout.setSettingsKey("WatchdogTimeout");
- gdbWatchdogTimeout.setDefaultValue(20);
+ gdbWatchdogTimeout.setDefaultValue(40);
gdbWatchdogTimeout.setSuffix(Tr::tr("sec"));
- gdbWatchdogTimeout.setRange(20, 1000000);
+ gdbWatchdogTimeout.setRange(10, 1000000);
gdbWatchdogTimeout.setLabelText(Tr::tr("GDB timeout:"));
gdbWatchdogTimeout.setToolTip(Tr::tr(
"The number of seconds before a non-responsive GDB process is terminated.\n"
diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp
index 64f82052bf..348888f29b 100644
--- a/src/plugins/debugger/registerhandler.cpp
+++ b/src/plugins/debugger/registerhandler.cpp
@@ -676,7 +676,8 @@ void RegisterHandler::updateRegister(const Register &r)
{
bool sort = false;
bool changed = false;
- for (const QString &group : r.groups) {
+ const QStringList groups = r.groups.isEmpty() ? QStringList{"all"} : r.groups;
+ for (const QString &group : groups) {
RegisterGroup *regGr = m_registerGroups.value(group, nullptr);
if (!regGr) {
sort = true;
diff --git a/src/plugins/debugger/registerhandler.h b/src/plugins/debugger/registerhandler.h
index 0640a42bdc..8a02fd2eaa 100644
--- a/src/plugins/debugger/registerhandler.h
+++ b/src/plugins/debugger/registerhandler.h
@@ -72,7 +72,7 @@ public:
RegisterValue value;
RegisterValue previousValue;
QString description;
- QSet<QString> groups;
+ QStringList groups;
int size = 0;
RegisterKind kind = UnknownRegister;
};
diff --git a/src/plugins/extensionmanager/extensionsbrowser.cpp b/src/plugins/extensionmanager/extensionsbrowser.cpp
index dba1936d60..d83c1ef3ee 100644
--- a/src/plugins/extensionmanager/extensionsbrowser.cpp
+++ b/src/plugins/extensionmanager/extensionsbrowser.cpp
@@ -329,10 +329,13 @@ public:
{
const bool selected = option.state & QStyle::State_Selected;
const bool hovered = option.state & QStyle::State_MouseOver;
- const QColor fillColor = creatorTheme()->color(hovered ? Theme::Token_Foreground_Muted
- : Theme::Token_Background_Muted);
- const QColor strokeColor = creatorTheme()->color(selected ? Theme::Token_Stroke_Strong
- : Theme::Token_Stroke_Subtle);
+ const QColor fillColor =
+ creatorTheme()->color(hovered ? WelcomePageHelpers::cardHoverBackground
+ : WelcomePageHelpers::cardDefaultBackground);
+ const QColor strokeColor =
+ creatorTheme()->color(selected ? Theme::Token_Stroke_Strong
+ : hovered ? WelcomePageHelpers::cardHoverStroke
+ : WelcomePageHelpers::cardDefaultStroke);
WelcomePageHelpers::drawCardBackground(painter, itemRect, fillColor, strokeColor);
}
{
diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index 6a232083bd..7ec80e700d 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -54,6 +54,7 @@ struct HelpManagerPrivate
// data for delayed initialization
QSet<QString> m_filesToRegister;
+ QSet<QString> m_blockedDocumentation;
QSet<QString> m_filesToUnregister;
QHash<QString, QVariant> m_customValues;
@@ -146,6 +147,12 @@ void HelpManager::registerDocumentation(const QStringList &files)
ProgressManager::addTask(future, Tr::tr("Update Documentation"), kUpdateDocumentationTask);
}
+void HelpManager::setBlockedDocumentation(const QStringList &fileNames)
+{
+ for (const QString &filePath : fileNames)
+ d->m_blockedDocumentation.insert(filePath);
+}
+
static void unregisterDocumentationNow(QPromise<bool> &promise,
const QString collectionFilePath,
const QStringList &files)
@@ -334,6 +341,12 @@ void HelpManager::setupHelpManager()
for (const QString &filePath : d->documentationFromInstaller())
d->m_filesToRegister.insert(filePath);
+ // The online installer registers documentation for Qt versions explicitly via an install
+ // setting, which defeats that we only register the Qt versions matching the setting.
+ // So the Qt support explicitly blocks the files that we do _not_ want to register, so the
+ // Help plugin knows about this.
+ d->m_filesToRegister -= d->m_blockedDocumentation;
+
d->cleanUpDocumentation();
if (!d->m_filesToUnregister.isEmpty()) {
diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h
index 6a5874e7df..5f0efe5620 100644
--- a/src/plugins/help/helpmanager.h
+++ b/src/plugins/help/helpmanager.h
@@ -29,6 +29,7 @@ public:
static QString collectionFilePath();
void registerDocumentation(const QStringList &fileNames) override;
+ void setBlockedDocumentation(const QStringList &fileNames) override;
void unregisterDocumentation(const QStringList &fileNames) override;
static void registerUserDocumentation(const QStringList &filePaths);
diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp
index 12cd46c401..ab3c75e0c5 100644
--- a/src/plugins/languageclient/client.cpp
+++ b/src/plugins/languageclient/client.cpp
@@ -207,6 +207,9 @@ public:
// do not handle messages while shutting down
disconnect(m_clientInterface, &InterfaceController::messageReceived,
q, &Client::handleMessage);
+ delete m_clientProviders.completionAssistProvider;
+ delete m_clientProviders.functionHintProvider;
+ delete m_clientProviders.quickFixAssistProvider;
delete m_diagnosticManager;
delete m_clientInterface;
}
diff --git a/src/plugins/mcusupport/dialogs/mcukitcreationdialog.cpp b/src/plugins/mcusupport/dialogs/mcukitcreationdialog.cpp
index 897fcd0aa1..4100052cbd 100644
--- a/src/plugins/mcusupport/dialogs/mcukitcreationdialog.cpp
+++ b/src/plugins/mcusupport/dialogs/mcukitcreationdialog.cpp
@@ -78,12 +78,18 @@ McuKitCreationDialog::McuKitCreationDialog(const MessagesList &messages,
QPushButton *fixButton = buttonBox->addButton(Tr::tr("Fix"), QDialogButtonBox::ActionRole);
QPushButton *helpButton = buttonBox->addButton(Tr::tr("Help"), QDialogButtonBox::HelpRole);
- if (messages.size() == 1) {
+ if (messages.empty()) {
+ fixButton->setVisible(false);
+ m_informationLabel->setText(
+ QCoreApplication::translate("QtC::Autotest", "No errors detected"));
+ }
+
+ if (messages.size() < 2) {
m_nextButton->setVisible(false);
m_previousButton->setVisible(false);
}
//display first message
- if (messages.size() > 1)
+ if (!messages.empty())
updateMessage(1);
if (qtMCUPackage->isValidStatus())
diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp
index 187591298c..a8b2501354 100644
--- a/src/plugins/mcusupport/mcusupportoptions.cpp
+++ b/src/plugins/mcusupport/mcusupportoptions.cpp
@@ -255,7 +255,7 @@ McuKitManager::UpgradeOption McuSupportOptions::askForKitUpgrades()
return McuKitManager::UpgradeOption::Ignore;
}
-void McuSupportOptions::displayKitCreationMessages(const MessagesList &messages,
+void McuSupportOptions::displayKitCreationMessages(const MessagesList messages,
const SettingsHandler::Ptr &settingsHandler,
McuPackagePtr qtMCUsPackage)
{
@@ -269,7 +269,7 @@ void McuSupportOptions::displayKitCreationMessages(const MessagesList &messages,
Tr::tr("Errors while creating Qt for MCUs kits"),
Utils::InfoBarEntry::GlobalSuppression::Enabled);
- info.addCustomButton(Tr::tr("Details"), [=] {
+ info.addCustomButton(Tr::tr("Details"), [messages, &settingsHandler, qtMCUsPackage] {
auto popup = new McuKitCreationDialog(messages, settingsHandler, qtMCUsPackage);
popup->exec();
delete popup;
diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h
index d8a5c3fdbf..1c0a902ba1 100644
--- a/src/plugins/mcusupport/mcusupportoptions.h
+++ b/src/plugins/mcusupport/mcusupportoptions.h
@@ -59,7 +59,7 @@ public:
[[nodiscard]] Utils::FilePath qulDirFromSettings() const;
[[nodiscard]] Utils::FilePath qulDocsDir() const;
static McuKitManager::UpgradeOption askForKitUpgrades();
- static void displayKitCreationMessages(const MessagesList &messages,
+ static void displayKitCreationMessages(const MessagesList messages,
const SettingsHandler::Ptr &settingsHandler,
McuPackagePtr qtMCUsPackage);
diff --git a/src/plugins/projectexplorer/addrunconfigdialog.cpp b/src/plugins/projectexplorer/addrunconfigdialog.cpp
index 4457bf0700..7cf96920e8 100644
--- a/src/plugins/projectexplorer/addrunconfigdialog.cpp
+++ b/src/plugins/projectexplorer/addrunconfigdialog.cpp
@@ -9,6 +9,7 @@
#include <utils/itemviews.h>
#include <utils/fancylineedit.h>
+#include <utils/fuzzymatcher.h>
#include <utils/qtcassert.h>
#include <utils/treemodel.h>
@@ -129,7 +130,7 @@ AddRunConfigDialog::AddRunConfigDialog(Target *target, QWidget *parent)
buttonBox->button(QDialogButtonBox::Ok)->setText(Tr::tr("Create"));
connect(filterEdit, &FancyLineEdit::textChanged, this, [proxyModel](const QString &text) {
- proxyModel->setFilterRegularExpression(QRegularExpression(text, QRegularExpression::CaseInsensitiveOption));
+ proxyModel->setFilterRegularExpression(FuzzyMatcher::createRegExp(text));
});
connect(m_view, &TreeView::doubleClicked, this, [this] { accept(); });
const auto updateOkButton = [buttonBox, this] {
diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp
index 431fa8ee1d..5ca983329e 100644
--- a/src/plugins/projectexplorer/projectwelcomepage.cpp
+++ b/src/plugins/projectexplorer/projectwelcomepage.cpp
@@ -232,10 +232,8 @@ static QPixmap pixmap(const QString &id, const Theme::Color color)
static void drawBackgroundRect(QPainter *painter, const QRectF &rect, bool hovered)
{
- const QColor fill(themeColor(hovered ? Theme::Token_Foreground_Muted
- : Theme::Token_Background_Muted));
- const QPen pen(themeColor(hovered ? Theme::Token_Foreground_Muted
- : Theme::Token_Stroke_Subtle));
+ const QColor fill(themeColor(hovered ? cardHoverBackground : cardDefaultBackground));
+ const QPen pen(themeColor(hovered ? cardHoverStroke : cardDefaultStroke));
const qreal rounding = s(defaultCardBackgroundRounding * 1000) / 1000.0;
const qreal saneRounding = rounding <= 2 ? 0 : rounding;
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 66dca5ecd5..1c2f04a04c 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -648,24 +648,12 @@ private:
return;
}
- bool userWantsContextMenu(const QMouseEvent *e) const
+ bool userWantsContextMenu(const QMouseEvent *e) const final
{
// On Windows, we get additional mouse events for the item view when right-clicking,
// causing unwanted kit activation (QTCREATORBUG-24156). Let's suppress these.
return HostOsInfo::isWindowsHost() && e->button() == Qt::RightButton;
}
-
- void mousePressEvent(QMouseEvent *e) final
- {
- if (!userWantsContextMenu(e))
- BaseTreeView::mousePressEvent(e);
- }
-
- void mouseReleaseEvent(QMouseEvent *e) final
- {
- if (!userWantsContextMenu(e))
- BaseTreeView::mouseReleaseEvent(e);
- }
};
class ComboBoxItem : public TreeItem
diff --git a/src/plugins/projectexplorer/targetsetupwidget.cpp b/src/plugins/projectexplorer/targetsetupwidget.cpp
index 3ccf02b38d..0e2127706f 100644
--- a/src/plugins/projectexplorer/targetsetupwidget.cpp
+++ b/src/plugins/projectexplorer/targetsetupwidget.cpp
@@ -103,6 +103,7 @@ void TargetSetupWidget::setKitSelected(bool b)
b &= hasSelectedBuildConfigurations();
const GuardLocker locker(m_ignoreChanges);
m_detailsWidget->setChecked(b);
+ m_detailsWidget->setState(b ? DetailsWidget::Expanded : DetailsWidget::Collapsed);
m_detailsWidget->widget()->setEnabled(b);
}
@@ -168,12 +169,7 @@ void TargetSetupWidget::targetCheckBoxToggled(bool b)
if (m_ignoreChanges.isLocked())
return;
m_detailsWidget->widget()->setEnabled(b);
- if (b && (contains(m_infoStore, &BuildInfoStore::hasIssues)
- || !contains(m_infoStore, &BuildInfoStore::isEnabled))) {
- m_detailsWidget->setState(DetailsWidget::Expanded);
- } else if (!b) {
- m_detailsWidget->setState(DetailsWidget::Collapsed);
- }
+ m_detailsWidget->setState(b ? DetailsWidget::Expanded : DetailsWidget::Collapsed);
emit selectedToggled();
}
diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp
index 3aa1397b30..48edcca8c8 100644
--- a/src/plugins/qtsupport/qtversionmanager.cpp
+++ b/src/plugins/qtsupport/qtversionmanager.cpp
@@ -120,7 +120,8 @@ public:
void updateDocumentation(const QtVersions &added,
const QtVersions &removed,
- const QtVersions &allNew);
+ const QtVersions &allNew,
+ bool updateBlockedDocumentation = false);
void setNewQtVersions(const QtVersions &newVersions);
QString qmakePath(const QString &qtchooser, const QString &version);
@@ -174,7 +175,7 @@ void QtVersionManagerImpl::triggerQtVersionRestore()
} // exists
const QtVersions vs = QtVersionManager::versions();
- updateDocumentation(vs, {}, vs);
+ updateDocumentation(vs, {}, vs, /*updateBlockedDocumentation=*/true);
}
bool QtVersionManager::isLoaded()
@@ -499,20 +500,34 @@ void QtVersionManager::registerExampleSet(const QString &displayName,
using Path = QString;
using FileName = QString;
-static QList<std::pair<Path, FileName>> documentationFiles(QtVersion *v)
+using DocumentationFile = std::pair<Path, FileName>;
+using DocumentationFiles = QList<DocumentationFile>;
+using AllDocumentationFiles = QHash<QtVersion *, DocumentationFiles>;
+
+static DocumentationFiles allDocumentationFiles(QtVersion *v)
{
- QList<std::pair<Path, FileName>> files;
+ DocumentationFiles files;
const QStringList docPaths = QStringList(
{v->docsPath().toString() + QChar('/'), v->docsPath().toString() + "/qch/"});
for (const QString &docPath : docPaths) {
const QDir versionHelpDir(docPath);
- for (const QString &helpFile : versionHelpDir.entryList(QStringList("*.qch"), QDir::Files))
+ for (const QString &helpFile : versionHelpDir.entryList(QStringList("q*.qch"), QDir::Files))
files.append({docPath, helpFile});
}
return files;
}
-static QStringList documentationFiles(const QtVersions &vs, bool highestOnly = false)
+static AllDocumentationFiles allDocumentationFiles(const QtVersions &versions)
+{
+ AllDocumentationFiles result;
+ for (QtVersion *v : versions)
+ result.insert(v, allDocumentationFiles(v));
+ return result;
+}
+
+static QStringList documentationFiles(const QtVersions &vs,
+ const AllDocumentationFiles &allDocumentationFiles,
+ bool highestOnly = false)
{
// if highestOnly is true, register each file only once per major Qt version, even if
// multiple minor or patch releases of that major version are installed
@@ -522,7 +537,8 @@ static QStringList documentationFiles(const QtVersions &vs, bool highestOnly = f
for (QtVersion *v : versions) {
const int majorVersion = v->qtVersion().majorVersion();
QSet<QString> &majorVersionFileNames = includedFileNames[majorVersion];
- for (const std::pair<Path, FileName> &file : documentationFiles(v)) {
+ const DocumentationFiles files = allDocumentationFiles.value(v);
+ for (const std::pair<Path, FileName> &file : files) {
if (!highestOnly || !majorVersionFileNames.contains(file.second)) {
filePaths.insert(file.first + file.second);
majorVersionFileNames.insert(file.second);
@@ -532,15 +548,23 @@ static QStringList documentationFiles(const QtVersions &vs, bool highestOnly = f
return filePaths.values();
}
+static QStringList documentationFiles(const QtVersions &vs)
+{
+ return documentationFiles(vs, allDocumentationFiles(vs));
+}
+
void QtVersionManagerImpl::updateDocumentation(const QtVersions &added,
const QtVersions &removed,
- const QtVersions &allNew)
+ const QtVersions &allNew,
+ bool updateBlockedDocumentation)
{
using DocumentationSetting = QtVersionManager::DocumentationSetting;
const DocumentationSetting setting = QtVersionManager::documentationSetting();
+ const AllDocumentationFiles allNewDocFiles = allDocumentationFiles(allNew);
const QStringList docsOfAll = setting == DocumentationSetting::None
? QStringList()
: documentationFiles(allNew,
+ allNewDocFiles,
setting
== DocumentationSetting::HighestOnly);
const QStringList docsToRemove = Utils::filtered(documentationFiles(removed),
@@ -551,6 +575,17 @@ void QtVersionManagerImpl::updateDocumentation(const QtVersions &added,
[&docsOfAll](const QString &f) {
return docsOfAll.contains(f);
});
+
+ if (updateBlockedDocumentation) {
+ // The online installer registers documentation for Qt versions explicitly via an install
+ // setting, which defeats that we only register the Qt versions matching the setting.
+ // So the Qt support explicitly blocks the files that we do _not_ want to register, so the
+ // Help plugin knows about this.
+ const QSet<QString> reallyAllFiles = toSet(documentationFiles(allNew, allNewDocFiles));
+ const QSet<QString> toBlock = reallyAllFiles - toSet(docsOfAll);
+ Core::HelpManager::setBlockedDocumentation(toList(toBlock));
+ }
+
Core::HelpManager::unregisterDocumentation(docsToRemove);
Core::HelpManager::registerDocumentation(docsToAdd);
}
diff --git a/src/plugins/texteditor/TextEditor.json.in b/src/plugins/texteditor/TextEditor.json.in
index 5fbf3e3067..447d9c91c6 100644
--- a/src/plugins/texteditor/TextEditor.json.in
+++ b/src/plugins/texteditor/TextEditor.json.in
@@ -15,5 +15,15 @@
"Category" : "Core",
"Description" : "Text editor framework and the implementation of the basic text editor.",
"Url" : "http://www.qt.io",
- ${IDE_PLUGIN_DEPENDENCIES}
+ ${IDE_PLUGIN_DEPENDENCIES},
+ "Mimetypes" : [
+ "<?xml version='1.0'?>",
+ "<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>",
+ " <mime-type type='text/vnd.qtcreator.devicetree.source'>",
+ " <comment>Device tree source files</comment>",
+ " <sub-class-of type='text/plain'/>",
+ " <glob pattern='*.dts' weight='80'/>",
+ " </mime-type>",
+ "</mime-info>"
+ ]
}
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index baf027d124..3256ee91b7 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -3552,6 +3552,7 @@ void TextEditorWidget::restoreState(const QByteArray &state)
QTC_ASSERT(documentLayout, return);
documentLayout->requestUpdate();
documentLayout->emitDocumentSizeChanged();
+ d->updateCursorPosition();
}
};
if (!singleShotAfterHighlightingDone(foldingRestore))
@@ -4153,10 +4154,17 @@ void TextEditorWidgetPrivate::highlightSearchResults(const QTextBlock &block, co
l = match.capturedLength();
if (l == 0)
break;
- if ((m_findFlags & FindWholeWords)
- && ((idx && text.at(idx-1).isLetterOrNumber())
- || (idx + l < text.length() && text.at(idx + l).isLetterOrNumber())))
- continue;
+ if (m_findFlags & FindWholeWords) {
+ auto posAtWordSeparator = [](const QString &text, int idx) {
+ if (idx < 0 || idx >= text.length())
+ return false;
+ const QChar c = text.at(idx);
+ return !c.isLetterOrNumber() && c != QLatin1Char('_');
+ };
+ if (!posAtWordSeparator(text, idx - 1) || !posAtWordSeparator(text, idx + l))
+ continue;
+ }
+
const int start = blockPosition + idx;
const int end = start + l;
@@ -6696,6 +6704,9 @@ void TextEditorWidget::ensureBlockIsUnfolded(QTextBlock block)
void TextEditorWidgetPrivate::toggleBlockVisible(const QTextBlock &block)
{
+ if (q->singleShotAfterHighlightingDone([this, block] { toggleBlockVisible(block); }))
+ return;
+
auto documentLayout = qobject_cast<TextDocumentLayout*>(q->document()->documentLayout());
QTC_ASSERT(documentLayout, return);
diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp
index 2513ebaa10..4b3a5074f9 100644
--- a/src/plugins/welcome/welcomeplugin.cpp
+++ b/src/plugins/welcome/welcomeplugin.cpp
@@ -36,6 +36,7 @@
#include <QMouseEvent>
#include <QPainter>
#include <QScrollArea>
+#include <QScrollBar>
#include <QStackedWidget>
#include <QTimer>
#include <QVBoxLayout>
@@ -292,25 +293,25 @@ WelcomeMode::WelcomeMode()
m_modeWidget = new ResizeSignallingWidget;
setBackgroundColor(m_modeWidget, Theme::Token_Background_Default);
- connect(m_modeWidget, &ResizeSignallingWidget::resized, this,
+ connect(m_modeWidget,
+ &ResizeSignallingWidget::resized,
+ this,
[this](const QSize &size, const QSize &) {
- const QSize essentialsS = m_sideArea->m_essentials->size();
- const QSize linksS = m_sideArea->m_links->size();
- const QSize sideAreaS = m_sideArea->size();
- const QSize topAreaS = m_topArea->size();
- const QSize mainWindowS = ICore::mainWindow()->size();
-
- const bool showSideArea = sideAreaS.width() < size.width() / 4;
- const bool showTopArea = topAreaS.height() < mainWindowS.height() / 7.75;
- const bool showLinks =
- linksS.height() + essentialsS.height() < sideAreaS.height() && showTopArea;
-
- m_sideArea->m_links->setVisible(showLinks);
- m_sideArea->setVisible(showSideArea);
- m_topArea->setVisible(showTopArea);
- });
+ const QSize sideAreaS = m_sideArea->size();
+ const QSize topAreaS = m_topArea->size();
+ const QSize mainWindowS = ICore::mainWindow()->size();
+
+ const bool showSideArea = sideAreaS.width() < size.width() / 4;
+ const bool showTopArea = topAreaS.height() < mainWindowS.height() / 8.85;
+ const bool showLinks = true;
+
+ m_sideArea->m_links->setVisible(showLinks);
+ m_sideArea->setVisible(showSideArea);
+ m_topArea->setVisible(showTopArea);
+ });
m_sideArea = new SideArea(m_modeWidget);
+ m_sideArea->verticalScrollBar()->setEnabled(false);
m_buttonGroup = new QButtonGroup(m_modeWidget);
m_buttonGroup->setExclusive(true);
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject 60a18f09fa547af064fb851e72b816ee25bf71a
+Subproject 75aca0dca12c6c94109e65ee035b6b533b33a3c
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index 5bb724a0b1..71689babf7 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -9,11 +9,11 @@ def openQbsProject(projectPath):
def openQmakeProject(projectPath, targets=Targets.desktopTargetClasses(), fromWelcome=False):
cleanUpUserFiles(projectPath)
if fromWelcome:
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton('Open Project...')
- if not all((wsButtonFrame, wsButtonLabel)):
+ wsButton = getWelcomeScreenSideBarButton('Open Project...')
+ if not object.exists(wsButton):
test.fatal("Could not find 'Open Project...' button on Welcome Page.")
return []
- mouseClick(wsButtonLabel)
+ mouseClick(wsButton)
else:
invokeMenuItem("File", "Open File or Project...")
selectFromFileDialog(projectPath)
@@ -60,11 +60,11 @@ def __createProjectOrFileSelectType__(category, template, fromWelcome = False, i
if fromWelcome:
if not isProject:
test.fatal("'Create Project...' on Welcome screen only handles projects nowadays.")
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton("Create Project...")
- if not all((wsButtonFrame, wsButtonLabel)):
+ wsButton = getWelcomeScreenSideBarButton("Create Project...")
+ if not object.exists(wsButton):
test.fatal("Could not find 'Create Project...' button on Welcome Page")
return []
- mouseClick(wsButtonLabel)
+ mouseClick(wsButton)
elif isProject:
invokeMenuItem("File", "New Project...")
else:
diff --git a/tests/system/shared/welcome.py b/tests/system/shared/welcome.py
index 8066f27131..a5ba097ff1 100644
--- a/tests/system/shared/welcome.py
+++ b/tests/system/shared/welcome.py
@@ -4,30 +4,11 @@
def __childrenOfType__(parentObject, typeName):
return [child for child in object.children(parentObject) if className(child) == typeName]
-def __getWelcomeScreenButtonHelper__(buttonLabel, widgetWithQFrames, isUrlButton = False):
- frames = __childrenOfType__(widgetWithQFrames, 'QWidget')
- for frame in frames:
- childCount = 1 # incorrect but okay for framed sidebar buttons
- if isUrlButton:
- childCount = len(__childrenOfType__(frame, 'QLabel'))
- for occurrence in range(1, childCount + 1):
- label = getChildByClass(frame, 'QLabel', occurrence)
- if label is None:
- continue
- if str(label.text) == buttonLabel:
- return frame, label
- return None, None
-
-def getWelcomeScreenSideBarButton(buttonLabel, isUrlButton = False):
- sideBar = waitForObject("{container={type='Welcome::Internal::SideArea' unnamed='1' "
- "window=':Qt Creator_Core::Internal::MainWindow'} type='QWidget' "
- "unnamed='1'}")
- return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton)
-
-def getWelcomeScreenBottomButton(buttonLabel):
- bottomArea = waitForObject("{type='Welcome::Internal::BottomArea' unnamed='1' "
- "window=':Qt Creator_Core::Internal::MainWindow'}")
- return __getWelcomeScreenButtonHelper__(buttonLabel, bottomArea, False)
+
+def getWelcomeScreenSideBarButton(buttonLabel):
+ return ("{text='%s' type='QPushButton' unnamed='1' visible='1' "
+ "window=':Qt Creator_Core::Internal::MainWindow'}" % buttonLabel)
+
def getWelcomeTreeView(treeViewLabel):
try:
@@ -37,11 +18,11 @@ def getWelcomeTreeView(treeViewLabel):
return None
def switchToSubMode(subModeLabel):
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(subModeLabel)
- frameAndLabelFound = all((wsButtonFrame, wsButtonLabel))
- if frameAndLabelFound:
- mouseClick(wsButtonLabel)
- return frameAndLabelFound
+ wsButton = getWelcomeScreenSideBarButton(subModeLabel)
+ buttonFound = object.exists(wsButton)
+ if buttonFound:
+ mouseClick(wsButton)
+ return buttonFound
def findExampleOrTutorial(tableView, regex, verbose=False):
filterModel = __childrenOfType__(tableView, 'QSortFilterProxyModel')
diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py
index 0bc65d1f00..61ee8a6030 100644
--- a/tests/system/suite_WELP/tst_WELP01/test.py
+++ b/tests/system/suite_WELP/tst_WELP01/test.py
@@ -14,25 +14,16 @@ def clickItemVerifyHelpCombo(button, expectedHelpComboRegex, testDetails):
test.log("Found %s" % str(helpCombo.currentText))
# select "Welcome" page from left toolbar again
switchViewTo(ViewConstants.WELCOME)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
- return test.verify(all((wsButtonFrame, wsButtonLabel)),
+ return test.verify(object.exists(getWelcomeScreenSideBarButton(getStarted)),
"Verifying: '%s' button is being displayed." % getStarted)
def buttonActive(button):
- # colors of the default theme for active button on Welcome page
- defaultActiveRGB = (69, 206, 85)
- # colors of the dark theme for active button on Welcome page
- darkActiveRGB = (54, 193, 72)
- # QPalette::Window (used background color of Welcome page buttons)
- enumQPaletteWindow = 10
- color = button.palette.color(enumQPaletteWindow)
- current = (color.red, color.green, color.blue)
- return current == defaultActiveRGB or current == darkActiveRGB
+ return waitForObject(button).checked
def waitForButtonsState(projectsActive, examplesActive, tutorialsActive, timeout=5000):
- projButton = getWelcomeScreenSideBarButton('Projects')[0]
- exmpButton = getWelcomeScreenSideBarButton('Examples')[0]
- tutoButton = getWelcomeScreenSideBarButton('Tutorials')[0]
- if not all((projButton, exmpButton, tutoButton)):
+ projButton = getWelcomeScreenSideBarButton('Projects')
+ exmpButton = getWelcomeScreenSideBarButton('Examples')
+ tutoButton = getWelcomeScreenSideBarButton('Tutorials')
+ if not all(map(object.exists, (projButton, exmpButton, tutoButton))):
return False
return waitFor('buttonActive(projButton) == projectsActive '
'and buttonActive(exmpButton) == examplesActive '
@@ -65,25 +56,25 @@ def main():
buttonsAndState = {'Projects':False, 'Examples':True, 'Tutorials':False}
for button, state in buttonsAndState.items():
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(button)
- if test.verify(all((wsButtonFrame, wsButtonLabel)),
+ wsButton = getWelcomeScreenSideBarButton(button)
+ if test.verify(object.exists(wsButton),
"Verified whether '%s' button is shown." % button):
- test.compare(buttonActive(wsButtonFrame), state,
+ test.compare(buttonActive(wsButton), state,
"Verifying whether '%s' button is active (%s)." % (button, state))
# select Projects and roughly check this
switchToSubMode('Projects')
for button in ['Create Project...', 'Open Project...']:
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(button)
- if test.verify(all((wsButtonFrame, wsButtonLabel)),
+ wsButton = getWelcomeScreenSideBarButton(button)
+ if test.verify(object.exists(wsButton),
"Verified whether '%s' button is shown." % button):
- test.verify(not buttonActive(wsButtonFrame),
+ test.verify(not buttonActive(wsButton),
"Verifying whether '%s' button is inactive." % button)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
- if test.verify(all((wsButtonFrame, wsButtonLabel)),
+ wsButton = getWelcomeScreenSideBarButton(getStarted)
+ if test.verify(object.exists(wsButton),
"Verifying: Qt Creator displays Welcome Page with '%s' button." % getStarted):
- if clickItemVerifyHelpCombo(wsButtonLabel, "Getting Started | Qt Creator Manual",
+ if clickItemVerifyHelpCombo(wsButton, "Getting Started | Qt Creator Manual",
"Verifying: Help with Creator Documentation is being opened."):
textUrls = {'Online Community':'https://forum.qt.io',
@@ -92,13 +83,14 @@ def main():
'User Guide':'qthelp://org.qt-project.qtcreator/doc/index.html'
}
for text, url in textUrls.items():
- button, label = getWelcomeScreenBottomButton(text)
- if test.verify(all((button, label)),
+ button = getWelcomeScreenSideBarButton(text)
+ if test.verify(object.exists(button),
"Verifying whether link button (%s) exists." % text):
- test.compare(str(button.toolTip), url, "Verifying URL for %s" % text)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
- if wsButtonLabel is not None:
- mouseClick(wsButtonLabel)
+ test.compare(str(waitForObject(button).toolTip), url,
+ "Verifying URL for %s" % text)
+ wsButton = getWelcomeScreenSideBarButton(getStarted)
+ if object.exists(wsButton):
+ mouseClick(wsButton)
qcManualQModelIndexStr = getQModelIndexStr("text~='Qt Creator Manual [0-9.]+'",
":Qt Creator_QHelpContentWidget")
if str(waitForObject(":Qt Creator_HelpSelector_QComboBox").currentText) == "(Untitled)":
@@ -109,8 +101,7 @@ def main():
# select "Welcome" page from left toolbar again
switchViewTo(ViewConstants.WELCOME)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
- test.verify(wsButtonFrame is not None and wsButtonLabel is not None,
+ test.verify(object.exists(getWelcomeScreenSideBarButton(getStarted)),
"Verifying: Getting Started topic is being displayed.")
# select Examples and roughly check them
switchToSubMode('Examples')
diff --git a/tests/system/suite_WELP/tst_WELP02/test.py b/tests/system/suite_WELP/tst_WELP02/test.py
index d79391d121..add3d28b3a 100644
--- a/tests/system/suite_WELP/tst_WELP02/test.py
+++ b/tests/system/suite_WELP/tst_WELP02/test.py
@@ -6,8 +6,7 @@ source("../../shared/qtcreator.py")
def checkTypeAndProperties(typePropertiesDetails):
for (qType, props, detail) in typePropertiesDetails:
if qType == "QPushButton":
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(props)
- test.verify(all((wsButtonFrame, wsButtonLabel)),
+ test.verify(object.exists(getWelcomeScreenSideBarButton(props)),
"Verifying: Qt Creator displays Welcome Page with %s." % detail)
elif qType == 'QTreeView':
treeView = getWelcomeTreeView(props)
@@ -59,8 +58,8 @@ def main():
)
checkTypeAndProperties(typePropDet)
- getStartedF, getStartedL = getWelcomeScreenSideBarButton("Get Started")
- test.verify(getStartedF is not None and getStartedL is not None, "'Get Started' button found")
+ test.verify(object.exists(getWelcomeScreenSideBarButton("Get Started")),
+ "'Get Started' button found")
# select "Create Project" and try to create a new project
createNewQtQuickApplication(tempDir(), "SampleApp", fromWelcome = True)
diff --git a/tests/system/suite_WELP/tst_WELP03/test.py b/tests/system/suite_WELP/tst_WELP03/test.py
index b09fa9e2a9..50f7b503cc 100644
--- a/tests/system/suite_WELP/tst_WELP03/test.py
+++ b/tests/system/suite_WELP/tst_WELP03/test.py
@@ -55,8 +55,7 @@ def main():
qchs.extend([os.path.join(p, "qtopengl.qch"), os.path.join(p, "qtwidgets.qch")])
addHelpDocumentation(qchs)
setFixedHelpViewer(HelpViewer.HELPMODE)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton('Get Started')
- if not test.verify(all((wsButtonFrame, wsButtonLabel)),
+ if not test.verify(object.exists(getWelcomeScreenSideBarButton('Get Started')),
"Verifying: Qt Creator displays Welcome Page with Getting Started."):
test.fatal("Something's wrong - leaving test.")
invokeMenuItem("File", "Exit")
diff --git a/tests/system/suite_WELP/tst_WELP04/test.py b/tests/system/suite_WELP/tst_WELP04/test.py
index c9a1806669..6ccf2f0d3a 100644
--- a/tests/system/suite_WELP/tst_WELP04/test.py
+++ b/tests/system/suite_WELP/tst_WELP04/test.py
@@ -15,8 +15,7 @@ def main():
startQC()
if not startedWithoutPluginError():
return
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton('Get Started')
- if not test.verify(all((wsButtonFrame, wsButtonLabel)),
+ if not test.verify(object.exists(getWelcomeScreenSideBarButton('Get Started')),
"Verifying: Qt Creator displays Welcome Page with Getting Started."):
test.fatal("Something's wrong - leaving test.")
invokeMenuItem("File", "Exit")
diff --git a/tests/system/suite_general/tst_session_handling/test.py b/tests/system/suite_general/tst_session_handling/test.py
index b535145cc9..305d64895e 100644
--- a/tests/system/suite_general/tst_session_handling/test.py
+++ b/tests/system/suite_general/tst_session_handling/test.py
@@ -84,11 +84,11 @@ def createAndSwitchToSession(toSession):
def checkWelcomePage(sessionName, isCurrent=False):
switchViewTo(ViewConstants.WELCOME)
- wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton('Projects')
- if not all((wsButtonFrame, wsButtonLabel)):
+ wsButton = getWelcomeScreenSideBarButton('Projects')
+ if not object.exists(wsButton):
test.fatal("Something's pretty wrong - leaving check for WelcomePage.")
return
- mouseClick(wsButtonLabel)
+ mouseClick(wsButton)
treeView = getWelcomeTreeView("Sessions")
if not treeView:
test.fatal("Failed to find Sessions tree view - leaving check for WelcomePage.")