diff --git a/doc/qtcreator/images/qtcreator-add-resource-wizard.png b/doc/qtcreator/images/qtcreator-add-resource-wizard.png
deleted file mode 100644
index e76223f5b20..00000000000
Binary files a/doc/qtcreator/images/qtcreator-add-resource-wizard.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-add-resource-wizard2.png b/doc/qtcreator/images/qtcreator-add-resource-wizard2.png
deleted file mode 100644
index 13246171a3b..00000000000
Binary files a/doc/qtcreator/images/qtcreator-add-resource-wizard2.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-add-resource-wizard3.png b/doc/qtcreator/images/qtcreator-add-resource-wizard3.png
deleted file mode 100644
index 1ca3c01636e..00000000000
Binary files a/doc/qtcreator/images/qtcreator-add-resource-wizard3.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-class-info-qt-gui.png b/doc/qtcreator/images/qtcreator-class-info-qt-gui.png
deleted file mode 100644
index 9ca3f6aba4d..00000000000
Binary files a/doc/qtcreator/images/qtcreator-class-info-qt-gui.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-intro-and-location-qt-gui.png b/doc/qtcreator/images/qtcreator-intro-and-location-qt-gui.png
deleted file mode 100644
index 9d4e7b2ca03..00000000000
Binary files a/doc/qtcreator/images/qtcreator-intro-and-location-qt-gui.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-file-qrc.webp b/doc/qtcreator/images/qtcreator-new-file-qrc.webp
new file mode 100644
index 00000000000..1daa33c4a1b
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-file-qrc.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-file-qrc1.webp b/doc/qtcreator/images/qtcreator-new-file-qrc1.webp
new file mode 100644
index 00000000000..f7ad0ed335b
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-file-qrc1.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-file-qrc2.webp b/doc/qtcreator/images/qtcreator-new-file-qrc2.webp
new file mode 100644
index 00000000000..4a3d08e585c
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-file-qrc2.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-build-system-qt-gui.png b/doc/qtcreator/images/qtcreator-new-project-build-system-qt-gui.png
deleted file mode 100644
index e0e5bcda818..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-project-build-system-qt-gui.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-build-system.webp b/doc/qtcreator/images/qtcreator-new-project-build-system.webp
new file mode 100644
index 00000000000..fb0cc763bff
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-build-system.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-class-info.webp b/doc/qtcreator/images/qtcreator-new-project-class-info.webp
new file mode 100644
index 00000000000..94380ac1578
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-class-info.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-kit-selection.webp b/doc/qtcreator/images/qtcreator-new-project-kit-selection.webp
new file mode 100644
index 00000000000..bfaf1408418
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-kit-selection.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-location-qt-widgets.webp b/doc/qtcreator/images/qtcreator-new-project-location-qt-widgets.webp
new file mode 100644
index 00000000000..3f4eb8422c5
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-location-qt-widgets.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-class.webp b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-class.webp
new file mode 100644
index 00000000000..3324e3e4fc2
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-class.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-python-interpreter.webp b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-python-interpreter.webp
new file mode 100644
index 00000000000..0556d66d29e
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-define-python-interpreter.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-python-window-ui-ready.webp b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-ready.webp
new file mode 100644
index 00000000000..e9cba553bf9
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-ready.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-python-window-ui-widgets.webp b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-widgets.webp
new file mode 100644
index 00000000000..de2c5dc95ac
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-python-window-ui-widgets.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-python-window-ui.webp b/doc/qtcreator/images/qtcreator-new-project-python-window-ui.webp
new file mode 100644
index 00000000000..dd8273d0728
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-python-window-ui.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-qt-for-python-kit-selection.webp b/doc/qtcreator/images/qtcreator-new-project-qt-for-python-kit-selection.webp
index f7c3be17d5b..d8f94224496 100644
Binary files a/doc/qtcreator/images/qtcreator-new-project-qt-for-python-kit-selection.webp and b/doc/qtcreator/images/qtcreator-new-project-qt-for-python-kit-selection.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-qt-versions-qt-gui.png b/doc/qtcreator/images/qtcreator-new-project-qt-versions-qt-gui.png
deleted file mode 100644
index 292cac5e7ee..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-project-qt-versions-qt-gui.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-qt-widgets.webp b/doc/qtcreator/images/qtcreator-new-project-qt-widgets.webp
new file mode 100644
index 00000000000..4e485059450
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-qt-widgets.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-summary-qt-gui.png b/doc/qtcreator/images/qtcreator-new-project-summary-qt-gui.png
deleted file mode 100644
index 81faa7e18e6..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-project-summary-qt-gui.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-summary.webp b/doc/qtcreator/images/qtcreator-new-project-summary.webp
new file mode 100644
index 00000000000..9a0babbf7e7
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-summary.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-project-translation-file.webp b/doc/qtcreator/images/qtcreator-new-project-translation-file.webp
new file mode 100644
index 00000000000..7a7549e7d75
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-new-project-translation-file.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-project-details.webp b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-project-details.webp
index 14494a04d37..19dedb05a24 100644
Binary files a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-project-details.webp and b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-project-details.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-qt-quick-empty-project-location.webp b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-qt-quick-empty-project-location.webp
index 006338957fb..9e05b9dc92b 100644
Binary files a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-qt-quick-empty-project-location.webp and b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-qt-quick-empty-project-location.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-define-class.webp b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-define-class.webp
index 681df512fbe..d8883c7168d 100644
Binary files a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-define-class.webp and b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-define-class.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-project-location.webp b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-project-location.webp
index 7e0a84b9382..8d61b5bc215 100644
Binary files a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-project-location.webp and b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-widgets-project-location.webp differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-window-ui-uic.webp b/doc/qtcreator/images/qtcreator-new-qt-for-python-app-window-ui-uic.webp
deleted file mode 100644
index 2e6368d9141..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-qt-for-python-app-window-ui-uic.webp and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-gui-application-translationfile.png b/doc/qtcreator/images/qtcreator-new-qt-gui-application-translationfile.png
deleted file mode 100644
index 27282a68e8a..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-qt-gui-application-translationfile.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-new-qt-gui-application.png b/doc/qtcreator/images/qtcreator-new-qt-gui-application.png
deleted file mode 100644
index d2b3496c301..00000000000
Binary files a/doc/qtcreator/images/qtcreator-new-qt-gui-application.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp b/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp
index 4656ab1d80d..1a1520909f1 100644
Binary files a/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp and b/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp differ
diff --git a/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp b/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp
index ab33bfb8350..56da5804372 100644
Binary files a/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp and b/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp differ
diff --git a/doc/qtcreator/images/qtcreator-project-settings-copilot.webp b/doc/qtcreator/images/qtcreator-project-settings-copilot.webp
new file mode 100644
index 00000000000..8041f0ab93c
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-project-settings-copilot.webp differ
diff --git a/doc/qtcreator/images/qtcreator-refactoring-options-templates.png b/doc/qtcreator/images/qtcreator-refactoring-options-templates.png
deleted file mode 100644
index a5e53b37bc9..00000000000
Binary files a/doc/qtcreator/images/qtcreator-refactoring-options-templates.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-refactoring-options-templates.webp b/doc/qtcreator/images/qtcreator-refactoring-options-templates.webp
new file mode 100644
index 00000000000..4567b77ebb2
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-refactoring-options-templates.webp differ
diff --git a/doc/qtcreator/src/analyze/creator-axivion.qdoc b/doc/qtcreator/src/analyze/creator-axivion.qdoc
index 53735a9c31a..8f0a00e01ca 100644
--- a/doc/qtcreator/src/analyze/creator-axivion.qdoc
+++ b/doc/qtcreator/src/analyze/creator-axivion.qdoc
@@ -179,11 +179,10 @@
\li Go to \uicontrol Projects > \uicontrol {Project Settings} >
\uicontrol Axivion.
\image qtcreator-preferences-axivion-project.webp {Axivion settings in Project Settings}
- \li From \uicontrol {Dashboard} select one of the configured Axivion
- dashboard configurations.
- \li Select \uicontrol {Fetch Projects} to list projects from Axivion.
- \li Select a project, and then select \uicontrol {Link Project} to link
- to it.
+ \li Select the Axivion dashboard server to fetch projects from.
+ \li Select \uicontrol {Fetch Projects} to list projects from the server.
+ \li In \uicontrol {Dashboard projects} select a project.
+ \li Select \uicontrol {Link Project} to link to the project.
\endlist
To unlink a project, select \uicontrol {Unlink Project}.
diff --git a/doc/qtcreator/src/android/deploying-android.qdoc b/doc/qtcreator/src/android/deploying-android.qdoc
index 75f497cc6d7..84107b00ef4 100644
--- a/doc/qtcreator/src/android/deploying-android.qdoc
+++ b/doc/qtcreator/src/android/deploying-android.qdoc
@@ -227,7 +227,7 @@
If you use CMake as the build system, you must specify the Android package
source directory, \c QT_ANDROID_PACKAGE_SOURCE_DIR, in the CMakeList.txt
- file, as instructed in the \l{Locking Device Orientation}
+ file, as instructed in the \l{Lock device orientation}
{mobile device tutorial}.
To use \QC to create an Android manifest file and to open it in the Android
diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake-presets.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake-presets.qdoc
index 4e0160ba9eb..a749acd41ac 100644
--- a/doc/qtcreator/src/cmake/creator-projects-cmake-presets.qdoc
+++ b/doc/qtcreator/src/cmake/creator-projects-cmake-presets.qdoc
@@ -126,6 +126,9 @@
To speed up the process on Windows, specify the \c CMAKE_C_COMPILER and
\c CMAKE_CXX_COMPILER in the \c cacheVariables section.
+ For possible values of some of the \c debugger parameters, see
+ \l{Adding Debuggers}.
+
\section1 Ninja Generator Example
The following configure and build presets set Ninja Multi-Config as the
@@ -297,5 +300,5 @@
}
\endcode
- \sa {CMake Build Configuration}, {CMake}
+ \sa {CMake Build Configuration}, {CMake}, {SDK Tool}
*/
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger-example.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger-example.qdoc
index 964bbaf5e1b..dd12571c8dc 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger-example.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger-example.qdoc
@@ -1,4 +1,4 @@
-// Copyright (C) 2018 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// **********************************************************************
@@ -14,11 +14,12 @@
\ingroup creator-tutorials
- \title Debugging a C++ Application
+ \keyword {Debugging a C++ Application}
+ \title Tutorial: C++ debugging
\brief How to debug a C++ application.
- This tutorial uses the \l{Creating a Qt Widget Based Application}{TextFinder}
+ This tutorial uses the \l{Tutorial: Qt Widgets application}{TextFinder}
example to illustrate how to debug Qt C++ applications in the
\uicontrol Debug mode.
@@ -95,5 +96,5 @@
(\uicontrol {Step Into}), and \inlineimage icons/debugger_stepout_small.png
(\uicontrol {Step Out}).
- \sa {Creating a Qt Widget Based Application}, {Debugging}, {Debuggers}, {Debugger}
+ \sa {Tutorial: Qt Widgets application}, {Debugging}, {Debuggers}, {Debugger}
*/
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 a6bc84a87b0..b59003193aa 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc
@@ -140,7 +140,7 @@
\l{https://docs.python.org/3/library/pdb.html}{PDB} is a source code debugger
for Python applications. You can use it to debug projects that have a
- \l {Creating a Qt for Python Application with Qt Widgets}{.pyproject}
+ \l {Tutorial: Qt Widgets and Python}{.pyproject}
configuration file.
Install Python and set the interpreter to use in \uicontrol Projects
diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
index 6880c27b5a2..f941fda579e 100644
--- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
+++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc
@@ -207,9 +207,9 @@
expressions.
For more information, see \l{Debugging Qt Quick Projects} and
- \l{Debugging a Qt Quick Application}.
+ \l{Tutorial: Qt Quick debugging}.
- \sa {Debugging a C++ Application}, {Debug}{How To: Debug}, {Debuggers},
+ \sa {Tutorial: C++ debugging}, {Debug}{How To: Debug}, {Debuggers},
{Debugger}, {Kits}
*/
@@ -263,7 +263,7 @@
\section1 Debug Python projects
- For \l {Creating a Qt for Python Application with Qt Widgets}{Python} projects,
+ For \l {Tutorial: Qt Widgets and Python}{Python} projects,
start debugging the \c main.py file. If you encounter problems, check the
active build target in the \l{Build for many platforms}{kit selector}.
diff --git a/doc/qtcreator/src/debugger/qtquick-debugger-example.qdoc b/doc/qtcreator/src/debugger/qtquick-debugger-example.qdoc
index e7141a99f22..18f410b49dd 100644
--- a/doc/qtcreator/src/debugger/qtquick-debugger-example.qdoc
+++ b/doc/qtcreator/src/debugger/qtquick-debugger-example.qdoc
@@ -19,7 +19,8 @@
\ingroup creator-tutorials
- \title Debugging a Qt Quick Application
+ \keyword {Debugging a Qt Quick Application}
+ \title Tutorial: Qt Quick debugging
\brief How to debug a Qt Quick application.
diff --git a/doc/qtcreator/src/debugger/qtquick-debugging.qdoc b/doc/qtcreator/src/debugger/qtquick-debugging.qdoc
index e44a2f93fc9..d0b227bf436 100644
--- a/doc/qtcreator/src/debugger/qtquick-debugging.qdoc
+++ b/doc/qtcreator/src/debugger/qtquick-debugging.qdoc
@@ -26,7 +26,7 @@
JavaScript variables, as well as change their values temporarily at runtime.
For an example of how to debug Qt Quick Projects, see
- \l{Debugging a Qt Quick Application}.
+ \l{Tutorial: Qt Quick debugging}.
\if defined(qtdesignstudio)
\note In this section, you are using advanced menu items. These are not
diff --git a/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc b/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
index b3ded10f5d9..8bcbfd723c4 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-copilot.qdoc
@@ -98,14 +98,24 @@
You can turn the Copilot suggestions on and off either globally for all
projects or at project level for a particular project.
+ \section2 Toggle Copilot suggestions
+
To turn Copilot suggestions on or off globally, select
\inlineimage icons/copilot.png (\uicontrol {Toggle Copilot}). This also
sets the value of \uicontrol {Enable Copilot} in \preferences >
\uicontrol Copilot accordingly.
- To turn Copilot suggestions on or off for a particular project,
- go to \uicontrol Projects > \uicontrol {Project Settings} >
- \uicontrol Copilot and then select or clear \uicontrol {Enable Copilot}.
+ \section2 Turn suggestions on or off for a project
+
+ To turn Copilot suggestions on or off for a particular project:
+
+ \list 1
+ \li Go to \uicontrol Projects > \uicontrol {Project Settings} >
+ \uicontrol Copilot.
+ \image qtcreator-project-settings-copilot.webp {Copilot project settings}
+ \li Clear \uicontrol {Use global settings}.
+ \li Select or clear \uicontrol {Enable Copilot}.
+ \endlist
\sa {Enable and disable plugins}, {Edit Mode}
*/
diff --git a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
index ad5577b7a9b..011ea869b2e 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc
@@ -58,7 +58,7 @@
and \c to access the parameter and current value. Use \c to
access the type and \c for the template parameter.
- \image qtcreator-refactoring-options-templates.png {Settings for handling custom parameter types}
+ \image qtcreator-refactoring-options-templates.webp {Settings for handling custom parameter types}
Usually, arguments are passed by using a \c const reference. To pass
arguments of a particular type as values, list them in the
diff --git a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
index f41033c3e0d..8c54ecbe91c 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc
@@ -39,18 +39,18 @@
\li \inlineimage icons/tutorials.png
\li \inlineimage icons/api-reference.png
\row
- \li \b {\l{Building and Running an Example}}
+ \li \b {\l{Tutorial: Build and run}{Building and Running an Example}}
To check that \l{https://www.qt.io/download-qt-installer}
{\QOI} created \l{Kits}
{build and run kits}, open an example application and run it.
If you have not done so before, go to
- \l{Building and Running an Example}.
+ \l{Tutorial: Build and run}.
\li \b {\l{Tutorials}}
Now you are ready to start developing your own applications.
Pick a tutorial to follow in \l{Tutorials}. To start developing
- for mobile devices, select \l{Creating a Mobile Application}.
+ for mobile devices, select \l{Tutorial: Mobile application}.
\li \b{\l {Qt Documentation}}
For more examples, as well as the details about using Qt tools
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 83808a6a1e0..bef1f7cbb8f 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc
@@ -150,7 +150,7 @@
\list 1
\li Select \uicontrol File > \uicontrol {New File} > \uicontrol {Qt} >
\uicontrol {Qt Resource File} > \uicontrol Choose.
- \image qtcreator-add-resource-wizard.png {New File dialog}
+ \image qtcreator-new-file-qrc.webp {New File dialog}
\li Follow the instructions of the wizard to create a resource
collection file (.qrc).
\li Open the resource file in the resource editor.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc
index eb8e2a14ee1..206e028e348 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc
@@ -14,7 +14,8 @@
\ingroup creator-tutorials
- \title Building and Running an Example
+ \keyword {Building and Running an Example}
+ \title Tutorial: Build and run
\brief How to build and run a Qt example.
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 92858ff6078..7bf47440696 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
@@ -52,7 +52,7 @@
which plugins you have installed. If you do not get to choose,
the project usually uses CMake as the build system.
- \image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog}
+ \image qtcreator-new-project-build-system.webp {Define Build System dialog}
You can use wizards also to create plain C or C++ projects that use
qmake, Qbs, or CMake, but do not use the Qt library.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc
index fc66a62e8a7..4dfbc400c01 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc
@@ -91,7 +91,7 @@
For more information about the project file settings, see
\l{Declaring Other Libraries}{qmake Manual: Declaring Other Libraries}.
- \sa {Using an Internal Library in a qmake Project}{Tutorial: Using an Internal Library in a qmake Project},
+ \sa {Tutorial: Use internal libraries with qmake},
{Add subprojects to projects}, {Add libraries to CMake projects},
{Use project wizards}, {Creating Projects}
*/
@@ -103,7 +103,7 @@
\ingroup creator-tutorials
- \title Using an Internal Library in a qmake Project
+ \title Tutorial: Use internal libraries with qmake
\brief How to create your own library and link your application against it
when using qmake as the build system.
@@ -114,7 +114,7 @@
\note This tutorial only applies when you select qmake as the build
system for the subdirs project.
- \section1 Creating a shared library
+ \section1 Create a shared library
To create a shared library:
@@ -154,7 +154,7 @@
list, select a subdirs project. For example, \e MyApplication.
\endlist
- \section1 Linking an application to the library
+ \section1 Link an application to the library
To link a project to the shared library:
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 db6aefeb64c..cd839283baf 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
@@ -59,7 +59,7 @@
To change the values of environment variables for the build environment,
select the variable and then select \uicontrol Edit. Enter the new value
- in the editor on the righ side.
+ in the editor on the right side.
To add new variables, select \uicontrol {Add}.
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
index 2a032dabf75..942c42bddcf 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc
@@ -85,7 +85,7 @@
\li \l{Specify clangd settings}{Clangd}
\li \l{Specify Clang tools settings}{Clang Tools}
\li \l{Override CMake settings for a project}{CMake}
- \li \l{Set Copilot preferences}{Copilot}
+ \li \l{Turn suggestions on or off for a project}{Copilot}
\li \l{Configure C++ code model}{C++ Code Model}
\li \l{Specify code style}{C++ Code Style}
\li \l{Set C++ file naming preferences}{C++ File Naming}
diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-sharing.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-sharing.qdoc
index 09898e8f56e..11c3c984301 100644
--- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-sharing.qdoc
+++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-sharing.qdoc
@@ -16,9 +16,10 @@
\title Share project settings
\QC stores user-specific project settings in a \e {.user} file. You can
- share these settings between several projects as a \e {.shared} file. It
- has the same XML structure as a \e {.user} file, but only has the
- settings to share.
+ share these settings between several projects as a \e {.shared} file
+ (such as, \c {CMakeLists.txt.shared}, \c {qtcreator.pro.shared}, or
+ \c {qtcreator.qbs.shared}). It has the same XML structure as a \e {.user}
+ file, but only has the settings to share.
To share CMake project settings, use \l{CMake Presets} or a
\c {CMakeLists.txt.shared} file.
diff --git a/doc/qtcreator/src/python/creator-python-development.qdoc b/doc/qtcreator/src/python/creator-python-development.qdoc
index 10f054dcdab..f98aff41fa2 100644
--- a/doc/qtcreator/src/python/creator-python-development.qdoc
+++ b/doc/qtcreator/src/python/creator-python-development.qdoc
@@ -35,8 +35,9 @@
\section1 Set up PySide6
- If you have not installed the required version of PySide6, \QC prompts you to
- do so when you open a .py file.
+ The recommended way to run PySide6 projects from \QC is to install PySide6
+ for each project. \QC prompts you to do so the first time you open a .py file
+ for a project.
\image qtcreator-python-install.webp {Prompts to install PySide6 and Python language server}
@@ -55,12 +56,6 @@
\QD form, and the Qt Quick Application wizard creates a \c {.qml} file that
imports Qt Quick controls.
- \note Before importing UI classes and after editing them, create the Python
- code from your UI form. In PySide6, run \c{pyside6-uic form.ui -o ui_form.py}
- in the \l Terminal view.
-
- \image qtcreator-new-qt-for-python-app-window-ui-uic.webp {Creating Python code in Terminal}
-
The \uicontrol Window wizard adds code to the source file, without the UI
file.
@@ -113,7 +108,7 @@
\uicontrol {REPL Import File}. To also import all functions from
the file, select \uicontrol {REPL Import *}.
- \sa {Creating a Qt for Python Application with Qt Widgets},
- {Creating a Qt for Python Application with Qt Quick},
+ \sa {Tutorial: Qt Widgets and Python}, {Tutorial: Qt Widgets UI and Python},
+ {Tutorial: Qt Quick and Python},
{Activate kits for a project}
*/
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc
new file mode 100644
index 00000000000..f7aa1238777
--- /dev/null
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc
@@ -0,0 +1,115 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page creator-tutorial-python-application-qt-widgets-ui.html
+ \previouspage creator-tutorials.html
+ \nextpage creator-how-tos.html
+
+ \ingroup creator-tutorials
+
+ \title Tutorial: Qt Widgets UI and Python
+
+ \brief How to develop a Qt widget-based application that contains a
+ \l {UI file} (.ui) with Python.
+
+ First, create a Qt for Python application project. Then, use the integrated
+ \QD to design a widgets-based UI.
+
+ \image qtcreator-new-project-python-window-ui-ready.webp {A small Qt Widgets application}
+
+ For more examples of creating Qt for Python applications, see
+ \l {https://doc.qt.io/qtforpython/tutorials/index.html}
+ {Qt for Python Examples and Tutorials}.
+
+ \section1 Create a window UI project
+
+ To create a Qt for Python application that has the source file for a main
+ class:
+
+ \list 1
+ \li Go to \uicontrol File > \uicontrol {New Project}.
+ \li Select \uicontrol {Application (Qt for Python)} >
+ \uicontrol {Window UI} > \uicontrol Choose to open the
+ \uicontrol {Project Location} dialog.
+ \image qtcreator-new-project-python-window-ui.webp {Project Location dialog}
+ \li In \uicontrol {Name}, enter the project name. For example,
+ \e {hello_world_ui}.
+ \li In \uicontrol {Create in}, enter the path for the project files.
+ For example, \c {C:\Examples}.
+ \li Select \uicontrol{Next} (on Windows and Linux) or \uicontrol Continue
+ (on \macos) to open the \uicontrol {Define Class} dialog.
+ \image qtcreator-new-project-python-window-ui-define-class.webp {Define Class dialog}
+ \li In \uicontrol {Class name}, select \b {MainWindow} as the class
+ name.
+ \li In \uicontrol {Base class}, select \b {QMainWindow} as the base class.
+ \note The \uicontrol {Source file} field is automatically updated to
+ match the name of the class.
+ \li In \uicontrol {Project file}, enter a name for the project file.
+ \li Select \uicontrol{Next} or \uicontrol Continue to open the
+ \uicontrol {Define Python Interpreter} dialog.
+ \image qtcreator-new-project-python-window-ui-define-python-interpreter.webp {Define Python Interpreter dialog}
+ \li In \uicontrol {PySide version}, select the PySide version of the
+ generated code.
+ \li Select \uicontrol {Next} or \uicontrol {Continue} to open the
+ \uicontrol {Kit Selection} dialog.
+ \image qtcreator-new-project-qt-for-python-kit-selection.webp {Selecting a kit for a Python project}
+ \li Select Python kits for building, deploying, and running the
+ project. By default, this creates a virtual environment for the
+ project inside the source directory. To use the global interpreter,
+ select the build configuration with the same name as the Python of
+ the kit in \uicontrol {Details}.
+ \li Select \uicontrol {Next} or \uicontrol {Continue}.
+ \li Review the project settings, and select \uicontrol {Finish} (on
+ Windows and Linux) or \uicontrol Done (on \macos) to create the
+ project.
+ \endlist
+
+ The wizard generates the following files:
+
+ \list
+ \li \c {form.ui}, which is the UI file for the window UI.
+ \li \c {hello_world_ui.pyproject}, which lists the files in the Python
+ project.
+ \li \c {mainwindow.py}, which has some boilerplate code for a class.
+ \li \c {reguirements.txt}, which stores the PySide version of the
+ generated code. You can use this file to install the required PySide
+ version using pip.
+ \endlist
+
+ \include creator-tutorial-python-application-qtquick.qdoc install-pyside6
+
+ \section1 Design a widgets-based UI
+
+ \list 1
+ \li In the \uicontrol {Edit} mode, double-click the \c {form.ui} file
+ in the \uicontrol{Projects} view to launch the integrated \QD.
+ \li Drag the following widgets from \uicontrol {Widget Box} to the form:
+ \list
+ \li \uicontrol {Text Edit} (QTextEdit)
+ \li \uicontrol {Check Box} (QCheckBox)
+ \li \uicontrol {Push Button} (QPushButton)
+ \endlist
+ \image qtcreator-new-project-python-window-ui-widgets.webp {Adding widgets to the UI}
+ \note To easily locate the widgets, use the search box at the top of the
+ \uicontrol {Widget Box}. For example, to find the \uicontrol {Text Edit}
+ widget, start typing the word \b text.
+ \li Double-click the \uicontrol {Text Edit} widget and enter the text
+ \b{Enter text here}.
+ \li Double-click the \uicontrol {Check Box} widget and enter the text
+ \b{Select me}.
+ \li Double-click the \uicontrol {Push Button} widget and enter the text
+ \b{Click me}.
+ \li Press \key {Ctrl+S} (or \key {Cmd+S}) to save your changes.
+ \endlist
+
+ For more information about designing UIs with \QD, see \l{\QD Manual}.
+
+ \section1 Run the application
+
+ Select the \inlineimage icons/run_small.png
+ button to run the application.
+
+ \sa {Tutorial: Qt Quick and Python}, {Tutorial: Qt Widgets and Python},
+ {Develop Qt for Python Applications}
+*/
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
index 13b1f216380..b6eec3cb167 100644
--- a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
@@ -8,7 +8,8 @@
\ingroup creator-tutorials
- \title Creating a Qt for Python Application with Qt Widgets
+ \keyword {Creating a Qt for Python Application with Qt Widgets}
+ \title Tutorial: Qt Widgets and Python
\brief How to develop a Qt widget-based application with Python.
@@ -22,7 +23,7 @@
\l {https://doc.qt.io/qtforpython/tutorials/index.html}
{Qt for Python Examples and Tutorials}.
- \section1 Creating an Empty Window Project
+ \section1 Create an empty window project
To create a Qt for Python application that has the source file for a main
class:
@@ -75,7 +76,9 @@
using pip.
\endlist
- \section1 Adding Qt Widgets Imports
+ \include creator-tutorial-python-application-qtquick.qdoc install-pyside6
+
+ \section1 Add Qt Widgets imports
The wizard adds the imports to the \c mywidget.py source file for access to
the QApplication and the base class you selected in the Qt Widgets module,
@@ -90,7 +93,7 @@
from PySide6 import QtCore, QtWidgets
\endcode
- \section1 Adding a Widgets-Based UI
+ \section1 Add a widgets-based UI
The wizard adds a main class with the specified name that inherits from the
specified base class:
@@ -118,7 +121,7 @@
...
\endcode
- \section1 Adding Signals and Slots
+ \section1 Add signals and slots
Then, add a signal and a slot to implement the random function:
@@ -131,7 +134,7 @@
self.text.setText(random.choice(self.hello))
\endcode
- \section1 Adding a Main Function
+ \section1 Add a main function
The wizard adds a main function, where it creates a QApplication instance. As
Qt can receive arguments from the command line, you can pass any arguments to
@@ -144,7 +147,7 @@
...
\endcode
- \section1 Instantiating the MainWindow Class
+ \section1 Instantiate the MainWindow class
The wizard instantiates the \c MainWindow class and shows it:
@@ -155,7 +158,7 @@
...
\endcode
- \section1 Executing the Qt Code
+ \section1 Execute the Qt Code
Finally, the wizard calls the \c app.exec() method to enter the Qt
main loop and start executing the Qt code:
@@ -165,11 +168,11 @@
sys.exit(app.exec())
\endcode
- \section1 Running the Application
+ \section1 Run the application
Select the \inlineimage icons/run_small.png
button to run the application.
- \sa {Creating a Qt for Python Application with Qt Quick},
+ \sa {Tutorial: Qt Quick and Python}, {Tutorial: Qt Widgets UI and Python},
{Develop Qt for Python Applications}
*/
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
index f8570d1bbad..df3218197b3 100644
--- a/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
@@ -8,7 +8,8 @@
\ingroup creator-tutorials
- \title Creating a Qt for Python Application with Qt Quick
+ \keyword {Creating a Qt for Python Application with Qt Quick}
+ \title Tutorial: Qt Quick and Python
\brief How to develop a Qt Quick application with Python.
@@ -22,7 +23,7 @@
\l {https://doc.qt.io/qtforpython/tutorials/index.html}
{Qt for Python Examples and Tutorials}.
- \section1 Creating an Empty Project
+ \section1 Create an empty project
To create a Qt for Python application that has a main QML file:
@@ -65,7 +66,16 @@
using pip.
\endlist
- \section1 Adding Qt Quick Imports
+ //! [install-pyside6]
+ \section1 Install PySide6 for the project
+
+ In the \uicontrol {Edit} mode, select \uicontrol {Install} to set up PySide6
+ for the project.
+
+ \image qtcreator-python-install.webp {Prompt to install PySide6}
+ //! [install-pyside6]
+
+ \section1 Add Qt Quick imports
The wizard adds the following imports to the \c {main.py} source file for
access to QGuiApplication and QQmlApplicationEngine:
@@ -78,7 +88,7 @@
from PySide6.QtQml import QQmlApplicationEngine
\endcode
- \section1 Adding a Main Function
+ \section1 Add a main function
The wizard also adds a main function, where it creates a QGuiApplication
instance and passes system arguments to the QGuiApplication object:
@@ -89,7 +99,7 @@
...
\endcode
- \section1 Loading the QML File
+ \section1 Load the QML file
The following lines in the main class create a QQmlApplicationEngine
instance and load the generated QML file to the engine object:
@@ -115,12 +125,12 @@
...
\endcode
- \section1 Designing the UI
+ \section1 Design the UI
Open the \c {main.qml} file in the \uicontrol Edit mode to design a
Qt Quick UI.
- \section2 Adding Imports
+ \section2 Add imports
Add imports for Qt Quick Controls and Layouts:
@@ -131,7 +141,7 @@
import QtQuick.Layouts
\endcode
- \section2 Adding Properties and Functions
+ \section2 Add properties and functions
The wizard adds a main window:
@@ -158,7 +168,7 @@
}
\endcode
- \section2 Adding Qt Quick Controls
+ \section2 Add Qt Quick Controls
Add \l {Text} and \l {Button} QML types within a \l {ColumnLayout} type to
design the UI:
@@ -182,11 +192,10 @@
You can also use \l{Qt Design Studio Manual}{\QDS} to design Qt Quick UIs.
- \section1 Running the Application
+ \section1 Run the application
- Select the \inlineimage icons/run_small.png
- button to run the application.
+ Select \inlineimage icons/run_small.png to run the application.
- \sa {Creating a Qt for Python Application with Qt Widgets},
+ \sa {Tutorial: Qt Widgets and Python}, {Tutorial: Qt Widgets UI and Python},
{Develop Qt for Python Applications}
*/
diff --git a/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc b/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc
index b6f01f38a59..60c9b29f4df 100644
--- a/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc
+++ b/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc
@@ -7,7 +7,8 @@
\nextpage creator-how-tos.html
\ingroup creator-tutorials
- \title Creating a Mobile Application
+ \keyword {Creating a Mobile Application}
+ \title Tutorial: Mobile application
\brief How to create a Qt Quick application that uses Qt Quick Controls and
runs on Android and iOS devices.
@@ -24,7 +25,7 @@
\image creator_android_tutorial_ex_app.png
- \section1 Setting up the Development Environment
+ \section1 Set up the development environment
To build the application for and run it on a mobile device, you must
set up the development environment for the device platform and configure a
@@ -41,7 +42,7 @@
\include qtquick-tutorial-create-empty-project.qdocinc qtquick empty application
- \section1 Adding Images as Resources
+ \section1 Add images as resources
The main view of the application displays an SVG bubble image that moves
around the screen when you tilt the device.
@@ -54,7 +55,7 @@
\skipto qt_add_qml_module
\printuntil )
- \section1 Creating the Accelbubble Main View
+ \section1 Create the Accelbubble main view
Create the main view in the \e main.qml file by adding an \l Image
component with \e Bluebubble.svg as the source:
@@ -113,7 +114,7 @@
\printuntil }
\printuntil }
- \section1 Locking Device Orientation
+ \section1 Lock device orientation
The device display is rotated by default when the device orientation
changes between portrait and landscape. For this example, it would be
@@ -153,7 +154,7 @@
\skipto set_target_properties
\printuntil )
- \section1 Adding Dependencies
+ \section1 Add dependencies
You must tell the build system which Qt modules your application needs by
specifying dependencies in the project file. Select \uicontrol Projects to
@@ -184,7 +185,7 @@
For more information about the CMakeLists.txt file, see
\l{Getting started with CMake}.
- \section1 Running the Application
+ \section1 Run the application
You can now deploy the application to a device:
diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-app-tutorial.qdoc b/doc/qtcreator/src/qtquick/creator-only/qtquick-app-tutorial.qdoc
index b3b91a8d89e..ab1e9afe08c 100644
--- a/doc/qtcreator/src/qtquick/creator-only/qtquick-app-tutorial.qdoc
+++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-app-tutorial.qdoc
@@ -7,7 +7,8 @@
\nextpage creator-how-tos.html
\ingroup creator-tutorials
- \title Creating a Qt Quick Application
+ \keyword {Creating a Qt Quick Application}
+ \title Tutorial: Qt Quick application
\brief How to create a Qt Quick Application in the \uicontrol Edit mode.
@@ -33,7 +34,7 @@
\QC generates a component file, \e Main.qml, and opens it in the
\uicontrol Edit mode.
- \section1 Deploying Applications
+ \section1 Deploy applications
The main view of the application displays a Qt logo inside a rectangle in
the top left corner of the view and two empty rectangles.
@@ -46,7 +47,7 @@
\skipto qt_add_qml_module
\printuntil )
- \section1 Creating Custom QML Types
+ \section1 Create a custom QML type
Because the \l Window QML type requires that you add states into child
components, use the wizard to create a custom QML type called
@@ -58,7 +59,7 @@
\li Go to \uicontrol File > \uicontrol {New File}.
\li Select \uicontrol Qt > \uicontrol {QML File (Qt Quick 2)}.
\li Select \uicontrol Choose to open the \uicontrol Location dialog.
- \li In the \uicontrol {File name} field, enter a name for the custom
+ \li In \uicontrol {File name}, enter a name for the custom
QML type: \e Page.
\li Select \uicontrol Next to open the \uicontrol {Project Management}
dialog.
@@ -117,7 +118,7 @@
Next, make the image move between the rectangles when users click
them by adding states and by connecting mouse clicks to state changes.
- \section1 Connecting Mouse Clicks to State Changes
+ \section1 Connect mouse clicks to state changes
To make the image move between the rectangles when users click them, add
states to the Page component where you change the values of the \c x and
@@ -139,7 +140,7 @@
Because you develop with Qt 6, you must specify the connections as functions.
- \section1 Adding Page to the Main View
+ \section1 Add Page to the main view
Open \e Main.qml for editing and add an instance of the Page custom
component to it:
@@ -151,7 +152,7 @@
Press \key {Ctrl+R} to run the application, and click the rectangles to
move the Qt logo from one rectangle to another.
- \section1 Animating Transitions
+ \section1 Animate transitions
Create transitions to apply animation to the image. For example,
the image bounces back when it moves to \e middleRightRect and eases into
diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
index f7181c59cf1..6864010554e 100644
--- a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
+++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc
@@ -95,9 +95,9 @@
\QC creates a QML file, \e Main.qml, that you can modify in the
\uicontrol Edit mode.
- \sa {Create Qt Quick UI Prototypes}, {Creating a Mobile Application},
- {Creating a Qt for Python Application with Qt Quick},
- {Creating a Qt Quick Application}, {Creating Projects},
+ \sa {Create Qt Quick UI Prototypes}, {Tutorial: Mobile application},
+ {Tutorial: Qt Quick and Python},
+ {Tutorial: Qt Quick application}, {Creating Projects},
{Developing Qt Quick Applications}
*/
diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-tutorial-create-empty-project.qdocinc b/doc/qtcreator/src/qtquick/creator-only/qtquick-tutorial-create-empty-project.qdocinc
index 22d887c161c..03abe50380a 100644
--- a/doc/qtcreator/src/qtquick/creator-only/qtquick-tutorial-create-empty-project.qdocinc
+++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-tutorial-create-empty-project.qdocinc
@@ -4,11 +4,11 @@
/*!
//! [qtquick empty application]
- \section1 Creating the Project
+ \section1 Create the project
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
+ \li Go to \uicontrol File > \uicontrol {New Project} >
\uicontrol {Application (Qt)} > \uicontrol {Qt Quick Application}.
\image qtcreator-project-qt-quick.webp {New Project dialog}
@@ -16,11 +16,11 @@
\li Select \uicontrol Choose to open the
\uicontrol {Project Location} dialog.
- \li In the \uicontrol Name field, enter a name for the application.
+ \li In \uicontrol Name, enter a name for the application.
When naming your own projects, keep in mind that you cannot
easily rename them later.
- \li In the \uicontrol {Create in} field, enter the path for the project
+ \li In \uicontrol {Create in}, enter the path for the project
files. You can move project folders later without problems.
\li Select \uicontrol Next to open the
@@ -28,11 +28,10 @@
\image qtcreator-project-qt-quick-details.webp {Define Project Details dialog}
- \li Deselect the \uicontrol {Create a project that you can open in \QDS}
- check box.
+ \li Clear \uicontrol {Create a project that you can open in \QDS}.
\note This tutorial shows how to create the application in the
- \uicontrol Edit mode. If you leave the check box selected, the
+ \uicontrol Edit mode. If you leave the checkbox selected, the
following instructions won't apply.
\li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog.
diff --git a/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc b/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
index 78641697655..96a313b8b45 100644
--- a/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
+++ b/doc/qtcreator/src/qtquick/qtquick-toolbars.qdoc
@@ -107,6 +107,6 @@
To pin toolbars by default, select \uicontrol {Pin Qt Quick Toolbar}.
\if defined(qtcreator)
- \sa {Creating a Qt Quick Application}
+ \sa {Tutorial: Qt Quick application}
\endif
*/
diff --git a/doc/qtcreator/src/reference/creator-sdk-tool.qdoc b/doc/qtcreator/src/reference/creator-sdk-tool.qdoc
new file mode 100644
index 00000000000..546b5fdf22c
--- /dev/null
+++ b/doc/qtcreator/src/reference/creator-sdk-tool.qdoc
@@ -0,0 +1,760 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page creator-sdk-tool.html
+ \previouspage creator-reference.html
+
+ \ingroup creator-reference
+
+ \title SDK Tool
+
+ \brief Configure CMake and set up compilers, debuggers, devices, Qt versions,
+ and kits from the command line.
+
+ \QOI uses the SDK Tool (\c sdktool) to configure CMake and set \l {Kits}{Kit}
+ preferences, such as compilers, debuggers, devices, and Qt versions. You can
+ use it from the command line to set Qt and \QC preferences automatically for
+ all users of a computer, for example. For a single user, it is usually easier
+ to make changes in \preferences > \uicontrol Kits.
+
+ To use the SDK Tool, enter the following command in the \c {Tools\sdktool\bin}
+ directory in the Qt installation directory:
+
+ \badcode
+ sdktool [OPTION] [OPERATION [OPTIONS]]
+ \endcode
+
+ For information about the options and operations that your SDK Tool version
+ supports, enter:
+
+ \badcode
+ sdktool --help
+ \endcode
+
+ \section1 Value Types
+
+ The operations add settings in the form \c {:} to the
+ configuration that they create. The supported \c TYPE values are:
+
+ \list
+ \li \c bool
+ \li \c int
+ \li \l QByteArray
+ \li \l QString
+ \li \l QVariantList
+ \endlist
+
+ \section1 SDK Path
+
+ \QOI and the \QC stand-alone installer both install \c sdktool. The
+ \c sdktool from an installer defaults to the location from where the \QC
+ from the installer reads the information that the SDK Tool writes.
+ To point \c sdktool to some other \QC installation, set \c --sdkpath
+ depending on whether you use \QOI or an offline installer.
+
+ \list
+ \li \QOI: \c {/Tools/sdktool}
+ \li \QC stand-alone installer:
+ \list
+ \li On Windows and Linux: \c {/share/qtcreator/}
+ \li On \macos \c {Qt Creator.app/Contents/Resources/}
+ \endlist
+ \endlist
+
+ \section1 Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \row
+ \li \c {--help | -h}
+ \li Display help on SDK tool options.
+
+ Enter \c {--help } to get help on the options
+ required for the operation.
+ \row
+ \li \c {--sdkpath= | -s }
+ \li Set the path to the files that the SDK tool writes.
+ \endtable
+
+ \section1 Operations
+
+ The following table summarizes the available operations.
+
+ \table
+ \header
+ \li Operation
+ \li Description
+ \row
+ \li addAbiFlavor
+ \li Add a system architecture (ABI).
+ \row
+ \li \c {addCMake}
+ \li Add the path to a CMake tool.
+ \row
+ \li \c {addDebugger}
+ \li Add a debugger.
+ \row
+ \li \c {addDev}
+ \li Add a device.
+ \row
+ \li \c {addKeys}
+ \li Add settings as \c {:} key-value pairs.
+ \row
+ \li \c {addKit}
+ \li Add a build and run kit.
+ \row
+ \li \c {addQt}
+ \li Add a Qt version.
+ \row
+ \li \c {addTC}
+ \li Add a compiler.
+ \row
+ \li \c {find}
+ \li Find a setting value.
+ \row
+ \li \c {findKey}
+ \li Find a setting key.
+ \row
+ \li \c {get}
+ \li Get settings.
+ \row
+ \li \c {rmCMake}
+ \li Remove the path to a CMake tool.
+ \row
+ \li \c {rmDebugger}
+ \li Remove a debugger.
+ \row
+ \li \c {rmDev}
+ \li Remove a device
+ \row
+ \li \c {rmKeys}
+ \li Remove settings.
+ \row
+ \li \c {rmQt}
+ \li Remove a Qt version.
+ \row
+ \li \c {rmTC}
+ \li Remove a compiler.
+ \endtable
+
+ \section1 Adding a System Architecture (ABI)
+
+ \section2 addAbiFlavor
+
+ \badcode
+ sdktool addAbiFlavor --flavor --oses (,)*
+ \endcode
+
+ \section2 addAbiFlavor Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--flavor }
+ \li Name of the system architecture (ABI).
+ \li \inlineimage ok.png
+ \row
+ \li \c {--oses (,)*}
+ \li Operating system that the ABI applies to.
+ \li \inlineimage ok.png
+ \endtable
+
+ \section2 ABI Flavor Example
+
+ To add Yocto Poky on Linux, enter:
+
+ \badcode
+ ./sdktool addAbiFlavor \
+ --flavor poky \
+ --oses linux
+ \endcode
+
+ \section1 Adding CMake Tools
+
+ \section2 addCMake
+
+ \badcode
+ sdktool addCMake --id --name --path []
+ \endcode
+
+ \section2 addCMake Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--id }
+ \li ID of the CMake installation. Can be any ASCII (7-bit) string.
+
+ If you do not use a version number in the string, the registered
+ CMake keeps the ID when you update this CMake installation, and
+ therefore, all kits are automatically updated to use the new
+ version.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--name }
+ \li Name of the CMake installation.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--path }
+ \li Path to the CMake executable.
+ \li \inlineimage ok.png
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Add CMake tools}.
+
+ \section2 CMake Configuration Example
+
+ To add a CMake tool on Windows, enter:
+
+ \badcode
+ sdktool addCMake \
+ --id "my.custom.cmake" \
+ --name "Custom CMake" \
+ --path "C:\Program Files\CMake-3.30\bin\cmake.exe"
+ \endcode
+
+ \section1 Adding Compilers
+
+ \section2 addTC
+
+ \badcode
+ sdktool addTC --id --language --name --path --abi [OPTIONS]
+ \endcode
+
+ \section2 addTC Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--abi }
+ \li ABI of the compiler in a format that
+ \c {ProjectExplorer::Abi::fromString()} can parse.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--id }
+ \li ID of the toolchain in the format \c {ToolChainType:some_unique_part},
+ where the toolchain type can be one of the following, or something
+ else provided by a plugin:
+ \list
+ \li \c {ProjectExplorer.ToolChain.Msvc} for Microsoft MSVC
+ compilers. This compiler is automatically detected, so
+ you don't need to add it with the SDK tool.
+ \li \c {ProjectExplorer.ToolChain.Gcc} for GCC on Linux or
+ \macos.
+ \li \c {ProjectExplorer.ToolChain.Clang} for Clang.
+ \li \c {ProjectExplorer.ToolChain.LinuxIcc} for LinuxICC.
+ \li \c {ProjectExplorer.ToolChain.Mingw} for MinGW.
+ \li \c {ProjectExplorer.ToolChain.ClangCl} for Clang/CL.
+ \li \c {ProjectExplorer.ToolChain.Custom} for a custom
+ toolchain.
+ \li \c {Qt4ProjectManager.ToolChain.Android} for Android.
+ \li \c {Qnx.QccToolChain} for QNX QCC.
+ \li \c {WebAssembly.ToolChain.Emscripten} for Emscripten.
+ \endlist
+ Check the classes derived from \c {ProjectExplorer::ToolChain}
+ for their IDs.
+
+ \c {some_unique_part} can be anything. \QC uses GUIDs by default.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--language }
+ \li ID of the input language of the toolchain: \c C or \c Cxx.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--name }
+ \li Name of the toolchain.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--path }
+ \li Path to the compiler executable.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--supportedAbis ,}
+ \li List of ABIs that the compiler supports.
+ \li
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Add compilers}.
+
+ \section2 Compiler Example
+
+ To add a GCC compiler on Linux, enter:
+
+ \badcode
+ ./sdktool addTC \
+ --id "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \
+ --language Cxx
+ --name "GCC (C++, x86_64)" \
+ --path /home/code/build/gcc-6.3/usr/bin/g++ \
+ --abi x86-linux-generic-elf-64bit \
+ --supportedAbis x86-linux-generic-elf-64bit,x86-linux-generic-elf-32bit \
+ ADDITIONAL_INTEGER_PARAMETER int:42 \
+ ADDITIONAL_STRING_PARAMETER "QString:some string" \
+ \endcode
+
+ \section1 Adding Debuggers
+
+ \section2 addDebugger
+
+ \badcode
+ sdktool addDebugger --id --name [OPTIONS]
+ \endcode
+
+ \section2 addDebugger Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--abis }
+ \li Comma-separated list of system architecture definitions.
+ \li
+ \row
+ \li \c {--binary }
+ \li Path to the debugger executable. Can be an absolute path, the
+ value \c auto, or an ABI. Finds the appropriate debugger for MSVC
+ toolchains where \QC does not know the binary path.
+ \li
+ \row
+ \li \c {--engine }
+ \li Debugger engine type:
+ \list
+ \li 1 for GDB
+ \li 4 for CDB
+ \li 8 for PDB
+ \li 256 for LLDB
+ \li 512 for GDB DAP
+ \li 1024 for LLDB DAP
+ \li 4096 for uVision Debugger
+ \endlist
+ \li
+ \row
+ \li \c {--id }
+ \li Unique ID of the debugger.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--name }
+ \li Name of the debugger.
+ \li \inlineimage ok.png
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Add debuggers}.
+
+ \section2 Debugger Example
+
+ To add a GDB debugger on Linux, enter:
+
+ \badcode
+ ./sdktool addDebugger \
+ --id "company.product.toolchain.gdb" \
+ --name "GDB (company, product)" \
+ --engine 1 \
+ --binary /home/code/build/gdb-7.12/bin/gdb \
+ --abis arm-linux-generic-elf-32 \
+ \endcode
+
+ \section1 Adding Devices
+
+ \section2 addDev
+
+ \badcode
+ sdktool addDev --id --name --type [OPTIONS]
+ \endcode
+
+ \section2 addDev Options
+
+ The following table summarizes the available options. The options to use
+ depend on the device type.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--authentication }
+ \li Authentication method:
+ \list
+ \li 1 for all authentication methods
+ \li 2 for SSH authentication using a public and private key
+ pair
+ \endlist
+ \li
+ \row
+ \li \c {--b2qHardware }
+ \li Boot to Qt platform info about hardware.
+ \li
+ \row
+ \li \c {--b2qSoftware }
+ \li Boot to Qt platform info about software.
+ \li
+ \row
+ \li \c {--debugServerKey }
+ \li Debug server key.
+ \li
+ \row
+ \li \c {--dockerClangdExecutable }
+ \li Path to the Clangd executable in the Docker container.
+ \li
+ \row
+ \li \c {--dockerMappedPaths }
+ \li Semicolon-separated list of Docker mapped paths.
+ \li
+ \row
+ \li \c {--dockerRepo }
+ \li Docker image repository.
+ \li
+ \row
+ \li \c {--dockerTag }
+ \li Docker image tag.
+ \li
+ \row
+ \li \c {--freePorts }
+ \li Free ports.
+ \li
+ \row
+ \li \c {--host }
+ \li Host name or IP address of the device.
+ \li
+ \row
+ \li \c {--id }
+ \li Unique ID of the device.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--keyFile }
+ \li Path to the user's private key file.
+ \li
+ \row
+ \li \c {--name }
+ \li Name of the device.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--origin }
+ \li Whether the device was detected automatically:
+ \list
+ \li 1 for a manually added device
+ \li 2 for an automatically detected device
+ \endlist
+ \li
+ \row
+ \li \c {--osType }
+ \li Operating system on the device:
+ \list
+ \li \c Android.Device.Type
+ \li \c BareMetalOsType
+ \li \c QdbLinuxOsType
+ \li \c DockerDeviceType
+ \li \c Ios.Device.Type
+ \li \c Ios.Simulator.Type
+ \li \c McuSupport.DeviceType
+ \li \c Desktop
+ \li \c WebAssemblyDeviceType
+ \li \c QnxOsType
+ \li \c GenericLinuxOsType
+ \endlist
+ \li
+ \row
+ \li \c {--password }
+ \li Password for password authentication.
+ \li
+ \row
+ \li \c {--sshPort }
+ \li Port number for SSH connections.
+ \li
+ \row
+ \li \c {--timeout }
+ \li Timeout for reusing the SSH connection in seconds.
+ \li
+ \row
+ \li \c {--type }
+ \li Device type:
+ \list
+ \li 1 for a hardware device
+ \li 2 for an emulator, simulator, or virtual device
+ \endlist
+ \li \inlineimage ok.png
+ \row
+ \li \c {--uname }
+ \li Username to access the device.
+ \li
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Develop for Devices}{How To: Develop for Devices}.
+
+ \section2 Linux Device Example
+
+ To add a remote Linux device (hardware device) on Linux and use SSH keys to
+ authenticate to the device, enter:
+
+ \badcode
+ ./sdktool addDev \
+ --id " LinuxDevice1" \
+ --name "My Remote Linux Device" \
+ --type 1 \
+ --authentication 2 \
+ --freePorts "10000-10100" \
+ --host "10.10.10.15" \
+ --keyFile "/usr/.ssh/qtc_id" \
+ --origin 1 \
+ --osType "GenericLinuxOsType" \
+ --sshPort 22 \
+ --timeout 10 \
+ --uname "root"
+ \endcode
+
+ \section1 Adding Qt Versions
+
+ \section2 addQt
+
+ \badcode
+ sdktool addQt --id --name --qmake --type [OPTIONS]
+ \endcode
+
+ \section2 addQt Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--abis }
+ \li Comma-separated list of system architecture definitions.
+ \li
+ \row
+ \li \c {--id }
+ \li ID of the Qt installation. \QC automatically sets the ID when it
+ detects Qt versions installed on the computer.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--name }
+ \li Name of the Qt installation.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--qmake }
+ \li Path to the qmake executable in the Qt installation.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--type }
+ \li The type of the Qt version:
+ \list
+ \li \c {Qt4ProjectManager.QtVersion.Android} for Android.
+ \li \c {Qt4ProjectManager.QtVersion.Desktop} for a desktop Qt.
+ \li \c {Qt4ProjectManager.QtVersion.Ios} for iOS.
+ \li \c {Qt4ProjectManager.QtVersion.QNX.QNX} for QNX.
+ \li \c {RemoteLinux.EmbeddedLinuxQt} for Embedded Linux.
+ \li \c {Qt4ProjectManager.QtVersion.WebAssembly} for
+ WebAssembly.
+ \endlist
+ The string returned by \c {QtVersion::type()}.
+ \li \inlineimage ok.png
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Add Qt versions}.
+
+ \section2 Qt Version Example
+
+ To add a self-built Qt 6.8 version on Linux, enter:
+
+ \badcode
+ ./sdktool addQt \
+ --id "company.product.qt" \
+ --name "Custom Qt" \
+ --qmake /home/code/build/qt-6.8/bin/qmake \
+ --type Qt4ProjectManager.QtVersion.Desktop \
+ \endcode
+
+ \section1 Adding Kits
+
+ \section2 addKit
+
+ \badcode
+ sdktool addKit --id --name --devicetype [OPTIONS]
+ \endcode
+
+ \section2 addKit Options
+
+ The following table summarizes the available options.
+
+ \table
+ \header
+ \li Option
+ \li Description
+ \li Required
+ \row
+ \li \c {--builddevice }
+ \li The ID of the device to build applications on.
+ \li
+ \row
+ \li \c {--cmake }
+ \li The ID of the CMake executable to use for building the project.
+ \li
+ \row
+ \li \c {--cmake-config }
+ \li Parameters for the CMake configuration of the kit. You can add
+ multiple entries of this type.
+ \li
+ \row
+ \li \c {--cmake-generator :::}
+ \li The CMake Generator to use for producing project files.
+ \li
+ \row
+ \li \c {--debugger }
+ \li Path to the debugger to use for the kit. Do not use this option
+ with \c {--debuggerid}.
+ \li
+ \row
+ \li \c {--debuggerengine }
+ \li The type of the debugger set with \c {--debugger}. Do not use
+ this option with \c {--debuggerid}.
+ \li
+ \row
+ \li \c {--debuggerid }
+ \li One of the IDs used when adding debuggers with the
+ \c {addDebugger} operation. Do not use this option
+ with \c {--debugger} and \c {--debuggerengine}.
+ \li
+ \row
+ \li \c {--device }
+ \li The device to run applications on.
+ \li
+ \row
+ \li \c {--devicetype }
+ \li The type of the device to run applications on:
+ \list
+ \li \c {Android.Device.Type} for Android devices.
+ \li \c {Desktop} for code running on the local desktop.
+ \li \c {Ios.Device.Type} for iOS devices.
+ \li \c {Ios.Simulator.Type} for iOS simulators.
+ \li \c {GenericLinuxOsType} for embedded Linux devices.
+ \li \c {WebAssemblyDeviceType} for web browsers.
+ \endlist
+ The string returned by \c {IDevice::type()}.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--env }
+ \li Environment variable values for the build environment. You can
+ add multiple entries of this type.
+ \li
+ \row
+ \li \c {--icon }
+ \li Path to the image to use as an icon for the kit.
+ \li
+ \row
+ \li \c {--id }
+ \li ID of the kit. \QC automatically sets the ID when it
+ detects Qt versions installed on the computer.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--toolchain }
+ \li One of the IDs used when adding compilers with the \c {addTC}
+ operation. is: \c C, \c Cxx, \c Nim, or something set
+ by a plugin.
+ \li
+ \row
+ \li \c {--mkspec }
+ \li The \c mkspec configuration that qmake uses. Omit this option
+ to use the default \c mkspec of the set Qt version.
+ \li
+ \row
+ \li \c {--name }
+ \li Name of the kit. You can use variables to generate the kit name
+ based on the kit elements you set with the other operations, such
+ as the Qt version.
+ \li \inlineimage ok.png
+ \row
+ \li \c {--qt }
+ \li One of the IDs used when adding Qt versions with the \c {addQt}
+ operation.
+ \li
+ \row
+ \li \c {}
+ \li Additional settings as key-value pairs.
+ \li
+ \endtable
+
+ For more information, see \l{Add kits}.
+
+ \section2 Kit Example
+
+ To add a kit that uses the GCC compiler and the self-built Qt to build
+ applications on Linux, enter:
+
+ \badcode
+ ./sdktool addKit \
+ --id "company.product.kit" \
+ --name "Qt %{Qt:Version} (company, product)" \
+ --debuggerid "company.product.toolchain.gdb" \
+ --devicetype GenericLinuxOsType \
+ --sysroot /tmp/sysroot \
+ --Ctoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.gcc" \
+ --Cxxtoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \
+ --qt "company.product.qt" \
+ --mkspec "devices/linux-mipsel-broadcom-97425-g++" \
+ \endcode
+
+ \section1 Adding, Getting, and Finding Keys
+
+ Enter the path to a file relative to the top-level settings directory and
+ without .xml extension, followed by one or more \c {:}
+ key-value pairs.
+
+ \section1 Removing Configured Items
+
+ To remove a CMake tool, compiler, debugger, device, Qt version, or kit,
+ enter:
+
+ \badcode
+ rm --id
+ \endcode
+
+ Where \c is the ID of the item.
+
+ \sa {Manage Kits}{How To: Manage Kits}, {Installation}, {Kits}
+*/
diff --git a/doc/qtcreator/src/widgets/qtdesigner-app-tutorial.qdoc b/doc/qtcreator/src/widgets/qtdesigner-app-tutorial.qdoc
index 4596d46da2e..5f68781285a 100644
--- a/doc/qtcreator/src/widgets/qtdesigner-app-tutorial.qdoc
+++ b/doc/qtcreator/src/widgets/qtdesigner-app-tutorial.qdoc
@@ -7,9 +7,10 @@
\nextpage creator-how-tos.html
\ingroup creator-tutorials
- \title Creating a Qt Widget Based Application
+ \keyword {Creating a Qt Widget Based Application}
+ \title Tutorial: Qt Widgets application
- \brief How to use the integrated \QD to create a Qt widget based application
+ \brief How to use the integrated \QD to create a Qt widget-based application
for the desktop.
This tutorial describes how to use \QC to create a small Qt application,
@@ -19,54 +20,54 @@
\image qtcreator-textfinder-screenshot.png
- \section1 Creating the Text Finder Project
+ \section1 Create the Text Finder project
\list 1
- \li Select \uicontrol File > \uicontrol {New Project} >
- \uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application}
- > \uicontrol Choose.
+ \li Go to \uicontrol File > \uicontrol {New Project} >
+ \uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application}.
- \image qtcreator-new-qt-gui-application.png {New Project dialog}
+ \image qtcreator-new-project-qt-widgets.webp {New Project dialog}
- The \uicontrol{Project Location} dialog opens.
+ \li Select \uicontrol Choose to open the \uicontrol {Project Location}
+ dialog.
- \image qtcreator-intro-and-location-qt-gui.png {Project Location dialog}
+ \image qtcreator-new-project-location-qt-widgets.webp {Project Location dialog}
- \li In the \uicontrol{Name} field, type \b {TextFinder}.
+ \li In \uicontrol{Name}, type \b {TextFinder}.
- \li In the \uicontrol {Create in} field, enter the path for the project files.
+ \li In \uicontrol {Create in}, enter the path for the project files.
For example, \c {C:\Qt\examples}.
\li Select \uicontrol{Next} (on Windows and Linux) or
\uicontrol Continue (on \macos) to open the
\uicontrol {Define Build System} dialog.
- \image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog}
+ \image qtcreator-new-project-build-system.webp {Define Build System dialog}
- \li In the \uicontrol {Build system} field, select \l {CMake}
+ \li In \uicontrol {Build system}, select \l {CMake}
{CMake} as the build system to use for building the project.
\li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol{Class Information} dialog.
- \image qtcreator-class-info-qt-gui.png {Class Information dialog}
+ \image qtcreator-new-project-class-info.webp {Class Information dialog}
- \li In the \uicontrol{Class name} field, type \b {TextFinder} as the class
+ \li In \uicontrol{Class name}, type \b {TextFinder} as the class
name.
- \li In the \uicontrol{Base class} list, select \b {QWidget} as the base
+ \li In \uicontrol{Base class}, select \b {QWidget} as the base
class type.
- \note The \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file}
- fields are automatically updated to match the name of the class.
+ \note \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file}
+ s are automatically updated to match the name of the class.
\li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Translation File} dialog.
- \image qtcreator-new-qt-gui-application-translationfile.png {Translation File dialog}
+ \image qtcreator-new-project-translation-file.webp {Translation File dialog}
- \li In the \uicontrol Language field, you can select a language that you
+ \li In \uicontrol Language, you can select a language that you
plan to \l {Use Qt Linguist}{translate} the application to. This
sets up localization support for the application. You can add other
languages later by editing the project file.
@@ -74,7 +75,7 @@
\li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Kit Selection} dialog.
- \image qtcreator-new-project-qt-versions-qt-gui.png {Kit Selection dialog}
+ \image qtcreator-new-project-kit-selection.webp {Kit Selection dialog}
\li Select build and run \l{Kits}{kits} for your
project.
@@ -82,7 +83,7 @@
\li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Project Management} dialog.
- \image qtcreator-new-project-summary-qt-gui.png {Project Management dialog}
+ \image qtcreator-new-project-summary.webp {Project Management dialog}
\li Review the project settings, and select \uicontrol{Finish} (on Windows and
Linux) or \uicontrol Done (on \macos) to create the project.
@@ -111,18 +112,18 @@
If you selected CMake as the build system, \QC created a CMakeLists.txt
project file for you.
- \section1 Filling in the Missing Pieces
+ \section1 Fill in the missing pieces
Begin by designing the user interface and then move on to filling
in the missing code. Finally, add the find functionality.
- \section2 Designing the User Interface
+ \section2 Design the user interface
\image qtcreator-textfinder-ui.png {Text Finder UI}
\list 1
- \li In the \uicontrol{Editor} mode, double-click the textfinder.ui file in the
+ \li In the \uicontrol {Edit} mode, double-click the textfinder.ui file in the
\uicontrol{Projects} view to launch the integrated \QD.
\li Drag the following widgets to the form:
@@ -138,10 +139,10 @@
\image qtcreator-textfinder-ui-widgets.png {Adding widgets to Text Finder UI}
\note To easily locate the widgets, use the search box at the top of the
- \uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing
- the word \b label.
+ \uicontrol {Widget Box}. For example, to find the \uicontrol Label widget,
+ start typing the word \b label.
- \image qtcreator-textfinder-filter.png {Filter field}
+ \image qtcreator-textfinder-filter.png {Filter}
\li Double-click the \uicontrol{Label} widget and enter the text
\b{Keyword}.
@@ -199,7 +200,7 @@
For more information about designing forms with \QD, see the
\l{\QD Manual}.
- \section2 Completing the Header File
+ \section2 Complete the header file
The textfinder.h file already has the necessary #includes, a constructor,
a destructor, and the \c{Ui} object. You need to add a private function,
@@ -218,7 +219,7 @@
\endlist
- \section2 Completing the Source File
+ \section2 Complete the source file
Now that the header file is complete, move on to the source file,
textfinder.cpp.
@@ -258,7 +259,7 @@
QMetaObject::connectSlotsByName(TextFinder);
\endcode
- \section2 Creating a Resource File
+ \section2 Create a resource file
You need a resource file (.qrc) within which you embed the input
text file. The input file can be any .txt file with a paragraph of text.
@@ -269,32 +270,32 @@
\list 1
- \li Select \uicontrol File > \uicontrol {New File} >
+ \li Go to \uicontrol File > \uicontrol {New File} >
\uicontrol Qt > \uicontrol {Qt Resource File} > \uicontrol Choose.
- \image qtcreator-add-resource-wizard.png {New File dialog}
+ \image qtcreator-new-file-qrc.webp {New File dialog}
The \uicontrol {Choose the Location} dialog opens.
- \image qtcreator-add-resource-wizard2.png {Choose the Location dialog}
+ \image qtcreator-new-file-qrc1.webp {Choose the Location dialog}
- \li In the \uicontrol{Name} field, enter \b{textfinder}.
+ \li In \uicontrol{Name}, enter \b{textfinder}.
- \li In the \uicontrol{Path} field, enter the path to the project,
+ \li In \uicontrol{Path}, enter the path to the project,
and select \uicontrol Next or \uicontrol Continue.
The \uicontrol{Project Management} dialog opens.
- \image qtcreator-add-resource-wizard3.png {Project Management dialog}
+ \image qtcreator-new-file-qrc2.webp {Project Management dialog}
- \li In the \uicontrol{Add to project} field, select \b{TextFinder}
+ \li In \uicontrol{Add to project}, select \b{TextFinder}
and select \uicontrol{Finish} or \uicontrol Done to open the file
in the code editor.
\li Select \uicontrol Add > \uicontrol {Add Prefix}.
- \li In the \uicontrol{Prefix} field, replace the default prefix with a slash
+ \li In \uicontrol{Prefix}, replace the default prefix with a slash
(/).
\li Select \uicontrol Add > \uicontrol {Add Files}, to locate and add
@@ -304,7 +305,7 @@
\endlist
- \section1 Adding Resources to Project File
+ \section1 Add resources to the project file
For the text file to appear when you run the application, you must specify
the resource file as a source file in the \e CMakeLists.txt file that the
@@ -314,10 +315,9 @@
\skipto set(PROJECT_SOURCES
\printuntil )
- \section1 Compiling and Running Your Application
+ \section1 Build and run your application
- Now that you have all the necessary files, select the
- \inlineimage icons/run_small.png
- button to compile and run your application.
+ Now that you have all the necessary files, select
+ \inlineimage icons/run_small.png to build and run your application.
*/
diff --git a/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc b/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
index 29d2c7d34b1..724fbba6125 100644
--- a/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
+++ b/doc/qtcreator/src/widgets/qtdesigner-overview.qdoc
@@ -119,5 +119,5 @@
To import device profiles from .qdp files, select \uicontrol Open. To save
them as .qdp files, select \uicontrol Save.
- \sa {Creating a Qt Widget Based Application}, {Adding \QD Plugins}
+ \sa {Tutorial: Qt Widgets application}, {Adding \QD Plugins}
*/
diff --git a/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc b/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc
index 3ce3dc02f7c..2ba9886f8bf 100644
--- a/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc
+++ b/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc
@@ -69,5 +69,5 @@
\MinGW or installing a Qt version that was built with Microsoft Visual Studio,
depending on which configuration you want to use for your applications.
- \sa {Creating a Qt Widget Based Application}, {\QD}
+ \sa {Tutorial: Qt Widgets application}, {\QD}
*/
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 29fa29e0eb0..e447c639cf5 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -632,6 +632,9 @@ class DumperBase():
self.register_struct('@QList<@QStandardItemData>', p5=1, p6=3)
self.register_struct('@QList<@QRect>', p5=1, p6=3)
+ typeid_string_list = self.register_struct('@QList<@QString>', p5=1, p6=3)
+ self.register_typedef('@QStringList', typeid_string_list)
+
typeid_var_list = self.register_struct('@QList<@QVariant>', p5=1, p6=3)
self.register_typedef('@QVariantList', typeid_var_list)
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt b/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt
index 283ebad166a..d933a878514 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16)
# Remove when sharing with others.
-@if %{JS: Util.isDirectory('%{QtCreatorBuild}/Qt Creator.app/Contents/Resources')}
+@if %{JS: Util.isDirectory('%{QtCreatorBuild}/Qt Creator.app/Contents/Resources/lib/cmake/QtCreator')}
list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}/Qt Creator.app/Contents/Resources")
@else
- @if %{JS: Util.isDirectory('%{QtCreatorBuild}/Contents/Resources')}
+ @if %{JS: Util.isDirectory('%{QtCreatorBuild}/Contents/Resources/lib/cmake/QtCreator')}
list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}/Contents/Resources")
@else
list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}")
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 64cb6774620..a86d19c6a79 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -47079,7 +47079,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite "Checking Code
JavaScript can break the visual tooling in Qt Design Studio.
-
+ JavaScript kann das visuelle Tooling in Qt Design Studio stören.Duplicate import (%1).
@@ -47464,23 +47464,23 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de
Turn on
-
+ EinschaltenAllow versions below Qt %1
-
+ Versionen niedriger als Qt %1 erlaubenUse advanced features (renaming, find usages, and so on) (experimental)
-
+ Erweiterte Funktionen verwenden (umbenennen, Verweise finden und weiteres) (experimentell)Use from latest Qt version
-
+ Neueste Qt-Version verwendenCreate .qmlls.ini files for new projects
-
+ .qmlls.ini-Dateien für neue Projekte erstellenQML Language Server
@@ -48579,7 +48579,7 @@ Speichern fehlgeschlagen.
Override device QML viewer:
-
+ Statt QML-Viewer auf Gerät verwenden:System Environment
@@ -48592,31 +48592,31 @@ Speichern fehlgeschlagen.
QML UtilityQMLRunConfiguration display name.
-
+ QML-WerkzeugNo QML utility found.
-
+ Kein QML-Werkzeug gefunden.No QML utility specified for target device.
-
+ Für das Zielgerät wurde kein QML-Werkzeug angegeben.Qt Version:
-
+ Qt-Version:Qt 6
- Qt 6
+ Qt 6Qt 5
- Qt 5
+ Qt 5QML Runtime
-
+ QML-RuntimeNo script file to execute.
@@ -48632,7 +48632,7 @@ Speichern fehlgeschlagen.
Update QmlProject File
-
+ QmlProject-Datei aktualisierenWarning while loading project file %1.
@@ -48640,164 +48640,169 @@ Speichern fehlgeschlagen.
No Qt Design Studio installation found
-
+ Es wurde keine Installation von Qt Design Studio gefundenWould you like to install it now?
-
+ Möchten Sie es jetzt installieren?Install
- Installieren
+ InstallierenUnknown
- Unbekannt
+ UnbekanntQML PROJECT FILE INFO
-
+ QML PROJECT FILE INFOQt Version -
-
+ Qt-Version - Qt Design Studio Version -
-
+ Qt Design Studio-Version - No QML project file found - Would you like to create one?
-
+ Keine QML-Projektdatei gefunden - möchten Sie eine erstellen?Generate
-
+ ErstellenQt Design Studio
- Qt Design Studio
+ Qt Design StudioOpen with Qt Design Studio
-
+ Mit Qt Design Studio öffnenOpen
- Öffnen
+ ÖffnenOpen with Qt Creator - Text Mode
-
+ Mit Qt Creator im Textmodus öffnenRemember my choice
-
+ Meine Auswahl speichernExport Project
-
+ Projekt exportierenEnable Automatic CMake Generation
-
+ Automatische CMake-Erstellung aktivierenUse MultiLanguage in 2D view
-
+ MultiLanguage in der 2D-Ansicht verwendenReads translations from MultiLanguage plugin.
-
+ Liest Übersetzungen aus dem MultiLanguage-Plugin.Failed to start Qt Design Studio.
-
+ Qt Design Studio konnte nicht gestartet werden.No project file (*.qmlproject) found for Qt Design Studio.
Qt Design Studio requires a .qmlproject based project to open the .ui.qml file.
-
+ Es wurde keine Projektdatei (*.qmlproject) für Qt Design Studio gefunden.
+Qt Design Studio benötigt zum Öffnen der .ui.qml-Datei ein .qmlproject-basiertes Projekt.Set as Main .qml File
-
+ Als .qml-Hauptdatei setzenSet as Main .ui.qml File
-
+ Als .ui.qml-Hauptdatei setzenProject File Generated
-
+ Projektdatei erstelltFile created:
%1
-
+ Datei erstellt:
+
+%1Select File Location
-
+ Dateipfad auswählenQt Design Studio Project Files (*.qmlproject)
-
+ Qt Design Studio Projektdateien (*.qmlproject)Invalid Directory
-
+ Ungültiges VerzeichnisProject file must be placed in a parent directory of the QML files.
-
+ Die Projektdatei muss in einem den QML-Dateien übergeordneten Verzeichnis erstellt werden.Problem
-
+ ProblemSelected directory is far away from the QML file. This can cause unexpected results.
Are you sure?
-
+ Das ausgewählte Verzeichnis liegt weit entfernt von der QML-Datei. Dies kann zu unerwarteten Ergebnissen führen.
+
+Sind Sie sicher?Cannot find a valid build system.
-
+ Es kann kein gültiges Build-System gefunden werden.Cannot create a valid build directory.
-
+ Es kann kein gültiges Build-Verzeichnis erstellt werden.Command:
-
+ Kommando:Arguments:
- Argumente:
+ Argumente:Build directory:
- Build-Verzeichnis:
+ Build-Verzeichnis:The Selected Kit Is Not Supported
-
+ Das gewählte Kit wird nicht unterstütztYou cannot use the selected kit to preview Qt for MCUs applications.
-
+ Das gewählte Kit kann nicht zur Vorschau von Qt for MCUs-Anwendungen verwendet werden.Cannot find a valid Qt for MCUs kit.
-
+ Es kann kein gültiges Kit für Qt for MCUs gefunden werden.Qt for MCUs Deploy Step
-
+ Qt for MCUs Deployment-Schritt
@@ -50098,13 +50103,15 @@ Zusätzlich wird die Verbindung zum Gerät getestet.
Use SSH port forwarding for debugging
-
+ SSH-Portweiterleitung zum Debuggen verwendenEnable debugging on remote targes which cannot expose gdbserver ports.
The ssh tunneling is used to map the remote gdbserver port to localhost.
The local and remote ports are determined automatically.
-
+ Mache Debuggen auf entfernten Zielen möglich, die gdbserver-Ports nicht direkt bereitstellen können.
+Es wird SSH-Tunneling verwendet, um die entfernten gdbserver-Ports auf localhost abzubilden.
+Die lokalen und entfernten Ports werden automatisch bestimmt.&Username:
@@ -50207,7 +50214,7 @@ Der Steuerprozess konnte nicht gestartet werden.
Device "%1" is disconnected.
-
+ Gerät "%1" ist nicht verbunden.Remote Linux
@@ -50232,17 +50239,19 @@ Der Steuerprozess konnte nicht gestartet werden.
Created directory: "%1".
-
+ Verzeichnis wurde erstellt: "%1".
+Copied %1/%2: "%3" -> "%4".
%1/%2 = progress in the form 4/15, %3 and %4 = source and target file paths
-
+ %1/%2 kopiert: "%3 -> "%4".
+Failed to deploy files.
-
+ Deployment der Dateien ist fehlgeschlagen.Device is considered unconnected. Re-run device test to reset state.
@@ -50384,15 +50393,15 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
%1 failed to start: %2
-
+ %1 konnte nicht gestartet werden: %2%1 crashed.
- %1 ist abgestürzt.
+ %1 ist abgestürzt.%1 failed with exit code %2.
-
+ %1 ist mit Rückgabewert %2 fehlgeschlagen.Deploy files
@@ -50770,7 +50779,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
Cropping
-
+ ZuschneidenCrop and Trim...
@@ -54535,15 +54544,15 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
Open Type Hierarchy
- Klassenhierarchie öffnen
+ Klassenhierarchie öffnenMeta+Shift+T
- Meta+Shift+T
+ Meta+Shift+TCtrl+Shift+T
- Ctrl+Shift+T
+ Ctrl+Shift+TMove the View a Page Up and Keep the Cursor Position
@@ -54731,23 +54740,23 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
Sort Lines
-
+ Zeilen sortierenGo to Previous Word (Camel Case)
-
+ Zum vorhergehenden Wort springen (Camel Case)Go to Next Word (Camel Case)
-
+ Zum nächsten Wort springen (Camel Case)Go to Previous Word (Camel Case) with Selection
-
+ Vorhergehendes Wort markieren (Camel Case)Go to Next Word (Camel Case) with Selection
-
+ Nächstes Wort markieren (Camel Case)Meta+Shift+S
@@ -55987,15 +55996,15 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.
Type Hierarchy
- Klassenhierarchie
+ TypenhierarchieNo type hierarchy available
- Keine Klassenhierarchie verfügbar
+ Keine Typenhierarchie verfügbarReloads the type hierarchy for the symbol under the cursor.
-
+ Lädt die Typenhierarchie für das Symbol unter der Einfügemarke neu.
@@ -56753,7 +56762,7 @@ Die Trace-Daten sind verloren.
watch is not implemented.
-
+ "watch" ist nicht implementiert.Refusing to remove the standard directory "%1".
@@ -57224,11 +57233,11 @@ Die Trace-Daten sind verloren.
Failed to open output file.
-
+ Die Ausgabedatei konnte nicht geöffnet werden.Failed to write output file.
-
+ Die Ausgabedatei konnte nicht geschrieben werden.Command failed.
@@ -57259,7 +57268,7 @@ in "%2" aus.
Default
- Vorgabe
+ VorgabeShow %1 Column
@@ -57336,7 +57345,14 @@ To prepend to a variable, use VARIABLE=+VALUE.
Existing variables can be referenced in a VALUE with ${OTHER}.
To clear a variable, put its name on a line with nothing else on it.
Lines starting with "##" will be treated as comments.
-
+ Geben Sie eine Umgebungsvariable pro Zeile ein.
+Um eine Variable zu setzen oder zu ändern, verwenden Sie VARIABLE=WERT.
+Um eine Variable zu deaktivieren, stellen Sie der Zeile "#" voran.
+Um einen Wert an eine Variable anzufügen, verwenden Sie VARIABLE+=WERT.
+Um einen Wert einer Variable voranzustellen, verwenden Sie VARIABLE=+WERT.
+Existierende Variablen können in einem WERT mit ${ANDERE} verwendet werden.
+Um eine Variable zu leeren, schreiben Sie nichts als ihren Namen in eine Zeile.
+Zeilen, die mit "##" beginnen, werden als Kommentare behandelt.&OK
@@ -57454,7 +57470,7 @@ Lines starting with "##" will be treated as comments.
No Lua interface set
-
+ Keine Lua-Schnittstelle eingestellt
diff --git a/src/libs/utils/multitextcursor.cpp b/src/libs/utils/multitextcursor.cpp
index 7e991d3cd31..a02bfebea53 100644
--- a/src/libs/utils/multitextcursor.cpp
+++ b/src/libs/utils/multitextcursor.cpp
@@ -239,6 +239,12 @@ void MultiTextCursor::removeSelectedText()
mergeCursors();
}
+void MultiTextCursor::clearSelection()
+{
+ for (auto cursor = m_cursorList.begin(); cursor != m_cursorList.end(); ++cursor)
+ cursor->clearSelection();
+}
+
static void insertAndSelect(QTextCursor &cursor, const QString &text, bool selectNewText)
{
if (selectNewText) {
@@ -333,7 +339,8 @@ static QTextLine currentTextLine(const QTextCursor &cursor)
bool MultiTextCursor::multiCursorEvent(
QKeyEvent *e, QKeySequence::StandardKey matchKey, Qt::KeyboardModifiers filterModifiers)
{
- uint searchkey = (e->modifiers() | e->key()) & ~(filterModifiers | Qt::AltModifier);
+ filterModifiers |= (Utils::HostOsInfo::isMacHost() ? Qt::KeypadModifier : Qt::AltModifier);
+ uint searchkey = (e->modifiers() | e->key()) & ~filterModifiers;
const QList bindings = QKeySequence::keyBindings(matchKey);
return bindings.contains(QKeySequence(searchkey));
diff --git a/src/libs/utils/multitextcursor.h b/src/libs/utils/multitextcursor.h
index c1099013095..fb4f307cde7 100644
--- a/src/libs/utils/multitextcursor.h
+++ b/src/libs/utils/multitextcursor.h
@@ -69,6 +69,7 @@ public:
QString selectedText() const;
/// removes the selected text of all cursors that have a selection from the document
void removeSelectedText();
+ void clearSelection();
/// inserts \param text into all cursors, potentially removing correctly selected text
void insertText(const QString &text, bool selectNewText = false);
diff --git a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
index 6db93cb2466..424f082a562 100644
--- a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
+++ b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp
@@ -263,7 +263,7 @@ void handleInactiveRegions(LanguageClient::Client *client, const JsonRpcMessage
const QList inactiveRegions = params->inactiveRegions();
QList ifdefedOutBlocks;
for (const Range &r : inactiveRegions) {
- const int startPos = r.start().toPositionInDocument(doc->document());
+ const int startPos = Position(r.start().line(), 0).toPositionInDocument(doc->document());
const int endPos = r.end().toPositionInDocument(doc->document()) + 1;
ifdefedOutBlocks.emplaceBack(startPos, endPos);
}
diff --git a/src/plugins/clangtools/clangtoolsplugin.cpp b/src/plugins/clangtools/clangtoolsplugin.cpp
index d0cea985b51..a53987c3d87 100644
--- a/src/plugins/clangtools/clangtoolsplugin.cpp
+++ b/src/plugins/clangtools/clangtoolsplugin.cpp
@@ -177,10 +177,11 @@ void ClangToolsPlugin::registerAnalyzeActions()
widget->toolBar()->addWidget(button);
const auto toolsMenu = new QMenu(widget);
button->setMenu(toolsMenu);
- for (const auto &toolInfo : {std::make_pair(ClangTidyTool::instance(),
- Constants::RUN_CLANGTIDY_ON_CURRENT_FILE),
- std::make_pair(ClazyTool::instance(),
- Constants::RUN_CLAZY_ON_CURRENT_FILE)}) {
+ for (const auto &toolInfo :
+ {std::pair(
+ ClangTidyTool::instance(), Constants::RUN_CLANGTIDY_ON_CURRENT_FILE),
+ std::pair(
+ ClazyTool::instance(), Constants::RUN_CLAZY_ON_CURRENT_FILE)}) {
ClangTool * const tool = toolInfo.first;
Command * const cmd = ActionManager::command(toolInfo.second);
QAction *const action = toolsMenu->addAction(tool->name(), [editor, tool] {
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
index 078b4225e20..664315e8a91 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
@@ -226,7 +226,8 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
useStaging.setSettingsKey(USE_STAGING_KEY);
useStaging.setLabel(Tr::tr("Stage for installation"), BoolAspect::LabelPlacement::AtCheckBox);
- useStaging.setDefaultValue(supportsStageForInstallation(kit()));
+ useStaging.setDefaultValue(supportsStageForInstallation(kit()) && !isCleanStep());
+ useStaging.setEnabled(!isCleanStep());
stagingDir.setSettingsKey(STAGING_DIR_KEY);
stagingDir.setLabelText(Tr::tr("Staging directory:"));
@@ -522,6 +523,11 @@ void CMakeBuildStep::setBuildPreset(const QString &preset)
QWidget *CMakeBuildStep::createConfigWidget()
{
auto updateDetails = [this] {
+ const bool haveCleanTarget = m_buildTargets.contains(cleanTarget());
+ useStaging.setEnabled(!haveCleanTarget);
+ if (useStaging() && haveCleanTarget)
+ useStaging.setValue(false);
+
ProcessParameters param;
setupProcessParameters(¶m);
param.setCommandLine(cmakeCommand());
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
index 8a65c45b7f9..4db4b78a09b 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
@@ -1239,6 +1239,7 @@ void CMakeBuildSystem::clearCMakeCache()
path.removeRecursively();
emit configurationCleared();
+ emitParsingFinished(false);
}
void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup)
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
index 69511b0fc07..d3f1f07ed19 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
@@ -46,6 +46,19 @@ namespace CMakeProjectManager::Internal {
static Q_LOGGING_CATEGORY(cmInputLog, "qtc.cmake.import", QtWarningMsg);
+class ToolchainDescriptionEx
+{
+public:
+ Utils::FilePath compilerPath;
+ Utils::Id language;
+ QString originalTargetTriple;
+
+ operator ProjectExplorer::ToolchainDescription() const
+ {
+ return ProjectExplorer::ToolchainDescription{compilerPath, language};
+ }
+};
+
struct DirectoryData
{
// Project Stuff:
@@ -64,7 +77,7 @@ struct DirectoryData
QString toolset;
FilePath sysroot;
QtProjectImporter::QtVersionData qt;
- QVector toolchains;
+ QVector toolchains;
QVariant debugger;
};
@@ -321,12 +334,30 @@ static CMakeConfig configurationFromPresetProbe(
const PresetsDetails::ConfigurePreset &configurePreset)
{
const FilePath cmakeListTxt = importPath / Constants::CMAKE_LISTS_TXT;
- cmakeListTxt.writeFileContents(QByteArray("cmake_minimum_required(VERSION 3.15)\n"
- "\n"
- "project(preset-probe)\n"
- "set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\" CACHE FILEPATH \"\" FORCE)\n"
- "set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" CACHE FILEPATH \"\" FORCE)\n"
- "\n"));
+ cmakeListTxt.writeFileContents(QByteArray(R"(
+ cmake_minimum_required(VERSION 3.15)
+
+ project(preset-probe)
+
+ foreach (file_path_value
+ CMAKE_C_COMPILER CMAKE_CXX_COMPILER CMAKE_SYSROOT QT_HOST_PATH CMAKE_MAKE_PROGRAM)
+ if (${file_path_value})
+ set(${file_path_value} "${${file_path_value}}" CACHE FILEPATH "" FORCE)
+ endif()
+ endforeach()
+
+ foreach (path_value CMAKE_PREFIX_PATH CMAKE_FIND_ROOT_PATH)
+ if (${path_value})
+ set(${path_value} "${${path_value}}" CACHE PATH "" FORCE)
+ endif()
+ endforeach()
+
+ foreach (string_value CMAKE_C_COMPILER_TARGET CMAKE_CXX_COMPILER_TARGET)
+ if (${string_value})
+ set(${string_value} "${${string_value}}" CACHE STRING "" FORCE)
+ endif()
+ endforeach()
+ )"));
Process cmake;
cmake.setDisableUnixTerminal();
@@ -574,9 +605,9 @@ static QMakeAndCMakePrefixPath qtInfoFromCMakeCache(const CMakeConfig &config,
return {qmakeLocation, resultedPrefixPath};
}
-static QVector extractToolchainsFromCache(const CMakeConfig &config)
+static QVector extractToolchainsFromCache(const CMakeConfig &config)
{
- QVector result;
+ QVector result;
bool haveCCxxCompiler = false;
for (const CMakeConfigItem &i : config) {
if (!i.key.startsWith("CMAKE_") || !i.key.endsWith("_COMPILER"))
@@ -593,7 +624,10 @@ static QVector extractToolchainsFromCache(const CMakeConfi
}
else
languageId = Id::fromName(language);
- result.append({FilePath::fromUtf8(i.value), languageId});
+ result.append(
+ {FilePath::fromUtf8(i.value),
+ languageId,
+ config.stringValueOf("CMAKE_" + language + "_COMPILER_TARGET")});
}
if (!haveCCxxCompiler) {
@@ -612,10 +646,14 @@ static QVector extractToolchainsFromCache(const CMakeConfi
const FilePath linker = config.filePathValueOf("CMAKE_LINKER");
if (!linker.isEmpty()) {
const FilePath compilerPath = linker.parentDir();
- result.append({compilerPath.pathAppended(cCompilerName),
- ProjectExplorer::Constants::C_LANGUAGE_ID});
- result.append({compilerPath.pathAppended(cxxCompilerName),
- ProjectExplorer::Constants::CXX_LANGUAGE_ID});
+ result.append(
+ {compilerPath.pathAppended(cCompilerName),
+ ProjectExplorer::Constants::C_LANGUAGE_ID,
+ {}});
+ result.append(
+ {compilerPath.pathAppended(cxxCompilerName),
+ ProjectExplorer::Constants::CXX_LANGUAGE_ID,
+ {}});
}
}
}
@@ -1052,7 +1090,7 @@ bool CMakeProjectImporter::matchKit(void *directoryData, const Kit *k) const
const bool compilersMatch = [k, data] {
const QList allLanguages = ToolchainManager::allLanguages();
- for (const ToolchainDescription &tcd : data->toolchains) {
+ for (const ToolchainDescriptionEx &tcd : data->toolchains) {
if (!Utils::contains(allLanguages,
[&tcd](const Id &language) { return language == tcd.language; }))
continue;
@@ -1065,7 +1103,7 @@ bool CMakeProjectImporter::matchKit(void *directoryData, const Kit *k) const
}();
const bool noCompilers = [k, data] {
const QList allLanguages = ToolchainManager::allLanguages();
- for (const ToolchainDescription &tcd : data->toolchains) {
+ for (const ToolchainDescriptionEx &tcd : data->toolchains) {
if (!Utils::contains(allLanguages,
[&tcd](const Id &language) { return language == tcd.language; }))
continue;
@@ -1117,7 +1155,7 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
SysRootKitAspect::setSysRoot(k, data->sysroot);
- for (const ToolchainDescription &cmtcd : data->toolchains) {
+ for (const ToolchainDescriptionEx &cmtcd : data->toolchains) {
const ToolchainData tcd = findOrCreateToolchains(cmtcd);
QTC_ASSERT(!tcd.tcs.isEmpty(), continue);
@@ -1126,7 +1164,11 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
addTemporaryData(ToolchainKitAspect::id(), tc->id(), k);
}
- ToolchainKitAspect::setToolchain(k, tcd.tcs.at(0));
+ Toolchain* toolchain = tcd.tcs.at(0);
+ if (!cmtcd.originalTargetTriple.isEmpty())
+ toolchain->setExplicitCodeModelTargetTriple(cmtcd.originalTargetTriple);
+
+ ToolchainKitAspect::setToolchain(k, toolchain);
}
if (!data->cmakePresetDisplayname.isEmpty()) {
@@ -1335,7 +1377,7 @@ void CMakeProjectImporterTest::testCMakeProjectImporterToolchain()
config.append(CMakeConfigItem(key.toUtf8(), value.toUtf8()));
}
- const QVector tcs = extractToolchainsFromCache(config);
+ const QVector tcs = extractToolchainsFromCache(config);
QCOMPARE(tcs.count(), expectedLanguages.count());
for (int i = 0; i < tcs.count(); ++i) {
QCOMPARE(tcs.at(i).language, expectedLanguages.at(i));
diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp
index e8ef9391448..8beed705f50 100644
--- a/src/plugins/debugger/debuggertooltipmanager.cpp
+++ b/src/plugins/debugger/debuggertooltipmanager.cpp
@@ -542,6 +542,7 @@ public:
void positionShow(const TextEditorWidget *editorWidget);
void updateTooltip(DebuggerEngine *engine);
+ void updateTooltip2(DebuggerEngine *engine);
void setState(DebuggerTooltipState newState);
void destroy();
@@ -660,6 +661,11 @@ DebuggerToolTipHolder::DebuggerToolTipHolder(const DebuggerToolTipContext &conte
// after normal WatchModel update.
void DebuggerToolTipHolder::updateTooltip(DebuggerEngine *engine)
+{
+ QTimer::singleShot(0, [this, engine] { updateTooltip2(engine); });
+}
+
+void DebuggerToolTipHolder::updateTooltip2(DebuggerEngine *engine)
{
widget->setEngine(engine);
diff --git a/src/plugins/ios/iostoolhandler.cpp b/src/plugins/ios/iostoolhandler.cpp
index 420e119e741..0626a552533 100644
--- a/src/plugins/ios/iostoolhandler.cpp
+++ b/src/plugins/ios/iostoolhandler.cpp
@@ -992,12 +992,12 @@ IosToolTaskAdapter::IosToolTaskAdapter() {}
void IosToolTaskAdapter::start()
{
- task()->m_iosToolHandler = new IosToolHandler(Internal::IosDeviceType(task()->m_deviceType));
- connect(task()->m_iosToolHandler, &IosToolHandler::finished, this, [this] {
- task()->m_iosToolHandler->deleteLater();
+ task()->m_iosToolHandler.reset(new IosToolHandler(Internal::IosDeviceType(task()->m_deviceType)));
+ connect(task()->m_iosToolHandler.get(), &IosToolHandler::finished, this, [this] {
+ task()->m_iosToolHandler.release()->deleteLater();
emit done(Tasking::DoneResult::Success);
});
- task()->m_startHandler(task()->m_iosToolHandler);
+ task()->m_startHandler(task()->m_iosToolHandler.get());
}
} // namespace Ios
diff --git a/src/plugins/ios/iostoolhandler.h b/src/plugins/ios/iostoolhandler.h
index e8071a86ce0..874d5f7f5c3 100644
--- a/src/plugins/ios/iostoolhandler.h
+++ b/src/plugins/ios/iostoolhandler.h
@@ -82,7 +82,7 @@ public:
private:
friend class IosToolTaskAdapter;
- IosToolHandler *m_iosToolHandler = nullptr;
+ std::unique_ptr m_iosToolHandler;
StartHandler m_startHandler;
Internal::IosDeviceType m_deviceType = Internal::IosDeviceType::IosDevice;
};
diff --git a/src/plugins/qmljseditor/qmljseditordocument.cpp b/src/plugins/qmljseditor/qmljseditordocument.cpp
index 53dfc5ecf31..72b41700016 100644
--- a/src/plugins/qmljseditor/qmljseditordocument.cpp
+++ b/src/plugins/qmljseditor/qmljseditordocument.cpp
@@ -480,6 +480,11 @@ QmlJSEditorDocumentPrivate::QmlJSEditorDocumentPrivate(QmlJSEditorDocument *pare
this, &QmlJSEditorDocumentPrivate::onDocumentUpdated);
connect(QmllsSettingsManager::instance(), &QmllsSettingsManager::settingsChanged,
this, &QmlJSEditorDocumentPrivate::settingsChanged);
+ connect(
+ modelManager,
+ &ModelManagerInterface::projectInfoUpdated,
+ this,
+ &QmlJSEditorDocumentPrivate::settingsChanged);
// semantic info
m_semanticInfoUpdater = new SemanticInfoUpdater();
@@ -749,7 +754,7 @@ static FilePath qmllsForFile(const FilePath &file, QmlJS::ModelManagerInterface
< QmlJsEditingSettings::mininumQmllsVersion) {
return {};
}
- return pInfo.qmllsPath;
+ return pInfo.qmllsPath.exists() ? pInfo.qmllsPath : Utils::FilePath();
}
void QmlJSEditorDocumentPrivate::settingsChanged()
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 652ae526db3..9312bebfe8b 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -2339,6 +2339,13 @@ void TextEditorWidget::selectWordUnderCursor()
setMultiTextCursor(cursor);
}
+void TextEditorWidget::clearSelection()
+{
+ MultiTextCursor cursor = multiTextCursor();
+ cursor.clearSelection();
+ setMultiTextCursor(cursor);
+}
+
void TextEditorWidget::showContextMenu()
{
QTextCursor tc = textCursor();
@@ -4259,6 +4266,10 @@ void TextEditorWidgetPrivate::registerActions()
.setContext(m_editorContext)
.addOnTriggered([this] { q->selectWordUnderCursor(); })
.setScriptable(true);
+ ActionBuilder(this, CLEAR_SELECTION)
+ .setContext(m_editorContext)
+ .addOnTriggered([this] { q->clearSelection(); })
+ .setScriptable(true);
ActionBuilder(this, GOTO_DOCUMENT_START)
.setContext(m_editorContext)
@@ -4769,8 +4780,11 @@ void TextEditorWidgetPrivate::highlightSearchResults(const QTextBlock &block, co
break;
if (m_findFlags & FindWholeWords) {
auto posAtWordSeparator = [](const QString &text, int idx) {
- if (idx < 0 || idx >= text.length())
- return false;
+ if (idx < 0)
+ return QTC_GUARD(idx == -1);
+ int textLength = text.length();
+ if (idx >= textLength)
+ return QTC_GUARD(idx == textLength);
const QChar c = text.at(idx);
return !c.isLetterOrNumber() && c != QLatin1Char('_');
};
diff --git a/src/plugins/texteditor/texteditor.h b/src/plugins/texteditor/texteditor.h
index 1d8104a46f4..9ff523af89b 100644
--- a/src/plugins/texteditor/texteditor.h
+++ b/src/plugins/texteditor/texteditor.h
@@ -430,6 +430,7 @@ public:
virtual bool selectBlockUp();
virtual bool selectBlockDown();
void selectWordUnderCursor();
+ void clearSelection();
void showContextMenu();
diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h
index 04405438395..e32cd64bd3a 100644
--- a/src/plugins/texteditor/texteditorconstants.h
+++ b/src/plugins/texteditor/texteditorconstants.h
@@ -143,6 +143,7 @@ const char GOTO_BLOCK_END_WITH_SELECTION[] = "TextEditor.GotoBlockEndWithSelecti
const char SELECT_BLOCK_UP[] = "TextEditor.SelectBlockUp";
const char SELECT_BLOCK_DOWN[] = "TextEditor.SelectBlockDown";
const char SELECT_WORD_UNDER_CURSOR[] = "TextEditor.SelectWordUnderCursor";
+const char CLEAR_SELECTION[] = "TextEditor.ClearSelection";
const char VIEW_PAGE_UP[] = "TextEditor.viewPageUp";
const char VIEW_PAGE_DOWN[] = "TextEditor.viewPageDown";
const char VIEW_LINE_UP[] = "TextEditor.viewLineUp";
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index c774fed0438..047f0a3f973 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -544,6 +544,8 @@ void TextEditorPlugin::createEditorCommands()
.setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Shift+Alt+U")))
.addToContainer(M_EDIT_ADVANCED, G_EDIT_BLOCKS);
TextActionBuilder(this, SELECT_WORD_UNDER_CURSOR).setText(Tr::tr("Select Word Under Cursor"));
+ TextActionBuilder(this, CLEAR_SELECTION)
+ .setText(QCoreApplication::translate("QtC::Terminal", "Clear Selection"));
TextActionBuilder(this, GOTO_DOCUMENT_START).setText(Tr::tr("Go to Document Start"));
TextActionBuilder(this, GOTO_DOCUMENT_END).setText(Tr::tr("Go to Document End"));
diff --git a/src/shared/qbs b/src/shared/qbs
index 0336494de6c..65096dc8307 160000
--- a/src/shared/qbs
+++ b/src/shared/qbs
@@ -1 +1 @@
-Subproject commit 0336494de6c4e394b7354ca78dcb2192f01f9fc6
+Subproject commit 65096dc8307979b973cd1fe3e01bc959384d2a20