summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md10
-rw-r--r--coin/instructions/build.yaml2
-rw-r--r--coin/instructions/test.yaml6
-rw-r--r--coin/module_config.yaml2
-rw-r--r--doc/qtcreator/images/qml-toolbar-image.pngbin3561 -> 3699 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-create-template.pngbin0 -> 9869 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-custom-parser.pngbin3857 -> 4276 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-docker-image-selection.pngbin0 -> 23142 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-docker-preferences.pngbin0 -> 57498 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-editor-settings.pngbin25503 -> 27030 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-formedit.pngbin50650 -> 47774 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-options-text-editor-display.pngbin14533 -> 10742 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-qml-js-editing.pngbin0 -> 5888 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-refactoring-options-locations.pngbin5681 -> 5570 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-semanticerror-clang.pngbin33662 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-semanticerror.pngbin9491 -> 22255 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-syntaxerror-clang.pngbin31551 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-syntaxerror.pngbin9802 -> 22392 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-typo-clang.pngbin52930 -> 19902 bytes
-rw-r--r--doc/qtcreator/images/qtdesigner-add-profile.pngbin0 -> 7553 bytes
-rw-r--r--doc/qtcreator/images/qtdesigner-embedded-design.pngbin0 -> 5238 bytes
-rw-r--r--doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc32
-rw-r--r--doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc2
-rw-r--r--doc/qtcreator/src/analyze/creator-coco.qdoc4
-rw-r--r--doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc2
-rw-r--r--doc/qtcreator/src/android/androiddev.qdoc6
-rw-r--r--doc/qtcreator/src/android/deploying-android.qdoc14
-rw-r--r--doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc18
-rw-r--r--doc/qtcreator/src/debugger/creator-only/creator-debugger-settings.qdocinc8
-rw-r--r--doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc2
-rw-r--r--doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc11
-rw-r--r--doc/qtcreator/src/docker/creator-docker.qdoc133
-rw-r--r--doc/qtcreator/src/editors/creator-code-completion.qdoc6
-rw-r--r--doc/qtcreator/src/editors/creator-code-indentation.qdoc30
-rw-r--r--doc/qtcreator/src/editors/creator-code-syntax.qdoc46
-rw-r--r--doc/qtcreator/src/editors/creator-diff-editor.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-editors-options-text.qdoc6
-rw-r--r--doc/qtcreator/src/editors/creator-editors-options.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-locator.qdoc8
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc8
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc4
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-code-pasting.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc10
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-mime-types.qdoc2
-rw-r--r--doc/qtcreator/src/editors/creator-quick-fixes.qdoc7
-rw-r--r--doc/qtcreator/src/editors/creator-semantic-highlighting.qdoc6
-rw-r--r--doc/qtcreator/src/howto/creator-help.qdoc6
-rw-r--r--doc/qtcreator/src/howto/creator-keyboard-shortcuts.qdoc2
-rw-r--r--doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc6
-rw-r--r--doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc2
-rw-r--r--doc/qtcreator/src/incredibuild/creator-projects-incredibuild-building.qdoc4
-rw-r--r--doc/qtcreator/src/ios/creator-ios-dev.qdoc2
-rw-r--r--doc/qtcreator/src/linux-mobile/b2qtdev.qdoc2
-rw-r--r--doc/qtcreator/src/linux-mobile/linuxdev-keys.qdocinc2
-rw-r--r--doc/qtcreator/src/linux-mobile/linuxdev.qdoc2
-rw-r--r--doc/qtcreator/src/mcu/creator-mcu-dev.qdoc2
-rw-r--r--doc/qtcreator/src/meson/creator-projects-meson.qdoc2
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc9
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-custom-output-parser.qdoc7
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-builds-customizing.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-custom-wizards-json.qdocinc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-qbs.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-editor.qdoc4
-rw-r--r--doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc2
-rw-r--r--doc/qtcreator/src/projects/creator-projects-running.qdoc2
-rw-r--r--doc/qtcreator/src/python/creator-python-project.qdocinc7
-rw-r--r--doc/qtcreator/src/qtcreator-toc.qdoc2
-rw-r--r--doc/qtcreator/src/qtquick/creator-only/qtquick-app-development.qdoc2
-rw-r--r--doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc4
-rw-r--r--doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc2
-rw-r--r--doc/qtcreator/src/qtquick/qtquick-profiler.qdoc6
-rw-r--r--doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc4
-rw-r--r--doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc2
-rw-r--r--doc/qtcreator/src/user-interface/creator-ui.qdoc10
-rw-r--r--doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc2
-rw-r--r--doc/qtcreator/src/vcs/creator-vcs-git.qdoc2
-rw-r--r--doc/qtcreator/src/webassembly/creator-webassembly.qdoc2
-rw-r--r--doc/qtcreator/src/widgets/qtdesigner-overview.qdoc42
-rw-r--r--doc/qtcreatordev/src/qtcreator-documentation.qdoc6
-rw-r--r--doc/qtcreatordev/src/qtcreator-ui-text.qdoc2
-rw-r--r--doc/qtdesignstudio/config/qtdesignstudio.qdocconf1
-rw-r--r--doc/qtdesignstudio/examples/doc/coffeemachine.qdoc2
-rw-r--r--doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc4
-rw-r--r--doc/qtdesignstudio/src/components/qtquick-buttons.qdoc2
-rw-r--r--doc/qtdesignstudio/src/components/qtquick-controls.qdoc4
-rw-r--r--doc/qtdesignstudio/src/components/qtquick-images.qdoc2
-rw-r--r--doc/qtdesignstudio/src/overviews/qtquick-placeholder-data.qdoc2
-rw-r--r--doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc4
-rw-r--r--doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc2
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-form-editor.qdoc2
-rw-r--r--doc/qtdesignstudio/src/views/qtquick-properties.qdoc2
-rw-r--r--share/qtcreator/qmldesigner/workspacePresets/Essentials-3D.wrk49
-rw-r--r--src/plugins/android/androidpotentialkit.cpp2
-rw-r--r--src/plugins/android/androidqtversion.cpp3
-rw-r--r--src/plugins/clangformat/clangformatfile.cpp2
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp5
-rw-r--r--src/plugins/languageclient/languageclientcompletionassist.cpp1
-rw-r--r--src/plugins/mesonprojectmanager/mesonprojectplugin.cpp2
-rw-r--r--src/plugins/mesonprojectmanager/settings/general/settings.cpp5
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp8
-rw-r--r--src/plugins/projectexplorer/desktoprunconfiguration.cpp2
-rw-r--r--src/plugins/projectexplorer/editorsettingspropertiespage.ui2
-rw-r--r--src/plugins/projectexplorer/kit.cpp7
-rw-r--r--src/plugins/qmldesigner/components/connectioneditor/dynamicpropertiesmodel.cpp21
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/animationcurve.cpp22
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/animationcurve.h14
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/curveeditor.cpp23
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/curveeditor.h4
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp36
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/curveeditormodel.h8
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp56
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/curveitem.cpp65
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/curveitem.h8
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp2
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.h2
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp9
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp30
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h7
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/treemodel.cpp1
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/keyframe.h1
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/treeitem.cpp6
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/treeitem.h9
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp3
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp10
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp1
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp5
-rw-r--r--src/plugins/qnx/qnxdebugsupport.cpp3
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.cpp8
-rw-r--r--tests/auto/utils/qtcprocess/tst_qtcprocess.cpp2
135 files changed, 675 insertions, 356 deletions
diff --git a/README.md b/README.md
index f762325971..52409e198d 100644
--- a/README.md
+++ b/README.md
@@ -149,6 +149,16 @@ like Qt and LLVM, additionally run
cmake --install . --prefix /path/to/qtcreator_install --component Dependencies
+### Performance Analyzer
+
+If you have not installed Qt with the Maintenance Tool, you must
+either set the path to the `perfparser` executable as a value of
+the `PERFPROFILER_PARSER_FILEPATH` environment variable or copy
+the executable to from the Qt Creator installation directory to
+the build directory. That is, copy it from
+`/path/to/qtcreator_install/Tools/QtCreator/libexec/qtcreator/` to
+/path/to/qtcreator_buid/libexec/qtcreator/`.
+
## Getting LLVM/Clang for the Clang Code Model
The Clang code model uses `Clangd` and the ClangFormat plugin depends on the
diff --git a/coin/instructions/build.yaml b/coin/instructions/build.yaml
index f9219f1dd3..a4bd50a059 100644
--- a/coin/instructions/build.yaml
+++ b/coin/instructions/build.yaml
@@ -148,7 +148,7 @@ instructions:
equals_value: Windows
- type: UploadArtifact
- archiveDirectory: "{{.AgentWorkingDir}}"
+ archiveDirectory: "{{.AgentWorkingDir}}/qt-creator/qt-creator_build/build"
transferType: UploadModuleBuildArtifact
maxTimeInSeconds: 1800
maxTimeBetweenOutput: 1800
diff --git a/coin/instructions/test.yaml b/coin/instructions/test.yaml
index 1cbd4fd16d..26b211d1ef 100644
--- a/coin/instructions/test.yaml
+++ b/coin/instructions/test.yaml
@@ -1,5 +1,11 @@
type: Group
instructions:
+ - type: InstallBinaryArchive
+ relativeStoragePath: "{{.Env.MODULE_ARTIFACTS_RELATIVE_STORAGE_PATH}}/artifacts.tar.gz"
+ directory: "qt-creator/qt-creator_build/build"
+ maxTimeInSeconds: 1800
+ maxTimeBetweenOutput: 1800
+ userMessageOnFailure: "Failed to unarchive build artifacts, check logs"
- type: ChangeDirectory
directory: "{{.AgentWorkingDir}}/qt-creator/qt-creator_build/build"
- type: ExecuteCommand
diff --git a/coin/module_config.yaml b/coin/module_config.yaml
index 3bd2ef9113..96428853f2 100644
--- a/coin/module_config.yaml
+++ b/coin/module_config.yaml
@@ -66,6 +66,7 @@ make_instructions: &make_instructions
test_instructions: &test_instructions
type: Group
instructions:
+ - !include "{{qt-creator/qt-creator}}/provision.yaml"
- !include "{{qt-creator/qt-creator}}/test.yaml"
instructions:
@@ -74,6 +75,7 @@ instructions:
- *make_instructions
Test:
+ - *common_environment
- *test_instructions
LicenseCheck:
diff --git a/doc/qtcreator/images/qml-toolbar-image.png b/doc/qtcreator/images/qml-toolbar-image.png
index 75cb2b4417..21fafda65b 100644
--- a/doc/qtcreator/images/qml-toolbar-image.png
+++ b/doc/qtcreator/images/qml-toolbar-image.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-create-template.png b/doc/qtcreator/images/qtcreator-android-create-template.png
new file mode 100644
index 0000000000..75436a093f
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-create-template.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-custom-parser.png b/doc/qtcreator/images/qtcreator-custom-parser.png
index 0b25f92972..2ef7813630 100644
--- a/doc/qtcreator/images/qtcreator-custom-parser.png
+++ b/doc/qtcreator/images/qtcreator-custom-parser.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-docker-image-selection.png b/doc/qtcreator/images/qtcreator-docker-image-selection.png
new file mode 100644
index 0000000000..72401c2f32
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-docker-image-selection.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-docker-preferences.png b/doc/qtcreator/images/qtcreator-docker-preferences.png
new file mode 100644
index 0000000000..0b08720177
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-docker-preferences.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-editor-settings.png b/doc/qtcreator/images/qtcreator-editor-settings.png
index 2ad6d12e21..7b2c3ecb69 100644
--- a/doc/qtcreator/images/qtcreator-editor-settings.png
+++ b/doc/qtcreator/images/qtcreator-editor-settings.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-formedit.png b/doc/qtcreator/images/qtcreator-formedit.png
index 4ac5720b64..af25d8b5e8 100644
--- a/doc/qtcreator/images/qtcreator-formedit.png
+++ b/doc/qtcreator/images/qtcreator-formedit.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-options-text-editor-display.png b/doc/qtcreator/images/qtcreator-options-text-editor-display.png
index d49884ae62..c00104e3b6 100644
--- a/doc/qtcreator/images/qtcreator-options-text-editor-display.png
+++ b/doc/qtcreator/images/qtcreator-options-text-editor-display.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-qml-js-editing.png b/doc/qtcreator/images/qtcreator-qml-js-editing.png
new file mode 100644
index 0000000000..731c97f1c2
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-qml-js-editing.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-refactoring-options-locations.png b/doc/qtcreator/images/qtcreator-refactoring-options-locations.png
index 9e0dc13066..0d3b2c54f4 100644
--- a/doc/qtcreator/images/qtcreator-refactoring-options-locations.png
+++ b/doc/qtcreator/images/qtcreator-refactoring-options-locations.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-semanticerror-clang.png b/doc/qtcreator/images/qtcreator-semanticerror-clang.png
deleted file mode 100644
index 9980485832..0000000000
--- a/doc/qtcreator/images/qtcreator-semanticerror-clang.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-semanticerror.png b/doc/qtcreator/images/qtcreator-semanticerror.png
index e6920b98ca..72edb4744c 100644
--- a/doc/qtcreator/images/qtcreator-semanticerror.png
+++ b/doc/qtcreator/images/qtcreator-semanticerror.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-syntaxerror-clang.png b/doc/qtcreator/images/qtcreator-syntaxerror-clang.png
deleted file mode 100644
index 8beee1832f..0000000000
--- a/doc/qtcreator/images/qtcreator-syntaxerror-clang.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-syntaxerror.png b/doc/qtcreator/images/qtcreator-syntaxerror.png
index 2f8916ce3b..1561ef7ac2 100644
--- a/doc/qtcreator/images/qtcreator-syntaxerror.png
+++ b/doc/qtcreator/images/qtcreator-syntaxerror.png
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-typo-clang.png b/doc/qtcreator/images/qtcreator-typo-clang.png
index 3e3ad7daea..76722d658e 100644
--- a/doc/qtcreator/images/qtcreator-typo-clang.png
+++ b/doc/qtcreator/images/qtcreator-typo-clang.png
Binary files differ
diff --git a/doc/qtcreator/images/qtdesigner-add-profile.png b/doc/qtcreator/images/qtdesigner-add-profile.png
new file mode 100644
index 0000000000..7457872a19
--- /dev/null
+++ b/doc/qtcreator/images/qtdesigner-add-profile.png
Binary files differ
diff --git a/doc/qtcreator/images/qtdesigner-embedded-design.png b/doc/qtcreator/images/qtdesigner-embedded-design.png
new file mode 100644
index 0000000000..7dac5128d6
--- /dev/null
+++ b/doc/qtcreator/images/qtdesigner-embedded-design.png
Binary files differ
diff --git a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc
index bc13255408..6244e3f5b2 100644
--- a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc
+++ b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -471,14 +471,23 @@
The Performance Analyzer might fail to record data for the following reasons:
- \list 1
- \li Perf events may be globally disabled on your system. The
- preconfigured \l Boot2Qt images come with perf events enabled. For
- a custom configuration you need to make sure that the file
+ \list
+ \li Perf events may be globally disabled on your system.
+ The preconfigured \l Boot2Qt images come with perf events enabled.
+ For a custom configuration you need to make sure that the file
\c {/proc/sys/kernel/perf_event_paranoid} contains a value smaller
than \c {2}. For maximum flexibility in recording traces you can
set the value to \c {-1}. This allows any user to record any kind
of trace, even using raw kernel trace points.
+
+ The way to enable Perf events depends on your Linux distribution.
+ On some distributions, you can run the following command with
+ root (or equivalent) privileges:
+
+ \badcode
+ echo -e "kernel.perf_event_paranoid=-1\nkernel.kptr_restrict=0" | sudo tee /etc/sysctl.d/10-perf.conf
+ \endcode
+
\li The connection between the target device and the host may not be
fast enough to transfer the data produced by Perf. Try modifying
the values of the \uicontrol {Stack snapshot size} or
@@ -501,8 +510,21 @@
drives the sampling from software. After the sampling has failed,
reboot the device. The kernel may have disabled important parts of
the performance counters system.
+ \li Perf might not be installed. The way to install it depends on your
+ Linux distribution. For example, you might try the following
+ commands:
+
+ \list
+ \li On Ubuntu 22.04:
+ \c {sudo apt install linux-tools-$(uname -r)}
+ \li On Debian:
+ \c {apt install linux-perf}
+ \endlist
\endlist
Output from the helper program that processes the data is displayed in
\l{Viewing Output}{General Messages}.
+
+ Some information is displayed in \l {Application Output} even if the
+ Performance Analyzer displays error messages.
*/
diff --git a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
index 0d934bf977..da2f197bf4 100644
--- a/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
+++ b/doc/qtcreator/src/analyze/creator-clang-static-analyzer.qdoc
@@ -135,7 +135,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Analyzer >
\uicontrol {Clang Tools}.
- \image qtcreator-clang-tools-options.png "Clang Tools options tab"
+ \image qtcreator-clang-tools-options.png "Clang Tools preferences"
\li In the \uicontrol Clang-Tidy and \uicontrol Clazy-Standalone fields,
set the paths to the executables to use.
diff --git a/doc/qtcreator/src/analyze/creator-coco.qdoc b/doc/qtcreator/src/analyze/creator-coco.qdoc
index 57c41a0c80..4f74832e4b 100644
--- a/doc/qtcreator/src/analyze/creator-coco.qdoc
+++ b/doc/qtcreator/src/analyze/creator-coco.qdoc
@@ -98,8 +98,8 @@
\section1 Changing Fonts and Colors
- To change the default fonts and colors, select \uicontrol Tools >
- \uicontrol Options > \uicontrol {Text Editor} > \uicontrol {Font & Colors}.
+ To change the default fonts and colors, select \uicontrol Edit >
+ \uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol {Font & Colors}.
Create your own color scheme and select new fonts and colors for the
following results:
diff --git a/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc b/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc
index 0692f3f6b2..1a5e72e5b8 100644
--- a/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc
+++ b/doc/qtcreator/src/analyze/creator-valgrind-overview.qdoc
@@ -58,7 +58,7 @@
For more information about analyzing applications for which you do not have
a project, see \l{Running Valgrind Tools on External Applications}.
- To select options for the Valgrind tools, select \uicontrol Edit >
+ To set preferences for the Valgrind tools, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Analyzer. You can override the general
settings for each project in the \uicontrol {Run Settings} for the project.
diff --git a/doc/qtcreator/src/android/androiddev.qdoc b/doc/qtcreator/src/android/androiddev.qdoc
index e8f14c8602..06fb49c39b 100644
--- a/doc/qtcreator/src/android/androiddev.qdoc
+++ b/doc/qtcreator/src/android/androiddev.qdoc
@@ -84,7 +84,7 @@
\uicontrol Android on Windows and Linux or \uicontrol {\QC} >
\uicontrol Preferences > \uicontrol Devices > \uicontrol Android on
\macos.
- \image qtcreator-options-android-main.png "Android options"
+ \image qtcreator-options-android-main.png "Android preferences"
\li In the \uicontrol {JDK location} field, set the path to the JDK.
\QC checks the JDK installation and reports errors.
@@ -94,7 +94,7 @@
\inlineimage icons/online.png
to open the JDK download web page in the default browser.
- \note We recommended using a 64-bit JDK, because the 32-bit one
+ \note We recommended using a 64-bit JDK because the 32-bit one
might cause issues with \c cmdline-tools, and some packages might
not be listed.
\li In the \uicontrol {Android SDK location} field, set the path to the
@@ -130,7 +130,7 @@
\section2 Manual Setup
\note We recommend that you use the latest Android SDK Command-Line Tools.
- Using Android SDK Tools version 25.2.5 or earlier is not supported, because
+ Using Android SDK Tools version 25.2.5 or earlier is not supported because
they cannot be fully integrated with \QC.
However, if the automatic setup does not meet your needs, you can download
diff --git a/doc/qtcreator/src/android/deploying-android.qdoc b/doc/qtcreator/src/android/deploying-android.qdoc
index bc52fb782d..fc5e8d790f 100644
--- a/doc/qtcreator/src/android/deploying-android.qdoc
+++ b/doc/qtcreator/src/android/deploying-android.qdoc
@@ -161,7 +161,7 @@
\section3 Building AABs
- For testing the application locally, use the APK format, because
+ For testing the application locally, use the APK format because
the package can be uploaded directly to the device and run. For
distribution to the Google Play store, create an AAB by selecting
the \uicontrol {Build Android App Bundle (*.aab)} check box.
@@ -185,7 +185,7 @@
verify that the future versions of your application are actually created by
you.
- \warning Keep the key pair in a safe place and take back up copies, because
+ \warning Keep the key pair in a safe place and take back up copies because
you cannot update the application if you lose the key pair.
You can use \QC to generate a keystore and a \e {self-signed} certificate.
@@ -461,6 +461,16 @@
\li Select \uicontrol Projects > \uicontrol Build >
\uicontrol {Build Android APK} > \uicontrol {Create Templates}.
+ \li Check the path in \uicontrol {Android package source directory}.
+
+ \image qtcreator-android-create-template.png "Create Template dialog"
+
+ \li Select \uicontrol {Copy the Gradle files to Android directory} if you
+ plan to extend the Java part of your Qt application.
+
+ \li Select \uicontrol Finish to copy the template files to the \c android
+ directory and to open the manifest file for editing.
+
\li In the \uicontrol {Package name} field, enter a valid
\l{Package Names}{package name} for the application.
For example, \c {org.example.myapplication}.
diff --git a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc
index c6e7310517..bededd32d4 100644
--- a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc
+++ b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc
@@ -61,7 +61,7 @@
\endlist
The bare metal device type accepts custom GDB commands that you specify in
- the device options. You can specify the commands to execute when connecting
+ the device preferences. You can specify the commands to execute when connecting
using a particular debug server provider.
The following debug server providers are supported when using GDB:
@@ -101,7 +101,7 @@
\l{https://github.com/EmBitz/EBlink}{EBlink} is an ARM Cortex-M debug tool
that supports squirrel scripting, live variables, and hot-plugging.
- \image qtcreator-baremetal-eblink.png "Bare metal device options for EBlink"
+ \image qtcreator-baremetal-eblink.png "Bare metal device preferences for EBlink"
To specify settings for \EBlink:
@@ -138,7 +138,7 @@
\l{https://www.segger.com/products/debug-probes/j-link/}{J-Link} is a line
of debug probes by Segger.
- \image qtcreator-baremetal-jlink.png "Bare metal device options for J-Link"
+ \image qtcreator-baremetal-jlink.png "Bare metal device preferences for J-Link"
To specify settings for J-Link debug probes:
@@ -170,7 +170,7 @@
(JTAG) facility. It enables source level debugging with the GDB compiled
for the ARM architecture.
- \image qtcreator-baremetal-openocd.png "Bare metal device options for OpenOCD"
+ \image qtcreator-baremetal-openocd.png "Bare metal device preferences for OpenOCD"
To specify settings for \OpenOCD:
@@ -196,7 +196,7 @@
\l{https://www.st.com/en/development-tools/stm32-programmers.html#products}
{ST-LINK Utility} is used for programming STM32 microcontrollers.
- \image qtcreator-baremetal-stlink.png "Bare metal device options for St-Link"
+ \image qtcreator-baremetal-stlink.png "Bare metal device preferences for St-Link"
To specify settings for St-Link:
@@ -234,7 +234,7 @@
\section3 uVision Simulator
- \image qtcreator-baremetal-uvision-simulator.png "Bare metal device options for uVision Simulator"
+ \image qtcreator-baremetal-uvision-simulator.png "Bare metal device preferences for uVision Simulator"
To specify settings for uVision Simulator or uVision St-Link Debugger:
@@ -251,7 +251,7 @@
\section3 uVision St-Link Debugger
- \image qtcreator-baremetal-uvision-st-link.png "Bare metal device options for uVision St-Link"
+ \image qtcreator-baremetal-uvision-st-link.png "Bare metal device preferences for uVision St-Link"
To specify settings for uVision St-Link Debugger:
@@ -268,7 +268,7 @@
\section1 Adding Bare Metal Devices
- \image qtcreator-baremetal-devices.png "Bare Metal device options"
+ \image qtcreator-baremetal-devices.png "Bare Metal device preferences"
To add a bare metal device:
@@ -291,7 +291,7 @@
devices, select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits
> \uicontrol Add. For more information, see \l{Adding Kits}.
- \image qtcreator-baremetal-kit.png "Kit options for Bare Metal"
+ \image qtcreator-baremetal-kit.png "Kit preferences for Bare Metal"
You can build applications for and run them on bare metal devices
in the same way as for and on the desktop. For more information, see
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger-settings.qdocinc b/doc/qtcreator/src/debugger/creator-only/creator-debugger-settings.qdocinc
index a2ef31fec5..faef2f96ff 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger-settings.qdocinc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger-settings.qdocinc
@@ -33,7 +33,7 @@
> \uicontrol Preferences > \uicontrol Debugger. In the \uicontrol General tab,
you can specify settings that are common to all debuggers.
- \image qtcreator-debugger-general-options.png
+ \image qtcreator-debugger-general-options.png "Debugger General preferences"
You can customize the appearance and behavior of the debug views,
\l{Specifying Breakpoint Settings}{specify settings for breakpoints},
@@ -74,7 +74,7 @@
To specify settings for managing the GDB process, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Debugger > \uicontrol GDB.
- \image qtcreator-gdb-options.png "GDB options"
+ \image qtcreator-gdb-options.png "GDB preferences"
To specify a timeout for terminating non-responsive GDB processes, set the
number of seconds to wait in the \uicontrol {GDB timeout} field. The default
@@ -140,7 +140,7 @@
Enabling them may negatively impact your debugging experience, so use
them with care.
- \image qtcreator-gdb-extended-options.png "GDB Extended options"
+ \image qtcreator-gdb-extended-options.png "GDB Extended preferences"
To use asynchronous mode to control the inferior, select the
respective check box.
@@ -165,7 +165,7 @@
To specify settings for managing the CDB process, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Debugger > \uicontrol CDB.
- \image qtcreator-cdb-options.png "CDB options"
+ \image qtcreator-cdb-options.png "CDB preferences"
You can specify additional arguments for starting CDB in the
\uicontrol {Additional arguments} field.
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc
index e88ba5517c..4f333dfd01 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc
@@ -42,7 +42,7 @@
specify the debugger and compiler to use for each kit, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol Kits.
- You need to set up the debugger only if the automatic setup fails, because
+ You need to set up the debugger only if the automatic setup fails because
the native debugger is missing (as is usually the case for the CDB debugger
on Windows, which you always must install yourself) or because the installed
version is not supported (for example, when your system contains no, or an
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
index dd5a2dfbf1..c755cb9067 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
@@ -110,8 +110,9 @@
\QC checks whether the compiled program is up-to-date, and rebuilds and
deploys it if the \uicontrol {Build before deploying} field is set to
build the whole project or the application to run and the
- \uicontrol {Always deploy before running} check box is selected in the
- \uicontrol {Build and Run} options. To debug the program without deploying
+ \uicontrol {Always deploy before running} check box is selected in
+ \uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run} >
+ \uicontrol General. To debug the program without deploying
it, select \uicontrol Debug > \uicontrol {Start Debugging} >
\uicontrol {Start Debugging Without Deployment}.
@@ -674,7 +675,7 @@
the bottom of the view. Output is displayed in the right pane of the
\uicontrol {Debugger Log} view.
- \note Usually, you do not need this feature, because \QC provides you
+ \note Usually, you do not need this feature because \QC provides you
with better ways to handle the task. For example, instead of using the GDB
\c print command from the command line, you can evaluate an expression in
the \uicontrol {Expressions} view.
@@ -900,7 +901,7 @@
\uicontrol Debugger > \uicontrol {Locals & Expressions}, and enter the
commands in the \uicontrol {Debugging Helper Customization} field.
- \image qtcreator-debugging-helper-options.png
+ \image qtcreator-debugging-helper-options.png "Locals & Expressions preferences"
If you receive error messages about receiving signals when using GDB, you
can specify \l{https://sourceware.org/gdb/onlinedocs/gdb/Signals.html}
@@ -1564,7 +1565,7 @@
\l{http://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace%20Protection}
{KernelHardening}.
- However, the usefulness of this security measure seems dubious, because this
+ However, the usefulness of this security measure seems dubious because this
feature can be easily disabled. With root permissions, you can disable the
feature temporarily by writing \c{0} into
\c{/proc/sys/kernel/yama/ptrace_scope} or permanently by changing the value
diff --git a/doc/qtcreator/src/docker/creator-docker.qdoc b/doc/qtcreator/src/docker/creator-docker.qdoc
new file mode 100644
index 0000000000..5f758065a4
--- /dev/null
+++ b/doc/qtcreator/src/docker/creator-docker.qdoc
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Creator documentation.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+**
+****************************************************************************/
+
+ /*!
+ \page creator-adding-docker-devices.html
+ \previouspage creator-developing-b2qt.html
+ \nextpage creator-developing-generic-linux.html
+
+ \title Adding Docker Devices
+
+ You can add \l{ https://docs.docker.com/get-started/overview/}
+ {Docker images} as \e devices to run, debug, and analyze applications
+ built for the Docker container from \QC. A Docker device operates like
+ a virtual machine but uses less system resources at the cost of being
+ less flexible.
+
+ Docker support is experimental. While Linux, \macos, and Windows hosts are
+ supported in principle, Linux is the recommended platform.
+
+ Currently, only CMake is supported for building applications in the Docker
+ container.
+
+ You can run applications locally or in a compatible Docker container. To be
+ able to run and debug applications on Docker devices, you must install Docker
+ as well as add Docker devices and select them in the kit. \QC automatically
+ detects kits in the shared Docker directories, but you need to check that
+ they point to the correct kit items.
+
+ Use a wizard to search for Docker images available on your local Docker
+ installation and add them as devices. To access images from Docker hub or
+ other registries, you first need to pull the images using the
+ \l{https://docs.docker.com/engine/reference/commandline/pull/}{docker pull}
+ command. You can edit the Docker device preferences later in
+ \uicontrol Edit > \uicontrol Preferences > \uicontrol Devices.
+
+ To enable the experimental Docker plugin:
+
+ \list 1
+ \li In \QC, select \uicontrol Help > \uicontrol {About Plugins} >
+ \uicontrol Utilities > \uicontrol {Docker (experimental)}.
+ \li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
+ \endlist
+
+ To add a Docker image as a device:
+
+ \list 1
+ \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Devices
+ > \uicontrol Devices > \uicontrol Add > \uicontrol {Docker Device}
+ > \uicontrol {Start Wizard} to search for images in your local Docker
+ installation.
+ \image qtcreator-docker-image-selection.png "Docker Image Selection dialog"
+ \li Select the Docker image to use, and then select \uicontrol OK.
+ \note If the Docker process is not found, make sure that Docker is
+ running and the Docker CLI executable is set in PATH.
+ \li In \uicontrol Devices, check and modify Docker device preferences.
+ \image qtcreator-docker-preferences.png "Docker Device preferences"
+ \li Select \uicontrol {Run as outside user} to use the user ID and
+ group ID of the user running \QC in the Docker container.
+ \li In \uicontrol {Paths to mount}, specify host directories to mount
+ into the container, such as the project directory.
+ \li Select \uicontrol {Auto-detect Kit Items} to generate an initial
+ \l{Adding Kits}{build and run kit} for the Docker device.
+ \endlist
+
+ \section1 Specifying Paths to Mount
+
+ You can either copy your project files into the Docker container or specify
+ paths to them in \uicontrol {Paths to mount}. Shared mounts are restricted
+ to locations in the host system that can end up in the same absolute location
+ in the Docker container. On Windows, mounted drives cannot be used as shared
+ mounts.
+
+ The paths in \uicontrol {Paths to mount} are mapped one-to-one to the Docker
+ container. Select \uicontrol Insert to browse directories to add. Select
+ \uicontrol {Delete Line} to delete the selected path or \uicontrol Clear
+ to delete all paths.
+
+ \section1 Auto-detecting Kit Items
+
+ Select \uicontrol {Auto-detect Kit Items} to generate an initial
+ \l{Adding Kits}{build and run kit} for the Docker device. You can
+ either set the kit items, such \l{Adding Debuggers}{debuggers} and
+ \l{Adding Qt Versions}{Qt version}, in PATH or install them in the
+ Docker container.
+
+ Select \uicontrol {Search in PATH} to detect kit items that are set in PATH.
+
+ Select \uicontrol {Search in Selected Directories} to detect kit items in
+ the selected directories.
+
+ To view the automatically detected kit items, select
+ \uicontrol {List Auto-Detected Kit Items}. To remove
+ them, select \uicontrol {Remove Auto-Detected Kit Items}.
+
+ \section1 Editing Docker Device Kits
+
+ Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits to check
+ that the automatically generated kit points to the appropriate kit items.
+
+ To specify build settings:
+
+ \list 1
+ \li Open a project for an application you want to develop for the
+ device.
+ \li Select \uicontrol Projects > \uicontrol {Build & Run} to enable
+ the kit that you specified above.
+ \endlist
+
+ Select \uicontrol Run to specify run settings. Usually, you can use
+ the default settings.
+*/
diff --git a/doc/qtcreator/src/editors/creator-code-completion.qdoc b/doc/qtcreator/src/editors/creator-code-completion.qdoc
index 9189750380..d979571998 100644
--- a/doc/qtcreator/src/editors/creator-code-completion.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-completion.qdoc
@@ -53,7 +53,7 @@
To specify settings for code completion, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Completion.
- \image qtcreator-options-texteditor-completion.png "Text Editor Completion options"
+ \image qtcreator-options-texteditor-completion.png "Text Editor Completion preferences"
By default, code completion does not consider case. To apply full or
first-letter case-sensitivity, select \uicontrol Full or
@@ -181,7 +181,7 @@
\if defined(qtcreator)
The following image shows built-in C++ code snippets:
- \image qtcreator-edit-code-snippets.png "C++ snippet options"
+ \image qtcreator-edit-code-snippets.png "C++ snippet preferences"
\endif
The following image shows built-in QML code snippets:
@@ -257,7 +257,7 @@
project containing the file that is currently open in the editor:
\c {%{CurrentDocument:Project:Name}}.
- Use unique variable names within a snippet, because all instances of a
+ Use unique variable names within a snippet because all instances of a
variable are renamed when you specify a value for it.
To determine the case of values you enter in snippets, use the following
diff --git a/doc/qtcreator/src/editors/creator-code-indentation.qdoc b/doc/qtcreator/src/editors/creator-code-indentation.qdoc
index 1816872a16..55f82a416b 100644
--- a/doc/qtcreator/src/editors/creator-code-indentation.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-indentation.qdoc
@@ -31,7 +31,7 @@
\title Indenting Text or Code
When you type text or code, it is indented automatically according to the
- selected text editor or code style options. Select a block to indent it when
+ selected text editor or code style preferences. Select a block to indent it when
you press \key Tab. Press \key {Shift+Tab} to decrease the indentation. You
can disable automatic indentation.
@@ -82,13 +82,13 @@
the \uicontrol {Skip clean whitespace for file types} check box to
exclude the specified file types.
- \image qtcreator-options-text-editor-behavior.png "Text Editor Behavior options"
+ \image qtcreator-options-text-editor-behavior.png "Text Editor Behavior preferences"
To visualize whitespace in the editor, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Display >
\uicontrol {Visualize whitespace}.
- \image qtcreator-options-text-editor-display.png "Text Editor Display options"
+ \image qtcreator-options-text-editor-display.png "Text Editor Display preferences"
To help you keep line length at a particular number of characters, set the
number of characters in the \uicontrol {Display right margin at column}
@@ -106,7 +106,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol {C++}.
\li In the \uicontrol {Current settings} field, select the settings to
modify and click \uicontrol Copy.
- \image qtcreator-options-code-style-cpp.png "C++ Code Style options"
+ \image qtcreator-options-code-style-cpp.png "C++ Code Style preferences"
\li Give a name to the settings and click \uicontrol OK.
\li Click \uicontrol Edit to specify code style settings for the project.
\image qtcreator-code-style-settings-edit-cpp.png "Edit Code Style dialog"
@@ -126,7 +126,7 @@
\li Name getter functions.
\endlist
- You can use the live preview to see how the options change the indentation.
+ You can use the live preview to see how the preferences change the indentation.
To specify different settings for a particular project, select
\uicontrol Projects > \uicontrol {Code Style}.
@@ -143,7 +143,7 @@
\uicontrol {Qt Quick}.
\li In the \uicontrol {Current settings} field, select the settings to
modify and click \uicontrol Copy.
- \image qtcreator-options-code-style-qml.png "QML Code Style options"
+ \image qtcreator-options-code-style-qml.png "QML Code Style preferences"
\li Give a name to the settings and click \uicontrol OK.
\li Click \uicontrol Edit to specify code style settings for the project.
\image qtcreator-code-style-settings-edit-qtquick.png "Edit Code Style dialog"
@@ -167,7 +167,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Nim.
\li In the \uicontrol {Current settings} field, select the settings to
modify and click \uicontrol Copy.
- \image qtcreator-options-code-style-nim.png "Nim Code Style options"
+ \image qtcreator-options-code-style-nim.png "Nim Code Style preferences"
\li Give a name to the settings and click \uicontrol OK.
\li Click \uicontrol Edit to specify code style settings for the project.
\image qtcreator-code-style-settings-edit-nim.png "Edit Code Style dialog"
@@ -186,7 +186,7 @@
QML code (such as Python code files), select \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Behavior.
- \image qtcreator-indentation.png "Text Editor Behavior options"
+ \image qtcreator-indentation.png "Text Editor Behavior preferences"
To specify different settings for a particular project, select
\uicontrol Projects > \uicontrol Editor.
@@ -229,10 +229,10 @@
select \uicontrol {With Spaces}. To follow the \uicontrol {Tab policy},
select \uicontrol {With Regular Indent}.
- \section1 Specifying Typing Options
+ \section1 Setting Typing Preferences
When you type text or code, it is indented automatically according to the
- selected text editor or code style options. To specify typing options,
+ selected text editor or code style preferences. To set typing preferences,
select \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} >
\uicontrol Behavior > \uicontrol Typing.
@@ -266,21 +266,21 @@
You can also indent statements within functions and blocks and declarations
within namespaces.
- \image qtcreator-code-style-content.png "Content options"
+ \image qtcreator-code-style-content.png "Content preferences"
\section1 Specifying Settings for Braces
You can indent class, namespace, enum and function declarations and code
blocks.
- \image qtcreator-code-style-braces.png "Braces options"
+ \image qtcreator-code-style-braces.png "Braces preferences"
\section1 Specifying Settings for Switch Statements
You can indent case or default statements, or statements or blocks related
to them within switch statements.
- \image qtcreator-code-style-switch.png "Switch options"
+ \image qtcreator-code-style-switch.png "Switch preferences"
\section1 Specifying Alignment
@@ -293,7 +293,7 @@
aligned with the following line. Usually, this only affects \c if
statements.
- \image qtcreator-code-style-alignment.png "Alignment options"
+ \image qtcreator-code-style-alignment.png "Alignment preferences"
\section1 Binding Pointers and References
@@ -304,6 +304,6 @@
The \c * and \c & characters are automatically bound to identifiers of
pointers to functions and pointers to arrays.
- \image qtcreator-pointers-references.png "Pointers and References options"
+ \image qtcreator-pointers-references.png "Pointers and References preferences"
\endif
*/
diff --git a/doc/qtcreator/src/editors/creator-code-syntax.qdoc b/doc/qtcreator/src/editors/creator-code-syntax.qdoc
index daf9cd891f..e646c74178 100644
--- a/doc/qtcreator/src/editors/creator-code-syntax.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-syntax.qdoc
@@ -31,35 +31,25 @@
\title Checking Code Syntax
As you write code, \QC checks code syntax. When \QC spots a syntax error in
- your code it underlines it and shows error details when you move the mouse
- pointer over the error. Similarly, when you are working on an instance of a
- JavaScript object notation (JSON) entity, \QC underlines errors in JSON data
- structure.
+ your code, it underlines it, displays an icon, and shows error details when
+ you move the mouse pointer over the error or the icon. If a fix is available,
+ you can apply it by clicking \inlineimage icons/refactormarker.png
+ .
+
+ Similarly, when you are working on an instance of a JavaScript object
+ notation (JSON) entity, \QC underlines errors in the JSON data structure.
\if defined(qtcreator)
- In the following screenshot, \QC points out an error, because a semicolon is
+ In the following screenshot, \QC annotates an error because a semicolon is
missing at the end of the line:
\image qtcreator-syntaxerror.png
- In the following screenshot, \QC issues a warning, because the variable is
+ In the following screenshot, \QC issues a warning because the variable is
not used:
\image qtcreator-semanticerror.png
- To modify the colors used for underlining errors and warnings, select
- \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} >
- \uicontrol {Font & Colors} > \uicontrol Copy, and select new colors for
- \uicontrol Error and \uicontrol Warning.
-
- \section1 Viewing Annotations
-
- When using the Clang code model, errors and warnings are additionally marked
- with icons and annotated. If a \l{http://clang.llvm.org/diagnostics.html}
- {Clang fix-it} is available, you can execute it by clicking the
- \inlineimage icons/refactormarker.png
- icon and pressing \key Enter.
-
In the following screenshot, a Qt class name contains a typo:
\image qtcreator-typo-clang.png
@@ -69,14 +59,10 @@
the \uicontrol {Annotation Settings} link to specify the position
of the line annotations.
- In the following screenshot, a semicolon is missing at the end of the
- line.
-
- \image qtcreator-syntaxerror-clang.png
-
- In the following screenshot, the variable is not used.
-
- \image qtcreator-semanticerror-clang.png
+ To modify the colors used for underlining errors and warnings, select
+ \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} >
+ \uicontrol {Font & Colors} > \uicontrol Copy, and select new colors for
+ \uicontrol Error and \uicontrol Warning.
\else
In addition to underlining, errors and warnings are marked with icons and
@@ -87,7 +73,7 @@
\image qml-syntax-check.png
- \section2 Specifying Line Annotation Positions
+ \section1 Specifying Line Annotation Positions
To specify the position where the annotations are displayed, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} >
@@ -97,7 +83,7 @@
between lines can be useful if there is usually not enough space to
display annotations next to the text.
- \image qtcreator-options-text-editor-display.png "Text Editor Display options"
+ \image qtcreator-options-text-editor-display.png "Text Editor Display preferences"
If you hide the annotations by deselecting the check box, you can move the
mouse pointer over an icon to view them.
@@ -750,4 +736,6 @@
To automatically format QML/JS files upon saving, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Qt Quick} > \uicontrol {QML/JS Editing} >
\uicontrol {Enable auto format on file save}.
+
+ \image qtcreator-qml-js-editing.png "QML/JS Editing preferences"
*/
diff --git a/doc/qtcreator/src/editors/creator-diff-editor.qdoc b/doc/qtcreator/src/editors/creator-diff-editor.qdoc
index 9ad332da93..bc8f79659b 100644
--- a/doc/qtcreator/src/editors/creator-diff-editor.qdoc
+++ b/doc/qtcreator/src/editors/creator-diff-editor.qdoc
@@ -124,7 +124,7 @@
To change the default colors, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {Text Editor} > \uicontrol {Font & Colors}. Create your own color
- scheme and select new colors for the following options:
+ scheme and select new colors for the following items:
\list
diff --git a/doc/qtcreator/src/editors/creator-editors-options-text.qdoc b/doc/qtcreator/src/editors/creator-editors-options-text.qdoc
index 00c284ada9..5840f5defb 100644
--- a/doc/qtcreator/src/editors/creator-editors-options-text.qdoc
+++ b/doc/qtcreator/src/editors/creator-editors-options-text.qdoc
@@ -42,10 +42,10 @@
Set the font preferences and apply color schemes for syntax highlighting,
diff editor, and code analysis results in \uicontrol Edit >
- \uicontrol Preferences\uicontrol Tools > \uicontrol {Text Editor} >
+ \uicontrol Preferences > \uicontrol {Text Editor} >
\uicontrol {Font & Colors}.
- \image qtcreator-font-colors.png "Text editor options"
+ \image qtcreator-font-colors.png "Text editor preferences"
\section2 Configuring Fonts
@@ -120,7 +120,7 @@
\uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Behavior, and
then select a suitable option in \uicontrol {Default encoding}.
- \image qtcreator-options-texteditor-behavior-file-encodings.png "File encoding options"
+ \image qtcreator-options-texteditor-behavior-file-encodings.png "File encoding preferences"
Qt 5 and Qt 6 require UTF-8 encoded source files, and therefore the default
encoding is set to \uicontrol UTF-8.
diff --git a/doc/qtcreator/src/editors/creator-editors-options.qdoc b/doc/qtcreator/src/editors/creator-editors-options.qdoc
index 182a160998..6812e826ef 100644
--- a/doc/qtcreator/src/editors/creator-editors-options.qdoc
+++ b/doc/qtcreator/src/editors/creator-editors-options.qdoc
@@ -43,7 +43,7 @@
You can configure the text editor to suit your specific needs by selecting
\uicontrol Edit > \uicontrol Preferences > \uicontrol{Text Editor}.
- \image qtcreator-font-colors.png "Text Editor options"
+ \image qtcreator-font-colors.png "Text Editor preferences"
The settings you specify apply globally to all projects.
diff --git a/doc/qtcreator/src/editors/creator-locator.qdoc b/doc/qtcreator/src/editors/creator-locator.qdoc
index 634034aadc..67b82a7b5f 100644
--- a/doc/qtcreator/src/editors/creator-locator.qdoc
+++ b/doc/qtcreator/src/editors/creator-locator.qdoc
@@ -247,7 +247,7 @@
\li In the locator, click \inlineimage icons/magnifier.png
(\uicontrol Options) and select \uicontrol Configure to open the
- \uicontrol Locator options.
+ \uicontrol Locator preferences.
\li Select a filter, and then select \uicontrol Edit.
@@ -256,7 +256,7 @@
\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 Specify other available options. For more information, see
+ \li Set other available preferences. For more information, see
\l{Adding Web Search Engines}.
\endlist
@@ -305,9 +305,9 @@
\list 1
\li In the locator, select \uicontrol Options >
- \uicontrol Configure to open the \uicontrol Locator options.
+ \uicontrol Configure to open the \uicontrol Locator preferences.
- \image qtcreator-locator-customize.png "Locator options tab"
+ \image qtcreator-locator-customize.png "Locator preferences"
\li Select \uicontrol Add > \uicontrol {Files in Directories} to add
a directory filter or \uicontrol {URL Template} to add a URL
diff --git a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc
index 50288cc7c0..a391d54c8b 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc
@@ -51,7 +51,7 @@
The Beautifier plugin parses the source code into component structures, such
as assignment statements, if blocks, loops, and so on, and formats them as
- specified in the Beautifier options. You can use a predefined style or
+ specified in the Beautifier preferences. You can use a predefined style or
define your own style.
To use the Beautifier plugin:
@@ -82,7 +82,7 @@
automatically beautify files when you save them using the tool you
select in the \uicontrol Tool field.
- \image qt-creator-beautifier-options-general.png "General Beautifier options"
+ \image qt-creator-beautifier-options-general.png "General Beautifier preferences"
\li In the \uicontrol {Restrict to MIME types} field, define the MIME
types of the files to beautify, separated by semicolons. Leave the
@@ -101,7 +101,7 @@
\uicontrol Uncrustify to specify settings for the tool you want to
use.
- \image beautifier_options.png "Uncrustify Beautifier options"
+ \image beautifier_options.png "Uncrustify Beautifier preferences"
\li In the \uicontrol Configuration group, specify the path to
the tool executable in the \uicontrol {Artistic Style command},
@@ -140,7 +140,7 @@
button, and then selecting the style to use from the list of
available styles.
- \image qtcreator-beautifier-options-clangformat.png "Clang Format Beautifier options"
+ \image qtcreator-beautifier-options-clangformat.png "Clang Format Beautifier preferences"
Select \uicontrol File to load the style configuration from
the \c .clang-format or \c _clang-format file located in the
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 f4ee40a9bf..dfaeb7c7b5 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc
@@ -127,7 +127,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol C++ >
\uicontrol {Code Model}.
- \image qtcreator-clang-code-model-options.png
+ \image qtcreator-clang-code-model-options.png "C++ Code Model preferences"
\li To instruct the code model to interpret ambiguous header files as C
language files if you develop mainly using C, select the
@@ -163,7 +163,7 @@
\list 1
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol C++ >
\uicontrol Clangd > \uicontrol {Use clangd}.
- \image qtcreator-options-clangd.png "clangd options"
+ \image qtcreator-options-clangd.png "clangd preferences"
\li In \uicontrol {Path to executable}, enter the path to clangd
version 13, or later.
\li For more accurate results during global symbol searches, select
diff --git a/doc/qtcreator/src/editors/creator-only/creator-code-pasting.qdoc b/doc/qtcreator/src/editors/creator-only/creator-code-pasting.qdoc
index 307931fe70..952eee54b2 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-code-pasting.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-code-pasting.qdoc
@@ -47,7 +47,7 @@
\list 1
\li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {Code Pasting}.
- \image qtcreator-code-pasting-options.png "Code Pasting options"
+ \image qtcreator-code-pasting-options.png "Code Pasting preferences"
\li In the \uicontrol {Default protocol} field, select a code pasting
service to use by default.
\li In the \uicontrol Username field, enter your username.
diff --git a/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc b/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc
index 7fe0517694..c95018f14c 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc
@@ -118,7 +118,7 @@
for particular plugins, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol FakeVim > \uicontrol General > \uicontrol {Plugin Emulation}.
- \image qtcreator-fakevim-options-general-plugin-emulation.png "FakeVim Plugin Emulation options"
+ \image qtcreator-fakevim-options-general-plugin-emulation.png "FakeVim Plugin Emulation preferences"
Currently emulated plugins:
\list
@@ -296,7 +296,7 @@
Enter a string in the \uicontrol Filter field to search for a specific
\QC function.
- \image qtcreator-fakevim-options-ex-command-mapping.png "FakeVim Ex Command Mapping options"
+ \image qtcreator-fakevim-options-ex-command-mapping.png "FakeVim Ex Command Mapping preferences"
Select a function in the list, and enter a string that will trigger the
function in the \uicontrol {Regular expression} field. You can view the
@@ -311,14 +311,14 @@
\uicontrol {User Command Mapping}. The user command mapped to the shortcut
is executed by FakeVim as if you were typing it (as when replaying a macro).
- \image qtcreator-fakevim-options-user-command-mapping.png "FakeVim User Command Mapping options"
+ \image qtcreator-fakevim-options-user-command-mapping.png "FakeVim User Command Mapping preferences"
- \section1 Specifying FakeVim Options
+ \section1 Setting FakeVim Preferences
To make changes to the Vim-style settings, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol FakeVim > \uicontrol General.
- \image qtcreator-fakevim-options.png "FakeVim options"
+ \image qtcreator-fakevim-options.png "FakeVim preferences"
To preselect the indentation settings specified for the text editor, select
\uicontrol {Copy Text Editor Settings}. To preselect the Qt coding style,
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 384707adae..a2bebb49fb 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc
@@ -189,7 +189,7 @@
\image qtcreator-language-client-inspector-log.png "Language Client Inspector dialog"
The dialog shows a list of running language servers. The value of the
- \uicontrol {Startup behavior} field in the language server options
+ \uicontrol {Startup behavior} field in the language server preferences
determines when the server is started. The information displayed depends on
the language server.
diff --git a/doc/qtcreator/src/editors/creator-only/creator-mime-types.qdoc b/doc/qtcreator/src/editors/creator-only/creator-mime-types.qdoc
index c0bddb24d0..ee916d9b14 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-mime-types.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-mime-types.qdoc
@@ -99,7 +99,7 @@
numerical types, whereas masks for strings must be in base 16, and
start with 0x.
- \note You are recommended not to change the range and priority,
+ \note You are recommended not to change the range and priority
because it might cause problems when opening files in \QC.
\li Click \uicontrol OK to return to the \uicontrol {MIME Types} tab.
diff --git a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
index e3de6b0df8..5236950d40 100644
--- a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
+++ b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -109,12 +109,13 @@
To specify custom settings for a particular project, select
\uicontrol Projects > \uicontrol {Project Settings} >
- \uicontrol {Quick Fixes} > \uicontrol {Custom Settings}.
+ \uicontrol {Quick Fixes}, and then deselect \uicontrol {Use global settings}.
\image qtcreator-refactoring-options-locations.png "Quick Fixes settings"
To revert to global settings, select \uicontrol {Reset to Global}. To
- delete the custom settings, select \uicontrol {Delete Custom Settings File}.
+ delete the custom settings, select \uicontrol {Use global settings}, and
+ then select \uicontrol {Delete Custom Settings File}.
\section2 Function Locations
diff --git a/doc/qtcreator/src/editors/creator-semantic-highlighting.qdoc b/doc/qtcreator/src/editors/creator-semantic-highlighting.qdoc
index 1356866efa..3e255f3f37 100644
--- a/doc/qtcreator/src/editors/creator-semantic-highlighting.qdoc
+++ b/doc/qtcreator/src/editors/creator-semantic-highlighting.qdoc
@@ -81,7 +81,7 @@
> \uicontrol {Generic Highlighter} and add the pattern to the
\uicontrol {Ignored file patterns} field.
- \image qtcreator-syntax-highlighter.png "Generic Highlighter options"
+ \image qtcreator-syntax-highlighter.png "Generic Highlighter preferences"
If you have written your own syntax definition files, you
can provide an additional definition search path in the
@@ -109,7 +109,7 @@
\uicontrol {Text Editor} > \uicontrol Display >
\uicontrol {Display folding markers}. This option is enabled by default.
- \image qtcreator-options-text-editor-display.png "Text Editor Display options"
+ \image qtcreator-options-text-editor-display.png "Text Editor Display preferences"
When the cursor is on a brace, the matching brace is animated by default. To
turn off the animation and just highlight the block and the braces, select
@@ -128,5 +128,5 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} >
\uicontrol Behavior > \uicontrol {Enable smart selection changing}.
- \image qtcreator-options-text-editor-behavior.png "Text Editor Behavior options"
+ \image qtcreator-options-text-editor-behavior.png "Text Editor Behavior preferences"
*/
diff --git a/doc/qtcreator/src/howto/creator-help.qdoc b/doc/qtcreator/src/howto/creator-help.qdoc
index 5645447135..b41034b992 100644
--- a/doc/qtcreator/src/howto/creator-help.qdoc
+++ b/doc/qtcreator/src/howto/creator-help.qdoc
@@ -69,7 +69,7 @@
family, style, and size in \uicontrol Edit > \uicontrol Preferences >
\uicontrol Help > \uicontrol General.
- \image qtcreator-help-options.png
+ \image qtcreator-help-options.png "Help General preferences"
You can set the default zoom level in the \uicontrol Zoom field. When
viewing help pages, you can use the mouse scroll wheel to zoom them. To
@@ -235,7 +235,7 @@
> \uicontrol {On help start} field.
To display the page and help views that were open when you exited the mode,
select the \uicontrol {Show My Tabs from Last Session} option. However, Web pages
- are not opened, because loading them would slow down opening the \uicontrol Help
+ are not opened because loading them would slow down opening the \uicontrol Help
mode.
To display a particular page, select \uicontrol {Show My Home Page}, and specify
@@ -264,7 +264,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Help >
\uicontrol Filters.
- \image qtcreator-help-filter-attributes.png "Filters tab in Help options"
+ \image qtcreator-help-filter-attributes.png "Filters tab in Help preferences"
\li Select \inlineimage icons/plus.png
to add a new filter in the \uicontrol {Add Filter} dialog.
diff --git a/doc/qtcreator/src/howto/creator-keyboard-shortcuts.qdoc b/doc/qtcreator/src/howto/creator-keyboard-shortcuts.qdoc
index 78e9d4fbb0..e6b54c15f0 100644
--- a/doc/qtcreator/src/howto/creator-keyboard-shortcuts.qdoc
+++ b/doc/qtcreator/src/howto/creator-keyboard-shortcuts.qdoc
@@ -80,7 +80,7 @@
in context menus} check box indicates whether the platform default value
is \c on or \c off.
- \image qtcreator-options-environment-interface.png "Interface tab in the Environment options"
+ \image qtcreator-options-environment-interface.png "Interface tab in the Environment preferences"
\section1 Configuring Keyboard Shortcuts
diff --git a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
index 2aae07ceb3..0cea2e6451 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc
@@ -418,7 +418,7 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Testing} >
\uicontrol General.
- \image qtcreator-autotests-options.png
+ \image qtcreator-autotests-options.png "Testing General preferences"
You can customize some settings at project level. To change settings
for the current project instead of globally, select \uicontrol Projects >
@@ -541,7 +541,7 @@
\li To specify settings for running Catch2 tests, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Testing} >
\uicontrol {Catch Test}.
- \image qtcreator-autotests-options-catch2.png "Catch Test options"
+ \image qtcreator-autotests-options-catch2.png "Catch Test 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
@@ -573,7 +573,7 @@
\li To specify settings for running CTest-based tests, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Testing} >
\uicontrol {CTest}.
- \image qtcreator-autotests-options-ctest.png "CTest options"
+ \image qtcreator-autotests-options-ctest.png "CTest 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.
diff --git a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc
index 1ac13c93ad..cf7639abea 100644
--- a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc
@@ -319,7 +319,7 @@
\li The common solution is to give the user the ability to reorder
tabs. Now user has to manage tabs instead of writing code.
- \li Tabs force you to limit the amount of open editors, because
+ \li Tabs force you to limit the amount of open editors because
otherwise you get confused.
\endlist
diff --git a/doc/qtcreator/src/incredibuild/creator-projects-incredibuild-building.qdoc b/doc/qtcreator/src/incredibuild/creator-projects-incredibuild-building.qdoc
index 68a4042d4e..8031e42508 100644
--- a/doc/qtcreator/src/incredibuild/creator-projects-incredibuild-building.qdoc
+++ b/doc/qtcreator/src/incredibuild/creator-projects-incredibuild-building.qdoc
@@ -65,7 +65,7 @@
\image qtcreator-incredibuild-build-steps-linux.png
- You can specify the following options for Linux builds:
+ You can specify the following settings for Linux builds:
\list
\li \uicontrol {Nice value} is a numeric value between -20 and 19
@@ -78,7 +78,7 @@
\image qtcreator-incredibuild-build-steps-windows.png
- You can specify the following options for Windows builds:
+ You can specify the following settings for Windows builds:
\list
\li \uicontrol {Profile.xml} defines how Automatic Interception
diff --git a/doc/qtcreator/src/ios/creator-ios-dev.qdoc b/doc/qtcreator/src/ios/creator-ios-dev.qdoc
index 3ebd8c93a0..fc9e459900 100644
--- a/doc/qtcreator/src/ios/creator-ios-dev.qdoc
+++ b/doc/qtcreator/src/ios/creator-ios-dev.qdoc
@@ -113,7 +113,7 @@
\endlist
- \note If you cannot deploy applications, because a provisioning profile is
+ \note If you cannot deploy applications because a provisioning profile is
missing, check that provisioning profiles are listed in Xcode by selecting
\uicontrol Xcode > \uicontrol Preferences > \uicontrol Accounts. For more
information about how to acquire and install a provisioning profile, see
diff --git a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
index ffbfcb4fea..bb2b721472 100644
--- a/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
+++ b/doc/qtcreator/src/linux-mobile/b2qtdev.qdoc
@@ -26,7 +26,7 @@
/*!
\page creator-developing-b2qt.html
\previouspage creator-developing-baremetal.html
- \nextpage creator-developing-generic-linux.html
+ \nextpage creator-adding-docker-devices.html
\title Connecting Boot2Qt Devices
diff --git a/doc/qtcreator/src/linux-mobile/linuxdev-keys.qdocinc b/doc/qtcreator/src/linux-mobile/linuxdev-keys.qdocinc
index 0053e27a82..0218c306a7 100644
--- a/doc/qtcreator/src/linux-mobile/linuxdev-keys.qdocinc
+++ b/doc/qtcreator/src/linux-mobile/linuxdev-keys.qdocinc
@@ -44,7 +44,7 @@
directories where the tools are installed in \uicontrol Edit >
\uicontrol Preferences > \uicontrol Devices > \uicontrol SSH:
- \image qtcreator-ssh-options.png
+ \image qtcreator-ssh-options.png "SSH preferences"
\list
\li Deselect the \uicontrol {Enable connection sharing} check box to
diff --git a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
index acc5f5591d..1af5707f83 100644
--- a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
+++ b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
@@ -29,7 +29,7 @@
\previouspage creator-developing-android.html
\nextpage studio-advanced.html
\else
- \previouspage creator-developing-b2qt.html
+ \previouspage creator-adding-docker-devices.html
\nextpage creator-developing-ios.html
\endif
diff --git a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
index 1ff239c669..7db36a4121 100644
--- a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
+++ b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
@@ -85,7 +85,7 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol Devices >
\uicontrol MCU:
- \image qtcreator-mcu-options.png "MCU options"
+ \image qtcreator-mcu-options.png "MCU preferences"
\list 1
\li In the \uicontrol {Qt for MCUs SDK} field, specify the path
diff --git a/doc/qtcreator/src/meson/creator-projects-meson.qdoc b/doc/qtcreator/src/meson/creator-projects-meson.qdoc
index dc2487c1f1..fb1014124b 100644
--- a/doc/qtcreator/src/meson/creator-projects-meson.qdoc
+++ b/doc/qtcreator/src/meson/creator-projects-meson.qdoc
@@ -73,7 +73,7 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol Kits > \uicontrol Kits
tab to add the Meson and Ninja tools to a build and run kit:
- \image qtcreator-kits-meson.png "Setting Meson executable in Kit options"
+ \image qtcreator-kits-meson.png "Setting Meson executable in Kit preferences"
For more information, see \l {Adding Kits}.
diff --git a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc
index 4b54044fcb..ed7ff74f5a 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2021 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -74,6 +74,13 @@
You can connect \l{Boot2Qt} devices to the development PC to run,
debug, and analyze applications built for them from \QC.
+ \if defined(qtcreator)
+ \li \l {Adding Docker Devices}
+
+ You can add Docker images as \e devices to run, debug, and analyze
+ applications built for Docker containers from \QC.
+ \endif
+
\li \l{Connecting Generic Remote Linux Devices}
If you have a tool chain for building applications for embedded
diff --git a/doc/qtcreator/src/projects/creator-only/creator-custom-output-parser.qdoc b/doc/qtcreator/src/projects/creator-only/creator-custom-output-parser.qdoc
index 9100b20b50..f15e71ab14 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-custom-output-parser.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-custom-output-parser.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -53,7 +53,7 @@
\section1 Specifying Settings for Custom Output Parsers
- \image qtcreator-custom-parser-options.png
+ \image qtcreator-custom-parser-options.png "Custom Output Parsers preferences"
A custom output parser enables you to capture errors and
warnings separately, according to the settings you specify
@@ -99,4 +99,7 @@
\li Select custom parsers to activate them for building or running
the project.
\endlist
+
+ Select \uicontrol {Parse standard output during build} to make output
+ parsers look for diagnostics on \c stdout in addition to \c stderr.
*/
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 8a9c404c3f..e566d48211 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
@@ -162,7 +162,7 @@
change the default suffix of a file, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {C++} > \uicontrol {File Naming}.
- \image qtcreator-options-cpp-files.png "File Naming tab in Options"
+ \image qtcreator-options-cpp-files.png "C++ File Naming preferences"
In the \uicontrol {License template} field, you can use
\l{Using Variables in Wizards}{predefined wizard variables} to specify the
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-builds-customizing.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-builds-customizing.qdoc
index 87783bc018..8e35e74d25 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-builds-customizing.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-builds-customizing.qdoc
@@ -45,7 +45,7 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run}
> \uicontrol General.
- \image qtcreator-project-options-deploy.png "Project General Options"
+ \image qtcreator-project-options-deploy.png "Project General preferences"
By default, the \uicontrol {Always deploy project before running it} (1) and
\uicontrol {Build the Whole Project} (2) options are enabled. Therefore,
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 3d449579c7..31fa0b883f 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
@@ -166,7 +166,7 @@
with a single QML file that contains the main view. You can
preview Qt Quick 2 UI projects in the
\l{Validating with Target Hardware}{QML Scene preview tool}.
- You do not need to build them, because they do not contain any
+ You do not need to build them because they do not contain any
C++ code.
Use this template only if you are prototyping. You cannot create
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-custom-wizards-json.qdocinc b/doc/qtcreator/src/projects/creator-only/creator-projects-custom-wizards-json.qdocinc
index 72258f5628..e151488709 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-custom-wizards-json.qdocinc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-custom-wizards-json.qdocinc
@@ -34,7 +34,7 @@
actually copied from the \QC source directory into the \QC build directory
as part of the next \QC build.
- If you do not run CMake or qmake, your new wizard will not show up, because
+ If you do not run CMake or qmake, your new wizard will not show up because
it does not exist in the build directory you run your newly built \QC from.
It never got copied there because CMake or qmake did not inform the
build tool, such as make or ninja, about the new files in the source tree.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc
index 0bef5e4bc1..2fbc3bd089 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-debuggers.qdoc
@@ -53,7 +53,7 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits >
\uicontrol Debuggers > \uicontrol Add.
- \image qtcreator-options-build-run-debuggers.png
+ \image qtcreator-options-build-run-debuggers.png "Adding debuggers"
\li In the \uicontrol Name field, give a descriptive name for the debugger.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-qbs.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-qbs.qdoc
index 836a319d35..f0fa1df708 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-qbs.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-qbs.qdoc
@@ -67,7 +67,7 @@
\list 1
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Qbs.
- \image qtcreator-options-qbs.png
+ \image qtcreator-options-qbs.png "Qbs preferences"
\li Deselect the \uicontrol {Use \QC settings directory for Qbs} check
box to store Qbs profiles in the Qbs settings directory.
\li In the \uicontrol {Path to qbs executable} field, you can view
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc
index ace7bb7658..9576a23c37 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc
@@ -48,7 +48,7 @@
version, select it in the list and select \uicontrol Details in the
\uicontrol {Qt version for} section.
- \image qtcreator-qt-versions.png "Qt Versions tab in Kit options"
+ \image qtcreator-qt-versions.png "Qt Versions tab in Kit preferences"
To remove invalid Qt versions, select \uicontrol {Clean Up}.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
index 02975bb398..572317b43a 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build-qbs.qdoc
@@ -104,7 +104,7 @@
default.
\note On Windows, the build will fail if the application
- is running, because the executable file cannot be
+ is running because the executable file cannot be
overwritten. To avoid this issue, you can deselect this
check box and add a \uicontrol {Qbs Install} deployment step
in the run settings that will be performed just before
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-editor.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-editor.qdoc
index e2c8910114..a22deebbcb 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-editor.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-editor.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -52,7 +52,7 @@
\li Select \uicontrol Projects > \uicontrol {Project Settings} >
\uicontrol Editor.
- \li In the \uicontrol {Editor settings} field, select \uicontrol {Custom}.
+ \li Deselect \uicontrol {Use global settings}.
\li Specify text editor settings for the project.
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 e78c286332..32a075169a 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
@@ -45,7 +45,7 @@
\uicontrol Environment > \uicontrol System, and then select
\uicontrol Change in the \uicontrol Environment field.
- \image qtcreator-options-environment-system.png "Environment options System tab"
+ \image qtcreator-options-environment-system.png "Environment preferences System tab"
In addition, you can specify custom environment variables in the
\uicontrol {Project Settings} > \uicontrol Environment settings.
diff --git a/doc/qtcreator/src/projects/creator-projects-running.qdoc b/doc/qtcreator/src/projects/creator-projects-running.qdoc
index 99d323a5b1..cc756c8c04 100644
--- a/doc/qtcreator/src/projects/creator-projects-running.qdoc
+++ b/doc/qtcreator/src/projects/creator-projects-running.qdoc
@@ -80,7 +80,7 @@
\l {Application Output} displays the status of the
application while it is running. You can select the \uicontrol Run button
to re-run applications without building them first. This is
- useful when developing Qt Quick applications, because the QML files are
+ useful when developing Qt Quick applications because the QML files are
interpreted at runtime. Therefore, the application does not need to be
built again if you edited only QML files. This saves time especially if
the application contains large image files that would need to be bundled
diff --git a/doc/qtcreator/src/python/creator-python-project.qdocinc b/doc/qtcreator/src/python/creator-python-project.qdocinc
index 3e9bbb8304..4281694a5b 100644
--- a/doc/qtcreator/src/python/creator-python-project.qdocinc
+++ b/doc/qtcreator/src/python/creator-python-project.qdocinc
@@ -72,7 +72,6 @@
\badcode
import sys
- from pathlib import Path
from PySide6.QtWidgets import QApplication, QWidget
\endcode
@@ -179,9 +178,8 @@
to QGuiApplication and QQmlApplicationEngine:
\badcode
- import os
- from pathlib import Path
import sys
+ from pathlib import Path
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
@@ -201,7 +199,8 @@
\badcode
engine = QQmlApplicationEngine()
- engine.load(os.fspath(Path(__file__).resolve().parent / "main.qml"))
+ qml_file = Path(__file__).resolve().parent / "main.qml"
+ engine.load(qml_file)
\endcode
Finally, the wizard adds code that checks whether the file was successfully
diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc
index ec7e514872..c904ac1489 100644
--- a/doc/qtcreator/src/qtcreator-toc.qdoc
+++ b/doc/qtcreator/src/qtcreator-toc.qdoc
@@ -169,6 +169,8 @@
\list
\li \l{Connecting Android Devices}
\li \l{Connecting Bare Metal Devices}
+ \li \l{Connecting Boot2Qt Devices}
+ \li \l{Adding Docker Devices}
\li \l{Connecting Generic Remote Linux Devices}
\li \l{Connecting iOS Devices}
\li \l{Connecting MCUs}
diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-app-development.qdoc b/doc/qtcreator/src/qtquick/creator-only/qtquick-app-development.qdoc
index 065ac60d26..0b09a9ddd0 100644
--- a/doc/qtcreator/src/qtquick/creator-only/qtquick-app-development.qdoc
+++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-app-development.qdoc
@@ -43,7 +43,7 @@
asks you whether you would like to open the file in \QDS instead. Select
\uicontrol {Open in \QDS} to open the file in \QDS. To continue editing
the file in \QC, close the info bar. However, we do not recommend editing
- \l{UI Files}{UI files} in the \uicontrol Edit mode, because it is easy to
+ \l{UI Files}{UI files} in the \uicontrol Edit mode because it is easy to
add code that is not supported by \QDS. To hide the question, select
\uicontrol {Do Not Show Again}.
diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
index 675fe628ff..e7a737b8a1 100644
--- a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
+++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
@@ -62,7 +62,7 @@
\li Qt Quick UI Prototype
\li Creates a Qt Quick UI project with a single QML file that
contains the main view. You can preview Qt Quick 2 UI projects
- in the QML Scene preview tool. You do not need to build them,
+ in the QML Scene preview tool. You do not need to build them
because they do not contain any C++ code.
This project type is compatible with \QDS. However, use this
@@ -168,7 +168,7 @@
Qt Quick UI Prototype projects are useful for testing or prototyping user
interfaces,
or for setting up a separate project just for QML editing, for example. You
- cannot use them for application development, because they do not contain:
+ cannot use them for application development because they do not contain:
\list
\li C++ code
diff --git a/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc b/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc
index c8ef7a11c8..cf680b3af6 100644
--- a/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc
+++ b/doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc
@@ -76,7 +76,7 @@
The first time you preview a UI on devices, the preview utility
is copied to them. This might take some time. Thereafter, previewing will
- get faster, because only the UI files need to be copied to the
+ get faster because only the UI files need to be copied to the
device.
\section2 Previewing on Boot2Qt Devices
diff --git a/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc b/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc
index d2fafc7e38..5c24eb3b40 100644
--- a/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc
+++ b/doc/qtcreator/src/qtquick/qtquick-profiler.qdoc
@@ -53,7 +53,7 @@
\if defined(qtcreator)
Triggering long-running C++ functions, such as paint methods and signal
handlers, also takes time in the GUI thread, but is more difficult to see in
- the QML Profiler, because it does not profile C++ code.
+ the QML Profiler because it does not profile C++ code.
\endif
To find excessive use of JavaScript, check the frame rate in animations and
@@ -65,7 +65,7 @@
frames and check that you are not using too many short bindings or signal
handlers that are updated per frame. You can also \l{Visualizing Overdraw}
{visualize Scene Graph overdraw} to check scene layout and find items that
- are never visible to the users, because they are located outside the screen
+ are never visible to the users because they are located outside the screen
or hidden beneath other, visible elements.
\if defined(qtcreator)
@@ -127,7 +127,7 @@
takes time, and therefore, there might be a delay
before the data is displayed.
- Do not use application commands to exit the application, because data is
+ Do not use application commands to exit the application because data is
sent to the QML Profiler when you select the \uicontrol {Enable Profiling} button.
The application continues to run for some seconds, after which it is stopped
automatically. If you exit the application, the data is not sent.
diff --git a/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc b/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
index 02f1cee382..3d9659b3ae 100644
--- a/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
+++ b/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
@@ -48,10 +48,12 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Qt Quick} >
\uicontrol {QML/JS Editing} > \uicontrol {Always show Qt Quick Toolbar}.
+ \image qtcreator-qml-js-editing.png "QML/JS Editing preferences"
+
Drag the toolbar to pin it to another location. Select
\inlineimage icons/pin.png
to unpin the toolbar and move it to its default location. To pin toolbars
- by default, select \uicontrol {Pin Quick Toolbar}.
+ by default, select \uicontrol {Pin Qt Quick Toolbar}.
\section1 Previewing Images
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 140f2ad1f6..058ea3276a 100644
--- a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc
@@ -53,7 +53,7 @@
\uicontrol Edit > \uicontrol Preferences > \uicontrol Environment >
\uicontrol System:
- \image qtcreator-options-environment-system.png "Environment options System tab"
+ \image qtcreator-options-environment-system.png "Environment preferences System tab"
\list
\li In the \uicontrol {When files are externally modified} field,
diff --git a/doc/qtcreator/src/user-interface/creator-ui.qdoc b/doc/qtcreator/src/user-interface/creator-ui.qdoc
index ffde43b7b1..d4f52e4eea 100644
--- a/doc/qtcreator/src/user-interface/creator-ui.qdoc
+++ b/doc/qtcreator/src/user-interface/creator-ui.qdoc
@@ -160,7 +160,7 @@
> \uicontrol Environment, and then select a theme in the \uicontrol Theme
field.
- \image qtcreator-options-environment-interface.png "Interface settings"
+ \image qtcreator-options-environment-interface.png "Interface preferences"
\section1 Changing Languages
@@ -183,7 +183,7 @@
\li On Windows, if no \l{High DPI}{scaling environment variables} are
set, \QC instructs Qt to detect the scaling factor and use it for
\QC.
- \li On Linux, \QC leaves it to the user to enable high DPI scaling,
+ \li On Linux, \QC leaves it to the user to enable high DPI scaling
because the process varies so much on different distributions
and windowing systems that it cannot be reliably done automatically.
\endlist
@@ -448,7 +448,7 @@
\uicontrol Preferences > \uicontrol Environment > \uicontrol Interface, and
then select the codec in the \uicontrol {Text codec for tools} field.
- \image qtcreator-options-environment-interface.png "Interface tab in the Environment options"
+ \image qtcreator-options-environment-interface.png "Interface tab in the Environment preferences"
\section1 Finding and Filtering Output
@@ -610,7 +610,7 @@
In the \uicontrol {Limit output to} field, you can specify the maximum
amount of build output lines to display.
- You can also reach the options page by clicking \inlineimage icons/settings.png
+ You can also open the preferences page by clicking \inlineimage icons/settings.png
(\uicontrol {Open Settings Page}).
To copy the output to the clipboard, select \uicontrol {Select All} in the
@@ -658,7 +658,7 @@
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
for the keyword.
- \image qtcreator-todo-options.png
+ \image qtcreator-todo-options.png "To-Do preferences"
To change the icon and line background color of the selected keyword, select
\uicontrol Edit.
diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc
index ebcd216a33..575fa2cfe9 100644
--- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc
+++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc
@@ -46,7 +46,7 @@
\section1 Configuring Perforce
- In the Perforce options, you can specify workspace details:
+ In the Perforce preferences, you can specify workspace details:
\uicontrol {P4 user}, \uicontrol {P4 client}, and \uicontrol {P4 port}. To
specify the details individually for several projects, use configuration
files instead. Create a \c {p4config.txt} configuration file for each
diff --git a/doc/qtcreator/src/vcs/creator-vcs-git.qdoc b/doc/qtcreator/src/vcs/creator-vcs-git.qdoc
index bb1e08c611..a9a9f55909 100644
--- a/doc/qtcreator/src/vcs/creator-vcs-git.qdoc
+++ b/doc/qtcreator/src/vcs/creator-vcs-git.qdoc
@@ -577,7 +577,7 @@
Select the \uicontrol HTTPS check box to prepend \c https to the Gerrit URL
if Gerrit does not provide it.
- \image qtcreator-gerrit-options.png
+ \image qtcreator-gerrit-options.png "Gerrit preferences"
\section1 Working with Git Tools
diff --git a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc
index 1ec3b5714f..32119a3bb3 100644
--- a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc
+++ b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc
@@ -100,7 +100,7 @@
\li \QC configures the \uicontrol {Emscripten SDK environment} for you
if the \c emsdk is supported by the Qt for WebAssembly version that
you will use for developing the application.
- \image qtcreator-webassembly-options.png "Qt for WebAssembly device options"
+ \image qtcreator-webassembly-options.png "Qt for WebAssembly device preferences"
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits.
\image qtcreator-kit-webassembly.png "Qt for WebAssembly kit"
\li In the \uicontrol Compiler group, \uicontrol {Emscripten Compiler}
diff --git a/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc b/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
index bb3dbbd180..b0708db98d 100644
--- a/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
+++ b/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -75,9 +75,6 @@
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Designer.
- \li Specify settins for generating classes and code in \uicontrol {Class
- Generation}.
-
\li Specify embedded device profiles, that determine style, font, and
screen resolution, for example, in \uicontrol{Embedded Design}.
@@ -91,29 +88,40 @@
To preview the settings, select \uicontrol Tools > \uicontrol{Form Editor} >
\uicontrol Preview, or press \key Alt+Shift+R.
- \section1 Previewing Forms Using Device Skins
+ \section1 Previewing Forms Using Device Profiles
- A \e {device skin} is a set of configuration files that describe a mobile
+ A \e {device profile} is a set of configuration files that describe a mobile
device. It includes a border image that surrounds the form and depicts a
mobile device with its buttons.
- To preview your form using device skins:
-
- \list 1
-
- \li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Designer.
-
- \li Select the \uicontrol{Print/Preview Configuration} check box.
+ To preview your form using device profiles, select \uicontrol Tools >
+ \uicontrol {Form Editor} > \uicontrol {Preview In}, and then select a
+ device profile.
- \li In the \uicontrol {Device skin} field, select a device skin.
+ \section2 Adding Device Profiles
- \li When the form is open in \uicontrol Design mode, press \key Alt+Shift+R.
+ To add device profiles:
- \li To end the preview, right-click the skin and select \uicontrol Close in
- the context menu.
+ \list 1
+ \li \uicontrol Edit > \uicontrol Preferences > \uicontrol Designer.
+ \image qtdesigner-embedded-design.png "Qt Designer Embedded Design preferences"
+ \li In \uicontrol {Embedded Design}, select \inlineimage icons/plus.png
+ to open the \uicontrol {Add Profile} dialog.
+ \image qtdesigner-add-profile.png "Add Profile dialog"
+ \li In \uicontrol Name, enter a name for the device. The name is
+ displayed as an option in \uicontrol {Preview In}.
+ \li In \uicontrol Family, select the font to use.
+ \li In \uicontrol {Point Size}, select the font size.
+ \li In \uicontrol Style, select one of the predefined styles.
+ \li In \uicontrol {Device DPI}, select one of the predefined DPI
+ values or \uicontrol {User defined} to specify a custom value.
+ \li Select \uicontrol OK to add the device profile to the list.
\endlist
+ To import device profiles from .qdp files, select \uicontrol Open. To save
+ them as .qdp files, select \uicontrol Save.
+
\section1 Adding Widgets
You can use Qt APIs to create plugins that extend Qt applications. This
diff --git a/doc/qtcreatordev/src/qtcreator-documentation.qdoc b/doc/qtcreatordev/src/qtcreator-documentation.qdoc
index 6723fd745d..66edefce4c 100644
--- a/doc/qtcreatordev/src/qtcreator-documentation.qdoc
+++ b/doc/qtcreatordev/src/qtcreator-documentation.qdoc
@@ -179,7 +179,7 @@
The \c {\else} command is sometimes used to replace some \QC specific text
with text that applies to \QDS. For example, the following \c if-else
- statement is needed in the \QC Manual sources, because the project wizards
+ statement is needed in the \QC Manual sources because the project wizards
in \QDS are different from those in \QC, and are therefore described in
a new topic that is located in the \QDS Manual sources:
@@ -251,7 +251,7 @@
It is mostly used in the \QC Manual sources to specify values for the
\c {\previouspage} and \c {\nextpage} commands depending on whether
the \QDS Manual or \QC Manual is being built. For example, the
- following \c if-else statement is needed, because only the Git
+ following \c if-else statement is needed because only the Git
version control system is integrated to \QDS, and information about
the other systems integrated to \QC is hidden:
@@ -349,7 +349,7 @@
topic in the Qt reference documentation.
This improves the consistency of the look and feel of Qt documentation,
- and eliminates the need to describe parts of the UI in the text, because
+ and eliminates the need to describe parts of the UI in the text because
you can just insert the number of the element you are referring to in
brackets.
diff --git a/doc/qtcreatordev/src/qtcreator-ui-text.qdoc b/doc/qtcreatordev/src/qtcreator-ui-text.qdoc
index 059ef89c03..4c14fe704b 100644
--- a/doc/qtcreatordev/src/qtcreator-ui-text.qdoc
+++ b/doc/qtcreatordev/src/qtcreator-ui-text.qdoc
@@ -259,7 +259,7 @@
Use \c{QDir::toNativeSeparators()} for file and directory names that you
pass to \c{tr().arg()}.
- Do not use markup that spans the whole string, because that can be confusing
+ Do not use markup that spans the whole string because that can be confusing
for translators. For example, instead of:
\code
diff --git a/doc/qtdesignstudio/config/qtdesignstudio.qdocconf b/doc/qtdesignstudio/config/qtdesignstudio.qdocconf
index c3ba9b4f1b..f9722725e8 100644
--- a/doc/qtdesignstudio/config/qtdesignstudio.qdocconf
+++ b/doc/qtdesignstudio/config/qtdesignstudio.qdocconf
@@ -41,6 +41,7 @@ excludedirs += ../../qtcreator/examples/accelbubble \
../../qtcreator/src/cmake \
../../qtcreator/src/conan \
../../qtcreator/src/debugger/creator-only \
+ ../../qtcreator/src/docker \
../../qtcreator/src/editors/creator-only \
../../qtcreator/src/howto/creator-only \
../../qtcreator/src/incredibuild \
diff --git a/doc/qtdesignstudio/examples/doc/coffeemachine.qdoc b/doc/qtdesignstudio/examples/doc/coffeemachine.qdoc
index 1f9cfb8baf..38186fe45d 100644
--- a/doc/qtdesignstudio/examples/doc/coffeemachine.qdoc
+++ b/doc/qtdesignstudio/examples/doc/coffeemachine.qdoc
@@ -168,7 +168,7 @@
\image coffee-machine-timeline-settings.png
We set the start frame for the \c {"selection"} state to 400 and
- the end frame to 200, because we are moving back on the timeline to display
+ the end frame to 200 because we are moving back on the timeline to display
the selection sidebar.
In the \uicontrol {Transition to state} field, we select the state to
diff --git a/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc b/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc
index 32cbc60ae3..2c35cf9bc8 100644
--- a/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc
+++ b/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc
@@ -90,7 +90,7 @@
\l {basic-image}{Image}, \l Text, and \l {Mouse Area} components. For the
screen background, we use the \l {basic-rectangle}{Rectangle} component.
- The text might look different on the desktop and MCUs, because on the
+ The text might look different on the desktop and MCUs because on the
desktop we use dynamic font loading, whereas on MCUs fonts are compiled
into application sources. Therefore, the text will always be Maven Pro
on MCUs, whereas on the desktop you'd need to have Maven Pro installed
@@ -227,7 +227,7 @@
\skipto Item {
\printuntil }
- We have to do it this way, because we are developing for MCUs. We have to
+ We have to do it this way because we are developing for MCUs. We have to
use either \c when conditions or set the state directly through code,
which overrides \c when conditions. Otherwise, we could just select the
action to change to the state that we want in the \uicontrol Action field.
diff --git a/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc b/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc
index 2a6b36695d..21adaeba50 100644
--- a/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc
+++ b/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc
@@ -198,7 +198,7 @@
\inlineimage icons/anchor-fill.png
(\uicontrol {Fill to Parent}) button to always make the
image the same size as its parent. This makes the button
- component scalable, because the image size is bound to the
+ component scalable because the image size is bound to the
component size.
\endlist
\li Select the other border image to edit the values of its properties
diff --git a/doc/qtdesignstudio/src/components/qtquick-controls.qdoc b/doc/qtdesignstudio/src/components/qtquick-controls.qdoc
index 9faf9b85c9..1dba08cf28 100644
--- a/doc/qtdesignstudio/src/components/qtquick-controls.qdoc
+++ b/doc/qtdesignstudio/src/components/qtquick-controls.qdoc
@@ -70,7 +70,7 @@
components, unless it has been explicitly set for them.
\note Take care when enabling wheel events for controls within scrollable
- components, such as \l Flickable, because the control will consume the
+ components, such as \l Flickable because the control will consume the
events, and therefore interrupt scrolling of the flickable.
\uicontrol Spacing is useful for controls that have multiple or repetitive
@@ -130,7 +130,7 @@
The button text should be a verb describing the action, or a noun matching
the title of the popup that will be opened.
- Don't use a button to set state, because a \l Switch is more suitable for
+ Don't use a button to set state because a \l Switch is more suitable for
that purpose.
\section3 Highlighted Buttons
diff --git a/doc/qtdesignstudio/src/components/qtquick-images.qdoc b/doc/qtdesignstudio/src/components/qtquick-images.qdoc
index 256289fd92..1dabc0aae6 100644
--- a/doc/qtdesignstudio/src/components/qtquick-images.qdoc
+++ b/doc/qtdesignstudio/src/components/qtquick-images.qdoc
@@ -118,7 +118,7 @@
If the source is an intrinsically scalable image (such as SVG), source size
determines the size of the loaded image regardless of intrinsic size.
- Avoid changing the source size property dynamically, because rendering an
+ Avoid changing the source size property dynamically because rendering an
SVG is slow compared with rendering other image formats.
If the source is a non-scalable image (such as JPEG), the loaded image will
diff --git a/doc/qtdesignstudio/src/overviews/qtquick-placeholder-data.qdoc b/doc/qtdesignstudio/src/overviews/qtquick-placeholder-data.qdoc
index 237cfc67ef..bfdb708a24 100644
--- a/doc/qtdesignstudio/src/overviews/qtquick-placeholder-data.qdoc
+++ b/doc/qtdesignstudio/src/overviews/qtquick-placeholder-data.qdoc
@@ -98,7 +98,7 @@
\endqml
This works nicely for applications but \uicontrol {Form Editor} displays a
- zero-sized component. A parent for the opened file does not exist, because
+ zero-sized component. A parent for the opened file does not exist because
the context is missing. To get around the missing context, the idea of a
\e {dummy context} is introduced. If you place a file with the same name as
the application (here, example.qml) in the \c {dummydata/context} directory,
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc
index e171806340..25e52b7ac9 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc
@@ -54,7 +54,7 @@
\list 1
\li In the File Explorer, create a new folder for the mock data
inside the \e imports folder in your project folder (for example, \e Data).
- \note Make sure to capitalize the \e Data folder name, because you
+ \note Make sure to capitalize the \e Data folder name because you
will need to import it as a component later, and component names must
be capitalized.
\note If you place this folder somewhere else in the project, you will
@@ -73,7 +73,7 @@
\li Follow the instructions of the wizard to create the Qt Quick file
in the data folder. In these instructions, the file is called
\e Values.qml.
- \note Make sure to capitalize the filename, because it will become
+ \note Make sure to capitalize the filename because it will become
a custom component.
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {JavaScript} >
diff --git a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
index 1b3e004d2d..599be37cc7 100644
--- a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
+++ b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
@@ -67,7 +67,7 @@
The \uicontrol Cached property allows the effect output pixels to be cached
in order to improve the rendering performance. Every time the source or
effect properties are changed, the pixels in the cache must be updated.
- Memory consumption is increased, because an extra buffer of memory is
+ Memory consumption is increased because an extra buffer of memory is
required for storing the effect output. We recommend that you disable the
cache when the source or the effect properties are animated.
diff --git a/doc/qtdesignstudio/src/views/qtquick-form-editor.qdoc b/doc/qtdesignstudio/src/views/qtquick-form-editor.qdoc
index 3d8b7afb2f..153f39fd02 100644
--- a/doc/qtdesignstudio/src/views/qtquick-form-editor.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-form-editor.qdoc
@@ -186,7 +186,7 @@
\uicontrol {Sibling component spacing} field, specify the
distance in pixels between siblings and the snapping lines.
- \image qtquick-designer-options.png "Qt Quick Designer options"
+ \image qtquick-designer-options.png "Qt Quick Designer preferences"
The following image shows the snapping lines (1) when
\uicontrol {Parent component padding} is set to 5 pixels.
diff --git a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
index 3901be0985..6b0197ffb3 100644
--- a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
@@ -439,7 +439,7 @@
The value of the \uicontrol Format field specifies the internal OpenGL
format of the texture. Depending on the OpenGL implementation, it might
allow you to save some texture memory. However, use the \uicontrol RGB
- and \uicontrol Alpha values with caution, because the underlying hardware
+ and \uicontrol Alpha values with caution because the underlying hardware
and driver might not support them.
In the \uicontrol {Texture mirroring} field, specify whether the generated
diff --git a/share/qtcreator/qmldesigner/workspacePresets/Essentials-3D.wrk b/share/qtcreator/qmldesigner/workspacePresets/Essentials-3D.wrk
index fba5f4a822..4ed1c599c3 100644
--- a/share/qtcreator/qmldesigner/workspacePresets/Essentials-3D.wrk
+++ b/share/qtcreator/qmldesigner/workspacePresets/Essentials-3D.wrk
@@ -1,48 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<QtAdvancedDockingSystem version="1" containers="1">
- <container floating="false">
- <splitter orientation="Horizontal" count="3">
- <splitter orientation="Vertical" count="2">
- <area tabs="4" current="Components">
- <widget name="Components" closed="false"/>
- <widget name="Assets" closed="false"/>
- <widget name="Navigator" closed="false"/>
- <widget name="DebugView" closed="false"/>
- </area>
- <area tabs="3" current="Projects">
- <widget name="Projects" closed="false"/>
- <widget name="FileSystem" closed="false"/>
- <widget name="OpenDocuments" closed="false"/>
- </area>
- <sizes>653 436</sizes>
- </splitter>
- <splitter orientation="Vertical" count="4">
- <area tabs="2" current="FormEditor">
- <widget name="FormEditor" closed="false"/>
- <widget name="TextEditor" closed="false"/>
- </area>
- <area tabs="1" current="Editor3D">
- <widget name="Editor3D" closed="false"/>
- </area>
- <area tabs="2" current="Timelines">
- <widget name="StatesEditor" closed="true"/>
- <widget name="Timelines" closed="true"/>
- </area>
- <area tabs="1" current="OutputPane">
- <widget name="OutputPane" closed="true"/>
- </area>
- <sizes>600 600 0 0</sizes>
- </splitter>
- <splitter orientation="Vertical" count="2">
- <area tabs="1" current="Properties">
- <widget name="Properties" closed="false"/>
- </area>
- <area tabs="1" current="ConnectionView">
- <widget name="ConnectionView" closed="false"/>
- </area>
- <sizes>762 327</sizes>
- </splitter>
- <sizes>376 1127 376</sizes>
- </splitter>
- </container>
-</QtAdvancedDockingSystem>
+<?xml version="1.0" encoding="UTF-8"?><QtAdvancedDockingSystem version="1" userVersion="0" containers="1"><container floating="false"><splitter orientation="Horizontal" count="3"><splitter orientation="Vertical" count="3"><area tabs="2" current="Navigator"><widget name="Navigator" closed="false"/><widget name="DebugView" closed="false"/></area><area tabs="2" current="Assets"><widget name="Assets" closed="false"/><widget name="Components" closed="false"/></area><area tabs="3" current="Projects"><widget name="Projects" closed="false"/><widget name="FileSystem" closed="false"/><widget name="OpenDocuments" closed="false"/></area><sizes>355 428 404</sizes></splitter><splitter orientation="Vertical" count="4"><splitter orientation="Horizontal" count="2"><area tabs="2" current="FormEditor"><widget name="FormEditor" closed="false"/><widget name="TextEditor" closed="false"/></area><area tabs="1" current="MaterialEditor"><widget name="MaterialEditor" closed="false"/></area><sizes>678 678</sizes></splitter><splitter orientation="Horizontal" count="2"><area tabs="1" current="Editor3D"><widget name="Editor3D" closed="false"/></area><area tabs="1" current="MaterialBrowser"><widget name="MaterialBrowser" closed="false"/></area><sizes>678 678</sizes></splitter><area tabs="2" current="Timelines"><widget name="StatesEditor" closed="true"/><widget name="Timelines" closed="true"/></area><area tabs="1" current="OutputPane"><widget name="OutputPane" closed="true"/></area><sizes>641 547 0 0</sizes></splitter><splitter orientation="Vertical" count="2"><area tabs="1" current="Properties"><widget name="Properties" closed="false"/></area><area tabs="1" current="ConnectionView"><widget name="ConnectionView" closed="false"/></area><sizes>831 357</sizes></splitter><sizes>453 1357 453</sizes></splitter></container></QtAdvancedDockingSystem>
diff --git a/src/plugins/android/androidpotentialkit.cpp b/src/plugins/android/androidpotentialkit.cpp
index 19f38b1213..f0eba97053 100644
--- a/src/plugins/android/androidpotentialkit.cpp
+++ b/src/plugins/android/androidpotentialkit.cpp
@@ -74,7 +74,7 @@ bool AndroidPotentialKit::isEnabled() const
}
return QtSupport::QtVersionManager::version([](const QtSupport::QtVersion *v) {
- return v->isValid() && v->type() == QString::fromLatin1(Constants::ANDROID_QT_TYPE);
+ return v->type() == QString::fromLatin1(Constants::ANDROID_QT_TYPE);
});
}
diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp
index 540bf6f0d2..7376f10a73 100644
--- a/src/plugins/android/androidqtversion.cpp
+++ b/src/plugins/android/androidqtversion.cpp
@@ -96,7 +96,8 @@ bool AndroidQtVersion::supportsMultipleQtAbis() const
Abis AndroidQtVersion::detectQtAbis() const
{
- return Utils::transform<Abis>(androidAbis(), &AndroidManager::androidAbi2Abi);
+ const bool conf = AndroidConfigurations::currentConfig().sdkFullyConfigured();
+ return conf ? Utils::transform<Abis>(androidAbis(), &AndroidManager::androidAbi2Abi) : Abis();
}
void AndroidQtVersion::addToEnvironment(const Kit *k, Utils::Environment &env) const
diff --git a/src/plugins/clangformat/clangformatfile.cpp b/src/plugins/clangformat/clangformatfile.cpp
index 192bb47cb8..ef96f26ce1 100644
--- a/src/plugins/clangformat/clangformatfile.cpp
+++ b/src/plugins/clangformat/clangformatfile.cpp
@@ -186,6 +186,8 @@ void ClangFormatFile::fromCppCodeStyleSettings(const CppEditor::CppCodeStyleSett
if (settings.indentNamespaceBody || settings.indentNamespaceBraces)
m_style.NamespaceIndentation = FormatStyle::NamespaceIndentationKind::NI_All;
+ else
+ m_style.NamespaceIndentation = FormatStyle::NamespaceIndentationKind::NI_None;
if (settings.indentClassBraces || settings.indentEnumBraces || settings.indentBlockBraces
|| settings.indentFunctionBraces)
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index d22916a43d..b97d05ec18 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3852,6 +3852,7 @@ void GdbEngine::setupEngine()
if (!debuggerSettings()->loadGdbInit.value())
gdbCommand.addArg("-n");
+ // This is filled in DebuggerKitAspect::runnable
Environment gdbEnv = rp.debugger.environment;
gdbEnv.setupEnglishOutput();
if (rp.runAsRoot)
@@ -4044,9 +4045,9 @@ void GdbEngine::setEnvironmentVariables()
&& str.compare("path", Qt::CaseInsensitive) == 0;
};
- Environment sysEnv = Environment::systemEnvironment();
+ Environment baseEnv = runParameters().debugger.environment;
Environment runEnv = runParameters().inferior.environment;
- const NameValueItems items = sysEnv.diff(runEnv);
+ const NameValueItems items = baseEnv.diff(runEnv);
for (const EnvironmentItem &item : items) {
// imitate the weird windows gdb behavior of setting the case of the path environment
// variable name to an all uppercase PATH
diff --git a/src/plugins/languageclient/languageclientcompletionassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp
index 0ab76a10c0..baac3b007e 100644
--- a/src/plugins/languageclient/languageclientcompletionassist.cpp
+++ b/src/plugins/languageclient/languageclientcompletionassist.cpp
@@ -447,7 +447,6 @@ void LanguageClientCompletionAssistProcessor::handleCompletionResponse(
model);
proposal->m_document = m_document;
proposal->m_pos = m_pos;
- proposal->setFragile(true);
proposal->setSupportsPrefix(false);
setAsyncProposalAvailable(proposal);
m_client->removeAssistProcessor(this);
diff --git a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
index b12fa8591e..ddfa6e4df0 100644
--- a/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
+++ b/src/plugins/mesonprojectmanager/mesonprojectplugin.cpp
@@ -84,6 +84,7 @@ private:
void saveAll()
{
m_toolsSettings.saveMesonTools(MesonTools::tools(), ICore::dialogParent());
+ Settings::instance()->writeSettings(ICore::settings());
}
};
@@ -101,6 +102,7 @@ bool MesonProjectPlugin::initialize(const QStringList & /*arguments*/, QString *
ProjectManager::registerProjectType<MesonProject>(Constants::Project::MIMETYPE);
FileIconProvider::registerIconOverlayForFilename(Constants::Icons::MESON, "meson.build");
FileIconProvider::registerIconOverlayForFilename(Constants::Icons::MESON, "meson_options.txt");
+ Settings::instance()->readSettings(ICore::settings());
return true;
}
diff --git a/src/plugins/mesonprojectmanager/settings/general/settings.cpp b/src/plugins/mesonprojectmanager/settings/general/settings.cpp
index 03a9ed293a..694f8b063b 100644
--- a/src/plugins/mesonprojectmanager/settings/general/settings.cpp
+++ b/src/plugins/mesonprojectmanager/settings/general/settings.cpp
@@ -41,9 +41,12 @@ Settings::Settings()
autorunMeson.setLabelText(tr("Autorun Meson"));
autorunMeson.setToolTip(tr("Automatically run Meson when needed."));
- verboseNinja.setSettingsKey("meson.autorun");
+ verboseNinja.setSettingsKey("ninja.verbose");
verboseNinja.setLabelText(tr("Ninja verbose mode"));
verboseNinja.setToolTip(tr("Enables verbose mode by default when invoking Ninja."));
+
+ registerAspect(&autorunMeson);
+ registerAspect(&verboseNinja);
}
Settings *Settings::instance()
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 10758d451e..f867cc8bdd 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -47,6 +47,8 @@
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
+#include <projectexplorer/devicesupport/idevice.h>
+
#include <utils/algorithm.h>
#include <utils/detailswidget.h>
#include <utils/layoutbuilder.h>
@@ -486,8 +488,10 @@ void BuildConfiguration::setBuildDirectorySettingsKey(const QString &key)
Environment BuildConfiguration::baseEnvironment() const
{
Environment result;
- if (useSystemEnvironment())
- result = Environment::systemEnvironment();
+ if (useSystemEnvironment()) {
+ ProjectExplorer::IDevice::ConstPtr devicePtr = BuildDeviceKitAspect::device(kit());
+ result = devicePtr ? devicePtr->systemEnvironment() : Environment::systemEnvironment();
+ }
addToEnvironment(result);
kit()->addToBuildEnvironment(result);
result.modify(project()->additionalEnvironment());
diff --git a/src/plugins/projectexplorer/desktoprunconfiguration.cpp b/src/plugins/projectexplorer/desktoprunconfiguration.cpp
index 983d58edaf..ab5322647c 100644
--- a/src/plugins/projectexplorer/desktoprunconfiguration.cpp
+++ b/src/plugins/projectexplorer/desktoprunconfiguration.cpp
@@ -68,7 +68,7 @@ DesktopRunConfiguration::DesktopRunConfiguration(Target *target, Id id, Kind kin
{
auto envAspect = addAspect<LocalEnvironmentAspect>(target);
- addAspect<ExecutableAspect>(target, ExecutableAspect::HostDevice);
+ addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
addAspect<ArgumentsAspect>(macroExpander());
addAspect<WorkingDirectoryAspect>(macroExpander(), envAspect);
addAspect<TerminalAspect>();
diff --git a/src/plugins/projectexplorer/editorsettingspropertiespage.ui b/src/plugins/projectexplorer/editorsettingspropertiespage.ui
index 8cac97dc08..0bcc6bff56 100644
--- a/src/plugins/projectexplorer/editorsettingspropertiespage.ui
+++ b/src/plugins/projectexplorer/editorsettingspropertiespage.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="0" column="1">
+ <item row="0" column="0">
<widget class="QPushButton" name="restoreButton">
<property name="text">
<string>Restore Global</string>
diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp
index 41941b9d20..42f74c77f9 100644
--- a/src/plugins/projectexplorer/kit.cpp
+++ b/src/plugins/projectexplorer/kit.cpp
@@ -25,6 +25,7 @@
#include "kit.h"
+#include "devicesupport/idevice.h"
#include "devicesupport/idevicefactory.h"
#include "kitinformation.h"
#include "kitmanager.h"
@@ -575,14 +576,16 @@ void Kit::addToRunEnvironment(Environment &env) const
Environment Kit::buildEnvironment() const
{
- Environment env = Environment::systemEnvironment(); // FIXME: Use build device
+ IDevice::ConstPtr device = BuildDeviceKitAspect::device(this);
+ Environment env = device ? device->systemEnvironment() : Environment::systemEnvironment();
addToBuildEnvironment(env);
return env;
}
Environment Kit::runEnvironment() const
{
- Environment env = Environment::systemEnvironment(); // FIXME: Use run device
+ IDevice::ConstPtr device = DeviceKitAspect::device(this);
+ Environment env = device ? device->systemEnvironment() : Environment::systemEnvironment();
addToRunEnvironment(env);
return env;
}
diff --git a/src/plugins/qmldesigner/components/connectioneditor/dynamicpropertiesmodel.cpp b/src/plugins/qmldesigner/components/connectioneditor/dynamicpropertiesmodel.cpp
index c74a579828..0ebb2864be 100644
--- a/src/plugins/qmldesigner/components/connectioneditor/dynamicpropertiesmodel.cpp
+++ b/src/plugins/qmldesigner/components/connectioneditor/dynamicpropertiesmodel.cpp
@@ -298,6 +298,9 @@ AbstractProperty DynamicPropertiesModel::abstractPropertyForRow(int rowNumber) c
const int internalId = data(index(rowNumber, TargetModelNodeRow), Qt::UserRole + 1).toInt();
const QString targetPropertyName = data(index(rowNumber, TargetModelNodeRow), Qt::UserRole + 2).toString();
+ if (!connectionView()->isAttached())
+ return AbstractProperty();
+
ModelNode modelNode = connectionView()->modelNodeForInternalId(internalId);
if (modelNode.isValid())
@@ -415,16 +418,18 @@ QStringList DynamicPropertiesModel::possibleSourceProperties(const BindingProper
void DynamicPropertiesModel::deleteDynamicPropertyByRow(int rowNumber)
{
- BindingProperty bindingProperty = bindingPropertyForRow(rowNumber);
- if (bindingProperty.isValid()) {
- bindingProperty.parentModelNode().removeProperty(bindingProperty.name());
- }
+ connectionView()->executeInTransaction("DynamicPropertiesModel::deleteDynamicPropertyByRow", [this, rowNumber]() {
+ BindingProperty bindingProperty = bindingPropertyForRow(rowNumber);
+ if (bindingProperty.isValid()) {
+ bindingProperty.parentModelNode().removeProperty(bindingProperty.name());
+ }
- VariantProperty variantProperty = variantPropertyForRow(rowNumber);
+ VariantProperty variantProperty = variantPropertyForRow(rowNumber);
- if (variantProperty.isValid()) {
- variantProperty.parentModelNode().removeProperty(variantProperty.name());
- }
+ if (variantProperty.isValid()) {
+ variantProperty.parentModelNode().removeProperty(variantProperty.name());
+ }
+ });
resetModel();
}
diff --git a/src/plugins/qmldesigner/components/curveeditor/animationcurve.cpp b/src/plugins/qmldesigner/components/curveeditor/animationcurve.cpp
index 3e910638da..36e577d38d 100644
--- a/src/plugins/qmldesigner/components/curveeditor/animationcurve.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/animationcurve.cpp
@@ -36,14 +36,16 @@
namespace QmlDesigner {
AnimationCurve::AnimationCurve()
- : m_fromData(false)
+ : m_type(AnimationCurve::ValueType::Undefined)
+ , m_fromData(false)
, m_minY(std::numeric_limits<double>::max())
, m_maxY(std::numeric_limits<double>::lowest())
, m_frames()
{}
-AnimationCurve::AnimationCurve(const std::vector<Keyframe> &frames)
- : m_fromData(false)
+AnimationCurve::AnimationCurve(AnimationCurve::ValueType type, const std::vector<Keyframe> &frames)
+ : m_type(type)
+ , m_fromData(false)
, m_minY(std::numeric_limits<double>::max())
, m_maxY(std::numeric_limits<double>::lowest())
, m_frames(frames)
@@ -51,8 +53,13 @@ AnimationCurve::AnimationCurve(const std::vector<Keyframe> &frames)
analyze();
}
-AnimationCurve::AnimationCurve(const QEasingCurve &easing, const QPointF &start, const QPointF &end)
- : m_fromData(true)
+AnimationCurve::AnimationCurve(
+ AnimationCurve::ValueType type,
+ const QEasingCurve &easing,
+ const QPointF &start,
+ const QPointF &end)
+ : m_type(type)
+ , m_fromData(true)
, m_minY(std::numeric_limits<double>::max())
, m_maxY(std::numeric_limits<double>::lowest())
, m_frames()
@@ -117,6 +124,11 @@ bool AnimationCurve::hasUnified() const
return false;
}
+AnimationCurve::ValueType AnimationCurve::valueType() const
+{
+ return m_type;
+}
+
double AnimationCurve::minimumTime() const
{
if (!m_frames.empty())
diff --git a/src/plugins/qmldesigner/components/curveeditor/animationcurve.h b/src/plugins/qmldesigner/components/curveeditor/animationcurve.h
index ba39ecd347..1c51d05d80 100644
--- a/src/plugins/qmldesigner/components/curveeditor/animationcurve.h
+++ b/src/plugins/qmldesigner/components/curveeditor/animationcurve.h
@@ -40,11 +40,17 @@ class CurveSegment;
class AnimationCurve
{
public:
+ using ValueType = Keyframe::ValueType;
+
AnimationCurve();
- AnimationCurve(const std::vector<Keyframe> &frames);
+ AnimationCurve(ValueType type, const std::vector<Keyframe> &frames);
- AnimationCurve(const QEasingCurve &easing, const QPointF &start, const QPointF &end);
+ AnimationCurve(
+ ValueType type,
+ const QEasingCurve &easing,
+ const QPointF &start,
+ const QPointF &end);
bool isEmpty() const;
@@ -54,6 +60,8 @@ public:
bool hasUnified() const;
+ ValueType valueType() const;
+
double minimumTime() const;
double maximumTime() const;
@@ -93,6 +101,8 @@ public:
private:
void analyze();
+ ValueType m_type;
+
bool m_fromData;
double m_minY;
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditor.cpp b/src/plugins/qmldesigner/components/curveeditor/curveeditor.cpp
index 217e0e0eb7..29e88e2581 100644
--- a/src/plugins/qmldesigner/components/curveeditor/curveeditor.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/curveeditor.cpp
@@ -42,6 +42,7 @@ namespace QmlDesigner {
CurveEditor::CurveEditor(CurveEditorModel *model, QWidget *parent)
: QWidget(parent)
, m_infoText(nullptr)
+ , m_statusLine(nullptr)
, m_toolbar(new CurveEditorToolBar(model, this))
, m_tree(new TreeView(model, this))
, m_view(new GraphicsView(model, this))
@@ -61,10 +62,13 @@ CurveEditor::CurveEditor(CurveEditorModel *model, QWidget *parent)
area->setWidget(splitter);
area->setWidgetResizable(true);
+ m_statusLine = new QLabel();
+
auto *box = new QVBoxLayout;
box->addWidget(m_infoText);
box->addWidget(m_toolbar);
box->addWidget(area);
+ box->addWidget(m_statusLine);
setLayout(box);
connect(m_toolbar, &CurveEditorToolBar::defaultClicked, [this]() {
@@ -89,9 +93,11 @@ CurveEditor::CurveEditor(CurveEditorModel *model, QWidget *parent)
m_view->viewport()->update();
});
- connect(
- m_toolbar, &CurveEditorToolBar::currentFrameChanged,
- model, &CurveEditorModel::commitCurrentFrame);
+ connect(m_toolbar, &CurveEditorToolBar::currentFrameChanged, [this, model](int frame) {
+ model->setCurrentFrame(frame);
+ updateStatusLine();
+ m_view->viewport()->update();
+ });
connect(
m_view, &GraphicsView::currentFrameChanged,
@@ -106,6 +112,8 @@ CurveEditor::CurveEditor(CurveEditorModel *model, QWidget *parent)
auto updateTimeline = [this, model](bool validTimeline) {
if (validTimeline) {
+ updateStatusLine();
+ m_view->setCurrentFrame(m_view->model()->currentFrame(), false);
m_toolbar->updateBoundsSilent(model->minimumTime(), model->maximumTime());
m_toolbar->show();
m_tree->show();
@@ -119,6 +127,8 @@ CurveEditor::CurveEditor(CurveEditorModel *model, QWidget *parent)
}
};
connect(model, &CurveEditorModel::timelineChanged, this, updateTimeline);
+
+ connect(model, &CurveEditorModel::setStatusLineMsg, m_statusLine, &QLabel::setText);
}
bool CurveEditor::dragging() const
@@ -153,4 +163,11 @@ void CurveEditor::hideEvent(QHideEvent *event)
QWidget::hideEvent(event);
}
+void CurveEditor::updateStatusLine()
+{
+ int currentFrame = m_view->model()->currentFrame();
+ QString currentText = QString("Playhead frame %1").arg(currentFrame);
+ m_statusLine->setText(currentText);
+}
+
} // End namespace QmlDesigner.
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditor.h b/src/plugins/qmldesigner/components/curveeditor/curveeditor.h
index 9d1a6f68f9..2265c5538f 100644
--- a/src/plugins/qmldesigner/components/curveeditor/curveeditor.h
+++ b/src/plugins/qmldesigner/components/curveeditor/curveeditor.h
@@ -59,8 +59,12 @@ protected:
void hideEvent(QHideEvent *event) override;
private:
+ void updateStatusLine();
+
QLabel *m_infoText;
+ QLabel *m_statusLine;
+
CurveEditorToolBar *m_toolbar;
TreeView *m_tree;
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp
index 4377671817..fb60298e61 100644
--- a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.cpp
@@ -44,12 +44,18 @@ namespace QmlDesigner {
CurveEditorModel::CurveEditorModel(QObject *parent)
: TreeModel(parent)
, m_hasTimeline(false)
+ , m_currentFrame(0)
, m_minTime(CurveEditorStyle::defaultTimeMin)
, m_maxTime(CurveEditorStyle::defaultTimeMax)
{}
CurveEditorModel::~CurveEditorModel() {}
+int CurveEditorModel::currentFrame() const
+{
+ return m_currentFrame;
+}
+
double CurveEditorModel::minimumTime() const
{
return m_minTime;
@@ -102,6 +108,7 @@ void CurveEditorModel::setTimeline(const QmlDesigner::QmlTimeline &timeline)
m_hasTimeline = timeline.isValid();
if (m_hasTimeline) {
+ m_currentFrame = static_cast<int>(timeline.currentKeyframe());
m_minTime = timeline.startKeyframe();
m_maxTime = timeline.endKeyframe();
std::vector<TreeItem *> items;
@@ -116,8 +123,8 @@ void CurveEditorModel::setTimeline(const QmlDesigner::QmlTimeline &timeline)
void CurveEditorModel::setCurrentFrame(int frame)
{
- if (graphicsView())
- graphicsView()->setCurrentFrame(frame, false);
+ m_currentFrame = frame;
+ emit commitCurrentFrame(m_currentFrame);
}
void CurveEditorModel::setMinimumTime(double time)
@@ -262,7 +269,7 @@ TreeItem *CurveEditorModel::createTopLevelItem(const QmlDesigner::QmlTimeline &t
AnimationCurve curve = createAnimationCurve(grp);
if (!curve.isEmpty()) {
QString name = QString::fromUtf8(grp.propertyName());
- auto propertyItem = new PropertyTreeItem(name, curve, typeFrom(grp));
+ auto propertyItem = new PropertyTreeItem(name, curve);
QmlDesigner::ModelNode target = grp.modelNode();
if (target.hasAuxiliaryData("locked"))
@@ -288,7 +295,7 @@ AnimationCurve CurveEditorModel::createAnimationCurve(const QmlDesigner::QmlTime
{
switch (typeFrom(group)) {
case PropertyTreeItem::ValueType::Bool:
- return createDoubleCurve(group);
+ return createBooleanCurve(group);
case PropertyTreeItem::ValueType::Integer:
return createDoubleCurve(group);
@@ -346,7 +353,13 @@ std::vector<Keyframe> resolveSmallCurves(const std::vector<Keyframe> &frames)
continue;
}
#endif
- AnimationCurve acurve(curve, previous.position(), frame.position());
+ // This is just a temporary curve. ValueType does not matter
+ AnimationCurve acurve(
+ AnimationCurve::ValueType::Undefined,
+ curve,
+ previous.position(),
+ frame.position());
+
previous.setRightHandle(acurve.keyframeAt(0).rightHandle());
out.push_back(acurve.keyframeAt(1));
continue;
@@ -357,6 +370,17 @@ std::vector<Keyframe> resolveSmallCurves(const std::vector<Keyframe> &frames)
return out;
}
+
+AnimationCurve CurveEditorModel::createBooleanCurve(const QmlDesigner::QmlTimelineKeyframeGroup &group)
+{
+ std::vector<Keyframe> keyframes = createKeyframes(group.keyframePositions());
+
+ for (auto& keyframe : keyframes)
+ keyframe.setInterpolation(Keyframe::Interpolation::Step);
+
+ return AnimationCurve(typeFrom(group), keyframes);
+}
+
AnimationCurve CurveEditorModel::createDoubleCurve(const QmlDesigner::QmlTimelineKeyframeGroup &group)
{
std::vector<Keyframe> keyframes = createKeyframes(group.keyframePositions());
@@ -374,7 +398,7 @@ AnimationCurve CurveEditorModel::createDoubleCurve(const QmlDesigner::QmlTimelin
}
}
- return AnimationCurve(keyframes);
+ return AnimationCurve(typeFrom(group), keyframes);
}
} // End namespace QmlDesigner.
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.h b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.h
index 041642aa61..aa804058c6 100644
--- a/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.h
+++ b/src/plugins/qmldesigner/components/curveeditor/curveeditormodel.h
@@ -48,6 +48,8 @@ class CurveEditorModel : public TreeModel
Q_OBJECT
signals:
+ void setStatusLineMsg(const QString& msg);
+
void commitCurrentFrame(int frame);
void commitStartFrame(int frame);
@@ -63,6 +65,8 @@ public:
~CurveEditorModel() override;
+ int currentFrame() const;
+
double minimumTime() const;
double maximumTime() const;
@@ -92,10 +96,14 @@ private:
AnimationCurve createAnimationCurve(const QmlDesigner::QmlTimelineKeyframeGroup &group);
+ AnimationCurve createBooleanCurve(const QmlDesigner::QmlTimelineKeyframeGroup &group);
+
AnimationCurve createDoubleCurve(const QmlDesigner::QmlTimelineKeyframeGroup &group);
bool m_hasTimeline = false;
+ int m_currentFrame = 0;
+
double m_minTime = 0.;
double m_maxTime = 0.;
diff --git a/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp b/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp
index f05f98c8f3..b24764a2f3 100644
--- a/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/curveeditorview.cpp
@@ -35,6 +35,7 @@
#include <variantproperty.h>
#include <qmlstate.h>
#include <qmltimeline.h>
+#include <nodelistproperty.h>
#include <cmath>
@@ -196,6 +197,9 @@ void CurveEditorView::propertiesRemoved([[maybe_unused]] const QList<AbstractPro
QmlTimeline CurveEditorView::activeTimeline() const
{
+ if (!isAttached())
+ return {};
+
QmlModelState state = currentState();
if (state.isBaseState()) {
for (const ModelNode &node : allModelNodesOfType("QtQuick.Timeline.Timeline")) {
@@ -316,42 +320,56 @@ void commitAuxiliaryData(ModelNode &node, TreeItem *item)
void CurveEditorView::commitKeyframes(TreeItem *item)
{
+ if (!isAttached())
+ return;
+
if (auto *nitem = item->asNodeItem()) {
ModelNode node = modelNodeForId(nitem->name());
commitAuxiliaryData(node, item);
} else if (auto *pitem = item->asPropertyItem()) {
QmlTimeline currentTimeline = activeTimeline();
+ if (!currentTimeline.isValid())
+ return;
+
QmlTimelineKeyframeGroup group = timelineKeyframeGroup(currentTimeline, pitem);
if (group.isValid()) {
ModelNode groupNode = group.modelNode();
commitAuxiliaryData(groupNode, item);
- auto replaceKeyframes = [&group, pitem, this]() {
+ auto replaceKeyframes = [&group, pitem, this]() mutable {
m_block = true;
- for (auto frame : group.keyframes())
+
+ for (auto& frame : group.keyframes())
frame.destroy();
- Keyframe previous;
- for (auto &&frame : pitem->curve().keyframes()) {
- QPointF pos = frame.position();
- group.setValue(QVariant(pos.y()), pos.x());
-
- if (previous.isValid()) {
- if (frame.interpolation() == Keyframe::Interpolation::Bezier ||
- frame.interpolation() == Keyframe::Interpolation::Step ) {
- CurveSegment segment(previous, frame);
- if (segment.isValid())
- attachEasingCurve(group, pos.x(), segment.easingCurve());
- } else if (frame.interpolation() == Keyframe::Interpolation::Easing) {
- QVariant data = frame.data();
- if (data.type() == static_cast<int>(QMetaType::QEasingCurve))
- attachEasingCurve(group, pos.x(), data.value<QEasingCurve>());
+ AnimationCurve curve = pitem->curve();
+ if (curve.valueType() == AnimationCurve::ValueType::Bool) {
+ for (const auto& frame : curve.keyframes()) {
+ QPointF pos = frame.position();
+ group.setValue(QVariant(pos.y()), pos.x());
+ }
+ } else {
+ Keyframe previous;
+ for (const auto& frame : curve.keyframes()) {
+ QPointF pos = frame.position();
+ group.setValue(QVariant(pos.y()), pos.x());
+
+ if (previous.isValid()) {
+ if (frame.interpolation() == Keyframe::Interpolation::Bezier ||
+ frame.interpolation() == Keyframe::Interpolation::Step ) {
+ CurveSegment segment(previous, frame);
+ if (segment.isValid())
+ attachEasingCurve(group, pos.x(), segment.easingCurve());
+ } else if (frame.interpolation() == Keyframe::Interpolation::Easing) {
+ QVariant data = frame.data();
+ if (data.type() == static_cast<int>(QMetaType::QEasingCurve))
+ attachEasingCurve(group, pos.x(), data.value<QEasingCurve>());
+ }
}
+ previous = frame;
}
-
- previous = frame;
}
m_block = false;
};
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.cpp
index 0b7ab9d391..5b05309976 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.cpp
@@ -37,22 +37,11 @@
namespace QmlDesigner {
-CurveItem::CurveItem(QGraphicsItem *parent)
- : CurveEditorItem(parent)
- , m_id(0)
- , m_style()
- , m_type(PropertyTreeItem::ValueType::Undefined)
- , m_component(PropertyTreeItem::Component::Generic)
- , m_transform()
- , m_keyframes()
- , m_itemDirty(false)
-{}
-
CurveItem::CurveItem(unsigned int id, const AnimationCurve &curve, QGraphicsItem *parent)
: CurveEditorItem(parent)
, m_id(id)
, m_style()
- , m_type(PropertyTreeItem::ValueType::Undefined)
+ , m_type(curve.valueType())
, m_component(PropertyTreeItem::Component::Generic)
, m_transform()
, m_keyframes()
@@ -235,14 +224,16 @@ PropertyTreeItem::Component CurveItem::component() const
return m_component;
}
-AnimationCurve CurveItem::curve() const
+AnimationCurve CurveItem::curve(bool remap) const
{
std::vector<Keyframe> frames;
frames.reserve(m_keyframes.size());
+
+ bool map = (m_type == AnimationCurve::ValueType::Bool) && remap;
for (auto *frameItem : m_keyframes)
- frames.push_back(frameItem->keyframe());
+ frames.push_back(frameItem->keyframe(map));
- return AnimationCurve(frames);
+ return AnimationCurve(m_type, frames);
}
AnimationCurve CurveItem::resolvedCurve() const
@@ -278,11 +269,13 @@ std::vector<AnimationCurve> CurveItem::curves() const
Keyframe previous = tmp.back();
if (tmp.size() >= 2)
- out.push_back(AnimationCurve(tmp));
+ out.push_back(AnimationCurve(m_type, tmp));
- out.push_back(AnimationCurve(current.data().value<QEasingCurve>(),
- previous.position(),
- current.position()));
+ out.push_back(AnimationCurve(
+ m_type,
+ current.data().value<QEasingCurve>(),
+ previous.position(),
+ current.position()));
tmp.clear();
tmp.push_back(current);
@@ -293,7 +286,7 @@ std::vector<AnimationCurve> CurveItem::curves() const
}
if (!tmp.empty())
- out.push_back(AnimationCurve(tmp));
+ out.push_back(AnimationCurve(m_type, tmp));
return out;
}
@@ -384,7 +377,7 @@ void CurveItem::setDirty(bool dirty)
void CurveItem::setHandleVisibility(bool visible)
{
- for (auto frame : qAsConst(m_keyframes))
+ for (auto *frame : qAsConst(m_keyframes))
frame->setHandleVisibility(visible);
}
@@ -402,7 +395,7 @@ void CurveItem::setCurve(const AnimationCurve &curve)
{
freeClear(m_keyframes);
- for (const auto &frame : curve.keyframes()) {
+ for (const auto& frame : curve.keyframes()) {
auto *item = new KeyframeItem(frame, this);
item->setLocked(locked());
item->setComponentTransform(m_transform);
@@ -419,7 +412,7 @@ QRectF CurveItem::setComponentTransform(const QTransform &transform)
{
prepareGeometryChange();
m_transform = transform;
- for (auto frame : qAsConst(m_keyframes))
+ for (auto *frame : qAsConst(m_keyframes))
frame->setComponentTransform(transform);
return boundingRect();
@@ -438,6 +431,14 @@ void CurveItem::setInterpolation(Keyframe::Interpolation interpolation)
if (m_keyframes.empty())
return;
+ if (m_type == AnimationCurve::ValueType::Bool) {
+ if (interpolation != Keyframe::Interpolation::Step) {
+ interpolation = Keyframe::Interpolation::Step;
+ QString msg("Warning: Curves of type bool can only be step-interpolated!");
+ emit curveMessage(msg);
+ }
+ }
+
KeyframeItem *prevItem = m_keyframes[0];
for (int i = 1; i < m_keyframes.size(); ++i) {
KeyframeItem *currItem = m_keyframes[i];
@@ -454,7 +455,7 @@ void CurveItem::setInterpolation(Keyframe::Interpolation interpolation)
prevItem = currItem;
}
setDirty(false);
- emit curveChanged(id(), curve());
+ emit curveChanged(id(), curve(true));
}
void CurveItem::setDefaultInterpolation()
@@ -466,7 +467,7 @@ void CurveItem::setDefaultInterpolation()
if (frame->selected())
frame->setDefaultInterpolation();
}
- emit curveChanged(id(), curve());
+ emit curveChanged(id(), curve(true));
}
void CurveItem::toggleUnified()
@@ -478,12 +479,13 @@ void CurveItem::toggleUnified()
if (frame->selected())
frame->toggleUnified();
}
- emit curveChanged(id(), curve());
+ emit curveChanged(id(), curve(true));
}
void CurveItem::connect(GraphicsScene *scene)
{
QObject::connect(this, &CurveItem::curveChanged, scene, &GraphicsScene::curveChanged);
+ QObject::connect(this, &CurveItem::curveMessage, scene, &GraphicsScene::curveMessage);
QObject::connect(this, &CurveItem::keyframeMoved, scene, &GraphicsScene::keyframeMoved);
QObject::connect(this, &CurveItem::handleMoved, scene, &GraphicsScene::handleMoved);
@@ -498,7 +500,7 @@ void CurveItem::insertKeyframeByTime(double time)
acurve.insert(time);
setCurve(acurve);
- emit curveChanged(id(), curve());
+ emit curveChanged(id(), curve(true));
}
void CurveItem::deleteSelectedKeyframes()
@@ -516,7 +518,14 @@ void CurveItem::deleteSelectedKeyframes()
markDirty();
- emit curveChanged(id(), curve());
+ emit curveChanged(id(), curve(true));
+}
+
+void CurveItem::remapValue(double min, double max)
+{
+ for (auto *frameItem : qAsConst(m_keyframes)) {
+ frameItem->remapValue(min, max);
+ }
}
void CurveItem::markDirty()
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.h b/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.h
index 5a2f363df7..c6bdc6d3d4 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.h
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/curveitem.h
@@ -46,6 +46,8 @@ class CurveItem : public CurveEditorItem
Q_OBJECT
signals:
+ void curveMessage(const QString& msg);
+
void curveChanged(unsigned int id, const AnimationCurve &curve);
void keyframeMoved(KeyframeItem *item, const QPointF &direction);
@@ -53,8 +55,6 @@ signals:
void handleMoved(KeyframeItem *frame, HandleItem::Slot slot, double angle, double deltaLength);
public:
- CurveItem(QGraphicsItem *parent = nullptr);
-
CurveItem(unsigned int id, const AnimationCurve &curve, QGraphicsItem *parent = nullptr);
~CurveItem() override;
@@ -93,7 +93,7 @@ public:
PropertyTreeItem::Component component() const;
- AnimationCurve curve() const;
+ AnimationCurve curve(bool remap = false) const;
AnimationCurve resolvedCurve() const;
@@ -135,6 +135,8 @@ public:
void deleteSelectedKeyframes();
+ void remapValue(double min, double max);
+
private:
void markDirty();
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
index 88c4ac6882..a147151510 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.cpp
@@ -426,7 +426,7 @@ void GraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
if (curve->isDirty()) {
m_dirty = true;
curve->setDirty(false);
- emit curveChanged(curve->id(), curve->curve());
+ emit curveChanged(curve->id(), curve->curve(true));
}
}
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.h b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.h
index 2e6bc3b080..58738d116b 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.h
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsscene.h
@@ -41,6 +41,8 @@ class GraphicsScene : public QGraphicsScene
Q_OBJECT
signals:
+ void curveMessage(const QString& msg);
+
void curveChanged(unsigned int id, const AnimationCurve &curve);
public:
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp
index 5b4e6e3cfb..8ab71ace97 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/graphicsview.cpp
@@ -83,6 +83,8 @@ GraphicsView::GraphicsView(CurveEditorModel *model, QWidget *parent)
connect(&m_dialog, &CurveEditorStyleDialog::styleChanged, this, &GraphicsView::setStyle);
+ connect(m_scene, &GraphicsScene::curveMessage, m_model, &CurveEditorModel::setStatusLineMsg);
+
auto itemSlot = [this](unsigned int id, const AnimationCurve &curve) {
m_model->setCurve(id, curve);
applyZoom(m_zoomX, m_zoomY);
@@ -560,7 +562,14 @@ void GraphicsView::applyZoom(double x, double y, const QPoint &pivot)
scrollContent(mapTimeToX(deltaTransformed.x()), mapValueToY(deltaTransformed.y()));
}
+ for (auto *curve : m_scene->curves()) {
+ if (curve->valueType() == AnimationCurve::ValueType::Bool) {
+ curve->remapValue(minValue, maxValue);
+ }
+ }
+
m_scene->doNotMoveItems(false);
+ this->update();
}
void GraphicsView::drawGrid(QPainter *painter)
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
index e456170649..a4c117ae04 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
@@ -102,8 +102,16 @@ void KeyframeItem::lockedCallback()
KeyframeItem::~KeyframeItem() {}
-Keyframe KeyframeItem::keyframe() const
-{
+Keyframe KeyframeItem::keyframe(bool remap) const
+{
+ if (remap) {
+ auto frame = m_frame;
+ auto pos = frame.position();
+ auto center = m_min + ((m_max - m_min) / 2.0);
+ pos.ry() = pos.y() > center ? 1.0 : 0.0;
+ frame.setPosition(pos);
+ return frame;
+ }
return m_frame;
}
@@ -349,6 +357,18 @@ void KeyframeItem::moveHandle(HandleItem::Slot slot, double deltaAngle, double d
emit redrawCurve();
}
+void KeyframeItem::remapValue(double min, double max)
+{
+ auto center = m_min + ((m_max - m_min) / 2.0);
+ auto pos = m_frame.position();
+ pos.ry() = pos.y() > center ? max : min;
+ m_frame.setPosition(pos);
+
+ m_max = max;
+ m_min = min;
+ setKeyframe(m_frame);
+}
+
void KeyframeItem::updateHandle(HandleItem *handle, bool emitChanged)
{
bool ok = false;
@@ -421,8 +441,10 @@ QVariant KeyframeItem::itemChange(QGraphicsItem::GraphicsItemChange change, cons
if (curveItem->valueType() == PropertyTreeItem::ValueType::Integer)
position.setY(std::round(position.y()));
- else if (curveItem->valueType() == PropertyTreeItem::ValueType::Bool)
- position.setY(position.y() > 0.5 ? 1.0 : 0.0);
+ else if (curveItem->valueType() == PropertyTreeItem::ValueType::Bool) {
+ double center = m_min + ((m_max - m_min) / 2.0);
+ position.setY(position.y() > center ? m_max : m_min);
+ }
if (!legalLeft() || !legalRight()) {
return QVariant(m_transform.map(position));
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
index 3e566c84b7..14c3ae7426 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
@@ -64,7 +64,7 @@ public:
void lockedCallback() override;
- Keyframe keyframe() const;
+ Keyframe keyframe(bool remap = false) const;
bool isUnified() const;
@@ -106,6 +106,8 @@ public:
void moveHandle(HandleItem::Slot slot, double deltaAngle, double deltaLength);
+ void remapValue(double min, double max);
+
protected:
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
@@ -134,6 +136,9 @@ private:
QPointF m_validPos;
bool m_visibleOverride = true;
+
+ double m_min = 0.0;
+ double m_max = 1.0;
};
} // End namespace QmlDesigner.
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/treemodel.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/treemodel.cpp
index f21a0aa4cd..cd8edbf01e 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/treemodel.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/treemodel.cpp
@@ -84,7 +84,6 @@ CurveItem *TreeModel::curveItem(TreeItem *item)
{
if (auto *pti = item->asPropertyItem()) {
auto *citem = new CurveItem(pti->id(), pti->curve());
- citem->setValueType(pti->valueType());
citem->setComponent(pti->component());
citem->setLocked(pti->locked() || item->implicitlyLocked());
citem->setPinned(pti->pinned() || item->implicitlyPinned());
diff --git a/src/plugins/qmldesigner/components/curveeditor/keyframe.h b/src/plugins/qmldesigner/components/curveeditor/keyframe.h
index fd3c2cb88b..2757d229f5 100644
--- a/src/plugins/qmldesigner/components/curveeditor/keyframe.h
+++ b/src/plugins/qmldesigner/components/curveeditor/keyframe.h
@@ -35,6 +35,7 @@ namespace QmlDesigner {
class Keyframe
{
public:
+ enum class ValueType { Undefined, Bool, Integer, Double };
enum class Interpolation { Undefined, Step, Linear, Bezier, Easing };
Keyframe();
diff --git a/src/plugins/qmldesigner/components/curveeditor/treeitem.cpp b/src/plugins/qmldesigner/components/curveeditor/treeitem.cpp
index e9343c89a0..cd6b9945e4 100644
--- a/src/plugins/qmldesigner/components/curveeditor/treeitem.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/treeitem.cpp
@@ -322,11 +322,9 @@ std::vector<PropertyTreeItem *> NodeTreeItem::properties() const
return out;
}
-PropertyTreeItem::PropertyTreeItem(const QString &name,
- const AnimationCurve &curve,
- const ValueType &type)
+PropertyTreeItem::PropertyTreeItem(const QString &name, const AnimationCurve &curve)
: TreeItem(name)
- , m_type(type)
+ , m_type(curve.valueType())
, m_component(Component::Generic)
, m_curve(curve)
{}
diff --git a/src/plugins/qmldesigner/components/curveeditor/treeitem.h b/src/plugins/qmldesigner/components/curveeditor/treeitem.h
index 6053877809..bf76d43706 100644
--- a/src/plugins/qmldesigner/components/curveeditor/treeitem.h
+++ b/src/plugins/qmldesigner/components/curveeditor/treeitem.h
@@ -151,15 +151,10 @@ class PropertyTreeItem : public TreeItem
public:
enum class Component { Generic, R, G, B, A, X, Y, Z, W };
- enum class ValueType {
- Undefined,
- Bool,
- Integer,
- Double,
- };
+ using ValueType = AnimationCurve::ValueType;
public:
- PropertyTreeItem(const QString &name, const AnimationCurve &curve, const ValueType &type);
+ PropertyTreeItem(const QString &name, const AnimationCurve &curve);
PropertyTreeItem *asPropertyItem() override;
diff --git a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp
index 18fcba3efc..0777773400 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp
@@ -65,6 +65,9 @@ void FileResourcesModel::setModelNodeBackend(const QVariant &modelNodeBackend)
if (backendObjectCasted) {
QmlDesigner::Model *model = backendObjectCasted->qmlObjectNode().modelNode().model();
+ if (!model)
+ return;
+
m_docPath = QDir{QFileInfo{model->fileUrl().toLocalFile()}.absolutePath()};
m_path = QUrl::fromLocalFile(
QmlDesigner::DocumentManager::currentProjectDirPath().toFileInfo().absoluteFilePath());
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp
index 2acf6601ab..8511ebcfaf 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp
@@ -444,10 +444,12 @@ void TimelineGraphicsScene::invalidateHeightForTarget(const ModelNode &target)
void TimelineGraphicsScene::invalidateScene()
{
- ModelNode node = timelineView()->modelNodeForId(
- timelineWidget()->toolBar()->currentTimelineId());
- setTimeline(QmlTimeline(node));
- invalidateScrollbar();
+ if (timelineView()->isAttached()) {
+ ModelNode node = timelineView()->modelNodeForId(
+ timelineWidget()->toolBar()->currentTimelineId());
+ setTimeline(QmlTimeline(node));
+ invalidateScrollbar();
+ }
}
void TimelineGraphicsScene::invalidateScrollbar()
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
index b826440ae8..f412461017 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/timelinewidget.cpp
@@ -623,6 +623,7 @@ void TimelineWidget::showEvent([[maybe_unused]] QShowEvent *event)
m_timelineView->setEnabled(true);
graphicsScene()->setWidth(m_graphicsView->viewport()->width());
+ graphicsScene()->invalidateScene();
graphicsScene()->invalidateLayout();
graphicsScene()->invalidate();
graphicsScene()->onShow();
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 5cd4804bf3..7ebd2fcd8b 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -44,6 +44,7 @@
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
#include <qtsupport/baseqtversion.h>
@@ -109,6 +110,10 @@ QmlProject::QmlProject(const Utils::FilePath &fileName)
setBuildSystemCreator([](Target *t) { return new QmlBuildSystem(t); });
if (QmlProject::isQtDesignStudio()) {
+
+ EditorManager::closeAllDocuments();
+ SessionManager::closeAllProjects();
+
m_openFileConnection
= connect(this,
&QmlProject::anyParsingFinished,
diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp
index a810d20719..58c0603b17 100644
--- a/src/plugins/qnx/qnxdebugsupport.cpp
+++ b/src/plugins/qnx/qnxdebugsupport.cpp
@@ -37,6 +37,7 @@
#include <projectexplorer/devicesupport/deviceprocessesdialog.h>
#include <projectexplorer/devicesupport/deviceusedportsgatherer.h>
+#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitchooser.h>
#include <projectexplorer/kitinformation.h>
@@ -106,7 +107,7 @@ public:
QStringList arguments;
if (portsGatherer->useGdbServer()) {
int pdebugPort = portsGatherer->gdbServer().port();
- cmd.setExecutable(FilePath::fromString(QNX_DEBUG_EXECUTABLE));
+ cmd.setExecutable(device()->filePath(QNX_DEBUG_EXECUTABLE));
arguments.append(QString::number(pdebugPort));
}
if (portsGatherer->useQmlServer()) {
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index 22c937ac1c..6613042c52 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -155,7 +155,8 @@ void CodeAssistantPrivate::invoke(AssistKind kind, IAssistProvider *provider)
stopAutomaticProposalTimer();
- if (isDisplayingProposal() && m_assistKind == kind && !m_proposal->isFragile()) {
+ if (isDisplayingProposal() && m_assistKind == kind && !m_proposal->isFragile()
+ && m_proposal->supportsPrefix()) {
m_proposalWidget->setReason(ExplicitlyInvoked);
m_proposalWidget->updateProposal(m_editorWidget->textAt(
m_proposal->basePosition(),
@@ -324,8 +325,10 @@ void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistR
// TODO: The proposal should own the model until someone takes it explicitly away.
QScopedPointer<IAssistProposal> proposalCandidate(newProposal);
- if (isDisplayingProposal() && !m_proposal->isFragile())
+ if (isDisplayingProposal() && !m_proposal->isFragile()
+ && !m_proposalWidget->supportsModelUpdate(proposalCandidate->id())) {
return;
+ }
int basePosition = proposalCandidate->basePosition();
if (m_editorWidget->position() < basePosition) {
@@ -351,6 +354,7 @@ void CodeAssistantPrivate::displayProposal(IAssistProposal *newProposal, AssistR
&& basePosition == proposalCandidate->basePosition()
&& m_proposalWidget->supportsModelUpdate(proposalCandidate->id())) {
m_proposal.reset(proposalCandidate.take());
+ m_proposal->setReason(reason);
m_proposalWidget->updateModel(m_proposal->model());
m_proposalWidget->updateProposal(prefix);
return;
diff --git a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp
index 9a7f47aaee..ec7bb43f1b 100644
--- a/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp
+++ b/tests/auto/utils/qtcprocess/tst_qtcprocess.cpp
@@ -1243,7 +1243,7 @@ void tst_QtcProcess::recursiveCrashingProcess()
subConfig.setupSubProcess(&process);
process.start();
QVERIFY(process.waitForStarted(1000));
- QVERIFY(process.waitForFinished(3000));
+ QVERIFY(process.waitForFinished());
QCOMPARE(process.state(), QProcess::NotRunning);
QCOMPARE(process.exitStatus(), QProcess::NormalExit);
QCOMPARE(process.exitCode(), s_crashCode);