Merge remote-tracking branch 'origin/14.0' into qds/dev

Change-Id: I1c354102209ba0c3505e3e2745e64ce77cc22bb3
This commit is contained in:
Tim Jenssen
2024-07-23 15:28:59 +02:00
138 changed files with 3748 additions and 1646 deletions

View File

@@ -1,6 +1,6 @@
set(IDE_VERSION "13.0.84") # The IDE version. set(IDE_VERSION "14.0.0") # The IDE version.
set(IDE_VERSION_COMPAT "13.0.84") # The IDE Compatibility version. set(IDE_VERSION_COMPAT "14.0.0") # The IDE Compatibility version.
set(IDE_VERSION_DISPLAY "14.0.0-rc1") # The IDE display version. set(IDE_VERSION_DISPLAY "14.0.0") # The IDE display version.
set(IDE_COPYRIGHT_YEAR "2024") # The IDE current copyright year. set(IDE_COPYRIGHT_YEAR "2024") # The IDE current copyright year.
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation. set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.

View File

@@ -17,6 +17,8 @@ General
([Documentation](https://doc-snapshots.qt.io/qtcreator-extending/lua-extensions.html)) ([Documentation](https://doc-snapshots.qt.io/qtcreator-extending/lua-extensions.html))
* Added a mode for managing extensions * Added a mode for managing extensions
* Added `Clear` and `Save Contents` to context menus of all output views * Added `Clear` and `Save Contents` to context menus of all output views
* Fixed the tab focus order in the search toolbar
([QTCREATORBUG-30791](https://bugreports.qt.io/browse/QTCREATORBUG-30791))
* Locator * Locator
* Added the option to show results relative to project root * Added the option to show results relative to project root
([QTCREATORBUG-29462](https://bugreports.qt.io/browse/QTCREATORBUG-29462)) ([QTCREATORBUG-29462](https://bugreports.qt.io/browse/QTCREATORBUG-29462))
@@ -46,6 +48,14 @@ Editing
([QTCREATORBUG-31116](https://bugreports.qt.io/browse/QTCREATORBUG-31116)) ([QTCREATORBUG-31116](https://bugreports.qt.io/browse/QTCREATORBUG-31116))
* Fixed the unindenting with backspace when multiple cursors are active * Fixed the unindenting with backspace when multiple cursors are active
([QTCREATORBUG-31158](https://bugreports.qt.io/browse/QTCREATORBUG-31158)) ([QTCREATORBUG-31158](https://bugreports.qt.io/browse/QTCREATORBUG-31158))
* Fixed the `Save` shortcut after closing a document while the document's
drop-down menu is shown
([QTCREATORBUG-31205](https://bugreports.qt.io/browse/QTCREATORBUG-31205))
* Fixed the highlighting of matches for `Whole Words Only` searches
([QTCREATORBUG-31020](https://bugreports.qt.io/browse/QTCREATORBUG-31020))
* Fixed that the documents chooser did not close when releasing `Ctrl` in
some setups
([QTCREATORBUG-31228](https://bugreports.qt.io/browse/QTCREATORBUG-31228))
### C++ ### C++
@@ -79,6 +89,9 @@ Editing
([QTCREATORBUG-29943](https://bugreports.qt.io/browse/QTCREATORBUG-29943)) ([QTCREATORBUG-29943](https://bugreports.qt.io/browse/QTCREATORBUG-29943))
* Fixed the handling of system headers * Fixed the handling of system headers
([QTCREATORBUG-30474](https://bugreports.qt.io/browse/QTCREATORBUG-30474)) ([QTCREATORBUG-30474](https://bugreports.qt.io/browse/QTCREATORBUG-30474))
* Fixed a warning when adding an empty session to the list of sessions with
a single Clangd instance
([QTCREATORBUG-31186](https://bugreports.qt.io/browse/QTCREATORBUG-31186))
* Built-in * Built-in
* Added the `Enable indexing` option in `Preferences` > `C++` > `Code Model` * Added the `Enable indexing` option in `Preferences` > `C++` > `Code Model`
to turn off the built-in indexer to turn off the built-in indexer
@@ -101,6 +114,8 @@ Editing
([Documentation](https://doc.qt.io/qtcreator/creator-quick-ui-forms.html)) ([Documentation](https://doc.qt.io/qtcreator/creator-quick-ui-forms.html))
* Fixed that the color preview did not work on named colors * Fixed that the color preview did not work on named colors
([QTCREATORBUG-30594](https://bugreports.qt.io/browse/QTCREATORBUG-30594)) ([QTCREATORBUG-30594](https://bugreports.qt.io/browse/QTCREATORBUG-30594))
* Fixed the default path to `qmlformat` on Windows
([QTCREATORBUG-31257](https://bugreports.qt.io/browse/QTCREATORBUG-31257))
* Language Server * Language Server
* Switched on by default for Qt 6.8 and later * Switched on by default for Qt 6.8 and later
* Added an option for generating `qmlls.ini` files for CMake projects in * Added an option for generating `qmlls.ini` files for CMake projects in
@@ -206,6 +221,8 @@ Projects
([QTCREATORBUG-30836](https://bugreports.qt.io/browse/QTCREATORBUG-30836)) ([QTCREATORBUG-30836](https://bugreports.qt.io/browse/QTCREATORBUG-30836))
* Added support for custom build types * Added support for custom build types
([QTCREATORBUG-30014](https://bugreports.qt.io/browse/QTCREATORBUG-30014)) ([QTCREATORBUG-30014](https://bugreports.qt.io/browse/QTCREATORBUG-30014))
* Fixed issues with cross-compilation setups
([QTCREATORBUG-31249](https://bugreports.qt.io/browse/QTCREATORBUG-31249))
([Documentation](https://doc-snapshots.qt.io/qtcreator-14.0/creator-build-settings-cmake-presets.html)) ([Documentation](https://doc-snapshots.qt.io/qtcreator-14.0/creator-build-settings-cmake-presets.html))
@@ -317,6 +334,9 @@ Platforms
* Improved the performance of the generic deployment method * Improved the performance of the generic deployment method
* Fixed that the file size check that is performed before parsing C++ files * Fixed that the file size check that is performed before parsing C++ files
could freeze Qt Creator until finished for remote projects could freeze Qt Creator until finished for remote projects
* Fixed that the deployment of a directory deployed only its contents instead
of the directory itself
([QTCREATORBUG-31136](https://bugreports.qt.io/browse/QTCREATORBUG-31136))
### Qt Application Manager ### Qt Application Manager
@@ -333,8 +353,9 @@ Ahmad Samir
Aleksei German Aleksei German
Alessandro Portale Alessandro Portale
Alexander Drozdov Alexander Drozdov
Alexandre Laurent
Ali Kianian Ali Kianian
Andre Hartmann André Hartmann
André Pönitz André Pönitz
Artem Sokolovskii Artem Sokolovskii
Assam Boudjelthia Assam Boudjelthia
@@ -364,6 +385,7 @@ Mats Honkamaa
Michael Weghorn Michael Weghorn
Miikka Heikkinen Miikka Heikkinen
Orgad Shaneh Orgad Shaneh
Pino Toscano
Pranta Dastider Pranta Dastider
Ralf Habacker Ralf Habacker
Robert Löhning Robert Löhning

View File

@@ -30,16 +30,17 @@
</div> </div>
<div class="indexboxcont indexboxbar"> <div class="indexboxcont indexboxbar">
<ul> <ul>
<li><a href="creator-tutorial-adding-internal-libraries-to-projects.html">Adding an Internal Library to a qmake Project</a></li> <li><a href="creator-build-example-application.html">Build and run</a></li>
<li><a href="creator-build-example-application.html">Building and Running an Example</a></li> <li><a href="creator-debugging-example.html">C++ debugging</a></li>
<li><a href="qtcreator-accelbubble-example.html">Creating a Mobile Application</a></li> <li><a href="qtcreator-accelbubble-example.html">Mobile application</a></li>
<li><a href="qtcreator-transitions-example.html">Creating a Qt Quick Application</a></li> <li><a href="creator-tutorial-python-application-qt-quick.html">Qt Quick and Python</a></li>
<li><a href="creator-writing-program.html">Creating a Qt Widget Based Application</a></li> <li><a href="qtcreator-transitions-example.html">Qt Quick application</a></li>
<li><a href="creator-tutorial-python-application-qt-quick.html">Creating a Qt for Python Application with Qt Quick</a></li> <li><a href="creator-qml-debugging-example.html">Qt Quick debugging</a></li>
<li><a href="creator-tutorial-python-application-qt-widgets.html">Creating a Qt for Python Application with Qt Widgets</a></li> <li><a href="creator-tutorial-python-application-qt-widgets.html">Qt Widgets and Python</a></li>
<li><a href="creator-debugging-example.html">Debugging a C++ Application</a></li> <li><a href="creator-writing-program.html">Qt Widgets application</a></li>
<li><a href="creator-qml-debugging-example.html">Debugging a Qt Quick Application</a></li> <li><a href="creator-tutorial-python-application-qt-widgets-ui.html">Qt Widgets UI and Python</a></li>
<li><a href="creator-tutorials.html">See All</a></li> <li><a href="creator-tutorial-adding-internal-libraries-to-projects.html">Use internal libraries with qmake</a></li>
<li><a href="creator-tutorials.html">Tutorials</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@@ -61,7 +62,7 @@
<li><a href="creator-how-tos.html#test">Test</a></li> <li><a href="creator-how-tos.html#test">Test</a></li>
<li><a href="creator-how-tos.html#use-qt-creator">Use Qt Creator</a></li> <li><a href="creator-how-tos.html#use-qt-creator">Use Qt Creator</a></li>
<li><a href="creator-how-tos.html#use-the-ui">Use the UI</a></li> <li><a href="creator-how-tos.html#use-the-ui">Use the UI</a></li>
<li><a href="creator-how-tos.html">See All</a></li> <li><a href="creator-how-tos.html">How To</a></li>
</ul> </ul>
</div> </div>
<div class="sectionlist normallist"> <div class="sectionlist normallist">
@@ -76,6 +77,7 @@
<li><a href="creator-glossary.html">Glossary</a></li> <li><a href="creator-glossary.html">Glossary</a></li>
<li><a href="creator-keyboard-shortcuts.html">Keyboard Shortcuts</a></li> <li><a href="creator-keyboard-shortcuts.html">Keyboard Shortcuts</a></li>
<li><a href="creator-known-issues.html">Known Issues</a></li> <li><a href="creator-known-issues.html">Known Issues</a></li>
<li><a href="creator-sdk-tool.html">SDK Tool</a></li>
<li><a href="technical-support.html">Technical Support</a></li> <li><a href="technical-support.html">Technical Support</a></li>
<li><a href="creator-version-control.html">Version Control Systems</a></li> <li><a href="creator-version-control.html">Version Control Systems</a></li>
<li><a href="creator-reference.html#analyzers">Analyzers</a></li> <li><a href="creator-reference.html#analyzers">Analyzers</a></li>
@@ -87,6 +89,6 @@
<li><a href="creator-reference.html#preferences">Preferences</a></li> <li><a href="creator-reference.html#preferences">Preferences</a></li>
<li><a href="creator-reference.html#ui-design">UI Design</a></li> <li><a href="creator-reference.html#ui-design">UI Design</a></li>
<li><a href="creator-reference.html#views">Views</a></li> <li><a href="creator-reference.html#views">Views</a></li>
<li><a href="creator-reference.html">See All</a></li> <li><a href="creator-reference.html">Reference</a></li>
</ul> </ul>
</div> </div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -179,11 +179,10 @@
\li Go to \uicontrol Projects > \uicontrol {Project Settings} > \li Go to \uicontrol Projects > \uicontrol {Project Settings} >
\uicontrol Axivion. \uicontrol Axivion.
\image qtcreator-preferences-axivion-project.webp {Axivion settings in Project Settings} \image qtcreator-preferences-axivion-project.webp {Axivion settings in Project Settings}
\li From \uicontrol {Dashboard} select one of the configured Axivion \li Select the Axivion dashboard server to fetch projects from.
dashboard configurations. \li Select \uicontrol {Fetch Projects} to list projects from the server.
\li Select \uicontrol {Fetch Projects} to list projects from Axivion. \li In \uicontrol {Dashboard projects} select a project.
\li Select a project, and then select \uicontrol {Link Project} to link \li Select \uicontrol {Link Project} to link to the project.
to it.
\endlist \endlist
To unlink a project, select \uicontrol {Unlink Project}. To unlink a project, select \uicontrol {Unlink Project}.

View File

@@ -60,32 +60,32 @@
The \uicontrol Timeline view displays a graphical representation of trace The \uicontrol Timeline view displays a graphical representation of trace
events and a condensed view of all recorded events. events and a condensed view of all recorded events.
\image qtcreator-ctf-visualizer-timeline.png "Chrome Trace Format Visualizer" \image qtcreator-ctf-visualizer-timeline.webp {Timeline view}
Each category in the timeline describes a thread in the application. Move Each category in the timeline describes a thread in the application. Move
the cursor on an event (1) on a row to view its duration and event category. the cursor on an event (5) on a row to view its duration and event category.
To display the information only when an event is selected, disable the To display the information only when an event is selected, disable the
\uicontrol {View Event Information on Mouseover} button (2). \uicontrol {View Event Information on Mouseover} button (4).
The outline (3) summarizes the period for which data was collected. Drag The outline (10) summarizes the period for which data was collected. Drag
the zoom range (4) or click the outline to move on the outline. To move the zoom range (8) or click the outline to move on the outline. To move
between events, select the \uicontrol {Jump to Previous Event} and between events, select the \uicontrol {Jump to Previous Event} and
\uicontrol {Jump to Next Event} buttons (5). \uicontrol {Jump to Next Event} buttons (1).
Select the \uicontrol {Show Zoom Slider} button (6) to open a slider that Select the \uicontrol {Show Zoom Slider} button (2) to open a slider that
you can use to set the zoom level. You can also drag the zoom handles (7). you can use to set the zoom level. You can also drag the zoom handles (9).
To reset the default zoom level, right-click the timeline to open the To reset the default zoom level, right-click the timeline to open the
context menu, and select \uicontrol {Reset Zoom}. context menu, and select \uicontrol {Reset Zoom}.
Select the \inlineimage icons/filtericon.png Select the \inlineimage icons/filtericon.png
(\uicontrol {Restrict to Threads}) button (10) to select the threads to (\uicontrol {Restrict to Threads}) button (6) to select the threads to
show. show.
\section2 Selecting Event Ranges \section2 Selecting Event Ranges
You can select an event range (8) to view the time it represents or to zoom You can select an event range (7) to view the time it represents or to zoom
into a specific region of the trace. Select the \uicontrol {Select Range} into a specific region of the trace. Select the \uicontrol {Select Range}
button (9) to activate the selection tool. Then click in the timeline to button (3) to activate the selection tool. Then click in the timeline to
specify the beginning of the event range. Drag the selection handle to specify the beginning of the event range. Drag the selection handle to
define the end of the range. define the end of the range.

View File

@@ -227,7 +227,7 @@
If you use CMake as the build system, you must specify the Android package 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 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}. {mobile device tutorial}.
To use \QC to create an Android manifest file and to open it in the Android To use \QC to create an Android manifest file and to open it in the Android

View File

@@ -126,6 +126,9 @@
To speed up the process on Windows, specify the \c CMAKE_C_COMPILER and To speed up the process on Windows, specify the \c CMAKE_C_COMPILER and
\c CMAKE_CXX_COMPILER in the \c cacheVariables section. \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 \section1 Ninja Generator Example
The following configure and build presets set Ninja Multi-Config as the The following configure and build presets set Ninja Multi-Config as the
@@ -297,5 +300,5 @@
} }
\endcode \endcode
\sa {CMake Build Configuration}, {CMake} \sa {CMake Build Configuration}, {CMake}, {SDK Tool}
*/ */

View File

@@ -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 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// ********************************************************************** // **********************************************************************
@@ -14,11 +14,12 @@
\ingroup creator-tutorials \ingroup creator-tutorials
\title Debugging a C++ Application \keyword {Debugging a C++ Application}
\title Tutorial: C++ debugging
\brief How to debug a C++ application. \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 example to illustrate how to debug Qt C++ applications in the
\uicontrol Debug mode. \uicontrol Debug mode.
@@ -95,5 +96,5 @@
(\uicontrol {Step Into}), and \inlineimage icons/debugger_stepout_small.png (\uicontrol {Step Into}), and \inlineimage icons/debugger_stepout_small.png
(\uicontrol {Step Out}). (\uicontrol {Step Out}).
\sa {Creating a Qt Widget Based Application}, {Debugging}, {Debuggers}, {Debugger} \sa {Tutorial: Qt Widgets application}, {Debugging}, {Debuggers}, {Debugger}
*/ */

View File

@@ -140,7 +140,7 @@
\l{https://docs.python.org/3/library/pdb.html}{PDB} is a source code debugger \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 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. configuration file.
Install Python and set the interpreter to use in \uicontrol Projects Install Python and set the interpreter to use in \uicontrol Projects

View File

@@ -207,9 +207,9 @@
expressions. expressions.
For more information, see \l{Debugging Qt Quick Projects} and 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} {Debugger}, {Kits}
*/ */
@@ -263,7 +263,7 @@
\section1 Debug Python projects \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 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}. active build target in the \l{Build for many platforms}{kit selector}.

View File

@@ -19,7 +19,8 @@
\ingroup creator-tutorials \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. \brief How to debug a Qt Quick application.

View File

@@ -26,7 +26,7 @@
JavaScript variables, as well as change their values temporarily at runtime. JavaScript variables, as well as change their values temporarily at runtime.
For an example of how to debug Qt Quick Projects, see 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) \if defined(qtdesignstudio)
\note In this section, you are using advanced menu items. These are not \note In this section, you are using advanced menu items. These are not

View File

@@ -98,14 +98,24 @@
You can turn the Copilot suggestions on and off either globally for all You can turn the Copilot suggestions on and off either globally for all
projects or at project level for a particular project. projects or at project level for a particular project.
\section2 Toggle Copilot suggestions
To turn Copilot suggestions on or off globally, select To turn Copilot suggestions on or off globally, select
\inlineimage icons/copilot.png (\uicontrol {Toggle Copilot}). This also \inlineimage icons/copilot.png (\uicontrol {Toggle Copilot}). This also
sets the value of \uicontrol {Enable Copilot} in \preferences > sets the value of \uicontrol {Enable Copilot} in \preferences >
\uicontrol Copilot accordingly. \uicontrol Copilot accordingly.
To turn Copilot suggestions on or off for a particular project, \section2 Turn suggestions on or off for a project
go to \uicontrol Projects > \uicontrol {Project Settings} >
\uicontrol Copilot and then select or clear \uicontrol {Enable Copilot}. 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} \sa {Enable and disable plugins}, {Edit Mode}
*/ */

View File

@@ -58,7 +58,7 @@
and \c <cur> to access the parameter and current value. Use \c <type> to and \c <cur> to access the parameter and current value. Use \c <type> to
access the type and \c <T> for the template parameter. access the type and \c <T> 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 Usually, arguments are passed by using a \c const reference. To pass
arguments of a particular type as values, list them in the arguments of a particular type as values, list them in the

View File

@@ -39,10 +39,16 @@
\uicontrol Help mode, go to \preferences > \uicontrol Help. \uicontrol Help mode, go to \preferences > \uicontrol Help.
\endlist \endlist
\if defined(qtdesignstudio)
The following image shows the context sensitive help in the \l Code view.
\image qds-help-in-code-view.webp {Context-sensitive help in the Code view.}
\else
The following image shows the context sensitive help in the \uicontrol Edit The following image shows the context sensitive help in the \uicontrol Edit
mode. mode.
\image qtcreator-context-sensitive-help.webp {Context-sensitive help in Edit mode} \image qtcreator-context-sensitive-help.webp {Context-sensitive help in Edit mode}
\endif
\section1 Change the font \section1 Change the font
@@ -88,7 +94,13 @@
To use a keyboard shortcut for viewing help tooltips, select To use a keyboard shortcut for viewing help tooltips, select
\uicontrol {Show help tooltips using keyboard shortcut (Alt)}. \uicontrol {Show help tooltips using keyboard shortcut (Alt)}.
\if defined(qtdesignstudio)
\section1 See Also
\generatelist creator-how-to-get-help
\else
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -140,7 +152,9 @@
\endlist \endlist
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -180,7 +194,9 @@
\uicontrol General and select \uicontrol {Import Bookmarks} or \uicontrol General and select \uicontrol {Import Bookmarks} or
\uicontrol {Export Bookmarks}. \uicontrol {Export Bookmarks}.
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -236,7 +252,9 @@
punctuation, such as domain names, use the asterisk as a wild card. For punctuation, such as domain names, use the asterisk as a wild card. For
example, to find \c {Pastebin.Com}, enter the search term \c {Pastebin*}. example, to find \c {Pastebin.Com}, enter the search term \c {Pastebin*}.
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -268,7 +286,9 @@
\endlist \endlist
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -287,7 +307,11 @@
code editor when you press \key F1. If there is not enough vertical code editor when you press \key F1. If there is not enough vertical
space, the help opens in the full-screen help mode. space, the help opens in the full-screen help mode.
\if defined(qtdesignstudio)
\image qds-help-in-code-view.webp {Context-sensitive help in the Code view.}
\else
\image qtcreator-context-sensitive-help.webp {Context-sensitive help in Edit mode} \image qtcreator-context-sensitive-help.webp {Context-sensitive help in Edit mode}
\endif
To specify that the help always opens in full-screen mode or in an external To specify that the help always opens in full-screen mode or in an external
window, go to \preferences > \uicontrol Help > \uicontrol General. window, go to \preferences > \uicontrol Help > \uicontrol General.
@@ -300,7 +324,9 @@
To change this setting in a help view, select \inlineimage icons/linkicon.png. To change this setting in a help view, select \inlineimage icons/linkicon.png.
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -335,7 +361,9 @@
home page. home page.
\endlist \endlist
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */
/*! /*!
@@ -401,5 +429,7 @@
To remove the selected filter, select \inlineimage icons/minus.png. To remove the selected filter, select \inlineimage icons/minus.png.
\if defined(qtcreator)
\sa {Read Documentation}{How To: Read Documentation} \sa {Read Documentation}{How To: Read Documentation}
\endif
*/ */

View File

@@ -39,18 +39,18 @@
\li \inlineimage icons/tutorials.png \li \inlineimage icons/tutorials.png
\li \inlineimage icons/api-reference.png \li \inlineimage icons/api-reference.png
\row \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} To check that \l{https://www.qt.io/download-qt-installer}
{\QOI} created \l{Kits} {\QOI} created \l{Kits}
{build and run kits}, open an example application and run it. {build and run kits}, open an example application and run it.
If you have not done so before, go to If you have not done so before, go to
\l{Building and Running an Example}. \l{Tutorial: Build and run}.
\li \b {\l{Tutorials}} \li \b {\l{Tutorials}}
Now you are ready to start developing your own applications. Now you are ready to start developing your own applications.
Pick a tutorial to follow in \l{Tutorials}. To start developing 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}} \li \b{\l {Qt Documentation}}
For more examples, as well as the details about using Qt tools For more examples, as well as the details about using Qt tools

View File

@@ -114,6 +114,8 @@
\section2 Debugger \section2 Debugger
Preferences for debugging.
\annotatedlist creator-reference-preferences-debugger \annotatedlist creator-reference-preferences-debugger
\section2 Kits \section2 Kits

View File

@@ -150,7 +150,7 @@
\list 1 \list 1
\li Select \uicontrol File > \uicontrol {New File} > \uicontrol {Qt} > \li Select \uicontrol File > \uicontrol {New File} > \uicontrol {Qt} >
\uicontrol {Qt Resource File} > \uicontrol Choose. \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 \li Follow the instructions of the wizard to create a resource
collection file (.qrc). collection file (.qrc).
\li Open the resource file in the resource editor. \li Open the resource file in the resource editor.

View File

@@ -6,6 +6,7 @@
\previouspage creator-how-tos.html \previouspage creator-how-tos.html
\ingroup creator-how-to-projects-create \ingroup creator-how-to-projects-create
\ingroup creator-how-to-projects-files
\title Add wizards \title Add wizards

View File

@@ -14,7 +14,8 @@
\ingroup creator-tutorials \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. \brief How to build and run a Qt example.

View File

@@ -52,7 +52,7 @@
which plugins you have installed. If you do not get to choose, which plugins you have installed. If you do not get to choose,
the project usually uses CMake as the build system. 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 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. qmake, Qbs, or CMake, but do not use the Qt library.

View File

@@ -52,13 +52,13 @@
translations in the .json file using the following syntax: translations in the .json file using the following syntax:
\code \code
"trDisplayName": { "C": "default", "en_US": "english", "de_DE": "deutsch" } "trDisplayName": { "C": "default", "en": "english", "de": "deutsch" }
\endcode \endcode
For example: For example:
\code \code
"trDisplayName": { "C": "Project Location", "en_US": "Project Location", "de_DE": "Projekt Verzeichnis" } "trDisplayName": { "C": "Project Location", "en": "Project Location", "de": "Projektverzeichnis" }
\endcode \endcode
\section1 Creating Wizards \section1 Creating Wizards

View File

@@ -91,7 +91,7 @@
For more information about the project file settings, see For more information about the project file settings, see
\l{Declaring Other Libraries}{qmake Manual: Declaring Other Libraries}. \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}, {Add subprojects to projects}, {Add libraries to CMake projects},
{Use project wizards}, {Creating Projects} {Use project wizards}, {Creating Projects}
*/ */
@@ -103,7 +103,7 @@
\ingroup creator-tutorials \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 \brief How to create your own library and link your application against it
when using qmake as the build system. when using qmake as the build system.
@@ -114,7 +114,7 @@
\note This tutorial only applies when you select qmake as the build \note This tutorial only applies when you select qmake as the build
system for the subdirs project. system for the subdirs project.
\section1 Creating a shared library \section1 Create a shared library
To create a shared library: To create a shared library:
@@ -154,7 +154,7 @@
list, select a subdirs project. For example, \e MyApplication. list, select a subdirs project. For example, \e MyApplication.
\endlist \endlist
\section1 Linking an application to the library \section1 Link an application to the library
To link a project to the shared library: To link a project to the shared library:

View File

@@ -59,7 +59,7 @@
To change the values of environment variables for the build environment, To change the values of environment variables for the build environment,
select the variable and then select \uicontrol Edit. Enter the new value 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}. To add new variables, select \uicontrol {Add}.

View File

@@ -85,7 +85,7 @@
\li \l{Specify clangd settings}{Clangd} \li \l{Specify clangd settings}{Clangd}
\li \l{Specify Clang tools settings}{Clang Tools} \li \l{Specify Clang tools settings}{Clang Tools}
\li \l{Override CMake settings for a project}{CMake} \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{Configure C++ code model}{C++ Code Model}
\li \l{Specify code style}{C++ Code Style} \li \l{Specify code style}{C++ Code Style}
\li \l{Set C++ file naming preferences}{C++ File Naming} \li \l{Set C++ file naming preferences}{C++ File Naming}

View File

@@ -16,9 +16,10 @@
\title Share project settings \title Share project settings
\QC stores user-specific project settings in a \e {.user} file. You can \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 share these settings between several projects as a \e {.shared} file
has the same XML structure as a \e {.user} file, but only has the (such as, \c {CMakeLists.txt.shared}, \c {qtcreator.pro.shared}, or
settings to share. \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 To share CMake project settings, use \l{CMake Presets} or a
\c {CMakeLists.txt.shared} file. \c {CMakeLists.txt.shared} file.

View File

@@ -35,8 +35,9 @@
\section1 Set up PySide6 \section1 Set up PySide6
If you have not installed the required version of PySide6, \QC prompts you to The recommended way to run PySide6 projects from \QC is to install PySide6
do so when you open a .py file. 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} \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 \QD form, and the Qt Quick Application wizard creates a \c {.qml} file that
imports Qt Quick controls. 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 The \uicontrol Window wizard adds code to the source file, without the UI
file. file.
@@ -113,7 +108,7 @@
\uicontrol {REPL Import File}. To also import all functions from \uicontrol {REPL Import File}. To also import all functions from
the file, select \uicontrol {REPL Import *}. the file, select \uicontrol {REPL Import *}.
\sa {Creating a Qt for Python Application with Qt Widgets}, \sa {Tutorial: Qt Widgets and Python}, {Tutorial: Qt Widgets UI and Python},
{Creating a Qt for Python Application with Qt Quick}, {Tutorial: Qt Quick and Python},
{Activate kits for a project} {Activate kits for a project}
*/ */

View File

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

View File

@@ -8,7 +8,8 @@
\ingroup creator-tutorials \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. \brief How to develop a Qt widget-based application with Python.
@@ -22,7 +23,7 @@
\l {https://doc.qt.io/qtforpython/tutorials/index.html} \l {https://doc.qt.io/qtforpython/tutorials/index.html}
{Qt for Python Examples and Tutorials}. {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 To create a Qt for Python application that has the source file for a main
class: class:
@@ -75,7 +76,9 @@
using pip. using pip.
\endlist \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 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, the QApplication and the base class you selected in the Qt Widgets module,
@@ -90,7 +93,7 @@
from PySide6 import QtCore, QtWidgets from PySide6 import QtCore, QtWidgets
\endcode \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 The wizard adds a main class with the specified name that inherits from the
specified base class: specified base class:
@@ -118,7 +121,7 @@
... ...
\endcode \endcode
\section1 Adding Signals and Slots \section1 Add signals and slots
Then, add a signal and a slot to implement the random function: Then, add a signal and a slot to implement the random function:
@@ -131,7 +134,7 @@
self.text.setText(random.choice(self.hello)) self.text.setText(random.choice(self.hello))
\endcode \endcode
\section1 Adding a Main Function \section1 Add a main function
The wizard adds a main function, where it creates a QApplication instance. As 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 Qt can receive arguments from the command line, you can pass any arguments to
@@ -144,7 +147,7 @@
... ...
\endcode \endcode
\section1 Instantiating the MainWindow Class \section1 Instantiate the MainWindow class
The wizard instantiates the \c MainWindow class and shows it: The wizard instantiates the \c MainWindow class and shows it:
@@ -155,7 +158,7 @@
... ...
\endcode \endcode
\section1 Executing the Qt Code \section1 Execute the Qt Code
Finally, the wizard calls the \c app.exec() method to enter the Qt Finally, the wizard calls the \c app.exec() method to enter the Qt
main loop and start executing the Qt code: main loop and start executing the Qt code:
@@ -165,11 +168,11 @@
sys.exit(app.exec()) sys.exit(app.exec())
\endcode \endcode
\section1 Running the Application \section1 Run the application
Select the \inlineimage icons/run_small.png Select the \inlineimage icons/run_small.png
button to run the application. 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} {Develop Qt for Python Applications}
*/ */

View File

@@ -8,7 +8,8 @@
\ingroup creator-tutorials \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. \brief How to develop a Qt Quick application with Python.
@@ -22,7 +23,7 @@
\l {https://doc.qt.io/qtforpython/tutorials/index.html} \l {https://doc.qt.io/qtforpython/tutorials/index.html}
{Qt for Python Examples and Tutorials}. {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: To create a Qt for Python application that has a main QML file:
@@ -65,7 +66,16 @@
using pip. using pip.
\endlist \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 The wizard adds the following imports to the \c {main.py} source file for
access to QGuiApplication and QQmlApplicationEngine: access to QGuiApplication and QQmlApplicationEngine:
@@ -78,7 +88,7 @@
from PySide6.QtQml import QQmlApplicationEngine from PySide6.QtQml import QQmlApplicationEngine
\endcode \endcode
\section1 Adding a Main Function \section1 Add a main function
The wizard also adds a main function, where it creates a QGuiApplication The wizard also adds a main function, where it creates a QGuiApplication
instance and passes system arguments to the QGuiApplication object: instance and passes system arguments to the QGuiApplication object:
@@ -89,7 +99,7 @@
... ...
\endcode \endcode
\section1 Loading the QML File \section1 Load the QML file
The following lines in the main class create a QQmlApplicationEngine The following lines in the main class create a QQmlApplicationEngine
instance and load the generated QML file to the engine object: instance and load the generated QML file to the engine object:
@@ -115,12 +125,12 @@
... ...
\endcode \endcode
\section1 Designing the UI \section1 Design the UI
Open the \c {main.qml} file in the \uicontrol Edit mode to design a Open the \c {main.qml} file in the \uicontrol Edit mode to design a
Qt Quick UI. Qt Quick UI.
\section2 Adding Imports \section2 Add imports
Add imports for Qt Quick Controls and Layouts: Add imports for Qt Quick Controls and Layouts:
@@ -131,7 +141,7 @@
import QtQuick.Layouts import QtQuick.Layouts
\endcode \endcode
\section2 Adding Properties and Functions \section2 Add properties and functions
The wizard adds a main window: The wizard adds a main window:
@@ -158,7 +168,7 @@
} }
\endcode \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 Add \l {Text} and \l {Button} QML types within a \l {ColumnLayout} type to
design the UI: design the UI:
@@ -182,11 +192,10 @@
You can also use \l{Qt Design Studio Manual}{\QDS} to design Qt Quick UIs. 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 Select \inlineimage icons/run_small.png to run the application.
button 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} {Develop Qt for Python Applications}
*/ */

View File

@@ -7,7 +7,8 @@
\nextpage creator-how-tos.html \nextpage creator-how-tos.html
\ingroup creator-tutorials \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 \brief How to create a Qt Quick application that uses Qt Quick Controls and
runs on Android and iOS devices. runs on Android and iOS devices.
@@ -24,7 +25,7 @@
\image creator_android_tutorial_ex_app.png \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 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 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 \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 The main view of the application displays an SVG bubble image that moves
around the screen when you tilt the device. around the screen when you tilt the device.
@@ -54,7 +55,7 @@
\skipto qt_add_qml_module \skipto qt_add_qml_module
\printuntil ) \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 Create the main view in the \e main.qml file by adding an \l Image
component with \e Bluebubble.svg as the source: component with \e Bluebubble.svg as the source:
@@ -113,7 +114,7 @@
\printuntil } \printuntil }
\printuntil } \printuntil }
\section1 Locking Device Orientation \section1 Lock device orientation
The device display is rotated by default when the device orientation The device display is rotated by default when the device orientation
changes between portrait and landscape. For this example, it would be changes between portrait and landscape. For this example, it would be
@@ -153,7 +154,7 @@
\skipto set_target_properties \skipto set_target_properties
\printuntil ) \printuntil )
\section1 Adding Dependencies \section1 Add dependencies
You must tell the build system which Qt modules your application needs by You must tell the build system which Qt modules your application needs by
specifying dependencies in the project file. Select \uicontrol Projects to specifying dependencies in the project file. Select \uicontrol Projects to
@@ -184,7 +185,7 @@
For more information about the CMakeLists.txt file, see For more information about the CMakeLists.txt file, see
\l{Getting started with CMake}. \l{Getting started with CMake}.
\section1 Running the Application \section1 Run the application
You can now deploy the application to a device: You can now deploy the application to a device:

View File

@@ -7,7 +7,8 @@
\nextpage creator-how-tos.html \nextpage creator-how-tos.html
\ingroup creator-tutorials \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. \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 \QC generates a component file, \e Main.qml, and opens it in the
\uicontrol Edit mode. \uicontrol Edit mode.
\section1 Deploying Applications \section1 Deploy applications
The main view of the application displays a Qt logo inside a rectangle in The main view of the application displays a Qt logo inside a rectangle in
the top left corner of the view and two empty rectangles. the top left corner of the view and two empty rectangles.
@@ -46,7 +47,7 @@
\skipto qt_add_qml_module \skipto qt_add_qml_module
\printuntil ) \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 Because the \l Window QML type requires that you add states into child
components, use the wizard to create a custom QML type called components, use the wizard to create a custom QML type called
@@ -58,7 +59,7 @@
\li Go to \uicontrol File > \uicontrol {New File}. \li Go to \uicontrol File > \uicontrol {New File}.
\li Select \uicontrol Qt > \uicontrol {QML File (Qt Quick 2)}. \li Select \uicontrol Qt > \uicontrol {QML File (Qt Quick 2)}.
\li Select \uicontrol Choose to open the \uicontrol Location dialog. \li Select \uicontrol Choose to open the \uicontrol Location dialog.
\li In the \uicontrol {File name} field, enter a name for the custom \li In \uicontrol {File name}, enter a name for the custom
QML type: \e Page. QML type: \e Page.
\li Select \uicontrol Next to open the \uicontrol {Project Management} \li Select \uicontrol Next to open the \uicontrol {Project Management}
dialog. dialog.
@@ -117,7 +118,7 @@
Next, make the image move between the rectangles when users click Next, make the image move between the rectangles when users click
them by adding states and by connecting mouse clicks to state changes. them by adding states and by connecting mouse clicks to state changes.
\section1 Connecting Mouse Clicks to State Changes \section1 Connect mouse clicks to state changes
To make the image move between the rectangles when users click them, add 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 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. 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 Open \e Main.qml for editing and add an instance of the Page custom
component to it: component to it:
@@ -151,7 +152,7 @@
Press \key {Ctrl+R} to run the application, and click the rectangles to Press \key {Ctrl+R} to run the application, and click the rectangles to
move the Qt logo from one rectangle to another. 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, Create transitions to apply animation to the image. For example,
the image bounces back when it moves to \e middleRightRect and eases into the image bounces back when it moves to \e middleRightRect and eases into

View File

@@ -95,9 +95,9 @@
\QC creates a QML file, \e Main.qml, that you can modify in the \QC creates a QML file, \e Main.qml, that you can modify in the
\uicontrol Edit mode. \uicontrol Edit mode.
\sa {Create Qt Quick UI Prototypes}, {Creating a Mobile Application}, \sa {Create Qt Quick UI Prototypes}, {Tutorial: Mobile application},
{Creating a Qt for Python Application with Qt Quick}, {Tutorial: Qt Quick and Python},
{Creating a Qt Quick Application}, {Creating Projects}, {Tutorial: Qt Quick application}, {Creating Projects},
{Developing Qt Quick Applications} {Developing Qt Quick Applications}
*/ */

View File

@@ -4,11 +4,11 @@
/*! /*!
//! [qtquick empty application] //! [qtquick empty application]
\section1 Creating the Project \section1 Create the project
\list 1 \list 1
\li Select \uicontrol File > \uicontrol {New Project} > \li Go to \uicontrol File > \uicontrol {New Project} >
\uicontrol {Application (Qt)} > \uicontrol {Qt Quick Application}. \uicontrol {Application (Qt)} > \uicontrol {Qt Quick Application}.
\image qtcreator-project-qt-quick.webp {New Project dialog} \image qtcreator-project-qt-quick.webp {New Project dialog}
@@ -16,11 +16,11 @@
\li Select \uicontrol Choose to open the \li Select \uicontrol Choose to open the
\uicontrol {Project Location} dialog. \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 When naming your own projects, keep in mind that you cannot
easily rename them later. 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. files. You can move project folders later without problems.
\li Select \uicontrol Next to open the \li Select \uicontrol Next to open the
@@ -28,11 +28,10 @@
\image qtcreator-project-qt-quick-details.webp {Define Project Details dialog} \image qtcreator-project-qt-quick-details.webp {Define Project Details dialog}
\li Deselect the \uicontrol {Create a project that you can open in \QDS} \li Clear \uicontrol {Create a project that you can open in \QDS}.
check box.
\note This tutorial shows how to create the application in the \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. following instructions won't apply.
\li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog. \li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog.

View File

@@ -160,7 +160,7 @@
\if defined(qtdesignstudio) \if defined(qtdesignstudio)
\note In this section, you are using advanced menu items. These are not \note In this section, you are using advanced menu items. These are not
visible by default. To toggle the visibility of advanced menu items, see visible by default. To toggle the visibility of advanced menu items, see
\l{Customizing the Menu}. \l{Customizing the Menu Bar}.
\endif \endif
With QML Profiler, you can find causes for typical performance problems With QML Profiler, you can find causes for typical performance problems

View File

@@ -107,6 +107,6 @@
To pin toolbars by default, select \uicontrol {Pin Qt Quick Toolbar}. To pin toolbars by default, select \uicontrol {Pin Qt Quick Toolbar}.
\if defined(qtcreator) \if defined(qtcreator)
\sa {Creating a Qt Quick Application} \sa {Tutorial: Qt Quick application}
\endif \endif
*/ */

View File

@@ -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 {<KEY> <TYPE>:<VALUE>} 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 {<Qt_Online_Installer>/Tools/sdktool}
\li \QC stand-alone installer:
\list
\li On Windows and Linux: \c {<qtcreator>/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 <OPERATION>} to get help on the options
required for the operation.
\row
\li \c {--sdkpath=<PATH> | -s <PATH>}
\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> <TYPE>:<VALUE>} 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 <NAME> --oses <OS>(,<OS>)*
\endcode
\section2 addAbiFlavor Options
The following table summarizes the available options.
\table
\header
\li Option
\li Description
\li Required
\row
\li \c {--flavor <NAME>}
\li Name of the system architecture (ABI).
\li \inlineimage ok.png
\row
\li \c {--oses <OS>(,<OS>)*}
\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 <ID> --name <NAME> --path <PATH> [<KEY> <TYPE:VALUE>]
\endcode
\section2 addCMake Options
The following table summarizes the available options.
\table
\header
\li Option
\li Description
\li Required
\row
\li \c {--id <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 <NAME>}
\li Name of the CMake installation.
\li \inlineimage ok.png
\row
\li \c {--path <PATH>}
\li Path to the CMake executable.
\li \inlineimage ok.png
\row
\li \c {<KEY> <TYPE:VALUE>}
\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 <ID> --language <ID> --name <NAME> --path <PATH> --abi <ABI STRING> [OPTIONS]
\endcode
\section2 addTC Options
The following table summarizes the available options.
\table
\header
\li Option
\li Description
\li Required
\row
\li \c {--abi <ABI STRING>}
\li ABI of the compiler in a format that
\c {ProjectExplorer::Abi::fromString()} can parse.
\li \inlineimage ok.png
\row
\li \c {--id <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 <ID>}
\li ID of the input language of the toolchain: \c C or \c Cxx.
\li \inlineimage ok.png
\row
\li \c {--name <NAME>}
\li Name of the toolchain.
\li \inlineimage ok.png
\row
\li \c {--path <PATH>}
\li Path to the compiler executable.
\li \inlineimage ok.png
\row
\li \c {--supportedAbis <ABI STRING>,<ABI STRING>}
\li List of ABIs that the compiler supports.
\li
\row
\li \c {<KEY> <TYPE:VALUE>}
\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 <ID> --name <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 <ABI,ABI>}
\li Comma-separated list of system architecture definitions.
\li
\row
\li \c {--binary <PATH>}
\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 <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 <ID>}
\li Unique ID of the debugger.
\li \inlineimage ok.png
\row
\li \c {--name <NAME>}
\li Name of the debugger.
\li \inlineimage ok.png
\row
\li \c {<KEY> <TYPE:VALUE>}
\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 <ID> --name <NAME> --type <INT> [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 <INT>}
\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 <STRING>}
\li Boot to Qt platform info about hardware.
\li
\row
\li \c {--b2qSoftware <STRING>}
\li Boot to Qt platform info about software.
\li
\row
\li \c {--debugServerKey <STRING>}
\li Debug server key.
\li
\row
\li \c {--dockerClangdExecutable <STRING>}
\li Path to the Clangd executable in the Docker container.
\li
\row
\li \c {--dockerMappedPaths <STRING>}
\li Semicolon-separated list of Docker mapped paths.
\li
\row
\li \c {--dockerRepo <STRING>}
\li Docker image repository.
\li
\row
\li \c {--dockerTag <STRING>}
\li Docker image tag.
\li
\row
\li \c {--freePorts <STRING>}
\li Free ports.
\li
\row
\li \c {--host <STRING>}
\li Host name or IP address of the device.
\li
\row
\li \c {--id <ID>}
\li Unique ID of the device.
\li \inlineimage ok.png
\row
\li \c {--keyFile <STRING>}
\li Path to the user's private key file.
\li
\row
\li \c {--name <NAME>}
\li Name of the device.
\li \inlineimage ok.png
\row
\li \c {--origin <INT>}
\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 <STRING>}
\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 <STRING>}
\li Password for password authentication.
\li
\row
\li \c {--sshPort <INT>}
\li Port number for SSH connections.
\li
\row
\li \c {--timeout <INT>}
\li Timeout for reusing the SSH connection in seconds.
\li
\row
\li \c {--type <INT>}
\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 <STRING>}
\li Username to access the device.
\li
\row
\li \c {<KEY> <TYPE:VALUE>}
\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 <ID> --name <NAME> --qmake <PATH> --type <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 <ABI,ABI>}
\li Comma-separated list of system architecture definitions.
\li
\row
\li \c {--id <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 <NAME>}
\li Name of the Qt installation.
\li \inlineimage ok.png
\row
\li \c {--qmake <PATH>}
\li Path to the qmake executable in the Qt installation.
\li \inlineimage ok.png
\row
\li \c {--type <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 {<KEY> <TYPE:VALUE>}
\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 <ID> --name <NAME> --devicetype <TYPE> [OPTIONS]
\endcode
\section2 addKit Options
The following table summarizes the available options.
\table
\header
\li Option
\li Description
\li Required
\row
\li \c {--builddevice <ID>}
\li The ID of the device to build applications on.
\li
\row
\li \c {--cmake <ID>}
\li The ID of the CMake executable to use for building the project.
\li
\row
\li \c {--cmake-config <KEY:TYPE=VALUE>}
\li Parameters for the CMake configuration of the kit. You can add
multiple entries of this type.
\li
\row
\li \c {--cmake-generator <GEN>:<EXTRA>:<TOOLSET>:<PLATFORM>}
\li The CMake Generator to use for producing project files.
\li
\row
\li \c {--debugger <PATH>}
\li Path to the debugger to use for the kit. Do not use this option
with \c {--debuggerid}.
\li
\row
\li \c {--debuggerengine <ENGINE>}
\li The type of the debugger set with \c {--debugger}. Do not use
this option with \c {--debuggerid}.
\li
\row
\li \c {--debuggerid <ID>}
\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 <ID>}
\li The device to run applications on.
\li
\row
\li \c {--devicetype <TYPE>}
\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 <VALUE>}
\li Environment variable values for the build environment. You can
add multiple entries of this type.
\li
\row
\li \c {--icon <PATH>}
\li Path to the image to use as an icon for the kit.
\li
\row
\li \c {--id <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 {--<LANG>toolchain <ID>}
\li One of the IDs used when adding compilers with the \c {addTC}
operation. <LANG> is: \c C, \c Cxx, \c Nim, or something set
by a plugin.
\li
\row
\li \c {--mkspec <PATH>}
\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 <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 <ID>}
\li One of the IDs used when adding Qt versions with the \c {addQt}
operation.
\li
\row
\li \c {<KEY> <TYPE:VALUE>}
\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> <TYPE>:<VALUE>}
key-value pairs.
\section1 Removing Configured Items
To remove a CMake tool, compiler, debugger, device, Qt version, or kit,
enter:
\badcode
rm<Item> --id <ID>
\endcode
Where \c <ID> is the ID of the item.
\sa {Manage Kits}{How To: Manage Kits}, {Installation}, {Kits}
*/

View File

@@ -79,6 +79,7 @@
\previouspage creator-how-tos.html \previouspage creator-how-tos.html
\ingroup creator-how-to-projects-create \ingroup creator-how-to-projects-create
\ingroup creator-how-to-projects-configure
\title Create VCS repositories for new projects \title Create VCS repositories for new projects

View File

@@ -7,9 +7,10 @@
\nextpage creator-how-tos.html \nextpage creator-how-tos.html
\ingroup creator-tutorials \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. for the desktop.
This tutorial describes how to use \QC to create a small Qt application, This tutorial describes how to use \QC to create a small Qt application,
@@ -19,54 +20,54 @@
\image qtcreator-textfinder-screenshot.png \image qtcreator-textfinder-screenshot.png
\section1 Creating the Text Finder Project \section1 Create the Text Finder project
\list 1 \list 1
\li Select \uicontrol File > \uicontrol {New Project} > \li Go to \uicontrol File > \uicontrol {New Project} >
\uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application} \uicontrol {Application (Qt)} > \uicontrol {Qt Widgets Application}.
> \uicontrol Choose.
\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}. For example, \c {C:\Qt\examples}.
\li Select \uicontrol{Next} (on Windows and Linux) or \li Select \uicontrol{Next} (on Windows and Linux) or
\uicontrol Continue (on \macos) to open the \uicontrol Continue (on \macos) to open the
\uicontrol {Define Build System} dialog. \uicontrol {Define Build System} dialog.
\image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog} \image qtcreator-new-project-build-system.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. {CMake} as the build system to use for building the project.
\li Select \uicontrol Next or \uicontrol Continue to open the \li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol{Class Information} dialog. \uicontrol{Class Information} dialog.
\image qtcreator-class-info-qt-gui.png {Class Information dialog} \image qtcreator-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. 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. class type.
\note The \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file} \note \uicontrol{Header file}, \uicontrol{Source file} and \uicontrol{Form file}
fields are automatically updated to match the name of the class. s are automatically updated to match the name of the class.
\li Select \uicontrol Next or \uicontrol Continue to open the \li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Translation File} dialog. \uicontrol {Translation File} dialog.
\image qtcreator-new-qt-gui-application-translationfile.png {Translation File dialog} \image qtcreator-new-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 plan to \l {Use Qt Linguist}{translate} the application to. This
sets up localization support for the application. You can add other sets up localization support for the application. You can add other
languages later by editing the project file. languages later by editing the project file.
@@ -74,7 +75,7 @@
\li Select \uicontrol Next or \uicontrol Continue to open the \li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Kit Selection} dialog. \uicontrol {Kit Selection} dialog.
\image qtcreator-new-project-qt-versions-qt-gui.png {Kit Selection dialog} \image qtcreator-new-project-kit-selection.webp {Kit Selection dialog}
\li Select build and run \l{Kits}{kits} for your \li Select build and run \l{Kits}{kits} for your
project. project.
@@ -82,7 +83,7 @@
\li Select \uicontrol Next or \uicontrol Continue to open the \li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Project Management} dialog. \uicontrol {Project Management} dialog.
\image qtcreator-new-project-summary-qt-gui.png {Project Management dialog} \image qtcreator-new-project-summary.webp {Project Management dialog}
\li Review the project settings, and select \uicontrol{Finish} (on Windows and \li Review the project settings, and select \uicontrol{Finish} (on Windows and
Linux) or \uicontrol Done (on \macos) to create the project. Linux) or \uicontrol Done (on \macos) to create the project.
@@ -111,18 +112,18 @@
If you selected CMake as the build system, \QC created a CMakeLists.txt If you selected CMake as the build system, \QC created a CMakeLists.txt
project file for you. 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 Begin by designing the user interface and then move on to filling
in the missing code. Finally, add the find functionality. 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} \image qtcreator-textfinder-ui.png {Text Finder UI}
\list 1 \list 1
\li In the \uicontrol{Editor} mode, double-click the textfinder.ui file in the \li In the \uicontrol {Edit} mode, double-click the textfinder.ui file in the
\uicontrol{Projects} view to launch the integrated \QD. \uicontrol{Projects} view to launch the integrated \QD.
\li Drag the following widgets to the form: \li Drag the following widgets to the form:
@@ -138,10 +139,10 @@
\image qtcreator-textfinder-ui-widgets.png {Adding widgets to Text Finder UI} \image qtcreator-textfinder-ui-widgets.png {Adding widgets to Text Finder UI}
\note To easily locate the widgets, use the search box at the top of the \note To easily locate the widgets, use the search box at the top of the
\uicontrol Sidebar. For example, to find the \uicontrol Label widget, start typing \uicontrol {Widget Box}. For example, to find the \uicontrol Label widget,
the word \b label. 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 \li Double-click the \uicontrol{Label} widget and enter the text
\b{Keyword}. \b{Keyword}.
@@ -199,7 +200,7 @@
For more information about designing forms with \QD, see the For more information about designing forms with \QD, see the
\l{\QD Manual}. \l{\QD Manual}.
\section2 Completing the Header File \section2 Complete the header file
The textfinder.h file already has the necessary #includes, a constructor, 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, a destructor, and the \c{Ui} object. You need to add a private function,
@@ -218,7 +219,7 @@
\endlist \endlist
\section2 Completing the Source File \section2 Complete the source file
Now that the header file is complete, move on to the source file, Now that the header file is complete, move on to the source file,
textfinder.cpp. textfinder.cpp.
@@ -258,7 +259,7 @@
QMetaObject::connectSlotsByName(TextFinder); QMetaObject::connectSlotsByName(TextFinder);
\endcode \endcode
\section2 Creating a Resource File \section2 Create a resource file
You need a resource file (.qrc) within which you embed the input 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. text file. The input file can be any .txt file with a paragraph of text.
@@ -269,32 +270,32 @@
\list 1 \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. \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. 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. and select \uicontrol Next or \uicontrol Continue.
The \uicontrol{Project Management} dialog opens. 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 and select \uicontrol{Finish} or \uicontrol Done to open the file
in the code editor. in the code editor.
\li Select \uicontrol Add > \uicontrol {Add Prefix}. \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 \li Select \uicontrol Add > \uicontrol {Add Files}, to locate and add
@@ -304,7 +305,7 @@
\endlist \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 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 the resource file as a source file in the \e CMakeLists.txt file that the
@@ -314,10 +315,9 @@
\skipto set(PROJECT_SOURCES \skipto set(PROJECT_SOURCES
\printuntil ) \printuntil )
\section1 Compiling and Running Your Application \section1 Build and run your application
Now that you have all the necessary files, select the Now that you have all the necessary files, select
\inlineimage icons/run_small.png \inlineimage icons/run_small.png to build and run your application.
button to compile and run your application.
*/ */

View File

@@ -119,5 +119,5 @@
To import device profiles from .qdp files, select \uicontrol Open. To save To import device profiles from .qdp files, select \uicontrol Open. To save
them as .qdp files, select \uicontrol 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}
*/ */

View File

@@ -69,5 +69,5 @@
\MinGW or installing a Qt version that was built with Microsoft Visual Studio, \MinGW or installing a Qt version that was built with Microsoft Visual Studio,
depending on which configuration you want to use for your applications. 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}
*/ */

