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 log --cherry-pick --pretty=oneline origin/12.0..v13.0.0
What's new?
New plugins
-----------
* Added Qt Application Manager support
### Qt Application Manager
Adds support for Qt 6 based applications with CMake for creating, building,
deploying, running, and debugging for devices that use the
[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
-------
* Updated the visual style of Welcome mode
* Improved docking (Debug mode, Widget Designer)
* Fixed the style of titles and changed them to always be visible
(removed `View > Views > Automatically Hide View Titlebars`)
@@ -41,19 +40,29 @@ General
([QTCREATORBUG-29886](https://bugreports.qt.io/browse/QTCREATORBUG-29886))
* Fixed issues with the window actions
([QTCREATORBUG-30381](https://bugreports.qt.io/browse/QTCREATORBUG-30381))
* Fixed drag & drop for external tools
([QTCREATORBUG-30469](https://bugreports.qt.io/browse/QTCREATORBUG-30469))
* Known Issues
* Installers provided by The Qt Company mostly display English text, not
the system's language
([QTIFW-3310](https://bugreports.qt.io/browse/QTIFW-3310))
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
-------
* Made syntax highlighting asynchronous
* Fixed that `Shift+Tab` did not always unindent
([QTCREATORBUG-29742](https://bugreports.qt.io/browse/QTCREATORBUG-29742))
* Fixed that `Surround text selection with brackets` did nothing for `<`
* 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++
@@ -69,7 +78,7 @@ Editing
([QTCREATORBUG-21826](https://bugreports.qt.io/browse/QTCREATORBUG-21826))
* 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
([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
instead of the file name
([QTCREATORBUG-30140](https://bugreports.qt.io/browse/QTCREATORBUG-30140))
@@ -82,6 +91,9 @@ Editing
template class in a namespace
([QTCREATORBUG-22076](https://bugreports.qt.io/browse/QTCREATORBUG-22076))
* 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
([QTCREATORBUG-29814](https://bugreports.qt.io/browse/QTCREATORBUG-29814))
* 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`
(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
@@ -127,13 +139,18 @@ endings) to the tool bar
* Fixed issues with large addresses
### Models
* Fixed a crash when selecting items
([QTCREATORBUG-30413](https://bugreports.qt.io/browse/QTCREATORBUG-30413))
Projects
--------
* 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
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
([QTCREATORBUG-20941](https://bugreports.qt.io/browse/QTCREATORBUG-20941))
* Added the `Preferences > Build & Run > General > Application environment`
@@ -157,6 +174,14 @@ Projects
* Added support for custom output parsers for the configuration of projects
([QTCREATORBUG-29992](https://bugreports.qt.io/browse/QTCREATORBUG-29992))
* 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
* Fixed `Reload CMake Presets` if the project was not configured yet
([QTCREATORBUG-30238](https://bugreports.qt.io/browse/QTCREATORBUG-30238))
@@ -166,6 +191,10 @@ Projects
([QTCREATORBUG-30236](https://bugreports.qt.io/browse/QTCREATORBUG-30236))
* Fixed a freeze with nested presets
([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
* Fixed that backslashes were wrongly used for paths on Windows
([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
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
---------
@@ -200,6 +229,13 @@ Debugging
* Fixed that breakpoints were not hit while the message dialog about missing
debug information was shown
([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
@@ -215,7 +251,8 @@ Analyzer
### 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
--------
@@ -228,6 +265,7 @@ Terminal
* Fixed that `Ctrl+W` closed the terminal even when shortcuts were blocked
([QTCREATORBUG-30070](https://bugreports.qt.io/browse/QTCREATORBUG-30070))
* Fixed issues with Windows Powershell
* Fixed issues with copying Japanese text
Version Control Systems
-----------------------
@@ -245,6 +283,11 @@ Test Integration
* Added a locator filter for Qt Test data tags (`qdt`)
### Catch2
* Added support for namespaced fixtures
* Added support for `SCENARIO_METHOD`
Platforms
---------
@@ -255,8 +298,13 @@ Platforms
### 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))
* 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
@@ -264,13 +312,18 @@ Platforms
* Fixed deployment and running applications for iOS 17 devices
(application output, debugging, and profiling are not supported)
([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
* Fixed that debugging unnecessarily downloaded files from the remote system
([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:
--------------------------------
Aaron McCarthy

View File

@@ -5,13 +5,20 @@
</div>
<div class="sectionlist normallist">
<div class="heading">
<h2>Getting Started</h2>
<h2>Developing with Qt Creator</h2>
</div>
<div class="indexboxcont indexboxbar">
<ul>
<li><a href="creator-overview.html">Overview</a></li>
<li><a href="creator-quick-tour.html">User Interface</a></li>
<li><a href="creator-configuring.html">Configuring Qt Creator</a></li>
<li><a href="creator-getting-started.html">Getting Started</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>
</div>
</div>
@@ -27,33 +34,13 @@
<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-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-qml-debugging-example.html">Debugging a Qt Quick Application</a></li>
<li><a href="creator-tutorials.html">See All</a></li>
</ul>
</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="heading">
<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
You can use the code analysis tools in the \uicontrol Debug mode. To
switch to \uicontrol Debug mode, select \uicontrol Debug in the mode
selector, or select the \uicontrol {Analyze} menu and then select a tool.
To use a code analysis tool, select it in the \uicontrol {Analyze Menu} or
in the pull-down menu of the \inlineimage icons/qtcreator-debug-button.png
(\uicontrol {Start Debugging of Startup Project}) button.
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
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
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},
\l{CMake: add_executable command}{add_executable}, or \l {qt_add_library}
function in the CMakeLists.txt file.
If you use custom API, \QC uses the \l{CMake: target_sources command}
{target_sources} function to add the files.
If \QC cannot recognize where the target is created, it will use the
\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}
function, prefixed with the \c QML_FILES, \c SOURCES, or \c RESOURCES

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -11,11 +11,11 @@
\page creator-modeling.html
\previouspage creator-reference.html
\ingroup creator-reference
\ingroup creator-reference-editors
\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.
Use the model editor to create Universal Modeling Language (UML)

View File

@@ -11,11 +11,11 @@
\page creator-scxml.html
\previouspage creator-reference.html
\ingroup creator-reference
\ingroup creator-reference-editors
\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
stimuli. They define the \e states that the system can

View File

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

View File

@@ -18,8 +18,8 @@
\section1 Analyze
\QC integrates code analysis tools for detecting memory leaks, profiling
function execution, analyzing CPU use, and eliminating unnecessary
Use integrated code analysis tools to detect memory leaks, profile
function execution, analyze CPU use, and eliminate unnecessary
complexity of code. Other integrated tools provide code coverage and
visualize trace events.
@@ -27,36 +27,66 @@
\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
\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
\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
\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
\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
\section1 Debug
Use native debuggers to inspect the state of your application while
debugging.
\generatelist creator-how-to-debug
\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
\section1 Edit Code
The code editor offers useful features, such as semantic highlighting,
checking code syntax, code completion, and refactoring actions.
The code editor offers useful features for editing C++ and QML code, such
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
@@ -69,39 +99,64 @@
\section2 Manage Language Servers
Configure language servers that \QC adds by default or add more of them.
\generatelist creator-how-to-lsp
\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
\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
\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
\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
\section2 Add Files
Add files to projects.
\generatelist creator-how-to-projects-files
\section2 Configure Projects
Change the default configurations that installation programs and project
wizards create.
\generatelist creator-how-to-projects-configure
\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
\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
frameworks that strongly ties to the underlying code models or
specialized parsers. Build system based testing is independent from any
@@ -113,10 +168,15 @@
\section1 Use \QC
Use basic \QC features and preinstalled plugins. Install more plugins and
configure external tools for use.
\generatelist creator-how-to-use
\section1 Use the UI
Navigate the UI or change its appearance and behavior.
\generatelist creator-how-to-ui
*/

View File

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

View File

@@ -89,8 +89,8 @@
Themes enable you to customize the appearance of the \QC UI: widgets,
colors, and icons.
To switch themes, select \preferences > \uicontrol Environment, and then
select a theme in the \uicontrol Theme field.
To switch themes, select \preferences > \uicontrol Environment >
\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
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-advanced.png
\row
\li \b {\l{Overview}}
\li \b {\l{Developing with \QC}}
If you have not used an integrated development environment (IDE)
before, or want to know what kind of IDE \QC is, go to
\l{Overview}.
\l{Developing with \QC}.
\li \b {\l{User Interface}}
If you have not used \QC before, and want to become familiar

View File

@@ -18,25 +18,25 @@
\brief Default keyboard shortcuts.
\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.
\image qtcreator-keyboard-shortcuts.png
The shortcuts that are displayed in red color are associated with several
functions. \QC executes the function that is available in the current
context. If several functions are available for the same shortcut at a
time, there is a conflict and \QC cannot execute any function.
Shortcuts that are displayed in red are associated with several functions.
\QC executes the function that is available in the current context.
If several functions are available for the same shortcut in the current context,
\QC will not execute any function due to the conflict.
A keyboard shortcut might also conflict with a shortcut that a window
manager uses for its own purposes. In that case, \QC shortcuts do not work.
A keyboard shortcut might also conflict with a shortcut that your window
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
that is not allowed, you can change the \QC shortcuts.
For example, Unity on
Ubuntu 11.10 uses \key F10 in its window manager, and therefore the default
\QC keyboard shortcut \key F10 (Step Over) does not work on that system.
For example, Unity on Ubuntu 11.10 by default uses \key F10 in its window manager,
and therefore the default \QC keyboard shortcut \key F10 (Step Over) will not work on
that system.
To override the platform default value that determines whether
keyboard shortcuts are shown in the labels of context menu items,

View File

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

View File

@@ -8,11 +8,11 @@
// **********************************************************************
/*!
\previouspage creator-getting-started.html
\previouspage index.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
(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
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.
For more information, see \l{Debugging}.

View File

@@ -4,16 +4,25 @@
/*!
\page creator-reference.html
\previouspage creator-how-tos.html
\nextpage creator-known-issues.html
\nextpage creator-acknowledgements.html
\title Reference
The following topics contain reference information about using \QC and the
integrated tools.
\annotatedlist creator-reference
\section1 Analyzers
Use integrated code analysis tools to improve your C++ or QML code.
\annotatedlist creator-reference-analyzer
\section1 Build Systems
Most \QC project wizards enable you to choose the build system to use for
building the project: qmake, CMake, Meson, or Qbs. qmake is installed and
When you create projects, you can choose the build system to use for
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
systems, you need to set it up.
@@ -29,33 +38,46 @@
\section1 Editors
When you open files, \QC chooses a suitable editor according to the file
type.
\annotatedlist creator-reference-editors
\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
\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
\section2 Analyzer
Preferences for code analysis tools.
\annotatedlist creator-reference-preferences-analyzer
\section2 C++
Preferences for editing C++ code.
\annotatedlist creator-reference-preferences-cpp
\section2 Kits
Preferences for build and run kits.
\annotatedlist creator-reference-preferences-kits
\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
@@ -72,8 +94,7 @@
\section1 UI Design
Design UIs with either \l{User Interfaces}{Qt Quick or Qt Widgets}.
\QC integrates a visual editor, \QD, for designing widget-based UIs
You can use 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.
@@ -81,11 +102,22 @@
\section1 Views
When you switch modes or trigger actions, \QC opens views for viewing
output and organizing project contents.
\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
\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
*/

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
\previouspage creator-reference.html
\ingroup creator-reference
\ingroup creator-reference-platforms
\title Optimizing Applications for Mobile Devices

View File

@@ -48,8 +48,9 @@
\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
building the project: qmake, CMake, or Qbs. If you do not get to choose,
the project uses qmake as the build system.
building the project: qmake, CMake, Qbs, and possibly others, depending on
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}

View File

@@ -120,7 +120,7 @@
\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
project is a subdirs project or contains one, you may add the library
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}
\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.
\li Select \uicontrol Next (on Windows and Linux) or \uicontrol Continue
(on \macos) to open the \uicontrol {Define Build System} dialog.
\li Select \uicontrol Next or \uicontrol Continue to use CMake as the
build system.
\li In \uicontrol {Build system}, select \uicontrol qmake.
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}
@@ -170,7 +170,7 @@
\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.
\li Select \uicontrol Finish to add the library declaration to the
@@ -178,15 +178,7 @@
\endlist
When using CMake, the \c target_link_libraries command is added to the
CMakeLists.txt file:
\badcode
target_link_libraries(myapplication PRIVATE mylibrary)
\endcode
When using qmake, the following library declaration is added to the .pro
file:
The wizard adds the following library declaration to the .pro file:
\badcode
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib

View File

@@ -45,22 +45,23 @@
\li Profile
\endlist
A 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
debug configuration for testing and the release configuration for creating
A \e Debug build has debug symbols that you need for debugging the application
but that you should leave out from the release version. Generally, you use the
debug configuration for testing and the \e Release configuration for creating
the final installation binary package.
If you selected CMake as the build system for the project, you can
use a \e {minimum size release} build configuration to create the
A \e Profile build is an optimized release build with debug information.
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
of the binary package as small as possible, even if this makes the
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
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
/*!
\page tutorial-python-application-qt-widgets.html
\page creator-tutorial-python-application-qt-widgets.html
\previouspage creator-tutorials.html
\nextpage creator-how-tos.html

View File

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

View File

@@ -9,7 +9,7 @@
/*!
\page index.html
\nextpage creator-getting-started.html
\nextpage creator-overview.html
\title Qt Creator Manual
@@ -27,37 +27,27 @@
\table
\row
\li {4,1} \b {\l{All Topics}{Click Here for a List of All Topics}}
\li {4,1} \b {\l{All Topics}}
\row
\li \inlineimage front-gs.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-advanced.png
\row
\li \b {\l{Debugging and Analyzing}}
\li \b {\l{Developing with \QC}}
\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{Analyzing Code}
\li \l{Using Squish}
\endlist
\li \b {\l{Tutorials}}
\generatelist creator-tutorials
\li \b {\l{How To}}
\list
\li \l{Analyze}
@@ -70,7 +60,6 @@
\li \l{Test}
\li \l{Use \QC}
\li \l{Use the UI}
\li \l{How To}{See More...}
\endlist
\li \b {\l{Reference}}
\list
@@ -81,7 +70,8 @@
\li \l {Keyboard Shortcuts}
\li \l {Preferences}
\li \l {Supported Platforms}
\li \l {Reference}{See More...}
\li \l {Version Control Systems}
\li \l {Views}
\endlist
\endtable
*/

View File

@@ -133,7 +133,7 @@
\skipto set_property
\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:
\quotefromfile accelbubble/CMakeLists.txt

View File

@@ -247,14 +247,12 @@
\endlist
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
configuration file:
links is set as the value of the \c navigation.toctitles option in the
document configuration file:
\list
\li \QC: \c qhp.qtcreator.subprojects.manual.indexTitle in
\c {\doc\qtcreator\config\qtcreator-project.qdocconf}
\li \QDS: \c qhp.qtdesignstudio.subprojects.manual.indexTitle in
\c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf}
\li \QC: \c {\doc\qtcreator\config\qtcreator-project.qdocconf}
\li \QDS: \c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf}
\endlist
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">
<key value="Ctrl+,"/>
</shortcut>
<shortcut id="QtCreator.Locate">
<key value="Ctrl+P"/>
</shortcut>
<shortcut id="QtCreator.Print"/>
</mapping>

View File

@@ -12218,123 +12218,123 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
<name>QtC::AppManager</name>
<message>
<source>Create Application Manager package with CMake</source>
<translation type="unfinished"></translation>
<translation>Application Manager-Paket mit CMake erstellen</translation>
</message>
<message>
<source>Create Application Manager package</source>
<translation type="unfinished"></translation>
<translation>Application Manager-Paket erstellen</translation>
</message>
<message>
<source>Source directory:</source>
<translation type="unfinished">Quellverzeichnis:</translation>
<translation>Quellverzeichnis:</translation>
</message>
<message>
<source>Package file:</source>
<translation type="unfinished"></translation>
<translation>Paketdatei:</translation>
</message>
<message>
<source>Automatic Application Manager Deploy Configuration</source>
<translation type="unfinished"></translation>
<translation>Automatische Deployment-Konfiguration für Application Manager</translation>
</message>
<message>
<source>Deploy Application Manager package</source>
<translation type="unfinished"></translation>
<translation>Deployment des Application Manager-Pakets</translation>
</message>
<message>
<source>Target directory:</source>
<translation type="unfinished">Zielverzeichnis:</translation>
<translation>Zielverzeichnis:</translation>
</message>
<message>
<source>Uploading finished.</source>
<translation type="unfinished"></translation>
<translation>Hochladen beendet.</translation>
</message>
<message>
<source>Uploading failed.</source>
<translation type="unfinished"></translation>
<translation>Hochladen fehlgeschlagen.</translation>
</message>
<message>
<source>Install Application Manager package</source>
<translation type="unfinished"></translation>
<translation>Application Manager-Paket installieren</translation>
</message>
<message>
<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>
<source>Command finished successfully.</source>
<translation type="unfinished"></translation>
<translation>Das Kommando wurde erfolgreich beendet.</translation>
</message>
<message>
<source>Process failed: %1</source>
<translation type="unfinished"></translation>
<translation>Der Prozess schlug fehl: %1</translation>
</message>
<message>
<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>
<source>Run an Application Manager Package</source>
<translation type="unfinished"></translation>
<translation>Ein Application Manager-Paket ausführen</translation>
</message>
<message>
<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>
<source>Clean Environment</source>
<translation type="unfinished">Saubere Umgebung</translation>
<translation>Saubere Umgebung</translation>
</message>
<message>
<source>%1 exited.</source>
<translation type="unfinished"></translation>
<translation>%1 wurde beendet.</translation>
</message>
<message>
<source>Starting Application Manager debugging...</source>
<translation type="unfinished"></translation>
<translation>Starte Application Manager-Debuggen...</translation>
</message>
<message>
<source>Using: %1.</source>
<translation type="unfinished"></translation>
<translation>Benutze: %1.</translation>
</message>
<message>
<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>
<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>
<source>Application ID:</source>
<translation type="unfinished"></translation>
<translation>Anwendungs-ID:</translation>
</message>
<message>
<source>Application Manager instance ID:</source>
<translation type="unfinished"></translation>
<translation>ID der Application Manager-Instanz:</translation>
</message>
<message>
<source>Default instance</source>
<translation type="unfinished"></translation>
<translation>Voreingestellte Instanz</translation>
</message>
<message>
<source>Document URL:</source>
<translation type="unfinished"></translation>
<translation>Dokument-URL:</translation>
</message>
<message>
<source>Customize step</source>
<translation type="unfinished"></translation>
<translation>Schritt anpassen</translation>
</message>
<message>
<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>
<source>Controller:</source>
<translation type="unfinished"></translation>
<translation>Controller:</translation>
</message>
<message>
<source>Packager:</source>
<translation type="unfinished"></translation>
<translation>Packager:</translation>
</message>
</context>
<context>
@@ -13693,178 +13693,181 @@ Siehe auch die Einstellungen für Google Test.</translation>
<name>QtC::Axivion</name>
<message>
<source>Project:</source>
<translation type="unfinished"></translation>
<translation>Projekt:</translation>
</message>
<message>
<source>Lines of code:</source>
<translation type="unfinished"></translation>
<translation>Codezeilen:</translation>
</message>
<message>
<source>Analysis timestamp:</source>
<translation type="unfinished"></translation>
<translation>Zeitstempel der Analyse:</translation>
</message>
<message>
<source>unknown</source>
<translation type="unfinished">unbekannt</translation>
<translation>unbekannt</translation>
</message>
<message>
<source>Total:</source>
<translation type="unfinished"></translation>
<translation>Summe:</translation>
</message>
<message>
<source>Owner</source>
<translation type="unfinished"></translation>
<translation>Eigentümer</translation>
</message>
<message>
<source>Path globbing</source>
<translation type="unfinished"></translation>
<translation>Pfad-Globbing</translation>
</message>
<message>
<source>Total rows:</source>
<translation type="unfinished"></translation>
<translation>Gesamtzeilen:</translation>
</message>
<message>
<source>Axivion</source>
<translation type="unfinished"></translation>
<translation>Axivion</translation>
</message>
<message>
<source>Show dashboard</source>
<translation type="unfinished"></translation>
<translation>Dashboard anzeigen</translation>
</message>
<message>
<source>Search for issues</source>
<translation type="unfinished"></translation>
<translation>Probleme durchsuchen</translation>
</message>
<message>
<source>Show rule details</source>
<translation type="unfinished"></translation>
<translation>Regeldetails anzeigen</translation>
</message>
<message>
<source>Certificate Error</source>
<translation type="unfinished">Zertifikatsfehler</translation>
<translation>Zertifikatsfehler</translation>
</message>
<message>
<source>Server certificate for %1 cannot be authenticated.
Do you want to disable SSL verification for this server?
Note: This can expose you to man-in-the-middle attack.</source>
<translation type="unfinished">Server-Zertifikat für %1 kann nicht authentifiziert werden.
<translation>Server-Zertifikat für %1 kann nicht authentifiziert werden.
Möchten Sie die SSL-Verifikation für diesen Server abschalten?
Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
</message>
<message>
<source>Unknown Dto structure deserialization error.</source>
<translation type="unfinished"></translation>
<translation>Unbekannter Fehler in der Dto-Struktur beim Deserialisieren.</translation>
</message>
<message>
<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>
<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>
<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>
<source>Key chain message: &quot;%1&quot;.</source>
<translation type="unfinished"></translation>
<translation>Meldung der Schlüsselverwaltung: &quot;%1&quot;.</translation>
</message>
<message>
<source>Enter the password for:
Dashboard: %1
User: %2</source>
<translation type="unfinished"></translation>
<translation>Geben Sie das Passwort ein für:
Dashboard: %1
Benutzer: %2</translation>
</message>
<message>
<source>Axivion Server Password</source>
<translation type="unfinished"></translation>
<translation>Axivion Server-Passwort</translation>
</message>
<message>
<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>
<source>Fetching DashboardInfo error.</source>
<translation type="unfinished"></translation>
<translation>Fehler beim Abrufen der DashboardInfo.</translation>
</message>
<message>
<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>
<source>The activated link appears to be external.
Do you want to open &quot;%1&quot; with its default application?</source>
<translation type="unfinished"></translation>
<translation>Der aktivierte Link scheint extern zu sein.
Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Open External Links</source>
<translation type="unfinished"></translation>
<translation>Externe Links öffnen</translation>
</message>
<message>
<source>Fetch Projects</source>
<translation type="unfinished"></translation>
<translation>Projekte abrufen</translation>
</message>
<message>
<source>Link Project</source>
<translation type="unfinished"></translation>
<translation>Projekt verknüpfen</translation>
</message>
<message>
<source>Unlink Project</source>
<translation type="unfinished"></translation>
<translation>Projektverknüpfung aufheben</translation>
</message>
<message>
<source>Dashboard projects:</source>
<translation type="unfinished"></translation>
<translation>Dashboard-Projekte:</translation>
</message>
<message>
<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>
<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>
<source>Incomplete or misconfigured settings.</source>
<translation type="unfinished"></translation>
<translation>Unvollständige oder fehlerhafte Einstellungen.</translation>
</message>
<message>
<source>Highlight marks</source>
<translation type="unfinished"></translation>
<translation>Markierungen hervorheben</translation>
</message>
<message>
<source>Marks issues on the scroll bar.</source>
<translation type="unfinished"></translation>
<translation>Markiert Probleme in der Bildlaufleiste.</translation>
</message>
<message>
<source>Dashboard URL:</source>
<translation type="unfinished"></translation>
<translation>Dashboard-URL:</translation>
</message>
<message>
<source>Username:</source>
<translation type="unfinished"></translation>
<translation>Benutzername:</translation>
</message>
<message>
<source>User name</source>
<translation type="unfinished">Benutzername</translation>
<translation>Benutzername</translation>
</message>
<message>
<source>Edit...</source>
<translation type="unfinished">Bearbeiten...</translation>
<translation>Bearbeiten...</translation>
</message>
<message>
<source>Edit Dashboard Configuration</source>
<translation type="unfinished"></translation>
<translation>Dashboard-Konfiguration bearbeiten</translation>
</message>
<message>
<source>General</source>
<translation type="unfinished">Allgemein</translation>
<translation>Allgemein</translation>
</message>
<message>
<source>Fetching...</source>
<translation type="unfinished"></translation>
<translation>Rufe ab...</translation>
</message>
</context>
<context>
@@ -44332,7 +44335,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>&amp;Generate Kit</source>
<translation type="unfinished"></translation>
<translation>&amp;Kit erstellen</translation>
</message>
<message>
<source>&amp;Clean Up</source>
@@ -44400,19 +44403,19 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>Installing PySide</source>
<translation type="unfinished"></translation>
<translation>Installiere PySide</translation>
</message>
<message>
<source>You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license.</source>
<translation type="unfinished"></translation>
<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>
<source>Select which version to install:</source>
<translation type="unfinished"></translation>
<translation>Wählen Sie die zu installierende Version aus:</translation>
</message>
<message>
<source>Latest PySide from the PyPI</source>
<translation type="unfinished"></translation>
<translation>Letzte PySide-Version von PyPI</translation>
</message>
<message>
<source>PySide %1 Wheel (%2)</source>
@@ -44464,27 +44467,28 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>PySide uic tool:</source>
<translation type="unfinished"></translation>
<translation>PySide uic-Werkzeug:</translation>
</message>
<message>
<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>
<source>Effective venv:</source>
<translation type="unfinished"></translation>
<translation>Resultierende venv:</translation>
</message>
<message>
<source>New Virtual Environment</source>
<translation type="unfinished"></translation>
<translation>Neue virtuelle Umgebung</translation>
</message>
<message>
<source>Global Python</source>
<translation type="unfinished"></translation>
<translation>Globales Python</translation>
</message>
<message>
<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>
<source>REPL</source>
@@ -44564,43 +44568,43 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
<translation>Kein</translation>
</message>
<message>
<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>
<source>No Python setup.</source>
<translation type="unfinished"></translation>
<translation>Kein Python eingerichtet.</translation>
</message>
<message>
<source>Python &quot;%1&quot; not found.</source>
<translation type="unfinished"></translation>
<translation>Python &quot;%1&quot; nicht gefunden.</translation>
</message>
<message>
<source>Python &quot;%1&quot; is not executable.</source>
<translation type="unfinished"></translation>
<translation>Python &quot;%1&quot; nicht ausführbar.</translation>
</message>
<message>
<source>Python &quot;%1&quot; does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python.</source>
<translation type="unfinished"></translation>
<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>
<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>
<source>Name of Python Interpreter</source>
<translation type="unfinished"></translation>
<translation>Name des Python-Interpreters</translation>
</message>
<message>
<source>Path to Python Interpreter</source>
<translation type="unfinished"></translation>
<translation>Pfad zum Python-Interpreter</translation>
</message>
<message>
<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>
</context>
<context>
@@ -49742,7 +49746,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message>
<message>
<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>
<source>WizardPage</source>

View File

@@ -547,18 +547,6 @@ private:
\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
\inheaderfile solutions/tasking/tasktree.h
@@ -758,17 +746,6 @@ private:
\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
@@ -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,
const std::function<void()> &handler) const
{
@@ -1433,6 +1430,17 @@ ExecutableItem ExecutableItem::withTimeout(milliseconds timeout,
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
{
const auto header = [logName] {

View File

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

View File

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

View File

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

View File

@@ -274,6 +274,10 @@ struct ItemData
Utils::Text::Range range;
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)
{
@@ -342,15 +346,32 @@ Utils::SearchResultItems generateSearchResultItems(
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(
const LanguageClientArray<Location> &locations, const DocumentUri::PathMapper &pathMapper)
{
if (locations.isNull())
return {};
QMap<Utils::FilePath, QList<ItemData>> rangesInDocument;
for (const Location &location : locations.toList())
ItemDataPerPath rangesInDocument;
for (const Location &location : locations.toList()) {
rangesInDocument[location.uri().toFilePath(pathMapper)]
<< ItemData{SymbolSupport::convertRange(location.range()), {}};
}
filterFileAliases(rangesInDocument);
return generateSearchResultItems(rangesInDocument);
}
@@ -552,7 +573,7 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits,
return ItemData{SymbolSupport::convertRange(edit.range()), QVariant(edit)};
});
};
QMap<Utils::FilePath, QList<ItemData>> rangesInDocument;
ItemDataPerPath rangesInDocument;
auto documentChanges = edits.documentChanges().value_or(QList<DocumentChange>());
if (!documentChanges.isEmpty()) {
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)
rangesInDocument[it.key().toFilePath(pathMapper)] = convertEdits(it.value());
}
filterFileAliases(rangesInDocument);
items += generateSearchResultItems(rangesInDocument, search, limitToProjects);
return items;
}

View File

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

View File

@@ -3352,19 +3352,23 @@ void tst_Dumpers::dumper_data()
+ CoreProfile()
+ 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.second", "2", "int")
+ 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.second", "\"ttt\"", "@QString")
+ 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.second", "2", "int")
+ 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.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.")
gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex)
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)))
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):
test.fatal("Help page is not opened after ten seconds. Giving up.")
invokeMenuItem("File", "Exit")
@@ -74,7 +75,7 @@ def main():
sampleQModelIndex = getQModelIndexStr("text='Sample'", ":Qt Creator_Bookmarks_TreeView")
folder1QModelIndex = getQModelIndexStr("text='Folder 1'", sampleQModelIndex)
folder2QModelIndex = getQModelIndexStr("text='Folder 2'", folder1QModelIndex)
bldRunQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("Building and Running an Example*"),
configQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("%s*" % pageTitle),
folder2QModelIndex)
newFolderQModelIndex = getQModelIndexStr("text='New Folder'", sampleQModelIndex)
manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Manual"),
@@ -82,16 +83,16 @@ def main():
test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder1QModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder2QModelIndex, verboseOnFail = True) and
checkIfObjectExists(bldRunQModelIndex, verboseOnFail = True) and
checkIfObjectExists(configQModelIndex, verboseOnFail = True) and
checkIfObjectExists(manualQModelIndex, verboseOnFail = True),
"Verifying if all folders and bookmarks are present")
mouseClick(waitForObject(":Qt Creator_Bookmarks_TreeView"), 5, 5, 0, Qt.LeftButton)
for _ in range(6):
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>")
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")
mouseClick(waitForObject(bldRunQModelIndex))
mouseClick(waitForObject(configQModelIndex))
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>")
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Right>")
type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "<Down>")
@@ -114,7 +115,7 @@ def main():
test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and
checkIfObjectExists(folder1QModelIndex, 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),
"Verifying if folder 1 and folder 2 deleted including their bookmark")
# exit

View File

@@ -14,8 +14,9 @@ def clickItemVerifyHelpCombo(button, expectedHelpComboRegex, testDetails):
test.log("Found %s" % str(helpCombo.currentText))
# select "Welcome" page from left toolbar again
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)
def buttonActive(button):
return waitForObject(button).checked

View File

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