Merge remote-tracking branch 'origin/13.0'

Conflicts:
	doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc

Change-Id: I2db85da9f4a0593217951313020d71d430986961
This commit is contained in:
Eike Ziller
2024-03-22 15:13:34 +01:00
59 changed files with 482 additions and 355 deletions

View File

@@ -10,22 +10,21 @@ the public Git repository. For example:
git clone git://code.qt.io/qt-creator/qt-creator.git git clone git://code.qt.io/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline origin/12.0..v13.0.0 git log --cherry-pick --pretty=oneline origin/12.0..v13.0.0
What's new? New plugins
----------- -----------
* Added Qt Application Manager support
### Qt Application Manager ### Qt Application Manager
Adds support for Qt 6 based applications with CMake for creating, building, Adds support for Qt 6 based applications with CMake for creating, building,
deploying, running, and debugging for devices that use the deploying, running, and debugging for devices that use the
[Qt Application Manager](https://doc.qt.io/QtApplicationManager/). [Qt Application Manager](https://doc.qt.io/QtApplicationManager/).
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-how-to-run-in-app-manager.html)) ([Documentation](https://doc.qt.io/qtcreator/creator-how-to-run-in-app-manager.html))
General General
------- -------
* Updated the visual style of Welcome mode
* Improved docking (Debug mode, Widget Designer) * Improved docking (Debug mode, Widget Designer)
* Fixed the style of titles and changed them to always be visible * Fixed the style of titles and changed them to always be visible
(removed `View > Views > Automatically Hide View Titlebars`) (removed `View > Views > Automatically Hide View Titlebars`)
@@ -41,19 +40,29 @@ General
([QTCREATORBUG-29886](https://bugreports.qt.io/browse/QTCREATORBUG-29886)) ([QTCREATORBUG-29886](https://bugreports.qt.io/browse/QTCREATORBUG-29886))
* Fixed issues with the window actions * Fixed issues with the window actions
([QTCREATORBUG-30381](https://bugreports.qt.io/browse/QTCREATORBUG-30381)) ([QTCREATORBUG-30381](https://bugreports.qt.io/browse/QTCREATORBUG-30381))
* Fixed drag & drop for external tools
([QTCREATORBUG-30469](https://bugreports.qt.io/browse/QTCREATORBUG-30469))
* Known Issues * Known Issues
* Installers provided by The Qt Company mostly display English text, not * Installers provided by The Qt Company mostly display English text, not
the system's language the system's language
([QTIFW-3310](https://bugreports.qt.io/browse/QTIFW-3310)) ([QTIFW-3310](https://bugreports.qt.io/browse/QTIFW-3310))
Help
----
* Fixed that non-Qt related help files could automatically be registered
* Fixed that the option `Highest Version Only` for automatically registering Qt
documentation did not work for the Qt Online Installer
Editing Editing
------- -------
* Made syntax highlighting asynchronous
* Fixed that `Shift+Tab` did not always unindent * Fixed that `Shift+Tab` did not always unindent
([QTCREATORBUG-29742](https://bugreports.qt.io/browse/QTCREATORBUG-29742)) ([QTCREATORBUG-29742](https://bugreports.qt.io/browse/QTCREATORBUG-29742))
* Fixed that `Surround text selection with brackets` did nothing for `<` * Fixed that `Surround text selection with brackets` did nothing for `<`
* Fixed following links without a file name in documents without a file name * Fixed following links without a file name in documents without a file name
* Fixed that device tree source files (`.dts`) were opened in the binary editor
([QTCREATORBUG-19029](https://bugreports.qt.io/browse/QTCREATORBUG-19029))
### C++ ### C++
@@ -69,7 +78,7 @@ Editing
([QTCREATORBUG-21826](https://bugreports.qt.io/browse/QTCREATORBUG-21826)) ([QTCREATORBUG-21826](https://bugreports.qt.io/browse/QTCREATORBUG-21826))
* Improved the coding style settings by separating Clang Format and other coding * Improved the coding style settings by separating Clang Format and other coding
style settings, and using a plain text editor for custom Clang Format settings style settings, and using a plain text editor for custom Clang Format settings
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-preferences-cpp-code-style.html)) ([Documentation](https://doc.qt.io/qtcreator/creator-preferences-cpp-code-style.html))
* Fixed that the class wizards used the class name for the include guard * Fixed that the class wizards used the class name for the include guard
instead of the file name instead of the file name
([QTCREATORBUG-30140](https://bugreports.qt.io/browse/QTCREATORBUG-30140)) ([QTCREATORBUG-30140](https://bugreports.qt.io/browse/QTCREATORBUG-30140))
@@ -82,6 +91,9 @@ Editing
template class in a namespace template class in a namespace
([QTCREATORBUG-22076](https://bugreports.qt.io/browse/QTCREATORBUG-22076)) ([QTCREATORBUG-22076](https://bugreports.qt.io/browse/QTCREATORBUG-22076))
* Clangd * Clangd
* Improved the function hint tool tip
([QTCREATORBUG-26346](https://bugreports.qt.io/browse/QTCREATORBUG-26346),
[QTCREATORBUG-30489](https://bugreports.qt.io/browse/QTCREATORBUG-30489))
* Fixed that `Follow Symbol Under Cursor` only worked for exact matches * Fixed that `Follow Symbol Under Cursor` only worked for exact matches
([QTCREATORBUG-29814](https://bugreports.qt.io/browse/QTCREATORBUG-29814)) ([QTCREATORBUG-29814](https://bugreports.qt.io/browse/QTCREATORBUG-29814))
* Fixed the version check for remote `clangd` executables * Fixed the version check for remote `clangd` executables
@@ -105,7 +117,7 @@ Editing
* Added automatic setup up of language servers for `YAML`, `JSON`, and `Bash` * Added automatic setup up of language servers for `YAML`, `JSON`, and `Bash`
(requires `npm`) (requires `npm`)
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-language-servers.html#adding-language-servers)) ([Documentation](https://doc.qt.io/qtcreator/creator-language-servers.html#adding-language-servers))
### Widget Designer ### Widget Designer
@@ -127,13 +139,18 @@ endings) to the tool bar
* Fixed issues with large addresses * Fixed issues with large addresses
### Models
* Fixed a crash when selecting items
([QTCREATORBUG-30413](https://bugreports.qt.io/browse/QTCREATORBUG-30413))
Projects Projects
-------- --------
* Added a section `Vanished Targets` to `Projects` mode in case the project * Added a section `Vanished Targets` to `Projects` mode in case the project
was configured for kits that have vanished, as a replacement for the automatic was configured for kits that have vanished, as a replacement for the automatic
creation of "Replacement" kits creation of "Replacement" kits
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-how-to-activate-kits.html#copy-custom-settings-from-vanished-targets)) ([Documentation](https://doc.qt.io/qtcreator/creator-how-to-activate-kits.html#copy-custom-settings-from-vanished-targets))
* Added the status of devices to the device lists * Added the status of devices to the device lists
([QTCREATORBUG-20941](https://bugreports.qt.io/browse/QTCREATORBUG-20941)) ([QTCREATORBUG-20941](https://bugreports.qt.io/browse/QTCREATORBUG-20941))
* Added the `Preferences > Build & Run > General > Application environment` * Added the `Preferences > Build & Run > General > Application environment`
@@ -157,6 +174,14 @@ Projects
* Added support for custom output parsers for the configuration of projects * Added support for custom output parsers for the configuration of projects
([QTCREATORBUG-29992](https://bugreports.qt.io/browse/QTCREATORBUG-29992)) ([QTCREATORBUG-29992](https://bugreports.qt.io/browse/QTCREATORBUG-29992))
* Made cache variables available even if project configuration failed * Made cache variables available even if project configuration failed
* Fixed that too many paths were added to the build library search path
([QTCREATORBUG-29662](https://bugreports.qt.io/browse/QTCREATORBUG-29662))
* Fixed that searching in the project included results from module files
not in the project
([QTCREATORBUG-30372](https://bugreports.qt.io/browse/QTCREATORBUG-30372))
* Fixed that `Follow Symbol` on `add_subdirectory` could jump to a target of
the same name
([QTCREATORBUG-30510](https://bugreports.qt.io/browse/QTCREATORBUG-30510))
* CMake Presets * CMake Presets
* Fixed `Reload CMake Presets` if the project was not configured yet * Fixed `Reload CMake Presets` if the project was not configured yet
([QTCREATORBUG-30238](https://bugreports.qt.io/browse/QTCREATORBUG-30238)) ([QTCREATORBUG-30238](https://bugreports.qt.io/browse/QTCREATORBUG-30238))
@@ -166,6 +191,10 @@ Projects
([QTCREATORBUG-30236](https://bugreports.qt.io/browse/QTCREATORBUG-30236)) ([QTCREATORBUG-30236](https://bugreports.qt.io/browse/QTCREATORBUG-30236))
* Fixed a freeze with nested presets * Fixed a freeze with nested presets
([QTCREATORBUG-30288](https://bugreports.qt.io/browse/QTCREATORBUG-30288)) ([QTCREATORBUG-30288](https://bugreports.qt.io/browse/QTCREATORBUG-30288))
* Fixed a wrong error message
([QTCREATORBUG-30373](https://bugreports.qt.io/browse/QTCREATORBUG-30373))
* Fixed a crash when no CMake tool is found
([QTCREATORBUG-30505](https://bugreports.qt.io/browse/QTCREATORBUG-30505))
* Conan * Conan
* Fixed that backslashes were wrongly used for paths on Windows * Fixed that backslashes were wrongly used for paths on Windows
([QTCREATORBUG-30326](https://bugreports.qt.io/browse/QTCREATORBUG-30326)) ([QTCREATORBUG-30326](https://bugreports.qt.io/browse/QTCREATORBUG-30326))
@@ -184,7 +213,7 @@ Projects
* Fixed that the same Python interpreter could be auto-detected multiple times * Fixed that the same Python interpreter could be auto-detected multiple times
under different names under different names
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-python-development.html)) ([Documentation](https://doc.qt.io/qtcreator/creator-python-development.html))
Debugging Debugging
--------- ---------
@@ -200,6 +229,13 @@ Debugging
* Fixed that breakpoints were not hit while the message dialog about missing * Fixed that breakpoints were not hit while the message dialog about missing
debug information was shown debug information was shown
([QTCREATORBUG-30168](https://bugreports.qt.io/browse/QTCREATORBUG-30168)) ([QTCREATORBUG-30168](https://bugreports.qt.io/browse/QTCREATORBUG-30168))
* LLDB
* Fixed setting breakpoints in assembler
* Fixed `Run as root`
([QTCREATORBUG-30516](https://bugreports.qt.io/browse/QTCREATORBUG-30516))
* CDB
* Fixed a missing debugger tool tip
([QTCREATORBUG-13413](https://bugreports.qt.io/browse/QTCREATORBUG-13413))
### Debug Adapter Protocol ### Debug Adapter Protocol
@@ -215,7 +251,8 @@ Analyzer
### Axivion ### Axivion
* Added fetching and showing issues * Added a view for listing and searching issues
* Added other issue types than `Style Violations` to the editor annotations
Terminal Terminal
-------- --------
@@ -228,6 +265,7 @@ Terminal
* Fixed that `Ctrl+W` closed the terminal even when shortcuts were blocked * Fixed that `Ctrl+W` closed the terminal even when shortcuts were blocked
([QTCREATORBUG-30070](https://bugreports.qt.io/browse/QTCREATORBUG-30070)) ([QTCREATORBUG-30070](https://bugreports.qt.io/browse/QTCREATORBUG-30070))
* Fixed issues with Windows Powershell * Fixed issues with Windows Powershell
* Fixed issues with copying Japanese text
Version Control Systems Version Control Systems
----------------------- -----------------------
@@ -245,6 +283,11 @@ Test Integration
* Added a locator filter for Qt Test data tags (`qdt`) * Added a locator filter for Qt Test data tags (`qdt`)
### Catch2
* Added support for namespaced fixtures
* Added support for `SCENARIO_METHOD`
Platforms Platforms
--------- ---------
@@ -255,8 +298,13 @@ Platforms
### Android ### Android
* Add support for target-based android-build directories (??? is that ready? Qt 6.8+ ???) * Add support for target-based android-build directories
([QTBUG-117443](https://bugreports.qt.io/browse/QTBUG-117443)) ([QTBUG-117443](https://bugreports.qt.io/browse/QTBUG-117443))
* Fixed issues with debugging
([QTCREATORBUG-29928](https://bugreports.qt.io/browse/QTCREATORBUG-29928),
[QTCREATORBUG-30405](https://bugreports.qt.io/browse/QTCREATORBUG-30405))
* Fixed a crash when removing Android Qt versions
([QTCREATORBUG-30347](https://bugreports.qt.io/browse/QTCREATORBUG-30347))
### iOS ### iOS
@@ -264,13 +312,18 @@ Platforms
* Fixed deployment and running applications for iOS 17 devices * Fixed deployment and running applications for iOS 17 devices
(application output, debugging, and profiling are not supported) (application output, debugging, and profiling are not supported)
([QTCREATORBUG-29682](https://bugreports.qt.io/browse/QTCREATORBUG-29682)) ([QTCREATORBUG-29682](https://bugreports.qt.io/browse/QTCREATORBUG-29682))
([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-developing-ios.html)) ([Documentation](https://doc.qt.io/qtcreator/creator-developing-ios.html))
### Remote Linux ### Remote Linux
* Fixed that debugging unnecessarily downloaded files from the remote system * Fixed that debugging unnecessarily downloaded files from the remote system
([QTCREATORBUG-29614](https://bugreports.qt.io/browse/QTCREATORBUG-29614)) ([QTCREATORBUG-29614](https://bugreports.qt.io/browse/QTCREATORBUG-29614))
### MCU
* Fixed a crash when fixing errors in MCU kits
([QTCREATORBUG-30360](https://bugreports.qt.io/browse/QTCREATORBUG-30360))
Credits for these changes go to: Credits for these changes go to:
-------------------------------- --------------------------------
Aaron McCarthy Aaron McCarthy

View File

@@ -5,13 +5,20 @@
</div> </div>
<div class="sectionlist normallist"> <div class="sectionlist normallist">
<div class="heading"> <div class="heading">
<h2>Getting Started</h2> <h2>Developing with Qt Creator</h2>
</div> </div>
<div class="indexboxcont indexboxbar"> <div class="indexboxcont indexboxbar">
<ul> <ul>
<li><a href="creator-overview.html">Overview</a></li> <li><a href="creator-overview.html">Overview</a></li>
<li><a href="creator-quick-tour.html">User Interface</a></li> <li><a href="creator-getting-started.html">Getting Started</a></li>
<li><a href="creator-configuring.html">Configuring Qt Creator</a></li> <li><a href="creator-project-creating.html">Creating Projects</a></li>
<li><a href="creator-configuring-projects.html">Configuring Projects</a></li>
<li><a href="creator-live-preview.html">Validating with Target Hardware</a></li>
<li><a href="creator-connecting-mobile.html">Connecting Devices</a></li>
<li><a href="creator-deployment.html">Deploying to Devices</a></li>
<li><a href="creator-debugging.html">Debugging</a></li>
<li><a href="creator-analyze-mode.html">Analyzing Code</a></li>
<li><a href="creator-squish.html">Using Squish</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@@ -27,33 +34,13 @@
<li><a href="qtcreator-transitions-example.html">Creating a Qt Quick Application</a></li> <li><a href="qtcreator-transitions-example.html">Creating a Qt Quick Application</a></li>
<li><a href="creator-writing-program.html">Creating a Qt Widget Based Application</a></li> <li><a href="creator-writing-program.html">Creating a Qt Widget Based 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-tutorial-python-application-qt-quick.html">Creating a Qt for Python Application with Qt Quick</a></li>
<li><a href="creator-tutorial-python-application-widgets.html">Creating a Qt for Python Application with Qt Widgets</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-debugging-example.html">Debugging a C++ Application</a></li> <li><a href="creator-debugging-example.html">Debugging a C++ Application</a></li>
<li><a href="creator-qml-debugging-example.html">Debugging a Qt Quick Application</a></li> <li><a href="creator-qml-debugging-example.html">Debugging a Qt Quick Application</a></li>
<li><a href="creator-tutorials.html">See All</a></li> <li><a href="creator-tutorials.html">See All</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="sectionlist normallist">
<div class="heading">
<h2>Running on Devices</h2>
</div>
<ul>
<li><a href="creator-live-preview.html">Validating with Target Hardware</a></li>
<li><a href="creator-deployment.html">Deploying to Devices</a></li>
<li><a href="creator-connecting-mobile.html">Connecting Devices</a></li>
</ul>
</div>
<div class="sectionlist normallist">
<div class="heading">
<h2>Debugging and Analyzing</h2>
</div>
<ul>
<li><a href="creator-debugging.html">Debugging</a></li>
<li><a href="creator-analyze-mode.html">Analyzing Code</a></li>
<li><a href="creator-squish.html">Using Squish</a></li>
</ul>
</div>
<div class="sectionlist normallist"> <div class="sectionlist normallist">
<div class="heading"> <div class="heading">
<h2>How To</h2> <h2>How To</h2>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -14,11 +14,11 @@
\title Analyzing Code \title Analyzing Code
You can use the code analysis tools in the \uicontrol Debug mode. To To use a code analysis tool, select it in the \uicontrol {Analyze Menu} or
switch to \uicontrol Debug mode, select \uicontrol Debug in the mode in the pull-down menu of the \inlineimage icons/qtcreator-debug-button.png
selector, or select the \uicontrol {Analyze} menu and then select a tool. (\uicontrol {Start Debugging of Startup Project}) button.
When you are in the \uicontrol Debug mode, you can switch between tools by When you are in the \uicontrol Debug mode, you can switch between tools by
selecting them in the menu on the toolbar. selecting them in the menu on the debugger toolbar.
You can drag and drop the views in the \uicontrol Debug mode to new You can drag and drop the views in the \uicontrol Debug mode to new
positions on the screen. The size and position of views are saved for future positions on the screen. The size and position of views are saved for future

View File

@@ -310,13 +310,13 @@
\title Manage files in CMake projects \title Manage files in CMake projects
When you use project wizard templates to \l{Create files}{add files} to When you \l{Create files}{add new or existing files} to
a project, \QC automatically adds them to the \l {qt_add_executable}, a project, \QC automatically adds them to the \l {qt_add_executable},
\l{CMake: add_executable command}{add_executable}, or \l {qt_add_library} \l{CMake: add_executable command}{add_executable}, or \l {qt_add_library}
function in the CMakeLists.txt file. function in the CMakeLists.txt file.
If you use custom API, \QC uses the \l{CMake: target_sources command} If \QC cannot recognize where the target is created, it will use the
{target_sources} function to add the files. \l{CMake: target_sources command} {target_sources} function to add the files.
For Qt Quick projects, the files are added to the \l {qt_add_qml_module} For Qt Quick projects, the files are added to the \l {qt_add_qml_module}
function, prefixed with the \c QML_FILES, \c SOURCES, or \c RESOURCES function, prefixed with the \c QML_FILES, \c SOURCES, or \c RESOURCES

View File

@@ -103,7 +103,7 @@
\previouspage creator-reference.html \previouspage creator-reference.html
\endif \endif
\ingroup creator-reference-editors \ingroup creator-reference-analyzer
\ingroup studio-how-to-code \ingroup studio-how-to-code
\title JavaScript and QML Checks \title JavaScript and QML Checks

View File

@@ -11,7 +11,7 @@
\page creator-clang-codemodel.html \page creator-clang-codemodel.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-editors
\title Clang Code Model \title Clang Code Model

View File

@@ -78,7 +78,7 @@
\page creator-reference-cpp-quick-fixes.html \page creator-reference-cpp-quick-fixes.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-editors
\title C++ Quick Fixes \title C++ Quick Fixes

View File

@@ -31,7 +31,7 @@
\page creator-editor-fakevim.html \page creator-editor-fakevim.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-editors
\title FakeVim Modes and Commands \title FakeVim Modes and Commands

View File

@@ -38,11 +38,11 @@
\section1 Use locator filters \section1 Use locator filters
The filters that are available depend on the file type. For more information The filters that are available depend on the current document and project.
about what a particular locator filter does, see the tooltips that appear If the locator field is empty, a list of available filters is shown.
when you hover over a filter in the locator. For longer descriptions of the A list of filters is also shown when selecting \inlineimage icons/magnifier.png.
filters, select \inlineimage icons/magnifier.png > \uicontrol Configure to For more information about what a particular locator filter does, see the
open the \l{Locator} preferences. tooltips that appear when you hover over a filter.
To use a locator filter: To use a locator filter:
@@ -52,7 +52,7 @@
string (for example, a filename or class name) or the command to string (for example, a filename or class name) or the command to
execute. execute.
\li Double-click a locator filter in the filter list to use it. Press \li Select a locator filter in the filter list to use it. Press
the up and down arrow keys or press \key Ctrl+P and \key Ctrl+N the up and down arrow keys or press \key Ctrl+P and \key Ctrl+N
to move up and down the list, and then press \key Enter to use the to move up and down the list, and then press \key Enter to use the
selected filter. selected filter.
@@ -140,7 +140,8 @@
\brief Add and change locator filters. \brief Add and change locator filters.
To set locator preferences, go to \preferences > \uicontrol Environment > To set locator preferences, go to \preferences > \uicontrol Environment >
\uicontrol Locator. \uicontrol Locator, or select
\inlineimage icons/magnifier.png > \uicontrol Configure in the locator field.
\image qtcreator-locator-customize.webp {Locator preferences} \image qtcreator-locator-customize.webp {Locator preferences}

View File

@@ -11,11 +11,11 @@
\page creator-modeling.html \page creator-modeling.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-editors
\title Model Editor \title Model Editor
\brief Editor for Universal Modeling Language (UML) style models with \brief Create Universal Modeling Language (UML) style models with
structured and behavioral diagrams. structured and behavioral diagrams.
Use the model editor to create Universal Modeling Language (UML) Use the model editor to create Universal Modeling Language (UML)

View File

@@ -11,11 +11,11 @@
\page creator-scxml.html \page creator-scxml.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-editors
\title SCXML Editor \title SCXML Editor
\brief State chart (.scxml) editor. \brief Edit state chart (.scxml) files.
State charts are a graphical way of modeling how a system reacts to State charts are a graphical way of modeling how a system reacts to
stimuli. They define the \e states that the system can stimuli. They define the \e states that the system can

View File

@@ -106,7 +106,7 @@
\endif \endif
\ingroup creator-reference-editors \ingroup creator-reference-editors
\ingroup studio-how-to-refactor-code \ingroup studio-code-view
\title QML Quick Fixes \title QML Quick Fixes

View File

@@ -18,8 +18,8 @@
\section1 Analyze \section1 Analyze
\QC integrates code analysis tools for detecting memory leaks, profiling Use integrated code analysis tools to detect memory leaks, profile
function execution, analyzing CPU use, and eliminating unnecessary function execution, analyze CPU use, and eliminate unnecessary
complexity of code. Other integrated tools provide code coverage and complexity of code. Other integrated tools provide code coverage and
visualize trace events. visualize trace events.
@@ -27,36 +27,66 @@
\section1 Build and Run \section1 Build and Run
Use integrated cross-platform systems for build automation to compile your
source code for different target platforms or with different compilers,
debuggers, or Qt versions. Deploy applications to the target platforms
and run them there.
\generatelist creator-how-to-build \generatelist creator-how-to-build
\section2 Build with CMake \section2 Build with CMake
CMake controls the software compilation process by using simple configuration
files, called \e CMakeLists.txt files.
\generatelist creator-how-to-build-with-cmake \generatelist creator-how-to-build-with-cmake
\section2 Build with qmake \section2 Build with qmake
qmake automates the generation of Makefiles based on the information in a
project file that has the extension \e .pro.
\generatelist creator-how-to-build-with-qmake \generatelist creator-how-to-build-with-qmake
\section2 Run applications \section2 Run applications
Run applications on local and remote desktop systems, as well as on
embedded and mobile devices that you connect to the computer.
\generatelist creator-how-to-run \generatelist creator-how-to-run
\section1 Create Models and Diagrams \section1 Create Models and Diagrams
Create Universal Modeling Language (UML) style models with structured and
behavioral diagrams that offer different views to your system. Or, use a
file wizard to create State Chart XML (SCXML) files with boilerplate code
and edit them with an SCXML editor.
\generatelist creator-how-to-models \generatelist creator-how-to-models
\section1 Debug \section1 Debug
Use native debuggers to inspect the state of your application while
debugging.
\generatelist creator-how-to-debug \generatelist creator-how-to-debug
\section1 Design UIs \section1 Design UIs
Design UIs with either \l{User Interfaces}{Qt Quick or Qt Widgets}.
\QC integrates a visual editor, \QD, for designing widget-based UIs
in the \uicontrol Design mode. For Qt Quick UIs, use a separate visual
editor, \l{\QDS Manual}{\QDS}, or the \uicontrol Edit mode.
\generatelist creator-how-to-design \generatelist creator-how-to-design
\section1 Edit Code \section1 Edit Code
The code editor offers useful features, such as semantic highlighting, The code editor offers useful features for editing C++ and QML code, such
checking code syntax, code completion, and refactoring actions. as semantic highlighting, checking code syntax, code completion, and quick
fixes. Some of these features are also for other programming languages, such
as Python, for which a \e {language server} is available that provides
information about the code to IDEs.
\generatelist creator-how-to-edit \generatelist creator-how-to-edit
@@ -69,39 +99,64 @@
\section2 Manage Language Servers \section2 Manage Language Servers
Configure language servers that \QC adds by default or add more of them.
\generatelist creator-how-to-lsp \generatelist creator-how-to-lsp
\section2 Search \section2 Search
Use the incremental and advanced search to search in currently open projects
or files on the file system or use the locator to browse through projects,
files, classes, functions, documentation, and file systems.
\generatelist creator-how-to-search \generatelist creator-how-to-search
\section1 Manage Kits \section1 Manage Kits
\QC groups build and run specific settings as kits to make cross-platform
development easier. Each kit consists of a set of values that define one
environment, such as a device, tool chain, Qt version, and debugger command
to use.
\generatelist creator-how-to-manage-kits \generatelist creator-how-to-manage-kits
\section1 Manage Projects \section1 Manage Projects
Create projects for developing applications and libraries. Then configure
the projects for building and running the applications on target platforms.
\generatelist creator-how-to-projects \generatelist creator-how-to-projects
\section2 Create Projects \section2 Create Projects
Use preset wizards to create projects or add custom wizards. You can also
import projects from version control systems.
\generatelist creator-how-to-projects-create \generatelist creator-how-to-projects-create
\section2 Add Files \section2 Add Files
Add files to projects.
\generatelist creator-how-to-projects-files \generatelist creator-how-to-projects-files
\section2 Configure Projects \section2 Configure Projects
Change the default configurations that installation programs and project
wizards create.
\generatelist creator-how-to-projects-configure \generatelist creator-how-to-projects-configure
\section1 Read Documentation \section1 Read Documentation
\QC integrates the reference documentation for the Qt versions that you
install. You can add documentation from other sources.
\generatelist creator-how-to-get-help \generatelist creator-how-to-get-help
\section1 Test \section1 Test
\QC supports both \e {code based tests} and \e {build system based tests}. Create and run \e {code based tests} and \e {build system based tests}.
Code based testing offers special handling for particular testing Code based testing offers special handling for particular testing
frameworks that strongly ties to the underlying code models or frameworks that strongly ties to the underlying code models or
specialized parsers. Build system based testing is independent from any specialized parsers. Build system based testing is independent from any
@@ -113,10 +168,15 @@
\section1 Use \QC \section1 Use \QC
Use basic \QC features and preinstalled plugins. Install more plugins and
configure external tools for use.
\generatelist creator-how-to-use \generatelist creator-how-to-use
\section1 Use the UI \section1 Use the UI
Navigate the UI or change its appearance and behavior.
\generatelist creator-how-to-ui \generatelist creator-how-to-ui
*/ */

View File

@@ -72,6 +72,7 @@
for remote Linux devices: for remote Linux devices:
\list \list
\li \l{Adding Docker Devices}
\li \l{Connecting Remote Linux Devices} \li \l{Connecting Remote Linux Devices}
\li \l{Deploying to Remote Linux} \li \l{Deploying to Remote Linux}
\li \l{Remote Linux Run Settings} \li \l{Remote Linux Run Settings}

View File

@@ -89,8 +89,8 @@
Themes enable you to customize the appearance of the \QC UI: widgets, Themes enable you to customize the appearance of the \QC UI: widgets,
colors, and icons. colors, and icons.
To switch themes, select \preferences > \uicontrol Environment, and then To switch themes, select \preferences > \uicontrol Environment >
select a theme in the \uicontrol Theme field. \uicontrol Interface, and then select a theme in the \uicontrol Theme field.
You can use the \QC text and code editors with your favorite color scheme You can use the \QC text and code editors with your favorite color scheme
that defines how to highlight code elements and which background color to that defines how to highlight code elements and which background color to

View File

@@ -25,11 +25,11 @@
\li \inlineimage front-ui.png \li \inlineimage front-ui.png
\li \inlineimage front-advanced.png \li \inlineimage front-advanced.png
\row \row
\li \b {\l{Overview}} \li \b {\l{Developing with \QC}}
If you have not used an integrated development environment (IDE) If you have not used an integrated development environment (IDE)
before, or want to know what kind of IDE \QC is, go to before, or want to know what kind of IDE \QC is, go to
\l{Overview}. \l{Developing with \QC}.
\li \b {\l{User Interface}} \li \b {\l{User Interface}}
If you have not used \QC before, and want to become familiar If you have not used \QC before, and want to become familiar

View File

@@ -18,25 +18,25 @@
\brief Default keyboard shortcuts. \brief Default keyboard shortcuts.
\QC has various keyboard shortcuts that speed up your development process. \QC has various keyboard shortcuts that speed up your development process.
To view all \QC functions in and their keyboard shortcuts, select To view all \QC functions and their keyboard shortcuts, select
\preferences > \uicontrol Environment > \uicontrol Keyboard. \preferences > \uicontrol Environment > \uicontrol Keyboard.
\image qtcreator-keyboard-shortcuts.png \image qtcreator-keyboard-shortcuts.png
The shortcuts that are displayed in red color are associated with several Shortcuts that are displayed in red are associated with several functions.
functions. \QC executes the function that is available in the current \QC executes the function that is available in the current context.
context. If several functions are available for the same shortcut at a If several functions are available for the same shortcut in the current context,
time, there is a conflict and \QC cannot execute any function. \QC will not execute any function due to the conflict.
A keyboard shortcut might also conflict with a shortcut that a window A keyboard shortcut might also conflict with a shortcut that your window
manager uses for its own purposes. In that case, \QC shortcuts do not work. manager uses for its own purposes. If the window manager consumes the key event,
the \QC shortcut will not be activated.
Typically, you can configure the shortcuts in the window manager, but if Typically, you can configure the shortcuts in the window manager, but if
that is not allowed, you can change the \QC shortcuts. that is not allowed, you can change the \QC shortcuts.
For example, Unity on For example, Unity on Ubuntu 11.10 by default uses \key F10 in its window manager,
Ubuntu 11.10 uses \key F10 in its window manager, and therefore the default and therefore the default \QC keyboard shortcut \key F10 (Step Over) will not work on
\QC keyboard shortcut \key F10 (Step Over) does not work on that system. that system.
To override the platform default value that determines whether To override the platform default value that determines whether
keyboard shortcuts are shown in the labels of context menu items, keyboard shortcuts are shown in the labels of context menu items,

View File

@@ -52,8 +52,8 @@
\li \l {Adding Docker Devices} \li \l {Adding Docker Devices}
You can add Docker images as \e devices to run, debug, and analyze Create Docker devices from Docker images and use them to build, run,
applications built for Docker containers from \QC. and debug applications from \QC.
\li \l{Connecting iOS Devices} \li \l{Connecting iOS Devices}

View File

@@ -8,11 +8,11 @@
// ********************************************************************** // **********************************************************************
/*! /*!
\previouspage creator-getting-started.html \previouspage index.html
\page creator-overview.html \page creator-overview.html
\nextpage creator-quick-tour.html \nextpage creator-getting-started.html
\title Overview \title Developing with \QC
\QC is a cross-platform, complete integrated development environment \QC is a cross-platform, complete integrated development environment
(IDE) that you can use to create applications for desktop, embedded, (IDE) that you can use to create applications for desktop, embedded,
@@ -235,6 +235,11 @@
a suitable native debugger for each kit from the ones it finds on the a suitable native debugger for each kit from the ones it finds on the
computer. Edit the kits to override this choice. computer. Edit the kits to override this choice.
If you install \QC with \QOI, the GNU Symbolic Debugger is installed
automatically and you should be ready to start debugging after you create
a new project. However, you can change the setup to use debugging tools for
Windows, for example.
Connect devices to your computer to debug processes running on the devices. Connect devices to your computer to debug processes running on the devices.
For more information, see \l{Debugging}. For more information, see \l{Debugging}.

View File

@@ -4,16 +4,25 @@
/*! /*!
\page creator-reference.html \page creator-reference.html
\previouspage creator-how-tos.html \previouspage creator-how-tos.html
\nextpage creator-known-issues.html \nextpage creator-acknowledgements.html
\title Reference \title Reference
The following topics contain reference information about using \QC and the
integrated tools.
\annotatedlist creator-reference \annotatedlist creator-reference
\section1 Analyzers
Use integrated code analysis tools to improve your C++ or QML code.
\annotatedlist creator-reference-analyzer
\section1 Build Systems \section1 Build Systems
Most \QC project wizards enable you to choose the build system to use for When you create projects, you can choose the build system to use for
building the project: qmake, CMake, Meson, or Qbs. qmake is installed and building the project: CMake, qmake, Meson, or Qbs. qmake is installed and
configured when you install Qt. To use one of the other supported build configured when you install Qt. To use one of the other supported build
systems, you need to set it up. systems, you need to set it up.
@@ -29,33 +38,46 @@
\section1 Editors \section1 Editors
When you open files, \QC chooses a suitable editor according to the file
type.
\annotatedlist creator-reference-editors \annotatedlist creator-reference-editors
\section1 Platforms \section1 Platforms
You can install and run \QC on several operating systems to create
applications for multiple desktop, embedded, and mobile device platforms.
\annotatedlist creator-reference-platforms \annotatedlist creator-reference-platforms
\section1 Preferences \section1 Preferences
Set preferences that apply globally to all projects. You can set preferences that apply globally to all projects and override
them for particular projects.
\annotatedlist creator-reference-preferences \annotatedlist creator-reference-preferences
\section2 Analyzer \section2 Analyzer
Preferences for code analysis tools.
\annotatedlist creator-reference-preferences-analyzer \annotatedlist creator-reference-preferences-analyzer
\section2 C++ \section2 C++
Preferences for editing C++ code.
\annotatedlist creator-reference-preferences-cpp \annotatedlist creator-reference-preferences-cpp
\section2 Kits \section2 Kits
Preferences for build and run kits.
\annotatedlist creator-reference-preferences-kits \annotatedlist creator-reference-preferences-kits
\section2 Text Editor \section2 Text Editor
Configure the text editor to suit your needs. Preferences for the behavior and appearance of text and code editors.
\annotatedlist creator-reference-preferences-text-editor \annotatedlist creator-reference-preferences-text-editor
@@ -72,8 +94,7 @@
\section1 UI Design \section1 UI Design
Design UIs with either \l{User Interfaces}{Qt Quick or Qt Widgets}. You can use a visual editor, \QD, for designing widget-based UIs
\QC integrates a visual editor, \QD, for designing widget-based UIs
in the \uicontrol Design mode. For Qt Quick UIs, use a separate visual in the \uicontrol Design mode. For Qt Quick UIs, use a separate visual
editor, \l{\QDS Manual}{\QDS}, or the \uicontrol Edit mode. editor, \l{\QDS Manual}{\QDS}, or the \uicontrol Edit mode.
@@ -81,11 +102,22 @@
\section1 Views \section1 Views
When you switch modes or trigger actions, \QC opens views for viewing
output and organizing project contents.
\section2 Output Views \section2 Output Views
You can view output from several sources, such as a list of errors and
warnings encountered during a build, detailed output from the compiler,
status of a program when it is executed, debug output, or search results.
\annotatedlist creator-reference-output-views \annotatedlist creator-reference-output-views
\section2 Sidebar Views \section2 Sidebar Views
In some modes, you can use a left and right sidebar to organize different
views into project contents. Only views that are relevant to the mode you
are working in are available in it.
\annotatedlist creator-reference-sidebar-views \annotatedlist creator-reference-sidebar-views
*/ */

View File

@@ -1,44 +0,0 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************
/*!
\previouspage creator-build-process-customizing.html
\page creator-testing.html
\nextpage creator-debugging.html
\title Debugging and Analyzing
\image front-testing.png
\list
\li \l{Debugging}
If you install \QC with \QOI, the GNU Symbolic Debugger
is installed automatically and you should be ready to start
debugging after you create a new project. However, you can
change the setup to use debugging tools for Windows, for
example. You can connect \l{glossary-device}{devices} to your
development host and debug processes running on the devices.
\li \l{Analyzing Code}
Use tools for analyzing C++ and QML code to identify issues in
memory management, CPU usage, coding constructs, and so on. You
must install and configure the tools on your system to use them
from \QC. However, the QML Profiler is installed as part of \QC
for profiling Qt Quick applications.
\li \l{Using Squish}
Map AUTs to \QC and run Squish test suites and cases from it.
\endlist
*/

View File

@@ -11,7 +11,7 @@
\page creator-usability.html \page creator-usability.html
\previouspage creator-reference.html \previouspage creator-reference.html
\ingroup creator-reference \ingroup creator-reference-platforms
\title Optimizing Applications for Mobile Devices \title Optimizing Applications for Mobile Devices

View File

@@ -48,8 +48,9 @@
\image qtcreator-custom-wizard.png {Wizard details in the New Project dialog} \image qtcreator-custom-wizard.png {Wizard details in the New Project dialog}
In most project wizards, you can choose the build system to use for In most project wizards, you can choose the build system to use for
building the project: qmake, CMake, or Qbs. If you do not get to choose, building the project: qmake, CMake, Qbs, and possibly others, depending on
the project uses qmake as the build system. which plugins you have installed. If you do not get to choose,
the project usually uses CMake as the build system.
\image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog} \image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog}

View File

@@ -120,7 +120,7 @@
\list 1 \list 1
\li Select \uicontrol File > \uicontrol {New Project} > \li Go to \uicontrol File > \uicontrol {New Project}, and select
\uicontrol Library > \uicontrol {C++ Library}. If your top level \uicontrol Library > \uicontrol {C++ Library}. If your top level
project is a subdirs project or contains one, you may add the library project is a subdirs project or contains one, you may add the library
to the project. However, this does not link other libraries from to the project. However, this does not link other libraries from
@@ -131,16 +131,16 @@
\image qtcreator-add-library-internal-project-location.webp {Project Location dialog} \image qtcreator-add-library-internal-project-location.webp {Project Location dialog}
\li In the \uicontrol Name field, give a name for the library. For example, \li In \uicontrol Name, give a name for the library. For example,
\e MyLibrary. \e MyLibrary.
\li Select \uicontrol Next (on Windows and Linux) or \uicontrol Continue \li Select \uicontrol Next (on Windows and Linux) or \uicontrol Continue
(on \macos) to open the \uicontrol {Define Build System} dialog. (on \macos) to open the \uicontrol {Define Build System} dialog.
\li Select \uicontrol Next or \uicontrol Continue to use CMake as the \li In \uicontrol {Build system}, select \uicontrol qmake.
build system.
The \uicontrol {Define Project Details} dialog opens. \li Select \uicontrol Next or \uicontrol Continue to open the
\uicontrol {Define Project Details} dialog.
\image qtcreator-add-library-internal-project-details.webp {Define Project Details dialog} \image qtcreator-add-library-internal-project-details.webp {Define Project Details dialog}
@@ -170,7 +170,7 @@
\image qtcreator-add-library-internal.webp {Adding an internal library} \image qtcreator-add-library-internal.webp {Adding an internal library}
\li In the \uicontrol Library field, select \e mylibrary, and then select \li In \uicontrol Library, select \e mylibrary, and then select
\uicontrol Next. \uicontrol Next.
\li Select \uicontrol Finish to add the library declaration to the \li Select \uicontrol Finish to add the library declaration to the
@@ -178,15 +178,7 @@
\endlist \endlist
When using CMake, the \c target_link_libraries command is added to the The wizard adds the following library declaration to the .pro file:
CMakeLists.txt file:
\badcode
target_link_libraries(myapplication PRIVATE mylibrary)
\endcode
When using qmake, the following library declaration is added to the .pro
file:
\badcode \badcode
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib

View File

@@ -45,22 +45,23 @@
\li Profile \li Profile
\endlist \endlist
A debug build has debug symbols that you need for debugging the application A \e Debug build has debug symbols that you need for debugging the application
but that you can leave out from the release version. Generally, you use the but that you should leave out from the release version. Generally, you use the
debug configuration for testing and the release configuration for creating debug configuration for testing and the \e Release configuration for creating
the final installation binary package. the final installation binary package.
If you selected CMake as the build system for the project, you can A \e Profile build is an optimized release build with debug information.
use a \e {minimum size release} build configuration to create the It is best suited for analyzing applications.
If you selected CMake as the build system for the project, a
\e {Release with Debug Information} build configuration is also available.
It is similar to a \e profile configuration, but with
\l{Debugging Qt Quick Projects}{QML debugging and profiling} explicitly turned off.
You can also use a \e {Minimum Size Release} build configuration to create the
final installation binary package. It is a release build that makes the size final installation binary package. It is a release build that makes the size
of the binary package as small as possible, even if this makes the of the binary package as small as possible, even if this makes the
application slower. application slower.
A profile build (which is called \e {release with debug information}
when using CMake) is an optimized release build that is delivered
with separate debug information. It is best suited for analyzing
applications.
\section1 Specifying Run Settings \section1 Specifying Run Settings
The run settings to specify depend on the type of the project and on the The run settings to specify depend on the type of the project and on the

View File

@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*! /*!
\page tutorial-python-application-qt-widgets.html \page creator-tutorial-python-application-qt-widgets.html
\previouspage creator-tutorials.html \previouspage creator-tutorials.html
\nextpage creator-how-tos.html \nextpage creator-how-tos.html

View File

@@ -12,21 +12,16 @@
\uicontrol Search function in the \l{https://doc.qt.io/qtcreator/} \uicontrol Search function in the \l{https://doc.qt.io/qtcreator/}
{Qt documentation} portal or in the \l {Get help}{Help} mode. {Qt documentation} portal or in the \l {Get help}{Help} mode.
\list
\li \l{Developing with \QC}
\list \list
\li \l{Getting Started} \li \l{Getting Started}
\list \list
\li \l{Overview}
\list
\li \l{Creating Projects}
\li \l{Configuring Projects}
\endlist
\li \l{User Interface} \li \l{User Interface}
\li \l{Configuring Qt Creator} \li \l{Configuring Qt Creator}
\endlist \endlist
\li \l{Tutorials} \li \l{Creating Projects}
\generatelist creator-tutorials \li \l{Configuring Projects}
\li \l{Running on Devices}
\list
\li \l{Validating with Target Hardware} \li \l{Validating with Target Hardware}
\list \list
\li \l{Previewing on Desktop} \li \l{Previewing on Desktop}
@@ -52,9 +47,6 @@
\li \l{Connecting Remote Linux Devices} \li \l{Connecting Remote Linux Devices}
\li \l{Building Applications for the Web} \li \l{Building Applications for the Web}
\endlist \endlist
\endlist
\li \l{Debugging and Analyzing}
\list
\li \l{Debugging} \li \l{Debugging}
\list \list
\li \l{Setting Up Debugger} \li \l{Setting Up Debugger}
@@ -97,6 +89,8 @@
\endlist \endlist
\li \l{Using Squish} \li \l{Using Squish}
\endlist \endlist
\li \l{Tutorials}
\generatelist creator-tutorials
\li \l{How To} \li \l{How To}
\list \list
\li Analyze \li Analyze

View File

@@ -9,7 +9,7 @@
/*! /*!
\page index.html \page index.html
\nextpage creator-getting-started.html \nextpage creator-overview.html
\title Qt Creator Manual \title Qt Creator Manual
@@ -27,37 +27,27 @@
\table \table
\row \row
\li {4,1} \b {\l{All Topics}{Click Here for a List of All Topics}} \li {4,1} \b {\l{All Topics}}
\row \row
\li \inlineimage front-gs.png \li \inlineimage front-gs.png
\li \inlineimage front-coding.png \li \inlineimage front-coding.png
\li \inlineimage front-preview.png
\row
\li \b {\l{Getting Started}}
\list
\li \l{Overview}
\li \l{User Interface}
\li \l{Configuring Qt Creator}
\endlist
\li \b {\l{Tutorials}}
\generatelist creator-tutorials
\li \b {\l{Running on Devices}}
\list
\li \l{Validating with Target Hardware}
\li \l{Deploying to Devices}
\li \l{Connecting Devices}
\endlist
\row
\li \inlineimage front-testing.png
\li \inlineimage front-help.png \li \inlineimage front-help.png
\li \inlineimage front-advanced.png \li \inlineimage front-advanced.png
\row \row
\li \b {\l{Debugging and Analyzing}} \li \b {\l{Developing with \QC}}
\list \list
\li \l{Getting Started}
\li \l{Creating Projects}
\li \l{Configuring Projects}
\li \l{Validating with Target Hardware}
\li \l{Connecting Devices}
\li \l{Deploying to Devices}
\li \l{Debugging} \li \l{Debugging}
\li \l{Analyzing Code} \li \l{Analyzing Code}
\li \l{Using Squish} \li \l{Using Squish}
\endlist \endlist
\li \b {\l{Tutorials}}
\generatelist creator-tutorials
\li \b {\l{How To}} \li \b {\l{How To}}
\list \list
\li \l{Analyze} \li \l{Analyze}
@@ -70,7 +60,6 @@
\li \l{Test} \li \l{Test}
\li \l{Use \QC} \li \l{Use \QC}
\li \l{Use the UI} \li \l{Use the UI}
\li \l{How To}{See More...}
\endlist \endlist
\li \b {\l{Reference}} \li \b {\l{Reference}}
\list \list
@@ -81,7 +70,8 @@
\li \l {Keyboard Shortcuts} \li \l {Keyboard Shortcuts}
\li \l {Preferences} \li \l {Preferences}
\li \l {Supported Platforms} \li \l {Supported Platforms}
\li \l {Reference}{See More...} \li \l {Version Control Systems}
\li \l {Views}
\endlist \endlist
\endtable \endtable
*/ */

View File

@@ -133,7 +133,7 @@
\skipto set_property \skipto set_property
\printuntil ) \printuntil )
Because the CMake version is older than 3.19, add a manual For compatibility with CMake versions older than 3.19, add a manual
finalization step to the \c qt_add_executable function: finalization step to the \c qt_add_executable function:
\quotefromfile accelbubble/CMakeLists.txt \quotefromfile accelbubble/CMakeLists.txt

View File

@@ -247,14 +247,12 @@
\endlist \endlist
The title of the topic to use for automatically generating the navigation The title of the topic to use for automatically generating the navigation
links is set as the value of the \c indexTitle option in the document links is set as the value of the \c navigation.toctitles option in the
configuration file: document configuration file:
\list \list
\li \QC: \c qhp.qtcreator.subprojects.manual.indexTitle in \li \QC: \c {\doc\qtcreator\config\qtcreator-project.qdocconf}
\c {\doc\qtcreator\config\qtcreator-project.qdocconf} \li \QDS: \c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf}
\li \QDS: \c qhp.qtdesignstudio.subprojects.manual.indexTitle in
\c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf}
\endlist \endlist
When you add new topics, you must add them either to the TOC or to a When you add new topics, you must add them either to the TOC or to a

View File

@@ -25,4 +25,8 @@
<shortcut id="QtCreator.Options"> <shortcut id="QtCreator.Options">
<key value="Ctrl+,"/> <key value="Ctrl+,"/>
</shortcut> </shortcut>
<shortcut id="QtCreator.Locate">
<key value="Ctrl+P"/>
</shortcut>
<shortcut id="QtCreator.Print"/>
</mapping> </mapping>

View File

@@ -12218,123 +12218,123 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
<name>QtC::AppManager</name> <name>QtC::AppManager</name>
<message> <message>
<source>Create Application Manager package with CMake</source> <source>Create Application Manager package with CMake</source>
<translation type="unfinished"></translation> <translation>Application Manager-Paket mit CMake erstellen</translation>
</message> </message>
<message> <message>
<source>Create Application Manager package</source> <source>Create Application Manager package</source>
<translation type="unfinished"></translation> <translation>Application Manager-Paket erstellen</translation>
</message> </message>
<message> <message>
<source>Source directory:</source> <source>Source directory:</source>
<translation type="unfinished">Quellverzeichnis:</translation> <translation>Quellverzeichnis:</translation>
</message> </message>
<message> <message>
<source>Package file:</source> <source>Package file:</source>
<translation type="unfinished"></translation> <translation>Paketdatei:</translation>
</message> </message>
<message> <message>
<source>Automatic Application Manager Deploy Configuration</source> <source>Automatic Application Manager Deploy Configuration</source>
<translation type="unfinished"></translation> <translation>Automatische Deployment-Konfiguration für Application Manager</translation>
</message> </message>
<message> <message>
<source>Deploy Application Manager package</source> <source>Deploy Application Manager package</source>
<translation type="unfinished"></translation> <translation>Deployment des Application Manager-Pakets</translation>
</message> </message>
<message> <message>
<source>Target directory:</source> <source>Target directory:</source>
<translation type="unfinished">Zielverzeichnis:</translation> <translation>Zielverzeichnis:</translation>
</message> </message>
<message> <message>
<source>Uploading finished.</source> <source>Uploading finished.</source>
<translation type="unfinished"></translation> <translation>Hochladen beendet.</translation>
</message> </message>
<message> <message>
<source>Uploading failed.</source> <source>Uploading failed.</source>
<translation type="unfinished"></translation> <translation>Hochladen fehlgeschlagen.</translation>
</message> </message>
<message> <message>
<source>Install Application Manager package</source> <source>Install Application Manager package</source>
<translation type="unfinished"></translation> <translation>Application Manager-Paket installieren</translation>
</message> </message>
<message> <message>
<source>Starting command &quot;%1&quot;.</source> <source>Starting command &quot;%1&quot;.</source>
<translation type="unfinished">Starte Kommando &quot;%1&quot;.</translation> <translation>Starte Kommando &quot;%1&quot;.</translation>
</message> </message>
<message> <message>
<source>Command finished successfully.</source> <source>Command finished successfully.</source>
<translation type="unfinished"></translation> <translation>Das Kommando wurde erfolgreich beendet.</translation>
</message> </message>
<message> <message>
<source>Process failed: %1</source> <source>Process failed: %1</source>
<translation type="unfinished"></translation> <translation>Der Prozess schlug fehl: %1</translation>
</message> </message>
<message> <message>
<source>Process finished with exit code %1.</source> <source>Process finished with exit code %1.</source>
<translation type="unfinished"></translation> <translation>Der Prozess wurde mit dem Rückgabewert %1 beendet.</translation>
</message> </message>
<message> <message>
<source>Run an Application Manager Package</source> <source>Run an Application Manager Package</source>
<translation type="unfinished"></translation> <translation>Ein Application Manager-Paket ausführen</translation>
</message> </message>
<message> <message>
<source>Run and Debug an Application Manager Package</source> <source>Run and Debug an Application Manager Package</source>
<translation type="unfinished"></translation> <translation>Ein Application Manager-Paket ausführen und debuggen</translation>
</message> </message>
<message> <message>
<source>Clean Environment</source> <source>Clean Environment</source>
<translation type="unfinished">Saubere Umgebung</translation> <translation>Saubere Umgebung</translation>
</message> </message>
<message> <message>
<source>%1 exited.</source> <source>%1 exited.</source>
<translation type="unfinished"></translation> <translation>%1 wurde beendet.</translation>
</message> </message>
<message> <message>
<source>Starting Application Manager debugging...</source> <source>Starting Application Manager debugging...</source>
<translation type="unfinished"></translation> <translation>Starte Application Manager-Debuggen...</translation>
</message> </message>
<message> <message>
<source>Using: %1.</source> <source>Using: %1.</source>
<translation type="unfinished"></translation> <translation>Benutze: %1.</translation>
</message> </message>
<message> <message>
<source>Cannot debug: Only QML and native applications are supported.</source> <source>Cannot debug: Only QML and native applications are supported.</source>
<translation type="unfinished"></translation> <translation>Kann nicht debuggen: Es werden nur QML- und native Anwendungen unterstützt.</translation>
</message> </message>
<message> <message>
<source>Cannot debug: Local executable is not set.</source> <source>Cannot debug: Local executable is not set.</source>
<translation type="unfinished">Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben.</translation> <translation>Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben.</translation>
</message> </message>
<message> <message>
<source>Application ID:</source> <source>Application ID:</source>
<translation type="unfinished"></translation> <translation>Anwendungs-ID:</translation>
</message> </message>
<message> <message>
<source>Application Manager instance ID:</source> <source>Application Manager instance ID:</source>
<translation type="unfinished"></translation> <translation>ID der Application Manager-Instanz:</translation>
</message> </message>
<message> <message>
<source>Default instance</source> <source>Default instance</source>
<translation type="unfinished"></translation> <translation>Voreingestellte Instanz</translation>
</message> </message>
<message> <message>
<source>Document URL:</source> <source>Document URL:</source>
<translation type="unfinished"></translation> <translation>Dokument-URL:</translation>
</message> </message>
<message> <message>
<source>Customize step</source> <source>Customize step</source>
<translation type="unfinished"></translation> <translation>Schritt anpassen</translation>
</message> </message>
<message> <message>
<source>Disables the automatic updates based on the current run configuration and allows customizing the values.</source> <source>Disables the automatic updates based on the current run configuration and allows customizing the values.</source>
<translation type="unfinished"></translation> <translation>Deaktiviert die auf der aktuellen Ausführungskonfiguration basierenden automatischen Aktualisierungen und erlaubt, die Werte anzupassen.</translation>
</message> </message>
<message> <message>
<source>Controller:</source> <source>Controller:</source>
<translation type="unfinished"></translation> <translation>Controller:</translation>
</message> </message>
<message> <message>
<source>Packager:</source> <source>Packager:</source>
<translation type="unfinished"></translation> <translation>Packager:</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -13693,178 +13693,181 @@ Siehe auch die Einstellungen für Google Test.</translation>
<name>QtC::Axivion</name> <name>QtC::Axivion</name>
<message> <message>
<source>Project:</source> <source>Project:</source>
<translation type="unfinished"></translation> <translation>Projekt:</translation>
</message> </message>
<message> <message>
<source>Lines of code:</source> <source>Lines of code:</source>
<translation type="unfinished"></translation> <translation>Codezeilen:</translation>
</message> </message>
<message> <message>
<source>Analysis timestamp:</source> <source>Analysis timestamp:</source>
<translation type="unfinished"></translation> <translation>Zeitstempel der Analyse:</translation>
</message> </message>
<message> <message>
<source>unknown</source> <source>unknown</source>
<translation type="unfinished">unbekannt</translation> <translation>unbekannt</translation>
</message> </message>
<message> <message>
<source>Total:</source> <source>Total:</source>
<translation type="unfinished"></translation> <translation>Summe:</translation>
</message> </message>
<message> <message>
<source>Owner</source> <source>Owner</source>
<translation type="unfinished"></translation> <translation>Eigentümer</translation>
</message> </message>
<message> <message>
<source>Path globbing</source> <source>Path globbing</source>
<translation type="unfinished"></translation> <translation>Pfad-Globbing</translation>
</message> </message>
<message> <message>
<source>Total rows:</source> <source>Total rows:</source>
<translation type="unfinished"></translation> <translation>Gesamtzeilen:</translation>
</message> </message>
<message> <message>
<source>Axivion</source> <source>Axivion</source>
<translation type="unfinished"></translation> <translation>Axivion</translation>
</message> </message>
<message> <message>
<source>Show dashboard</source> <source>Show dashboard</source>
<translation type="unfinished"></translation> <translation>Dashboard anzeigen</translation>
</message> </message>
<message> <message>
<source>Search for issues</source> <source>Search for issues</source>
<translation type="unfinished"></translation> <translation>Probleme durchsuchen</translation>
</message> </message>
<message> <message>
<source>Show rule details</source> <source>Show rule details</source>
<translation type="unfinished"></translation> <translation>Regeldetails anzeigen</translation>
</message> </message>
<message> <message>
<source>Certificate Error</source> <source>Certificate Error</source>
<translation type="unfinished">Zertifikatsfehler</translation> <translation>Zertifikatsfehler</translation>
</message> </message>
<message> <message>
<source>Server certificate for %1 cannot be authenticated. <source>Server certificate for %1 cannot be authenticated.
Do you want to disable SSL verification for this server? Do you want to disable SSL verification for this server?
Note: This can expose you to man-in-the-middle attack.</source> Note: This can expose you to man-in-the-middle attack.</source>
<translation type="unfinished">Server-Zertifikat für %1 kann nicht authentifiziert werden. <translation>Server-Zertifikat für %1 kann nicht authentifiziert werden.
Möchten Sie die SSL-Verifikation für diesen Server abschalten? Möchten Sie die SSL-Verifikation für diesen Server abschalten?
Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation> Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
</message> </message>
<message> <message>
<source>Unknown Dto structure deserialization error.</source> <source>Unknown Dto structure deserialization error.</source>
<translation type="unfinished"></translation> <translation>Unbekannter Fehler in der Dto-Struktur beim Deserialisieren.</translation>
</message> </message>
<message> <message>
<source>The ApiToken cannot be read in a secure way.</source> <source>The ApiToken cannot be read in a secure way.</source>
<translation type="unfinished"></translation> <translation>Das ApiToken kann nicht auf sichere Weise gelesen werden.</translation>
</message> </message>
<message> <message>
<source>The ApiToken cannot be stored in a secure way.</source> <source>The ApiToken cannot be stored in a secure way.</source>
<translation type="unfinished"></translation> <translation>Das ApiToken kann nicht auf sichere Weise gespeichert werden.</translation>
</message> </message>
<message> <message>
<source>The ApiToken cannot be deleted in a secure way.</source> <source>The ApiToken cannot be deleted in a secure way.</source>
<translation type="unfinished"></translation> <translation>Das ApiToken kann nicht auf sichere Weise gelöscht werden.</translation>
</message> </message>
<message> <message>
<source>Key chain message: &quot;%1&quot;.</source> <source>Key chain message: &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Meldung der Schlüsselverwaltung: &quot;%1&quot;.</translation>
</message> </message>
<message> <message>
<source>Enter the password for: <source>Enter the password for:
Dashboard: %1 Dashboard: %1
User: %2</source> User: %2</source>
<translation type="unfinished"></translation> <translation>Geben Sie das Passwort ein für:
Dashboard: %1
Benutzer: %2</translation>
</message> </message>
<message> <message>
<source>Axivion Server Password</source> <source>Axivion Server Password</source>
<translation type="unfinished"></translation> <translation>Axivion Server-Passwort</translation>
</message> </message>
<message> <message>
<source>The stored ApiToken is not valid anymore, removing it.</source> <source>The stored ApiToken is not valid anymore, removing it.</source>
<translation type="unfinished"></translation> <translation>Das gespeicherte ApiToken ist nicht mehr gültig und wird entfernt.</translation>
</message> </message>
<message> <message>
<source>Fetching DashboardInfo error.</source> <source>Fetching DashboardInfo error.</source>
<translation type="unfinished"></translation> <translation>Fehler beim Abrufen der DashboardInfo.</translation>
</message> </message>
<message> <message>
<source>The DashboardInfo doesn&apos;t contain project &quot;%1&quot;.</source> <source>The DashboardInfo doesn&apos;t contain project &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Die DashboardInfo enthält das Projekt &quot;%1&quot; nicht.</translation>
</message> </message>
<message> <message>
<source>The activated link appears to be external. <source>The activated link appears to be external.
Do you want to open &quot;%1&quot; with its default application?</source> Do you want to open &quot;%1&quot; with its default application?</source>
<translation type="unfinished"></translation> <translation>Der aktivierte Link scheint extern zu sein.
Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message> </message>
<message> <message>
<source>Open External Links</source> <source>Open External Links</source>
<translation type="unfinished"></translation> <translation>Externe Links öffnen</translation>
</message> </message>
<message> <message>
<source>Fetch Projects</source> <source>Fetch Projects</source>
<translation type="unfinished"></translation> <translation>Projekte abrufen</translation>
</message> </message>
<message> <message>
<source>Link Project</source> <source>Link Project</source>
<translation type="unfinished"></translation> <translation>Projekt verknüpfen</translation>
</message> </message>
<message> <message>
<source>Unlink Project</source> <source>Unlink Project</source>
<translation type="unfinished"></translation> <translation>Projektverknüpfung aufheben</translation>
</message> </message>
<message> <message>
<source>Dashboard projects:</source> <source>Dashboard projects:</source>
<translation type="unfinished"></translation> <translation>Dashboard-Projekte:</translation>
</message> </message>
<message> <message>
<source>This project is not linked to a dashboard project.</source> <source>This project is not linked to a dashboard project.</source>
<translation type="unfinished"></translation> <translation>Dieses Projekt ist nicht mit einem Dashboard-Projekt verknüpft.</translation>
</message> </message>
<message> <message>
<source>This project is linked to &quot;%1&quot;.</source> <source>This project is linked to &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Dieses Projekt ist mit &quot;%1&quot; verknüpft.</translation>
</message> </message>
<message> <message>
<source>Incomplete or misconfigured settings.</source> <source>Incomplete or misconfigured settings.</source>
<translation type="unfinished"></translation> <translation>Unvollständige oder fehlerhafte Einstellungen.</translation>
</message> </message>
<message> <message>
<source>Highlight marks</source> <source>Highlight marks</source>
<translation type="unfinished"></translation> <translation>Markierungen hervorheben</translation>
</message> </message>
<message> <message>
<source>Marks issues on the scroll bar.</source> <source>Marks issues on the scroll bar.</source>
<translation type="unfinished"></translation> <translation>Markiert Probleme in der Bildlaufleiste.</translation>
</message> </message>
<message> <message>
<source>Dashboard URL:</source> <source>Dashboard URL:</source>
<translation type="unfinished"></translation> <translation>Dashboard-URL:</translation>
</message> </message>
<message> <message>
<source>Username:</source> <source>Username:</source>
<translation type="unfinished"></translation> <translation>Benutzername:</translation>
</message> </message>
<message> <message>
<source>User name</source> <source>User name</source>
<translation type="unfinished">Benutzername</translation> <translation>Benutzername</translation>
</message> </message>
<message> <message>
<source>Edit...</source> <source>Edit...</source>
<translation type="unfinished">Bearbeiten...</translation> <translation>Bearbeiten...</translation>
</message> </message>
<message> <message>
<source>Edit Dashboard Configuration</source> <source>Edit Dashboard Configuration</source>
<translation type="unfinished"></translation> <translation>Dashboard-Konfiguration bearbeiten</translation>
</message> </message>
<message> <message>
<source>General</source> <source>General</source>
<translation type="unfinished">Allgemein</translation> <translation>Allgemein</translation>
</message> </message>
<message> <message>
<source>Fetching...</source> <source>Fetching...</source>
<translation type="unfinished"></translation> <translation>Rufe ab...</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -44332,7 +44335,7 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>&amp;Generate Kit</source> <source>&amp;Generate Kit</source>
<translation type="unfinished"></translation> <translation>&amp;Kit erstellen</translation>
</message> </message>
<message> <message>
<source>&amp;Clean Up</source> <source>&amp;Clean Up</source>
@@ -44400,19 +44403,19 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>Installing PySide</source> <source>Installing PySide</source>
<translation type="unfinished"></translation> <translation>Installiere PySide</translation>
</message> </message>
<message> <message>
<source>You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license.</source> <source>You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license.</source>
<translation type="unfinished"></translation> <translation>Sie können PySide von PyPI (Community OSS-Version) oder, falls Sie den Qt-Installer benutzen und eine kommerzielle Lizenz besitzen, von Ihrer Qt-Installation installieren.</translation>
</message> </message>
<message> <message>
<source>Select which version to install:</source> <source>Select which version to install:</source>
<translation type="unfinished"></translation> <translation>Wählen Sie die zu installierende Version aus:</translation>
</message> </message>
<message> <message>
<source>Latest PySide from the PyPI</source> <source>Latest PySide from the PyPI</source>
<translation type="unfinished"></translation> <translation>Letzte PySide-Version von PyPI</translation>
</message> </message>
<message> <message>
<source>PySide %1 Wheel (%2)</source> <source>PySide %1 Wheel (%2)</source>
@@ -44464,27 +44467,28 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>PySide uic tool:</source> <source>PySide uic tool:</source>
<translation type="unfinished"></translation> <translation>PySide uic-Werkzeug:</translation>
</message> </message>
<message> <message>
<source>Enter location of PySide uic tool.</source> <source>Enter location of PySide uic tool.</source>
<translation type="unfinished"></translation> <translation>Geben Sie den Ort des PySide uic-Werkzeugs ein.</translation>
</message> </message>
<message> <message>
<source>Effective venv:</source> <source>Effective venv:</source>
<translation type="unfinished"></translation> <translation>Resultierende venv:</translation>
</message> </message>
<message> <message>
<source>New Virtual Environment</source> <source>New Virtual Environment</source>
<translation type="unfinished"></translation> <translation>Neue virtuelle Umgebung</translation>
</message> </message>
<message> <message>
<source>Global Python</source> <source>Global Python</source>
<translation type="unfinished"></translation> <translation>Globales Python</translation>
</message> </message>
<message> <message>
<source> Virtual Environment</source> <source> Virtual Environment</source>
<translation type="unfinished"></translation> <translatorcomment>python-&gt;name + Tr::tr(&quot; Virtual Environment&quot;);</translatorcomment>
<translation> virtuelle Umgebung</translation>
</message> </message>
<message> <message>
<source>REPL</source> <source>REPL</source>
@@ -44564,43 +44568,43 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>None</source> <source>None</source>
<translation type="unfinished"></translation> <translation>Kein</translation>
</message> </message>
<message> <message>
<source>The interpreter used for Python based projects.</source> <source>The interpreter used for Python based projects.</source>
<translation type="unfinished"></translation> <translation>Der für Python-basierte Projekte benutzte Interpreter.</translation>
</message> </message>
<message> <message>
<source>No Python setup.</source> <source>No Python setup.</source>
<translation type="unfinished"></translation> <translation>Kein Python eingerichtet.</translation>
</message> </message>
<message> <message>
<source>Python &quot;%1&quot; not found.</source> <source>Python &quot;%1&quot; not found.</source>
<translation type="unfinished"></translation> <translation>Python &quot;%1&quot; nicht gefunden.</translation>
</message> </message>
<message> <message>
<source>Python &quot;%1&quot; is not executable.</source> <source>Python &quot;%1&quot; is not executable.</source>
<translation type="unfinished"></translation> <translation>Python &quot;%1&quot; nicht ausführbar.</translation>
</message> </message>
<message> <message>
<source>Python &quot;%1&quot; does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python.</source> <source>Python &quot;%1&quot; does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python.</source>
<translation type="unfinished"></translation> <translation>Python &quot;%1&quot; enthält kein verwendbares pip. pip wird für das Installieren von Python-Paketen wie PySide und dem Python Language Server vom Python Package Index benötigt. Um diese Funktionen benutzen zu können, stellen Sie sicher, dass pip für dieses Python installiert ist.</translation>
</message> </message>
<message> <message>
<source>Python &quot;%1&quot; does not contain a usable venv. venv is the recommended way to isolate a development environment for a project from the globally installed Python.</source> <source>Python &quot;%1&quot; does not contain a usable venv. venv is the recommended way to isolate a development environment for a project from the globally installed Python.</source>
<translation type="unfinished"></translation> <translation>Python &quot;%1&quot; enthält kein verwendbares venv. venv ist der empfohlene Weg, um eine Entwicklungsumgebung für ein Projekt von der globalen Python-Installation zu isolieren.</translation>
</message> </message>
<message> <message>
<source>Name of Python Interpreter</source> <source>Name of Python Interpreter</source>
<translation type="unfinished"></translation> <translation>Name des Python-Interpreters</translation>
</message> </message>
<message> <message>
<source>Path to Python Interpreter</source> <source>Path to Python Interpreter</source>
<translation type="unfinished"></translation> <translation>Pfad zum Python-Interpreter</translation>
</message> </message>
<message> <message>
<source>No Python interpreter set for kit &quot;%1&quot;</source> <source>No Python interpreter set for kit &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation>Kein Python-Interpreter für das Kit &quot;%1&quot; eingerichtet</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -49742,7 +49746,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message> </message>
<message> <message>
<source>Remote command finished successfully.</source> <source>Remote command finished successfully.</source>
<translation>Das entfernte Kommando wurde erfolgreich ausgeführt.</translation> <translation>Das entfernte Kommando wurde erfolgreich beendet.</translation>
</message> </message>
<message> <message>
<source>WizardPage</source> <source>WizardPage</source>

View File

@@ -547,18 +547,6 @@ private:
\endcode \endcode
*/ */
/*!
\fn GroupItem Group::withTimeout(std::chrono::milliseconds timeout, const std::function<void()> &handler) const
Attaches \c TimeoutTask to a copy of \c this group, elapsing after \a timeout in milliseconds,
with an optionally provided timeout \a handler, and returns the coupled item.
When the group finishes before \a timeout passes,
the returned item finishes immediately with the group's result.
Otherwise, the \a handler is invoked (if provided), the group's tasks are canceled,
and the returned item finishes with an error.
*/
/*! /*!
\class Tasking::Sync \class Tasking::Sync
\inheaderfile solutions/tasking/tasktree.h \inheaderfile solutions/tasking/tasktree.h
@@ -758,17 +746,6 @@ private:
\sa TaskSetupHandler, TaskDoneHandler \sa TaskSetupHandler, TaskDoneHandler
*/ */
/*!
\fn template <typename Adapter> GroupItem CustomTask<Adapter>::withTimeout(std::chrono::milliseconds timeout, const std::function<void()> &handler) const
Attaches \c TimeoutTask to a copy of \c this task, elapsing after \a timeout in milliseconds,
with an optionally provided timeout \a handler, and returns the coupled item.
When the task finishes before \a timeout passes, the returned item finishes immediately
with the task's result. Otherwise, \a handler is invoked (if provided),
the task is canceled, and the returned item finishes with an error.
*/
/*! /*!
\enum Tasking::WorkflowPolicy \enum Tasking::WorkflowPolicy
@@ -1415,6 +1392,26 @@ void GroupItem::addChildren(const QList<GroupItem> &children)
} }
} }
/*!
\class Tasking::ExecutableItem
\inheaderfile solutions/tasking/tasktree.h
\inmodule TaskingSolution
\brief Base class for executable task items.
\reentrant
\c ExecutableItem provides an additional interface for items containing executable tasks.
Use withTimeout() to attach a timeout to a task.
Use withLog() to include debugging information about the task startup and the execution result.
*/
/*!
Attaches \c TimeoutTask to a copy of \c this ExecutableItem, elapsing after \a timeout
in milliseconds, with an optionally provided timeout \a handler, and returns the coupled item.
When the ExecutableItem finishes before \a timeout passes, the returned item finishes
immediately with the task's result. Otherwise, \a handler is invoked (if provided),
the task is canceled, and the returned item finishes with an error.
*/
ExecutableItem ExecutableItem::withTimeout(milliseconds timeout, ExecutableItem ExecutableItem::withTimeout(milliseconds timeout,
const std::function<void()> &handler) const const std::function<void()> &handler) const
{ {
@@ -1433,6 +1430,17 @@ ExecutableItem ExecutableItem::withTimeout(milliseconds timeout,
static QString currentTime() { return QTime::currentTime().toString(Qt::ISODateWithMs); } static QString currentTime() { return QTime::currentTime().toString(Qt::ISODateWithMs); }
/*!
Attaches a custom debug printout to a copy of \c this ExecutableItem,
issued on task startup and after the task is finished, and returns the coupled item.
The debug printout includes a timestamp of the event (start or finish)
and \a logName to identify the specific task in the debug log.
The finish printout contains the additional information whether the execution was
synchronous or asynchronous, its result (the value described by the DoneWith enum),
and the total execution time in milliseconds.
*/
ExecutableItem ExecutableItem::withLog(const QString &logName) const ExecutableItem ExecutableItem::withLog(const QString &logName) const
{ {
const auto header = [logName] { const auto header = [logName] {

View File

@@ -450,9 +450,11 @@ static Group dtoRecipe(const Storage<DtoStorageType<DtoType>> &dtoStorage)
if (error) { if (error) {
if constexpr (std::is_same_v<DtoType, Dto::DashboardInfoDto>) { if constexpr (std::is_same_v<DtoType, Dto::DashboardInfoDto>) {
// Suppress logging error on unauthorized dashboard fetch // Suppress logging error on unauthorized dashboard fetch
if (!dtoStorage->credential && error->type == "UnauthenticatedException") if (!dtoStorage->credential && error->type == "UnauthenticatedException") {
dtoStorage->url = reply->url();
return DoneResult::Success; return DoneResult::Success;
} }
}
errorString = Error(DashboardError(reply->url(), statusCode, errorString = Error(DashboardError(reply->url(), statusCode,
reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString(), reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString(),
@@ -530,13 +532,11 @@ static void handleCredentialError(const CredentialQuery &credential)
static Group authorizationRecipe() static Group authorizationRecipe()
{ {
const Storage<QUrl> serverUrlStorage;
const Storage<GetDtoStorage<Dto::DashboardInfoDto>> unauthorizedDashboardStorage; const Storage<GetDtoStorage<Dto::DashboardInfoDto>> unauthorizedDashboardStorage;
const auto onUnauthorizedGroupSetup = [unauthorizedDashboardStorage] { const auto onUnauthorizedGroupSetup = [serverUrlStorage, unauthorizedDashboardStorage] {
if (isServerAccessEstablished()) unauthorizedDashboardStorage->url = *serverUrlStorage;
return SetupResult::StopWithSuccess; return isServerAccessEstablished() ? SetupResult::StopWithSuccess : SetupResult::Continue;
unauthorizedDashboardStorage->url = QUrl(settings().server.dashboard);
return SetupResult::Continue;
}; };
const auto onUnauthorizedDashboard = [unauthorizedDashboardStorage] { const auto onUnauthorizedDashboard = [unauthorizedDashboardStorage] {
if (unauthorizedDashboardStorage->dtoData) { if (unauthorizedDashboardStorage->dtoData) {
@@ -575,7 +575,7 @@ static Group authorizationRecipe()
const Storage<QString> passwordStorage; const Storage<QString> passwordStorage;
const Storage<GetDtoStorage<Dto::DashboardInfoDto>> dashboardStorage; const Storage<GetDtoStorage<Dto::DashboardInfoDto>> dashboardStorage;
const auto onPasswordGroupSetup = [passwordStorage, dashboardStorage] { const auto onPasswordGroupSetup = [serverUrlStorage, passwordStorage, dashboardStorage] {
if (dd->m_apiToken) if (dd->m_apiToken)
return SetupResult::StopWithSuccess; return SetupResult::StopWithSuccess;
@@ -589,7 +589,7 @@ static Group authorizationRecipe()
const QString credential = settings().server.username + ':' + *passwordStorage; const QString credential = settings().server.username + ':' + *passwordStorage;
dashboardStorage->credential = "Basic " + credential.toUtf8().toBase64(); dashboardStorage->credential = "Basic " + credential.toUtf8().toBase64();
dashboardStorage->url = QUrl(settings().server.dashboard); dashboardStorage->url = *serverUrlStorage;
return SetupResult::Continue; return SetupResult::Continue;
}; };
@@ -632,13 +632,13 @@ static Group authorizationRecipe()
return DoneResult::Success; return DoneResult::Success;
}; };
const auto onDashboardGroupSetup = [dashboardStorage] { const auto onDashboardGroupSetup = [serverUrlStorage, dashboardStorage] {
if (dd->m_dashboardInfo || dd->m_serverAccess != ServerAccess::WithAuthorization if (dd->m_dashboardInfo || dd->m_serverAccess != ServerAccess::WithAuthorization
|| !dd->m_apiToken) { || !dd->m_apiToken) {
return SetupResult::StopWithSuccess; // Unauthorized access should have collect dashboard before return SetupResult::StopWithSuccess; // Unauthorized access should have collect dashboard before
} }
dashboardStorage->credential = "AxToken " + *dd->m_apiToken; dashboardStorage->credential = "AxToken " + *dd->m_apiToken;
dashboardStorage->url = QUrl(settings().server.dashboard); dashboardStorage->url = *serverUrlStorage;
return SetupResult::Continue; return SetupResult::Continue;
}; };
const auto onDeleteCredentialSetup = [dashboardStorage](CredentialQuery &credential) { const auto onDeleteCredentialSetup = [dashboardStorage](CredentialQuery &credential) {
@@ -656,11 +656,16 @@ static Group authorizationRecipe()
}; };
return { return {
serverUrlStorage,
onGroupSetup([serverUrlStorage] { *serverUrlStorage = QUrl(settings().server.dashboard); }),
Group { Group {
unauthorizedDashboardStorage, unauthorizedDashboardStorage,
onGroupSetup(onUnauthorizedGroupSetup), onGroupSetup(onUnauthorizedGroupSetup),
dtoRecipe(unauthorizedDashboardStorage), dtoRecipe(unauthorizedDashboardStorage),
Sync(onUnauthorizedDashboard) Sync(onUnauthorizedDashboard),
onGroupDone([serverUrlStorage, unauthorizedDashboardStorage] {
*serverUrlStorage = unauthorizedDashboardStorage->url;
}),
}, },
Group { Group {
LoopUntil(onCredentialLoopCondition), LoopUntil(onCredentialLoopCondition),

View File

@@ -261,6 +261,7 @@ AxivionSettingsWidget::AxivionSettingsWidget()
void AxivionSettingsWidget::apply() void AxivionSettingsWidget::apply()
{ {
settings().server = m_dashboardDisplay->dashboardServer(); settings().server = m_dashboardDisplay->dashboardServer();
emit settings().changed(); // ugly but needed
settings().toSettings(); settings().toSettings();
} }

View File

@@ -291,12 +291,17 @@ void ClangdFindReferences::Private::handleFindUsagesResult(const QList<Location>
for (const Location &loc : locations) for (const Location &loc : locations)
fileData[loc.uri()].rangesAndLineText.push_back({loc.range(), {}}); fileData[loc.uri()].rangesAndLineText.push_back({loc.range(), {}});
QSet<FilePath> canonicalFilePaths;
for (auto it = fileData.begin(); it != fileData.end();) { for (auto it = fileData.begin(); it != fileData.end();) {
const Utils::FilePath filePath = client()->serverUriToHostPath(it.key()); const Utils::FilePath filePath = client()->serverUriToHostPath(it.key());
if (!filePath.exists()) { // https://github.com/clangd/clangd/issues/935 if (!filePath.exists()) { // https://github.com/clangd/clangd/issues/935
it = fileData.erase(it); it = fileData.erase(it);
continue; continue;
} }
if (!Utils::insert(canonicalFilePaths, filePath.canonicalPath())) { // QTCREATORBUG-30546
it = fileData.erase(it);
continue;
}
const QStringList lines = SymbolSupport::getFileContents(filePath); const QStringList lines = SymbolSupport::getFileContents(filePath);
it->fileContent = lines.join('\n'); it->fileContent = lines.join('\n');
for (auto &rangeWithText : it.value().rangesAndLineText) { for (auto &rangeWithText : it.value().rangesAndLineText) {

View File

@@ -274,6 +274,10 @@ struct ItemData
Utils::Text::Range range; Utils::Text::Range range;
QVariant userData; QVariant userData;
}; };
bool operator==(const ItemData &id1, const ItemData &id2)
{
return id1.range == id2.range && id1.userData == id2.userData;
}
QStringList SymbolSupport::getFileContents(const Utils::FilePath &filePath) QStringList SymbolSupport::getFileContents(const Utils::FilePath &filePath)
{ {
@@ -342,15 +346,32 @@ Utils::SearchResultItems generateSearchResultItems(
return result; return result;
} }
using ItemDataPerPath = QMap<Utils::FilePath, QList<ItemData>>;
void filterFileAliases(ItemDataPerPath &itemDataPerPath)
{
QSet<Utils::FilePath> canonicalPaths;
for (auto it = itemDataPerPath.begin(); it != itemDataPerPath.end(); ) {
const Utils::FilePath canonicalPath = it.key().canonicalPath();
if (!Utils::insert(canonicalPaths, canonicalPath)
&& it.value() == itemDataPerPath.value(canonicalPath)) { // QTCREATORBUG-30546
it = itemDataPerPath.erase(it);
} else {
++it;
}
}
}
Utils::SearchResultItems generateSearchResultItems( Utils::SearchResultItems generateSearchResultItems(
const LanguageClientArray<Location> &locations, const DocumentUri::PathMapper &pathMapper) const LanguageClientArray<Location> &locations, const DocumentUri::PathMapper &pathMapper)
{ {
if (locations.isNull()) if (locations.isNull())
return {}; return {};
QMap<Utils::FilePath, QList<ItemData>> rangesInDocument; ItemDataPerPath rangesInDocument;
for (const Location &location : locations.toList()) for (const Location &location : locations.toList()) {
rangesInDocument[location.uri().toFilePath(pathMapper)] rangesInDocument[location.uri().toFilePath(pathMapper)]
<< ItemData{SymbolSupport::convertRange(location.range()), {}}; << ItemData{SymbolSupport::convertRange(location.range()), {}};
}
filterFileAliases(rangesInDocument);
return generateSearchResultItems(rangesInDocument); return generateSearchResultItems(rangesInDocument);
} }
@@ -552,7 +573,7 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits,
return ItemData{SymbolSupport::convertRange(edit.range()), QVariant(edit)}; return ItemData{SymbolSupport::convertRange(edit.range()), QVariant(edit)};
}); });
}; };
QMap<Utils::FilePath, QList<ItemData>> rangesInDocument; ItemDataPerPath rangesInDocument;
auto documentChanges = edits.documentChanges().value_or(QList<DocumentChange>()); auto documentChanges = edits.documentChanges().value_or(QList<DocumentChange>());
if (!documentChanges.isEmpty()) { if (!documentChanges.isEmpty()) {
for (const DocumentChange &documentChange : std::as_const(documentChanges)) { for (const DocumentChange &documentChange : std::as_const(documentChanges)) {
@@ -588,6 +609,7 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits,
for (auto it = changes.begin(), end = changes.end(); it != end; ++it) for (auto it = changes.begin(), end = changes.end(); it != end; ++it)
rangesInDocument[it.key().toFilePath(pathMapper)] = convertEdits(it.value()); rangesInDocument[it.key().toFilePath(pathMapper)] = convertEdits(it.value());
} }
filterFileAliases(rangesInDocument);
items += generateSearchResultItems(rangesInDocument, search, limitToProjects); items += generateSearchResultItems(rangesInDocument, search, limitToProjects);
return items; return items;
} }

View File

@@ -372,7 +372,8 @@ QString QmakeBuildConfiguration::unalignedBuildDirWarning()
bool QmakeBuildConfiguration::isBuildDirAtSafeLocation(const FilePath &sourceDir, bool QmakeBuildConfiguration::isBuildDirAtSafeLocation(const FilePath &sourceDir,
const FilePath &buildDir) const FilePath &buildDir)
{ {
return buildDir.path().count('/') == sourceDir.path().count('/'); return buildDir.path().count('/') == sourceDir.path().count('/')
|| buildDir.isChildOf(sourceDir);
} }
bool QmakeBuildConfiguration::isBuildDirAtSafeLocation() const bool QmakeBuildConfiguration::isBuildDirAtSafeLocation() const

View File

@@ -3352,19 +3352,23 @@ void tst_Dumpers::dumper_data()
+ CoreProfile() + CoreProfile()
+ Check("pii", "(1, 2)", "@QPair<int,int>") % Qt5 + Check("pii", "(1, 2)", "@QPair<int,int>") % Qt5
+ Check("pii", "(1, 2)", TypeDef("std::pair<int,int>", "@QPair")) % Qt6 + Check("pii", "(1, 2)", TypeDef("std::pair<int,int>", "@QPair")) % Qt6 % NoLldbEngine
+ Check("pii", "(1, 2)", TypePattern("@QPair(<int,int>)?")) % Qt6 % LldbEngine
+ Check("pii.first", "1", "int") + Check("pii.first", "1", "int")
+ Check("pii.second", "2", "int") + Check("pii.second", "2", "int")
+ Check("pis", "(1, ...)", "@QPair<int,QString>") % Qt5 + Check("pis", "(1, ...)", "@QPair<int,QString>") % Qt5
+ Check("pis", "(1, ...)", TypeDef("std::pair<int,QString>", "@QPair")) % Qt6 + Check("pis", "(1, ...)", TypeDef("std::pair<int,QString>", "@QPair")) % Qt6 % NoLldbEngine
+ Check("pis", "(1, ...)", TypePattern("@QPair(<int,QString>)?")) % Qt6 % LldbEngine
+ Check("pis.first", "1", "int") + Check("pis.first", "1", "int")
+ Check("pis.second", "\"ttt\"", "@QString") + Check("pis.second", "\"ttt\"", "@QString")
+ Check("psi", "(..., 2)", "@QPair<QString,int>") % Qt5 + Check("psi", "(..., 2)", "@QPair<QString,int>") % Qt5
+ Check("psi", "(..., 2)", TypeDef("std::pair<QString,int>", "@QPair")) % Qt6 + Check("psi", "(..., 2)", TypeDef("std::pair<QString,int>", "@QPair")) % Qt6 % NoLldbEngine
+ Check("psi", "(..., 2)", TypePattern("@QPair(<QString,int>)?")) % Qt6 % LldbEngine
+ Check("psi.first", "\"sss\"", "@QString") + Check("psi.first", "\"sss\"", "@QString")
+ Check("psi.second", "2", "int") + Check("psi.second", "2", "int")
+ Check("pss", "(..., ...)", "@QPair<QString,QString>") % Qt5 + Check("pss", "(..., ...)", "@QPair<QString,QString>") % Qt5
+ Check("pss", "(..., ...)", TypeDef("std::pair<QString,QString>", "@QPair")) % Qt6 + Check("pss", "(..., ...)", TypeDef("std::pair<QString,QString>", "@QPair")) % Qt6 % NoLldbEngine
+ Check("pss", "(..., ...)", TypePattern("@QPair(<QString,QString>)?")) % Qt6 % LldbEngine
+ Check("pss.first", "\"sss\"", "@QString") + Check("pss.first", "\"sss\"", "@QString")
+ Check("pss.second", "\"ttt\"", "@QString"); + Check("pss.second", "\"ttt\"", "@QString");

View File

@@ -36,10 +36,11 @@ def main():
test.warning("It takes more than two seconds to expand the help content tree.") test.warning("It takes more than two seconds to expand the help content tree.")
gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex) gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex)
doubleClick(gettingStartedQModelIndex, 5, 5, 0, Qt.LeftButton) doubleClick(gettingStartedQModelIndex, 5, 5, 0, Qt.LeftButton)
mouseClick(waitForObject(getQModelIndexStr("text='Building and Running an Example'", pageTitle = "Configuring Qt Creator"
mouseClick(waitForObject(getQModelIndexStr("text='%s'" % pageTitle,
gettingStartedQModelIndex))) gettingStartedQModelIndex)))
helpSelector = waitForObject(":Qt Creator_HelpSelector_QComboBox") helpSelector = waitForObject(":Qt Creator_HelpSelector_QComboBox")
pageOpened = "str(helpSelector.currentText).startswith('Building and Running an Example')" pageOpened = "str(helpSelector.currentText).startswith('%s')" % pageTitle
if not waitFor(pageOpened, 10000): if not waitFor(pageOpened, 10000):
test.fatal("Help page is not opened after ten seconds. Giving up.") test.fatal("Help page is not opened after ten seconds. Giving up.")
invokeMenuItem("File", "Exit") invokeMenuItem("File", "Exit")
@@ -74,7 +75,7 @@ def main():
sampleQModelIndex = getQModelIndexStr("text='Sample'", ":Qt Creator_Bookmarks_TreeView") sampleQModelIndex = getQModelIndexStr("text='Sample'", ":Qt Creator_Bookmarks_TreeView")
folder1QModelIndex = getQModelIndexStr("text='Folder 1'", sampleQModelIndex) folder1QModelIndex = getQModelIndexStr("text='Folder 1'", sampleQModelIndex)
folder2QModelIndex = getQModelIndexStr("text='Folder 2'", folder1QModelIndex) folder2QModelIndex = getQModelIndexStr("text='Folder 2'", folder1QModelIndex)
bldRunQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("Building and Running an Example*"), configQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("%s*" % pageTitle),
folder2QModelIndex) folder2QModelIndex)
newFolderQModelIndex = getQModelIndexStr("text='New Folder'", sampleQModelIndex) newFolderQModelIndex = getQModelIndexStr("text='New Folder'", sampleQModelIndex)
manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Manual"), manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Manual"),
@@ -82,16 +83,16 @@ def main():
test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder1QModelIndex, verboseOnFail = True) and checkIfObjectExists(folder1QModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder2QModelIndex, verboseOnFail = True) and checkIfObjectExists(folder2QModelIndex, verboseOnFail = True) and
checkIfObjectExists(bldRunQModelIndex, verboseOnFail = True) and checkIfObjectExists(configQModelIndex, verboseOnFail = True) and
checkIfObjectExists(manualQModelIndex, verboseOnFail = True), checkIfObjectExists(manualQModelIndex, verboseOnFail = True),
"Verifying if all folders and bookmarks are present") "Verifying if all folders and bookmarks are present")
mouseClick(waitForObject(":Qt Creator_Bookmarks_TreeView"), 5, 5, 0, Qt.LeftButton) mouseClick(waitForObject(":Qt Creator_Bookmarks_TreeView"), 5, 5, 0, Qt.LeftButton)
for _ in range(6): for _ in range(6):
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>")
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Return>") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Return>")
test.verify(textForQtVersion("Building and Running an Example") in getHelpTitle(), test.verify(textForQtVersion(pageTitle) in getHelpTitle(),
"Verifying if first bookmark is opened") "Verifying if first bookmark is opened")
mouseClick(waitForObject(bldRunQModelIndex)) mouseClick(waitForObject(configQModelIndex))
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>")
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>")
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>")
@@ -114,7 +115,7 @@ def main():
test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder1QModelIndex, shouldExist = False, verboseOnFail = True) and checkIfObjectExists(folder1QModelIndex, shouldExist = False, verboseOnFail = True) and
checkIfObjectExists(folder2QModelIndex, shouldExist = False, verboseOnFail = True) and checkIfObjectExists(folder2QModelIndex, shouldExist = False, verboseOnFail = True) and
checkIfObjectExists(bldRunQModelIndex, shouldExist = False, verboseOnFail = True) and checkIfObjectExists(configQModelIndex, shouldExist = False, verboseOnFail = True) and
checkIfObjectExists(manualQModelIndex, verboseOnFail = True), checkIfObjectExists(manualQModelIndex, verboseOnFail = True),
"Verifying if folder 1 and folder 2 deleted including their bookmark") "Verifying if folder 1 and folder 2 deleted including their bookmark")
# exit # exit

View File

@@ -14,8 +14,9 @@ def clickItemVerifyHelpCombo(button, expectedHelpComboRegex, testDetails):
test.log("Found %s" % str(helpCombo.currentText)) test.log("Found %s" % str(helpCombo.currentText))
# select "Welcome" page from left toolbar again # select "Welcome" page from left toolbar again
switchViewTo(ViewConstants.WELCOME) switchViewTo(ViewConstants.WELCOME)
return test.verify(object.exists(getWelcomeScreenSideBarButton(getStarted)), return test.verify(checkIfObjectExists(getWelcomeScreenSideBarButton(getStarted), timeout=1000),
"Verifying: '%s' button is being displayed." % getStarted) "Verifying: '%s' button is being displayed." % getStarted)
def buttonActive(button): def buttonActive(button):
return waitForObject(button).checked return waitForObject(button).checked

View File

@@ -85,7 +85,7 @@ def createAndSwitchToSession(toSession):
def checkWelcomePage(sessionName, isCurrent=False): def checkWelcomePage(sessionName, isCurrent=False):
switchViewTo(ViewConstants.WELCOME) switchViewTo(ViewConstants.WELCOME)
wsButton = getWelcomeScreenSideBarButton('Projects') wsButton = getWelcomeScreenSideBarButton('Projects')
if not object.exists(wsButton): if not checkIfObjectExists(wsButton, timeout=1000):
test.fatal("Something's pretty wrong - leaving check for WelcomePage.") test.fatal("Something's pretty wrong - leaving check for WelcomePage.")
return return
mouseClick(wsButton) mouseClick(wsButton)