View File

@@ -474,7 +474,7 @@
\li Mode \li Mode
\li Modes correspond to complete screens of controls, specialized \li Modes correspond to complete screens of controls, specialized
for a task. for a task.
\image qtcreator-mode-selector.png {Mode selector} \image qtcreator-mode-selector.webp {Mode selector}
\li You can add a mode for a new type of editor, for example. \li You can add a mode for a new type of editor, for example.
Use descriptive, but short mode names. They have to fit in the Use descriptive, but short mode names. They have to fit in the
\uicontrol {Mode selector}. \uicontrol {Mode selector}.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -4,16 +4,16 @@ import qbs.FileInfo
import qbs.Utilities import qbs.Utilities
Module { Module {
property string qtcreator_display_version: '14.0.0-rc1' property string qtcreator_display_version: '14.0.0'
property string ide_version_major: '13' property string ide_version_major: '14'
property string ide_version_minor: '0' property string ide_version_minor: '0'
property string ide_version_release: '84' property string ide_version_release: '0'
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
+ ide_version_release + ide_version_release
property string ide_compat_version_major: '13' property string ide_compat_version_major: '14'
property string ide_compat_version_minor: '0' property string ide_compat_version_minor: '0'
property string ide_compat_version_release: '84' property string ide_compat_version_release: '0'
property string qtcreator_compat_version: ide_compat_version_major + '.' property string qtcreator_compat_version: ide_compat_version_major + '.'
+ ide_compat_version_minor + '.' + ide_compat_version_release + ide_compat_version_minor + '.' + ide_compat_version_release

View File

@@ -632,6 +632,9 @@ class DumperBase():
self.register_struct('@QList<@QStandardItemData>', p5=1, p6=3) self.register_struct('@QList<@QStandardItemData>', p5=1, p6=3)
self.register_struct('@QList<@QRect>', 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) typeid_var_list = self.register_struct('@QList<@QVariant>', p5=1, p6=3)
self.register_typedef('@QVariantList', typeid_var_list) self.register_typedef('@QVariantList', typeid_var_list)

View File

@@ -24,6 +24,7 @@
"qbs.Probes", "qbs.Probes",
"qbs.Process", "qbs.Process",
"qbs.PropertyList", "qbs.PropertyList",
"qbs.ProviderUtils",
"qbs.TemporaryDir", "qbs.TemporaryDir",
"qbs.TextFile", "qbs.TextFile",
"qbs.UnixUtils", "qbs.UnixUtils",

View File

@@ -19,7 +19,6 @@ Module {
exports: [ "qbs/Depends 1.0" ] exports: [ "qbs/Depends 1.0" ]
prototype: "QQuickItem" prototype: "QQuickItem"
Property { name: "condition"; type: "bool" } Property { name: "condition"; type: "bool" }
Property { name: "enableFallback"; type: "bool" }
Property { name: "limitToSubProject"; type: "bool" } Property { name: "limitToSubProject"; type: "bool" }
Property { name: "multiplexConfigurationIds"; type: "string"; isList: true } Property { name: "multiplexConfigurationIds"; type: "string"; isList: true }
Property { name: "name"; type: "string" } Property { name: "name"; type: "string" }
@@ -93,6 +92,8 @@ Module {
name: "ModuleProvider" name: "ModuleProvider"
exports: [ "qbs/ModuleProvider 1.0" ] exports: [ "qbs/ModuleProvider 1.0" ]
prototype: "QQuickItem" prototype: "QQuickItem"
Property { name: "isEager"; type: "bool" }
Property { name: "moduleName"; type: "string" }
Property { name: "name"; type: "string" } Property { name: "name"; type: "string" }
Property { name: "outputBaseDir"; type: "string" } Property { name: "outputBaseDir"; type: "string" }
Property { name: "relativeSearchPaths"; type: "string"; isList: true } Property { name: "relativeSearchPaths"; type: "string"; isList: true }

View File

@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
# Remove when sharing with others. # 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") list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}/Qt Creator.app/Contents/Resources")
@else @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") list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}/Contents/Resources")
@else @else
list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}") list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}")

View File

@@ -7811,7 +7811,7 @@ Please check the output pane for more information.</source>
</message> </message>
<message> <message>
<source>Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer.</source> <source>Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer.</source>
<translation>Zeigt auch im Code-Editor eine Warnung bei QML-Features an, die vom Qt Quick Designer nicht vollständig unterstützt werden.</translation> <translation>Zeigt auch im Code-Editor eine Warnung bei QML-Funktionen an, die vom Qt Quick Designer nicht vollständig unterstützt werden.</translation>
</message> </message>
<message> <message>
<source>Internationalization</source> <source>Internationalization</source>
@@ -10765,7 +10765,7 @@ Locked components cannot be modified or selected.</source>
</message> </message>
<message> <message>
<source>Verifying package integrity...</source> <source>Verifying package integrity...</source>
<translation type="unfinished"></translation> <translation>Prüfe die Integrität des Pakets...</translation>
</message> </message>
<message> <message>
<source>Unarchiving error.</source> <source>Unarchiving error.</source>
@@ -10927,7 +10927,7 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message> </message>
<message> <message>
<source>The device has to be connected with ADB debugging enabled to use this feature.</source> <source>The device has to be connected with ADB debugging enabled to use this feature.</source>
<translation>Das Gerät muss mit aktiviertem ADB-Debuggen angeschlossen sein, um diese Funktionalität nutzen zu können.</translation> <translation>Das Gerät muss mit aktiviertem ADB-Debuggen angeschlossen sein, um diese Funktion nutzen zu können.</translation>
</message> </message>
<message> <message>
<source>Opening connection port %1 failed.</source> <source>Opening connection port %1 failed.</source>
@@ -10963,7 +10963,7 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message> </message>
<message> <message>
<source>Android support is not yet configured.</source> <source>Android support is not yet configured.</source>
<translation type="unfinished"></translation> <translation>Android-Unterstützung ist noch nicht konfiguriert.</translation>
</message> </message>
<message> <message>
<source>The device info returned from AvdDialog is invalid.</source> <source>The device info returned from AvdDialog is invalid.</source>
@@ -11088,7 +11088,7 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message> </message>
<message> <message>
<source>Include default features for Qt modules.</source> <source>Include default features for Qt modules.</source>
<translation>Standard-Features für Qt-Module einschließen.</translation> <translation>Standardfunktionen für Qt-Module einschließen.</translation>
</message> </message>
<message> <message>
<source>Add</source> <source>Add</source>
@@ -11169,11 +11169,11 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message> </message>
<message> <message>
<source>Cannot find the package name from AndroidManifest.xml nor build.gradle files at &quot;%1&quot;.</source> <source>Cannot find the package name from AndroidManifest.xml nor build.gradle files at &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Konnte den Paketnamen nicht aus den Informationen in der AndroidManifest.xml-Datei oder der build.gradle-Datei in &quot;%1&quot; bestimmen.</translation>
</message> </message>
<message> <message>
<source>Deployment failed with the following errors:</source> <source>Deployment failed with the following errors:</source>
<translation type="unfinished"></translation> <translation>Das Deployment ist mit den folgenden Fehlern fehlgeschlagen:</translation>
</message> </message>
<message> <message>
<source>Install an APK File</source> <source>Install an APK File</source>
@@ -11397,7 +11397,7 @@ Der vom Kit mindestens benötigte API-Level ist %1.</translation>
</message> </message>
<message> <message>
<source>Cannot open &quot;%1&quot;.</source> <source>Cannot open &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>&quot;%1&quot; kann nicht geöffnet werden.</translation>
</message> </message>
<message> <message>
<source>Cannot parse &quot;%1&quot;.</source> <source>Cannot parse &quot;%1&quot;.</source>
@@ -11599,39 +11599,39 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist.
</message> </message>
<message> <message>
<source>Finished successfully.</source> <source>Finished successfully.</source>
<translation type="unfinished"></translation> <translation>Erfolgreich abgeschlossen.</translation>
</message> </message>
<message> <message>
<source>Installing / Uninstalling selected packages...</source> <source>Installing / Uninstalling selected packages...</source>
<translation type="unfinished"></translation> <translation>Installiere / Deinstalliere ausgewählte Pakete...</translation>
</message> </message>
<message> <message>
<source>Closing the preferences dialog will cancel the running and scheduled SDK operations.</source> <source>Closing the preferences dialog will cancel the running and scheduled SDK operations.</source>
<translation type="unfinished"></translation> <translation>Wenn Sie den Einstellungsdialog schließen, werden die laufenden und geplanten SDK-Operationen abgebrochen.</translation>
</message> </message>
<message> <message>
<source>Closing the options dialog will cancel the running and scheduled SDK operations.</source> <source>Closing the options dialog will cancel the running and scheduled SDK operations.</source>
<translation type="unfinished"></translation> <translation>Wenn Sie den Einstellungsdialog schließen, werden die laufenden und geplanten SDK-Operationen abgebrochen.</translation>
</message> </message>
<message> <message>
<source>Uninstalling %1...</source> <source>Uninstalling %1...</source>
<translation type="unfinished"></translation> <translation>Deinstalliere %1...</translation>
</message> </message>
<message> <message>
<source>Installing %1...</source> <source>Installing %1...</source>
<translation type="unfinished"></translation> <translation>Installiere %1...</translation>
</message> </message>
<message> <message>
<source>Updating installed packages...</source> <source>Updating installed packages...</source>
<translation type="unfinished"></translation> <translation>Aktualisiere installierte Pakete...</translation>
</message> </message>
<message> <message>
<source>[Packages to be uninstalled:]</source> <source>[Packages to be uninstalled:]</source>
<translation type="unfinished"></translation> <translation>[Pakete, die deinstalliert werden sollen:]</translation>
</message> </message>
<message> <message>
<source>[Packages to be installed:]</source> <source>[Packages to be installed:]</source>
<translation type="unfinished"></translation> <translation>[Pakete, die installiert werden sollen:]</translation>
</message> </message>
<message> <message>
<source>Android SDK Changes</source> <source>Android SDK Changes</source>
@@ -11720,7 +11720,7 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist.
</message> </message>
<message> <message>
<source>Failed to start AVD emulator for &quot;%1&quot; device.</source> <source>Failed to start AVD emulator for &quot;%1&quot; device.</source>
<translation type="unfinished"></translation> <translation>Das Starten des AVD-Emulators für das Gerät &quot;%1&quot; ist fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Clean Environment</source> <source>Clean Environment</source>
@@ -12340,11 +12340,11 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message> </message>
<message> <message>
<source>Use a timeout while executing test cases.</source> <source>Use a timeout while executing test cases.</source>
<translation type="unfinished"></translation> <translation>Zeitlimit für das Ausführen von Testfällen verwenden.</translation>
</message> </message>
<message> <message>
<source>Timeout used when executing test cases. This will apply for each test case on its own, not the whole project. Overrides test framework or build system defaults.</source> <source>Timeout used when executing test cases. This will apply for each test case on its own, not the whole project. Overrides test framework or build system defaults.</source>
<translation type="unfinished"></translation> <translation>Zeitlimit, das für das Ausführen von Testfällen benutzt wird. Dieses wird für jeden Testfall einzeln angewendet, nicht für das gesamte Projekt. Überschreibt die Vorgaben des Test-Frameworks und des Build-Systems.</translation>
</message> </message>
<message> <message>
<source>Omit run configuration warnings</source> <source>Omit run configuration warnings</source>
@@ -12494,23 +12494,23 @@ Warnung: Dies ist eine experimentelle Funktion und könnte dazu führen, dass di
</message> </message>
<message> <message>
<source>Apply path filters before scanning for tests.</source> <source>Apply path filters before scanning for tests.</source>
<translation type="unfinished"></translation> <translation>Pfade vor dem Suchen nach Tests filtern.</translation>
</message> </message>
<message> <message>
<source>Wildcard expressions for filtering:</source> <source>Wildcard expressions for filtering:</source>
<translation type="unfinished"></translation> <translation>Ausdrücke mit Platzhaltern, die zum Filtern benutzt werden:</translation>
</message> </message>
<message> <message>
<source>Add</source> <source>Add</source>
<translation type="unfinished">Hinzufügen</translation> <translation>Hinzufügen</translation>
</message> </message>
<message> <message>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation>Entfernen</translation>
</message> </message>
<message> <message>
<source>Limit Files to Path Patterns</source> <source>Limit Files to Path Patterns</source>
<translation type="unfinished"></translation> <translation>Dateien auf Suchmuster beschränken</translation>
</message> </message>
<message> <message>
<source>Scanning for Tests</source> <source>Scanning for Tests</source>
@@ -13028,7 +13028,7 @@ Dies könnte Probleme während der Ausführung verursachen.
</message> </message>
<message> <message>
<source>Repeat Tests</source> <source>Repeat Tests</source>
<translation type="unfinished"></translation> <translation>Tests wiederholen</translation>
</message> </message>
<message> <message>
<source>Output on failure</source> <source>Output on failure</source>
@@ -13728,7 +13728,7 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message> </message>
<message> <message>
<source>No Data</source> <source>No Data</source>
<translation type="unfinished"></translation> <translation>Keine Daten</translation>
</message> </message>
<message> <message>
<source>Axivion</source> <source>Axivion</source>
@@ -13744,15 +13744,15 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message> </message>
<message> <message>
<source>Open Issue in Dashboard</source> <source>Open Issue in Dashboard</source>
<translation type="unfinished"></translation> <translation>Problem im Dashboard anzeigen</translation>
</message> </message>
<message> <message>
<source>Open Table in Dashboard</source> <source>Open Table in Dashboard</source>
<translation type="unfinished"></translation> <translation>Tabelle im Dashboard anzeigen</translation>
</message> </message>
<message> <message>
<source>Copy Dashboard Link to Clipboard</source> <source>Copy Dashboard Link to Clipboard</source>
<translation type="unfinished"></translation> <translation>Dashboard-Link in die Zwischenablage kopieren</translation>
</message> </message>
<message> <message>
<source>Show rule details</source> <source>Show rule details</source>
@@ -13792,7 +13792,7 @@ Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
</message> </message>
<message> <message>
<source>Unauthenticated access failed (wrong user), using authenticated access...</source> <source>Unauthenticated access failed (wrong user), using authenticated access...</source>
<translation type="unfinished"></translation> <translation>Zugriff ohne Authentifizierung ist fehlgeschlagen (falscher Benutzer), verwende authentifizierten Zugriff...</translation>
</message> </message>
<message> <message>
<source>Enter the password for: <source>Enter the password for:
@@ -13830,7 +13830,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message> </message>
<message> <message>
<source>Search for issues inside the Axivion dashboard or request issue details for Axivion inline annotations to see them here.</source> <source>Search for issues inside the Axivion dashboard or request issue details for Axivion inline annotations to see them here.</source>
<translation type="unfinished"></translation> <translation>Suchen Sie nach Problemen im Axivion-Dashboard oder fordern Sie Problemdetails für Inline-Annotationen von Axivion an, um sie hier anzuzeigen.</translation>
</message> </message>
<message> <message>
<source>Fetch Projects</source> <source>Fetch Projects</source>
@@ -13882,7 +13882,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message> </message>
<message> <message>
<source>Add...</source> <source>Add...</source>
<translation type="unfinished">Hinzufügen...</translation> <translation>Hinzufügen...</translation>
</message> </message>
<message> <message>
<source>Edit...</source> <source>Edit...</source>
@@ -13890,27 +13890,27 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message> </message>
<message> <message>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation>Entfernen</translation>
</message> </message>
<message> <message>
<source>Default dashboard server:</source> <source>Default dashboard server:</source>
<translation type="unfinished"></translation> <translation>Vorgabe-Dashboardserver:</translation>
</message> </message>
<message> <message>
<source>unset</source> <source>unset</source>
<translation type="unfinished"></translation> <translation>nicht gesetzt</translation>
</message> </message>
<message> <message>
<source>Remove Server Configuration</source> <source>Remove Server Configuration</source>
<translation type="unfinished"></translation> <translation>Server-Konfiguration löschen</translation>
</message> </message>
<message> <message>
<source>Remove the server configuration &quot;%1&quot;?</source> <source>Remove the server configuration &quot;%1&quot;?</source>
<translation type="unfinished"></translation> <translation>Server-Konfiguration &quot;%1&quot; löschen?</translation>
</message> </message>
<message> <message>
<source>Add Dashboard Configuration</source> <source>Add Dashboard Configuration</source>
<translation type="unfinished"></translation> <translation>Dashboard-Konfiguration hinzufügen</translation>
</message> </message>
<message> <message>
<source>Edit Dashboard Configuration</source> <source>Edit Dashboard Configuration</source>
@@ -16965,7 +16965,7 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der
</message> </message>
<message> <message>
<source>With clangd enabled, Qt Creator fully supports modern C++ when highlighting code, completing symbols and so on.&lt;br&gt;This comes at a higher cost in terms of CPU load and memory usage compared to the built-in code model, which therefore might be the better choice on older machines and/or with legacy code.&lt;br&gt;You can enable/disable and fine-tune clangd &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source> <source>With clangd enabled, Qt Creator fully supports modern C++ when highlighting code, completing symbols and so on.&lt;br&gt;This comes at a higher cost in terms of CPU load and memory usage compared to the built-in code model, which therefore might be the better choice on older machines and/or with legacy code.&lt;br&gt;You can enable/disable and fine-tune clangd &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
<translation>Wenn Clangd aktiviert ist, unterstützt Qt Creator semantische Hervorhebung, Symbolvervollständigung und so weiter für Code, der modernes C++ nutzt.&lt;br/&gt;Das wirkt sich nachteilig auf CPU-Last und Speicherverbrauch im Vergleich zum eingebauten Codemodell aus, das deshalb eine bessere Wahl für ältere Maschinen und/oder für Legacy Code sein kann.&lt;br/&gt;Sie können Clangd &lt;a href=&quot;dummy&quot;&gt;hier&lt;/a&gt; aktivieren/deaktivieren und anpassen.</translation> <translation>Wenn Clangd aktiviert ist, unterstützt Qt Creator semantische Hervorhebung, Symbolvervollständigung und so weiter für Code, der modernes C++ nutzt.&lt;br/&gt;Das wirkt sich nachteilig auf CPU-Last und Speicherverbrauch im Vergleich zum integrierten Codemodell aus, das deshalb eine bessere Wahl für ältere Maschinen und/oder für Legacy Code sein kann.&lt;br/&gt;Sie können Clangd &lt;a href=&quot;dummy&quot;&gt;hier&lt;/a&gt; aktivieren/deaktivieren und anpassen.</translation>
</message> </message>
<message> <message>
<source>Enable Anyway</source> <source>Enable Anyway</source>
@@ -25744,7 +25744,7 @@ markers in the source code editor.</source>
</message> </message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enables stepping backwards.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enables stepping backwards.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Rückwärts-Debuggen aktivieren.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Hinweis:&lt;/b&gt; Diese Funktionalität ist sehr langsam und instabil innerhalb von GDB. Es kann unvorhergesehenes Verhalten auftreten, wenn man rückwärts über einen Systemaufruf springt, und die Debugger-Sitzung kann leicht zerstört werden.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Rückwärts-Debuggen aktivieren.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Hinweis:&lt;/b&gt; Diese Funktion ist sehr langsam und instabil innerhalb von GDB. Es kann unvorhergesehenes Verhalten auftreten, wenn man rückwärts über einen Systemaufruf springt, und die Debugger-Sitzung kann leicht zerstört werden.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Debug all child processes</source> <source>Debug all child processes</source>
@@ -28125,7 +28125,7 @@ Bitte wählen Sie einen 64-bit-Debugger in den Kit-Einstellungen für dieses Kit
</message> </message>
<message> <message>
<source>This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</source> <source>This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</source>
<translation>Diese Funktionalität ist sehr langsam und instabil innerhalb von GDB. Es kann unvorhergesehenes Verhalten auftreten, wenn man rückwärts über einen Systemaufruf springt, und die Debugger-Sitzung kann leicht unbenutzbar werden.</translation> <translation>Diese Funktion ist sehr langsam und instabil innerhalb von GDB. Es kann unvorhergesehenes Verhalten auftreten, wenn man rückwärts über einen Systemaufruf springt, und die Debugger-Sitzung kann leicht unbenutzbar werden.</translation>
</message> </message>
<message> <message>
<source>Reverse Direction</source> <source>Reverse Direction</source>
@@ -30618,7 +30618,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message> </message>
<message> <message>
<source>Does not interpret key sequences like Ctrl-S in FakeVim but handles them as regular shortcuts. This gives easier access to core functionality at the price of losing some features of FakeVim.</source> <source>Does not interpret key sequences like Ctrl-S in FakeVim but handles them as regular shortcuts. This gives easier access to core functionality at the price of losing some features of FakeVim.</source>
<translation>Tastensequenzen wie Strg-S nicht in FakeVim verarbeiten, sondern sie als gewöhnliche Tastenkombinationen behandeln. Dies erleichtert den Zugriff auf die Kernfunktionalität auf Kosten eingeschränkter Funktionalität von FakeVim.</translation> <translation>Tastensequenzen wie Strg-S nicht in FakeVim verarbeiten, sondern sie als gewöhnliche Tastenkombinationen behandeln. Dies erleichtert den Zugriff auf die Kernfunktionalität auf Kosten eingeschränkter Funktion von FakeVim.</translation>
</message> </message>
<message> <message>
<source>Does not interpret some key presses in insert mode so that code can be properly completed and expanded.</source> <source>Does not interpret some key presses in insert mode so that code can be properly completed and expanded.</source>
@@ -41022,7 +41022,7 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
</message> </message>
<message> <message>
<source>%1 (%2, %3 %4 at %5)</source> <source>%1 (%2, %3 %4 at %5)</source>
<translation>%1 (%2, %3 %4 an %5)</translation> <translation>%1 (%2, %3 %4: %5)</translation>
</message> </message>
<message> <message>
<source>Remove</source> <source>Remove</source>
@@ -43192,7 +43192,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message> </message>
<message> <message>
<source>At least one required feature is not present.</source> <source>At least one required feature is not present.</source>
<translation>Mindestens ein benötigtes Feature ist nicht vorhanden.</translation> <translation>Mindestens eine benötigte Funktion ist nicht vorhanden.</translation>
</message> </message>
<message> <message>
<source>Platform is not supported.</source> <source>Platform is not supported.</source>
@@ -43200,7 +43200,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message> </message>
<message> <message>
<source>At least one preferred feature is not present.</source> <source>At least one preferred feature is not present.</source>
<translation>Mindestens ein bevorzugtes Feature ist nicht vorhanden.</translation> <translation>Mindestens eine bevorzugte Funktion ist nicht vorhanden.</translation>
</message> </message>
<message> <message>
<source>Feature list is set and not of type list.</source> <source>Feature list is set and not of type list.</source>
@@ -47061,7 +47061,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message> </message>
<message> <message>
<source>JavaScript can break the visual tooling in Qt Design Studio.</source> <source>JavaScript can break the visual tooling in Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>JavaScript kann das visuelle Tooling in Qt Design Studio stören.</translation>
</message> </message>
<message> <message>
<source>Duplicate import (%1).</source> <source>Duplicate import (%1).</source>
@@ -47446,23 +47446,23 @@ Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um de
</message> </message>
<message> <message>
<source>Turn on</source> <source>Turn on</source>
<translation type="unfinished"></translation> <translation>Einschalten</translation>
</message> </message>
<message> <message>
<source>Allow versions below Qt %1</source> <source>Allow versions below Qt %1</source>
<translation type="unfinished"></translation> <translation>Versionen niedriger als Qt %1 erlauben</translation>
</message> </message>
<message> <message>
<source>Use advanced features (renaming, find usages, and so on) (experimental)</source> <source>Use advanced features (renaming, find usages, and so on) (experimental)</source>
<translation type="unfinished"></translation> <translation>Erweiterte Funktionen verwenden (umbenennen, Verweise finden und weiteres) (experimentell)</translation>
</message> </message>
<message> <message>
<source>Use from latest Qt version</source> <source>Use from latest Qt version</source>
<translation type="unfinished"></translation> <translation>Neueste Qt-Version verwenden</translation>
</message> </message>
<message> <message>
<source>Create .qmlls.ini files for new projects</source> <source>Create .qmlls.ini files for new projects</source>
<translation type="unfinished"></translation> <translation>.qmlls.ini-Dateien für neue Projekte erstellen</translation>
</message> </message>
<message> <message>
<source>QML Language Server</source> <source>QML Language Server</source>
@@ -48561,7 +48561,7 @@ Speichern fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Override device QML viewer:</source> <source>Override device QML viewer:</source>
<translation type="unfinished"></translation> <translation>Statt QML-Viewer auf Gerät verwenden:</translation>
</message> </message>
<message> <message>
<source>System Environment</source> <source>System Environment</source>
@@ -48574,31 +48574,31 @@ Speichern fehlgeschlagen.</translation>
<message> <message>
<source>QML Utility</source> <source>QML Utility</source>
<comment>QMLRunConfiguration display name.</comment> <comment>QMLRunConfiguration display name.</comment>
<translation type="unfinished"></translation> <translation>QML-Werkzeug</translation>
</message> </message>
<message> <message>
<source>No QML utility found.</source> <source>No QML utility found.</source>
<translation type="unfinished"></translation> <translation>Kein QML-Werkzeug gefunden.</translation>
</message> </message>
<message> <message>
<source>No QML utility specified for target device.</source> <source>No QML utility specified for target device.</source>
<translation type="unfinished"></translation> <translation>Für das Zielgerät wurde kein QML-Werkzeug angegeben.</translation>
</message> </message>
<message> <message>
<source>Qt Version:</source> <source>Qt Version:</source>
<translation type="unfinished"></translation> <translation>Qt-Version:</translation>
</message> </message>
<message> <message>
<source>Qt 6</source> <source>Qt 6</source>
<translation type="unfinished">Qt 6</translation> <translation>Qt 6</translation>
</message> </message>
<message> <message>
<source>Qt 5</source> <source>Qt 5</source>
<translation type="unfinished">Qt 5</translation> <translation>Qt 5</translation>
</message> </message>
<message> <message>
<source>QML Runtime</source> <source>QML Runtime</source>
<translation type="unfinished"></translation> <translation>QML-Runtime</translation>
</message> </message>
<message> <message>
<source>No script file to execute.</source> <source>No script file to execute.</source>
@@ -48614,7 +48614,7 @@ Speichern fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Update QmlProject File</source> <source>Update QmlProject File</source>
<translation type="unfinished"></translation> <translation>QmlProject-Datei aktualisieren</translation>
</message> </message>
<message> <message>
<source>Warning while loading project file %1.</source> <source>Warning while loading project file %1.</source>
@@ -48622,164 +48622,169 @@ Speichern fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>No Qt Design Studio installation found</source> <source>No Qt Design Studio installation found</source>
<translation type="unfinished"></translation> <translation>Es wurde keine Installation von Qt Design Studio gefunden</translation>
</message> </message>
<message> <message>
<source>Would you like to install it now?</source> <source>Would you like to install it now?</source>
<translation type="unfinished"></translation> <translation>Möchten Sie es jetzt installieren?</translation>
</message> </message>
<message> <message>
<source>Install</source> <source>Install</source>
<translation type="unfinished">Installieren</translation> <translation>Installieren</translation>
</message> </message>
<message> <message>
<source>Unknown</source> <source>Unknown</source>
<translation type="unfinished">Unbekannt</translation> <translation>Unbekannt</translation>
</message> </message>
<message> <message>
<source>QML PROJECT FILE INFO</source> <source>QML PROJECT FILE INFO</source>
<translation type="unfinished"></translation> <translation>QML PROJECT FILE INFO</translation>
</message> </message>
<message> <message>
<source>Qt Version - </source> <source>Qt Version - </source>
<translation type="unfinished"></translation> <translation>Qt-Version - </translation>
</message> </message>
<message> <message>
<source>Qt Design Studio Version - </source> <source>Qt Design Studio Version - </source>
<translation type="unfinished"></translation> <translation>Qt Design Studio-Version - </translation>
</message> </message>
<message> <message>
<source>No QML project file found - Would you like to create one?</source> <source>No QML project file found - Would you like to create one?</source>
<translation type="unfinished"></translation> <translation>Keine QML-Projektdatei gefunden - möchten Sie eine erstellen?</translation>
</message> </message>
<message> <message>
<source>Generate</source> <source>Generate</source>
<translation type="unfinished"></translation> <translation>Erstellen</translation>
</message> </message>
<message> <message>
<source>Qt Design Studio</source> <source>Qt Design Studio</source>
<translation type="unfinished">Qt Design Studio</translation> <translation>Qt Design Studio</translation>
</message> </message>
<message> <message>
<source>Open with Qt Design Studio</source> <source>Open with Qt Design Studio</source>
<translation type="unfinished"></translation> <translation>Mit Qt Design Studio öffnen</translation>
</message> </message>
<message> <message>
<source>Open</source> <source>Open</source>
<translation type="unfinished">Öffnen</translation> <translation>Öffnen</translation>
</message> </message>
<message> <message>
<source>Open with Qt Creator - Text Mode</source> <source>Open with Qt Creator - Text Mode</source>
<translation type="unfinished"></translation> <translation>Mit Qt Creator im Textmodus öffnen</translation>
</message> </message>
<message> <message>
<source>Remember my choice</source> <source>Remember my choice</source>
<translation type="unfinished"></translation> <translation>Meine Auswahl speichern</translation>
</message> </message>
<message> <message>
<source>Export Project</source> <source>Export Project</source>
<translation type="unfinished"></translation> <translation>Projekt exportieren</translation>
</message> </message>
<message> <message>
<source>Enable Automatic CMake Generation</source> <source>Enable Automatic CMake Generation</source>
<translation type="unfinished"></translation> <translation>Automatische CMake-Erstellung aktivieren</translation>
</message> </message>
<message> <message>
<source>Use MultiLanguage in 2D view</source> <source>Use MultiLanguage in 2D view</source>
<translation type="unfinished"></translation> <translation>MultiLanguage in der 2D-Ansicht verwenden</translation>
</message> </message>
<message> <message>
<source>Reads translations from MultiLanguage plugin.</source> <source>Reads translations from MultiLanguage plugin.</source>
<translation type="unfinished"></translation> <translation>Liest Übersetzungen aus dem MultiLanguage-Plugin.</translation>
</message> </message>
<message> <message>
<source>Failed to start Qt Design Studio.</source> <source>Failed to start Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Qt Design Studio konnte nicht gestartet werden.</translation>
</message> </message>
<message> <message>
<source>No project file (*.qmlproject) found for Qt Design Studio. <source>No project file (*.qmlproject) found for Qt Design Studio.
Qt Design Studio requires a .qmlproject based project to open the .ui.qml file.</source> Qt Design Studio requires a .qmlproject based project to open the .ui.qml file.</source>
<translation type="unfinished"></translation> <translation>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.</translation>
</message> </message>
<message> <message>
<source>Set as Main .qml File</source> <source>Set as Main .qml File</source>
<translation type="unfinished"></translation> <translation>Als .qml-Hauptdatei setzen</translation>
</message> </message>
<message> <message>
<source>Set as Main .ui.qml File</source> <source>Set as Main .ui.qml File</source>
<translation type="unfinished"></translation> <translation>Als .ui.qml-Hauptdatei setzen</translation>
</message> </message>
<message> <message>
<source>Project File Generated</source> <source>Project File Generated</source>
<translation type="unfinished"></translation> <translation>Projektdatei erstellt</translation>
</message> </message>
<message> <message>
<source>File created: <source>File created:
%1</source> %1</source>
<translation type="unfinished"></translation> <translation>Datei erstellt:
%1</translation>
</message> </message>
<message> <message>
<source>Select File Location</source> <source>Select File Location</source>
<translation type="unfinished"></translation> <translation>Dateipfad auswählen</translation>
</message> </message>
<message> <message>
<source>Qt Design Studio Project Files (*.qmlproject)</source> <source>Qt Design Studio Project Files (*.qmlproject)</source>
<translation type="unfinished"></translation> <translation>Qt Design Studio Projektdateien (*.qmlproject)</translation>
</message> </message>
<message> <message>
<source>Invalid Directory</source> <source>Invalid Directory</source>
<translation type="unfinished"></translation> <translation>Ungültiges Verzeichnis</translation>
</message> </message>
<message> <message>
<source>Project file must be placed in a parent directory of the QML files.</source> <source>Project file must be placed in a parent directory of the QML files.</source>
<translation type="unfinished"></translation> <translation>Die Projektdatei muss in einem den QML-Dateien übergeordneten Verzeichnis erstellt werden.</translation>
</message> </message>
<message> <message>
<source>Problem</source> <source>Problem</source>
<translation type="unfinished"></translation> <translation>Problem</translation>
</message> </message>
<message> <message>
<source>Selected directory is far away from the QML file. This can cause unexpected results. <source>Selected directory is far away from the QML file. This can cause unexpected results.
Are you sure?</source> Are you sure?</source>
<translation type="unfinished"></translation> <translation>Das ausgewählte Verzeichnis liegt weit entfernt von der QML-Datei. Dies kann zu unerwarteten Ergebnissen führen.
Sind Sie sicher?</translation>
</message> </message>
<message> <message>
<source>Cannot find a valid build system.</source> <source>Cannot find a valid build system.</source>
<translation type="unfinished"></translation> <translation>Es kann kein gültiges Build-System gefunden werden.</translation>
</message> </message>
<message> <message>
<source>Cannot create a valid build directory.</source> <source>Cannot create a valid build directory.</source>
<translation type="unfinished"></translation> <translation>Es kann kein gültiges Build-Verzeichnis erstellt werden.</translation>
</message> </message>
<message> <message>
<source>Command:</source> <source>Command:</source>
<translation type="unfinished"></translation> <translation>Kommando:</translation>
</message> </message>
<message> <message>
<source>Arguments:</source> <source>Arguments:</source>
<translation type="unfinished">Argumente:</translation> <translation>Argumente:</translation>
</message> </message>
<message> <message>
<source>Build directory:</source> <source>Build directory:</source>
<translation type="unfinished">Build-Verzeichnis:</translation> <translation>Build-Verzeichnis:</translation>
</message> </message>
<message> <message>
<source>The Selected Kit Is Not Supported</source> <source>The Selected Kit Is Not Supported</source>
<translation type="unfinished"></translation> <translation>Das gewählte Kit wird nicht unterstützt</translation>
</message> </message>
<message> <message>
<source>You cannot use the selected kit to preview Qt for MCUs applications.</source> <source>You cannot use the selected kit to preview Qt for MCUs applications.</source>
<translation type="unfinished"></translation> <translation>Das gewählte Kit kann nicht zur Vorschau von Qt for MCUs-Anwendungen verwendet werden.</translation>
</message> </message>
<message> <message>
<source>Cannot find a valid Qt for MCUs kit.</source> <source>Cannot find a valid Qt for MCUs kit.</source>
<translation type="unfinished"></translation> <translation>Es kann kein gültiges Kit für Qt for MCUs gefunden werden.</translation>
</message> </message>
<message> <message>
<source>Qt for MCUs Deploy Step</source> <source>Qt for MCUs Deploy Step</source>
<translation type="unfinished"></translation> <translation>Qt for MCUs Deployment-Schritt</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -50080,13 +50085,15 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message> </message>
<message> <message>
<source>Use SSH port forwarding for debugging</source> <source>Use SSH port forwarding for debugging</source>
<translation type="unfinished"></translation> <translation>SSH-Portweiterleitung zum Debuggen verwenden</translation>
</message> </message>
<message> <message>
<source>Enable debugging on remote targes which cannot expose gdbserver ports. <source>Enable debugging on remote targes which cannot expose gdbserver ports.
The ssh tunneling is used to map the remote gdbserver port to localhost. The ssh tunneling is used to map the remote gdbserver port to localhost.
The local and remote ports are determined automatically.</source> The local and remote ports are determined automatically.</source>
<translation type="unfinished"></translation> <translation>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.</translation>
</message> </message>
<message> <message>
<source>&amp;Username:</source> <source>&amp;Username:</source>
@@ -50189,7 +50196,7 @@ Der Steuerprozess konnte nicht gestartet werden.</translation>
</message> </message>
<message> <message>
<source>Device &quot;%1&quot; is disconnected.</source> <source>Device &quot;%1&quot; is disconnected.</source>
<translation type="unfinished"></translation> <translation>Gerät &quot;%1&quot; ist nicht verbunden.</translation>
</message> </message>
<message> <message>
<source>Remote Linux</source> <source>Remote Linux</source>
@@ -50214,17 +50221,19 @@ Der Steuerprozess konnte nicht gestartet werden.</translation>
<message> <message>
<source>Created directory: &quot;%1&quot;. <source>Created directory: &quot;%1&quot;.
</source> </source>
<translation type="unfinished"></translation> <translation>Verzeichnis wurde erstellt: &quot;%1&quot;.
</translation>
</message> </message>
<message> <message>
<source>Copied %1/%2: &quot;%3&quot; -&gt; &quot;%4&quot;. <source>Copied %1/%2: &quot;%3&quot; -&gt; &quot;%4&quot;.
</source> </source>
<extracomment>%1/%2 = progress in the form 4/15, %3 and %4 = source and target file paths</extracomment> <extracomment>%1/%2 = progress in the form 4/15, %3 and %4 = source and target file paths</extracomment>
<translation type="unfinished"></translation> <translation>%1/%2 kopiert: &quot;%3 -&gt; &quot;%4&quot;.
</translation>
</message> </message>
<message> <message>
<source>Failed to deploy files.</source> <source>Failed to deploy files.</source>
<translation type="unfinished"></translation> <translation>Deployment der Dateien ist fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Device is considered unconnected. Re-run device test to reset state.</source> <source>Device is considered unconnected. Re-run device test to reset state.</source>
@@ -50366,15 +50375,15 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message> </message>
<message> <message>
<source>%1 failed to start: %2</source> <source>%1 failed to start: %2</source>
<translation type="unfinished"></translation> <translation>%1 konnte nicht gestartet werden: %2</translation>
</message> </message>
<message> <message>
<source>%1 crashed.</source> <source>%1 crashed.</source>
<translation type="unfinished">%1 ist abgestürzt.</translation> <translation>%1 ist abgestürzt.</translation>
</message> </message>
<message> <message>
<source>%1 failed with exit code %2.</source> <source>%1 failed with exit code %2.</source>
<translation type="unfinished"></translation> <translation>%1 ist mit Rückgabewert %2 fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Deploy files</source> <source>Deploy files</source>
@@ -50752,7 +50761,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message> </message>
<message> <message>
<source>Cropping</source> <source>Cropping</source>
<translation type="unfinished"></translation> <translation>Zuschneiden</translation>
</message> </message>
<message> <message>
<source>Crop and Trim...</source> <source>Crop and Trim...</source>
@@ -53586,7 +53595,7 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
</message> </message>
<message> <message>
<source>%1 [built-in]</source> <source>%1 [built-in]</source>
<translation>%1 [eingebaut]</translation> <translation>%1 [integriert]</translation>
</message> </message>
<message> <message>
<source>%1 [customizable]</source> <source>%1 [customizable]</source>
@@ -53795,7 +53804,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message> </message>
<message> <message>
<source>Enable built-in camel case &amp;navigation</source> <source>Enable built-in camel case &amp;navigation</source>
<translation>Eingebaute CamelCase-&amp;Navigation aktivieren</translation> <translation>Integrierte CamelCase-&amp;Navigation aktivieren</translation>
</message> </message>
<message> <message>
<source>On Mouseover</source> <source>On Mouseover</source>
@@ -54517,15 +54526,15 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
</message> </message>
<message> <message>
<source>Open Type Hierarchy</source> <source>Open Type Hierarchy</source>
<translation type="unfinished">Klassenhierarchie öffnen</translation> <translation>Klassenhierarchie öffnen</translation>
</message> </message>
<message> <message>
<source>Meta+Shift+T</source> <source>Meta+Shift+T</source>
<translation type="unfinished">Meta+Shift+T</translation> <translation>Meta+Shift+T</translation>
</message> </message>
<message> <message>
<source>Ctrl+Shift+T</source> <source>Ctrl+Shift+T</source>
<translation type="unfinished">Ctrl+Shift+T</translation> <translation>Ctrl+Shift+T</translation>
</message> </message>
<message> <message>
<source>Move the View a Page Up and Keep the Cursor Position</source> <source>Move the View a Page Up and Keep the Cursor Position</source>
@@ -54713,23 +54722,23 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
</message> </message>
<message> <message>
<source>Sort Lines</source> <source>Sort Lines</source>
<translation type="unfinished"></translation> <translation>Zeilen sortieren</translation>
</message> </message>
<message> <message>
<source>Go to Previous Word (Camel Case)</source> <source>Go to Previous Word (Camel Case)</source>
<translation type="unfinished"></translation> <translation>Zum vorhergehenden Wort springen (Camel Case)</translation>
</message> </message>
<message> <message>
<source>Go to Next Word (Camel Case)</source> <source>Go to Next Word (Camel Case)</source>
<translation type="unfinished"></translation> <translation>Zum nächsten Wort springen (Camel Case)</translation>
</message> </message>
<message> <message>
<source>Go to Previous Word (Camel Case) with Selection</source> <source>Go to Previous Word (Camel Case) with Selection</source>
<translation type="unfinished"></translation> <translation>Vorhergehendes Wort markieren (Camel Case)</translation>
</message> </message>
<message> <message>
<source>Go to Next Word (Camel Case) with Selection</source> <source>Go to Next Word (Camel Case) with Selection</source>
<translation type="unfinished"></translation> <translation>Nächstes Wort markieren (Camel Case)</translation>
</message> </message>
<message> <message>
<source>Meta+Shift+S</source> <source>Meta+Shift+S</source>
@@ -55001,7 +55010,7 @@ Drücken Sie zusätzlich die Umschalttaste, wird ein Escape-Zeichen an der aktue
</message> </message>
<message> <message>
<source>Documentation Comments</source> <source>Documentation Comments</source>
<translation>Kommentare für Dokumentation</translation> <translation>Dokumentationskommentare</translation>
</message> </message>
<message> <message>
<source>Automatically creates a Doxygen comment upon pressing enter after a &apos;/**&apos;, &apos;/*!&apos;, &apos;//!&apos; or &apos;///&apos;.</source> <source>Automatically creates a Doxygen comment upon pressing enter after a &apos;/**&apos;, &apos;/*!&apos;, &apos;//!&apos; or &apos;///&apos;.</source>
@@ -55969,15 +55978,15 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.</translation>
</message> </message>
<message> <message>
<source>Type Hierarchy</source> <source>Type Hierarchy</source>
<translation type="unfinished">Klassenhierarchie</translation> <translation>Typenhierarchie</translation>
</message> </message>
<message> <message>
<source>No type hierarchy available</source> <source>No type hierarchy available</source>
<translation type="unfinished">Keine Klassenhierarchie verfügbar</translation> <translation>Keine Typenhierarchie verfügbar</translation>
</message> </message>
<message> <message>
<source>Reloads the type hierarchy for the symbol under the cursor.</source> <source>Reloads the type hierarchy for the symbol under the cursor.</source>
<translation type="unfinished"></translation> <translation>Lädt die Typenhierarchie für das Symbol unter der Einfügemarke neu.</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -56735,7 +56744,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>watch is not implemented.</source> <source>watch is not implemented.</source>
<translation type="unfinished"></translation> <translation>&quot;watch&quot; ist nicht implementiert.</translation>
</message> </message>
<message> <message>
<source>Refusing to remove the standard directory &quot;%1&quot;.</source> <source>Refusing to remove the standard directory &quot;%1&quot;.</source>
@@ -57206,11 +57215,11 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>Failed to open output file.</source> <source>Failed to open output file.</source>
<translation type="unfinished"></translation> <translation>Die Ausgabedatei konnte nicht geöffnet werden.</translation>
</message> </message>
<message> <message>
<source>Failed to write output file.</source> <source>Failed to write output file.</source>
<translation type="unfinished"></translation> <translation>Die Ausgabedatei konnte nicht geschrieben werden.</translation>
</message> </message>
<message> <message>
<source>Command failed.</source> <source>Command failed.</source>
@@ -57241,7 +57250,7 @@ in &quot;%2&quot; aus.
</message> </message>
<message> <message>
<source>Default</source> <source>Default</source>
<translation type="unfinished">Vorgabe</translation> <translation>Vorgabe</translation>
</message> </message>
<message> <message>
<source>Show %1 Column</source> <source>Show %1 Column</source>
@@ -57318,7 +57327,14 @@ To prepend to a variable, use VARIABLE=+VALUE.
Existing variables can be referenced in a VALUE with ${OTHER}. 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. To clear a variable, put its name on a line with nothing else on it.
Lines starting with &quot;##&quot; will be treated as comments.</source> Lines starting with &quot;##&quot; will be treated as comments.</source>
<translation type="unfinished"></translation> <translation>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 &quot;#&quot; 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 &quot;##&quot; beginnen, werden als Kommentare behandelt.</translation>
</message> </message>
<message> <message>
<source>&amp;OK</source> <source>&amp;OK</source>
@@ -57436,7 +57452,7 @@ Lines starting with &quot;##&quot; will be treated as comments.</source>
</message> </message>
<message> <message>
<source>No Lua interface set</source> <source>No Lua interface set</source>
<translation type="unfinished"></translation> <translation>Keine Lua-Schnittstelle eingestellt</translation>
</message> </message>
</context> </context>
<context> <context>

File diff suppressed because it is too large Load Diff

View File

@@ -304,9 +304,9 @@ bool FilePath::equals(const FilePath &first, const FilePath &second, Qt::CaseSen
} }
/*! /*!
* Returns true if the two file paths compare equal case-sensitively. * Returns \c true if this file path compares equal to \a other case-sensitively.
* This is relevant on semi-case sensitive systems like Windows with NTFS. * This is relevant on semi-case sensitive systems like Windows with NTFS.
* @see QTCREATORBUG-30846 * \sa {https://bugreports.qt.io/browse/QTCREATORBUG-30846}{QTCREATORBUG-30846}
*/ */
bool FilePath::equalsCaseSensitive(const FilePath &other) const bool FilePath::equalsCaseSensitive(const FilePath &other) const
{ {

View File

@@ -362,7 +362,7 @@ void Layout::setContentsMargins(int left, int top, int right, int bottom)
} }
/*! /*!
Attaches the constructed layout to the provided QWidget \a w. Attaches the constructed layout to the provided QWidget \a widget.
This operation can only be performed once per LayoutBuilder instance. This operation can only be performed once per LayoutBuilder instance.
*/ */
@@ -373,7 +373,7 @@ void Layout::attachTo(QWidget *widget)
} }
/*! /*!
Adds the layout item \a item as sub items. Adds the layout item \a item as a sub item.
*/ */
void Layout::addItem(I item) void Layout::addItem(I item)
{ {

View File

@@ -274,7 +274,10 @@ QString MacroExpander::expand(const QString &stringWithVariables) const
FilePath MacroExpander::expand(const FilePath &fileNameWithVariables) const FilePath MacroExpander::expand(const FilePath &fileNameWithVariables) const
{ {
// We want single variables to expand to fully qualified strings. // We want single variables to expand to fully qualified strings.
return FilePath::fromUserInput(expand(fileNameWithVariables.toString())); const QString host = expand(fileNameWithVariables.host().toString());
const QString scheme = expand(fileNameWithVariables.scheme().toString());
const QString path = expand(fileNameWithVariables.path());
return FilePath::fromParts(scheme, host, path);
} }
QByteArray MacroExpander::expand(const QByteArray &stringWithVariables) const QByteArray MacroExpander::expand(const QByteArray &stringWithVariables) const

View File

@@ -239,6 +239,12 @@ void MultiTextCursor::removeSelectedText()
mergeCursors(); 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) static void insertAndSelect(QTextCursor &cursor, const QString &text, bool selectNewText)
{ {
if (selectNewText) { if (selectNewText) {
@@ -333,7 +339,8 @@ static QTextLine currentTextLine(const QTextCursor &cursor)
bool MultiTextCursor::multiCursorEvent( bool MultiTextCursor::multiCursorEvent(
QKeyEvent *e, QKeySequence::StandardKey matchKey, Qt::KeyboardModifiers filterModifiers) 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<QKeySequence> bindings = QKeySequence::keyBindings(matchKey); const QList<QKeySequence> bindings = QKeySequence::keyBindings(matchKey);
return bindings.contains(QKeySequence(searchkey)); return bindings.contains(QKeySequence(searchkey));

View File

@@ -69,6 +69,7 @@ public:
QString selectedText() const; QString selectedText() const;
/// removes the selected text of all cursors that have a selection from the document /// removes the selected text of all cursors that have a selection from the document
void removeSelectedText(); void removeSelectedText();
void clearSelection();
/// inserts \param text into all cursors, potentially removing correctly selected text /// inserts \param text into all cursors, potentially removing correctly selected text
void insertText(const QString &text, bool selectNewText = false); void insertText(const QString &text, bool selectNewText = false);

View File

@@ -601,12 +601,21 @@ void installQASIPackage(Target *target, const FilePath &packagePath)
} }
QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber); QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber);
arguments << "install" << "-r " << packagePath.path(); arguments << "install" << "-r" << packagePath.path();
QString error; QString error;
Process *process = startAdbProcess(arguments, &error); Process *process = startAdbProcess(arguments, &error);
if (process) { if (process) {
// TODO: Potential leak when the process is still running on Creator shutdown. process->setParent(target);
QObject::connect(process, &Process::done, process, &QObject::deleteLater); QObject::connect(process, &Process::done, target, [process] {
if (process->result() == ProcessResult::FinishedWithSuccess) {
MessageManager::writeSilently(
Tr::tr("Android package installation finished with success."));
} else {
MessageManager::writeDisrupting(Tr::tr("Android package installation failed.")
+ '\n' + process->cleanedStdErr());
}
process->deleteLater();
});
} else { } else {
MessageManager::writeDisrupting( MessageManager::writeDisrupting(
Tr::tr("Android package installation failed.\n%1").arg(error)); Tr::tr("Android package installation failed.\n%1").arg(error));

View File

@@ -54,23 +54,24 @@ AndroidRunner::AndroidRunner(RunControl *runControl, const QString &intentName)
const int apiLevel = AndroidManager::deviceApiLevel(m_target); const int apiLevel = AndroidManager::deviceApiLevel(m_target);
qCDebug(androidRunnerLog) << "Device API:" << apiLevel; qCDebug(androidRunnerLog) << "Device API:" << apiLevel;
m_worker.reset(new AndroidRunnerWorker(this, m_packageName)); m_worker = new AndroidRunnerWorker(this, m_packageName);
m_worker->setIntentName(intent); m_worker->setIntentName(intent);
m_worker->setIsPreNougat(apiLevel <= 23); m_worker->setIsPreNougat(apiLevel <= 23);
m_worker->moveToThread(&m_thread); m_worker->moveToThread(&m_thread);
QObject::connect(&m_thread, &QThread::finished, m_worker, &QObject::deleteLater);
connect(this, &AndroidRunner::asyncStart, m_worker.data(), &AndroidRunnerWorker::asyncStart); connect(this, &AndroidRunner::asyncStart, m_worker, &AndroidRunnerWorker::asyncStart);
connect(this, &AndroidRunner::asyncStop, m_worker.data(), &AndroidRunnerWorker::asyncStop); connect(this, &AndroidRunner::asyncStop, m_worker, &AndroidRunnerWorker::asyncStop);
connect(this, &AndroidRunner::androidDeviceInfoChanged, connect(this, &AndroidRunner::androidDeviceInfoChanged,
m_worker.data(), &AndroidRunnerWorker::setAndroidDeviceInfo); m_worker, &AndroidRunnerWorker::setAndroidDeviceInfo);
connect(m_worker.data(), &AndroidRunnerWorker::remoteProcessStarted,
connect(m_worker, &AndroidRunnerWorker::remoteProcessStarted,
this, &AndroidRunner::handleRemoteProcessStarted); this, &AndroidRunner::handleRemoteProcessStarted);
connect(m_worker.data(), &AndroidRunnerWorker::remoteProcessFinished, connect(m_worker, &AndroidRunnerWorker::remoteProcessFinished,
this, &AndroidRunner::handleRemoteProcessFinished); this, &AndroidRunner::handleRemoteProcessFinished);
connect(m_worker.data(), &AndroidRunnerWorker::remoteOutput, connect(m_worker, &AndroidRunnerWorker::remoteOutput, this, &AndroidRunner::remoteOutput);
this, &AndroidRunner::remoteOutput); connect(m_worker, &AndroidRunnerWorker::remoteErrorOutput,
connect(m_worker.data(), &AndroidRunnerWorker::remoteErrorOutput,
this, &AndroidRunner::remoteErrorOutput); this, &AndroidRunner::remoteErrorOutput);
connect(&m_outputParser, &QmlDebug::QmlOutputParser::waitingForConnectionOnPort, connect(&m_outputParser, &QmlDebug::QmlOutputParser::waitingForConnectionOnPort,

View File

@@ -56,7 +56,7 @@ private:
QString m_launchedAVDName; QString m_launchedAVDName;
QThread m_thread; QThread m_thread;
QTimer m_checkAVDTimer; QTimer m_checkAVDTimer;
QScopedPointer<AndroidRunnerWorker> m_worker; AndroidRunnerWorker *m_worker = nullptr;
QPointer<ProjectExplorer::Target> m_target; QPointer<ProjectExplorer::Target> m_target;
Utils::Port m_debugServerPort; Utils::Port m_debugServerPort;
QUrl m_qmlServer; QUrl m_qmlServer;

View File

@@ -171,24 +171,26 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
m_extraAppParams = runControl->commandLine().arguments(); m_extraAppParams = runControl->commandLine().arguments();
if (const Store sd = runControl->settingsData(Constants::ANDROID_AM_START_ARGS); if (const Store sd = runControl->settingsData(Constants::ANDROID_AM_START_ARGS);
!sd.values().isEmpty()) { !sd.isEmpty()) {
QTC_CHECK(sd.first().typeId() == QMetaType::QString); QTC_CHECK(sd.first().typeId() == QMetaType::QString);
const QString startArgs = sd.first().toString(); const QString startArgs = sd.first().toString();
m_amStartExtraArgs = ProcessArgs::splitArgs(startArgs, OsTypeOtherUnix); m_amStartExtraArgs = ProcessArgs::splitArgs(startArgs, OsTypeOtherUnix);
} }
if (const Store sd = runControl->settingsData(Constants::ANDROID_PRESTARTSHELLCMDLIST); if (const Store sd = runControl->settingsData(Constants::ANDROID_PRESTARTSHELLCMDLIST);
!sd.values().isEmpty()) { !sd.isEmpty()) {
QTC_CHECK(sd.first().typeId() == QMetaType::QString); const QVariant &first = sd.first();
const QStringList commands = sd.first().toString().split('\n', Qt::SkipEmptyParts); QTC_CHECK(first.typeId() == QMetaType::QStringList);
const QStringList commands = first.toStringList();
for (const QString &shellCmd : commands) for (const QString &shellCmd : commands)
m_beforeStartAdbCommands.append(QString("shell %1").arg(shellCmd)); m_beforeStartAdbCommands.append(QString("shell %1").arg(shellCmd));
} }
if (const Store sd = runControl->settingsData(Constants::ANDROID_POSTFINISHSHELLCMDLIST); if (const Store sd = runControl->settingsData(Constants::ANDROID_POSTFINISHSHELLCMDLIST);
!sd.values().isEmpty()) { !sd.isEmpty()) {
QTC_CHECK(sd.first().typeId() == QMetaType::QString); const QVariant &first = sd.first();
const QStringList commands = sd.first().toString().split('\n', Qt::SkipEmptyParts); QTC_CHECK(first.typeId() == QMetaType::QStringList);
const QStringList commands = first.toStringList();
for (const QString &shellCmd : commands) for (const QString &shellCmd : commands)
m_afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd)); m_afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd));
} }
@@ -203,6 +205,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit()); QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
m_useAppParamsForQmlDebugger = version->qtVersion() >= QVersionNumber(5, 12); m_useAppParamsForQmlDebugger = version->qtVersion() >= QVersionNumber(5, 12);
m_pidRunner.setParent(this); // Move m_pidRunner object together with *this into a separate thread.
} }
AndroidRunnerWorker::~AndroidRunnerWorker() AndroidRunnerWorker::~AndroidRunnerWorker()

View File

@@ -259,7 +259,7 @@ void handleInactiveRegions(LanguageClient::Client *client, const JsonRpcMessage
const QList<Range> inactiveRegions = params->inactiveRegions(); const QList<Range> inactiveRegions = params->inactiveRegions();
QList<BlockRange> ifdefedOutBlocks; QList<BlockRange> ifdefedOutBlocks;
for (const Range &r : inactiveRegions) { 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; const int endPos = r.end().toPositionInDocument(doc->document()) + 1;
ifdefedOutBlocks.emplaceBack(startPos, endPos); ifdefedOutBlocks.emplaceBack(startPos, endPos);
} }

View File

@@ -37,3 +37,8 @@ extend_qtc_plugin(ClangFormat
DEFINES DEFINES
TESTDATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/data" TESTDATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/data"
) )
extend_qtc_plugin(ClangFormat
CONDITION TARGET LLVM
DEPENDS LLVM
)

View File

@@ -177,10 +177,11 @@ void ClangToolsPlugin::registerAnalyzeActions()
widget->toolBar()->addWidget(button); widget->toolBar()->addWidget(button);
const auto toolsMenu = new QMenu(widget); const auto toolsMenu = new QMenu(widget);
button->setMenu(toolsMenu); button->setMenu(toolsMenu);
for (const auto &toolInfo : {std::make_pair(ClangTidyTool::instance(), for (const auto &toolInfo :
Constants::RUN_CLANGTIDY_ON_CURRENT_FILE), {std::pair<ClangTool *, Utils::Id>(
std::make_pair(ClazyTool::instance(), ClangTidyTool::instance(), Constants::RUN_CLANGTIDY_ON_CURRENT_FILE),
Constants::RUN_CLAZY_ON_CURRENT_FILE)}) { std::pair<ClangTool *, Utils::Id>(
ClazyTool::instance(), Constants::RUN_CLAZY_ON_CURRENT_FILE)}) {
ClangTool * const tool = toolInfo.first; ClangTool * const tool = toolInfo.first;
Command * const cmd = ActionManager::command(toolInfo.second); Command * const cmd = ActionManager::command(toolInfo.second);
QAction *const action = toolsMenu->addAction(tool->name(), [editor, tool] { QAction *const action = toolsMenu->addAction(tool->name(), [editor, tool] {

Some files were not shown because too many files have changed in this diff Show More