Merge remote-tracking branch 'origin/11.0'

Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs

Change-Id: If3ada34dcc764fa1d0cce04fd343fb5a02c2fbaa
This commit is contained in:
Eike Ziller
2023-07-10 09:29:51 +02:00
61 changed files with 830 additions and 837 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -500,9 +500,9 @@
\endlist \endlist
\endlist \endlist
Output from the helper program that processes the data is displayed in The \uicontrol {General Messages} view shows \l{View output}{output} from the
\l{Viewing Output}{General Messages}. helper program that processes the data.
Some information is displayed in \l {Application Output} even if the The \l {Application Output} view shows some information even if the
Performance Analyzer displays error messages. Performance Analyzer displays error messages.
*/ */

View File

@@ -11,7 +11,7 @@
\page creator-editor-functions.html \page creator-editor-functions.html
\previouspage creator-coding.html \previouspage creator-coding.html
\if defined(qtdesignstudio) \if defined(qtdesignstudio)
\nextpage creator-output-panes.html \nextpage creator-highlighting.html
\else \else
\nextpage creator-coding-navigating.html \nextpage creator-coding-navigating.html
\endif \endif

View File

@@ -35,7 +35,7 @@
copy the URL of the post on the code pasting service to the copy the URL of the post on the code pasting service to the
clipboard when you paste a post. clipboard when you paste a post.
\li Select the \uicontrol {Display General Messages after sending a post} \li Select the \uicontrol {Display General Messages after sending a post}
check box to display the URL in \l{Viewing Output}{General Messages} check box to display the URL in \l{View output}{General Messages}
when you paste a post. when you paste a post.
\endlist \endlist

View File

@@ -92,7 +92,7 @@
patterns to extend the MIME types, separated by semicolons. patterns to extend the MIME types, separated by semicolons.
\li In the \uicontrol {Startup behavior} field, select whether the \li In the \uicontrol {Startup behavior} field, select whether the
language server is started when \QC starts or when a project or file language server is started when \QC starts or when a project or file
with a matching MIME type is opened. \l{Viewing Output} with a matching MIME type is opened. \l{View output}
{General Messages} displays information about the connection to the {General Messages} displays information about the connection to the
language server. language server.
\li In the \uicontrol {Initialization options} field, you can add \li In the \uicontrol {Initialization options} field, you can add

View File

@@ -4,7 +4,7 @@
/*! /*!
\page creator-highlighting.html \page creator-highlighting.html
\if defined(qtdesignstudio) \if defined(qtdesignstudio)
\previouspage creator-output-panes.html \previouspage creator-editor-functions.html
\else \else
\previouspage creator-coding-navigating.html \previouspage creator-coding-navigating.html
\endif \endif
@@ -55,8 +55,8 @@
If the editor cannot find the highlight definition for a file that you open If the editor cannot find the highlight definition for a file that you open
for editing, it prompts you to download additional highlight definition for editing, it prompts you to download additional highlight definition
files. Select \uicontrol {Download Definitions} to download the files. files. Select \uicontrol {Download Definitions} to download the files.
Information about the downloaded files is displayed in \l{Viewing Output} To view information about the downloaded files, open the \l{View output}
{General Messages}. {General Messages} view.
To suppress the message for a particular file pattern, select To suppress the message for a particular file pattern, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor}

View File

@@ -113,7 +113,7 @@
working directory. working directory.
\li In the \uicontrol Output field, select how to handle output from the \li In the \uicontrol Output field, select how to handle output from the
tool. You can ignore the output, view it in \l{Viewing Output} tool. You can ignore the output, view it in \l{View output}
{General Messages}, or replace the selected text with the {General Messages}, or replace the selected text with the
output in the code editor. output in the code editor.

View File

@@ -32,6 +32,7 @@
\list 1 \list 1
\li Select \uicontrol Edit > \uicontrol Preferences > \li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol Environment > \uicontrol Interface. \uicontrol Environment > \uicontrol Interface.
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
\li Select \uicontrol {Enable high DPI scaling}. \li Select \uicontrol {Enable high DPI scaling}.
\li Restart \QC to have the change take effect. \li Restart \QC to have the change take effect.
\endlist \endlist

View File

@@ -584,7 +584,7 @@
\section1 Viewing Test Output \section1 Viewing Test Output
The \l{Viewing Output}{Test Results} view shows Qt and Qt Quick test results The \l{View output}{Test Results} view shows Qt and Qt Quick test results
in XML format and other test results in plain text format. in XML format and other test results in plain text format.
\section2 Qt Test Output \section2 Qt Test Output

View File

@@ -19,9 +19,11 @@
\section1 Use the UI \section1 Use the UI
\list \list
\li \l {Assign keyboard shortcuts}
\li \l {Find a particular preference} \li \l {Find a particular preference}
\li \l {Find keyboard shortcuts} \li \l {Find keyboard shortcuts}
\li \l {Find menu items on \macos} \li \l {Find menu items on \macos}
\li \l {Import and export keyboard shortcuts}
\li \l {Set high DPI scaling} \li \l {Set high DPI scaling}
\li \l {Set the number of recent files shown} \li \l {Set the number of recent files shown}
\li \l {Show and hide sidebars} \li \l {Show and hide sidebars}
@@ -83,8 +85,10 @@
\key Ctrl+Tab. \key Ctrl+Tab.
To move forward in the location history, press \key {Alt+Right} To move forward in the location history, press \key {Alt+Right}
(\key {Cmd+Opt+Right} on \macos). To move backward, press \key {Alt+Left} (\key {Cmd+Opt+Right} on \macos).
(\key {Cmd+Opt+Left} on \macos). For example, if you use the \uicontrol Locator
To move backward, press \key {Alt+Left} (\key {Cmd+Opt+Left} on \macos).
For example, if you use the \uicontrol Locator
to jump to a symbol in the same file, you can jump back to your original to jump to a symbol in the same file, you can jump back to your original
location in that file by pressing \key {Alt+Left}. location in that file by pressing \key {Alt+Left}.
*/ */
@@ -125,38 +129,6 @@
\image qtcreator-preferences.webp {Filtering preferences} \image qtcreator-preferences.webp {Filtering preferences}
*/ */
/*!
\page creator-how-to-view-output.html
\previouspage creator-how-tos.html
\nextpage creator-known-issues.html
\ingroup creator-how-to-ui
\title View output
The \l{Viewing Output}{taskbar} shows 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.
\image qtcreator-output-panes-taskbar.webp "Output on the taskbar"
To view different types of output, use the following shortcuts:
\list
\li \uicontrol{Issues} - \key Alt+1 (\key Cmd+1 on \macos)
\li \uicontrol{Search Results} - \key Alt+2 (\key Cmd+2 on \macos)
\li \uicontrol{Application Output} - \key Alt+3 (\key Cmd+3 on \macos)
\li \uicontrol{Compile Output} - \key Alt+4 (\key Cmd+4 on \macos)
\endlist
For additional ways to view other types of output, see \l{Viewing Output}.
*/
/*! /*!
\page creator-how-to-run-from-cli.html \page creator-how-to-run-from-cli.html
\previouspage creator-how-tos.html \previouspage creator-how-tos.html
@@ -399,11 +371,16 @@
\title Set the number of recent files shown \title Set the number of recent files shown
Set the value of \uicontrol Edit > \uicontrol Preferences > To set the number of files to list in \uicontrol File >
\uicontrol Environment > \uicontrol System \uicontrol {Recent Files}:
> \uicontrol {Maximum number of entries in "Recent Files"}.
\image qtcreator-options-environment-system.png "System preferences" \list 1
\li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol Environment > \uicontrol System.
\image qtcreator-options-environment-system.png {System preferences}
\li In \uicontrol {Maximum number of entries in "Recent Files"}, set
the number of files to show.
\endlist
*/ */
/*! /*!

View File

@@ -22,7 +22,7 @@
\li Record test cases (in a very limited way compared to what you can do \li Record test cases (in a very limited way compared to what you can do
inside the Squish IDE). inside the Squish IDE).
\li Use Squish Runner and Server to run test suites or cases and view \li Use Squish Runner and Server to run test suites or cases and view
the results in the \uicontrol Squish \l{Viewing Output}{output}. the results in the \uicontrol Squish \l{View output}{output}.
\li Set breakpoints before running tests to stop at certain locations and \li Set breakpoints before running tests to stop at certain locations and
inspect the local variables, similarly to when debugging a test. inspect the local variables, similarly to when debugging a test.
\endlist \endlist

View File

@@ -8,7 +8,7 @@
// ********************************************************************** // **********************************************************************
/*! /*!
\previouspage creator-output-panes.html \previouspage creator-quick-tour.html
\page creator-configuring.html \page creator-configuring.html
\nextpage creator-build-example-application.html \nextpage creator-build-example-application.html

View File

@@ -8,8 +8,6 @@
\title Tutorials \title Tutorials
\image front-help.png
You can use \QC to create applications for several \l{Supported Platforms} You can use \QC to create applications for several \l{Supported Platforms}
{platforms} by using several \l{User Interfaces}{UI technologies}. Follow {platforms} by using several \l{User Interfaces}{UI technologies}. Follow
the tutorials to learn how to create some basic Qt applications. the tutorials to learn how to create some basic Qt applications.

View File

@@ -1,7 +1,6 @@
// Copyright (C) 2023 The Qt Company Ltd. // Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*! /*!
\page qtcreator-toc.html \page qtcreator-toc.html
@@ -18,9 +17,6 @@
\list \list
\li \l{IDE Overview} \li \l{IDE Overview}
\li \l{User Interface} \li \l{User Interface}
\list
\li \l{Viewing Output}
\endlist
\li \l{Configuring Qt Creator} \li \l{Configuring Qt Creator}
\li \l{Building and Running an Example} \li \l{Building and Running an Example}
\li \l{Tutorials} \li \l{Tutorials}

View File

@@ -8,7 +8,6 @@
\nextpage creator-open-documents-view.html \nextpage creator-open-documents-view.html
\else \else
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\endif \endif
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views

View File

@@ -0,0 +1,85 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page creator-how-to-view-output.html
\if defined(qtdesignstudio)
\previouspage creator-quick-tour.html
\else
\previouspage creator-how-tos.html
\endif
\ingroup creator-how-to-ui
\title View output
The \e {output views} show 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.
\image qtcreator-output-panes-taskbar.webp {Output views}
You can open output views in all
\if defined (qtcreator)
\l{Switch between modes}{modes}
\else
modes
\endif in the following ways:
\list
\if defined(qtcreator)
\li Select the output view.
\endif
\li Select \uicontrol View > \uicontrol Output.
The menu items also display the \l{Keyboard Shortcuts}
{keyboard shortcuts} that you can use.
\li Select \key Alt (\key Cmd on \macos) and the number of the view.
\li Select \inlineimage icons/output-pane-menu.png
, and then select the view to open.
\endlist
To maximize an open output view, select the \inlineimage icons/arrowup.png
(\uicontrol Maximize) button or press \key {Alt+Shift+9}.
To increase or decrease the output text size, select \inlineimage icons/plus.png
(\uicontrol {Zoom In}) or \inlineimage icons/minus.png
(\uicontrol {Zoom Out}), or press \key Ctrl++ or \key Ctrl+-. Zooming is
not supported in all output views.
\section1 Change text encoding
If the text in the output is not displayed correctly, \QC might
be using a different codec from the one used by the tools that generate
the output. To specify the codec to use, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Environment > \uicontrol Interface, and
then select the codec in the \uicontrol {Text codec for tools} field.
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
\section1 Find and filter output
To search from output, press \key {Ctrl+F} when the view is active. Enter
search criteria in the \uicontrol Find field. For more information, see
\l{Finding and Replacing}.
To filter output, enter a string in the \uicontrol Filter field.
To specify filtering options,
select the \inlineimage icons/magnifier.png {Filtering options menu}
button. You can filter output by using regular expressions or
case-sensitivity. Select \uicontrol {Show Non-matching Lines} to
hide the lines that match the filter.
Some output views do not support finding and filtering.
\section1 Output views
The following views show output:
\if defined(qtcreator)
\annotatedlist creator-reference-output-views
\else
\annotatedlist studio-reference-output-views
\endif
*/

View File

@@ -4,7 +4,6 @@
/*! /*!
\page creator-outline-view.html \page creator-outline-view.html
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views
\title Outline \title Outline
@@ -33,7 +32,6 @@
/*! /*!
\page creator-class-view.html \page creator-class-view.html
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views
\title Class View \title Class View
@@ -54,7 +52,6 @@
/*! /*!
\page creator-call-hierarchy-view.html \page creator-call-hierarchy-view.html
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views
\title Call Hierarchy \title Call Hierarchy
@@ -77,7 +74,6 @@
/*! /*!
\page creator-type-hierarchy.html \page creator-type-hierarchy.html
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views
\title Type Hierarchy \title Type Hierarchy
@@ -110,7 +106,6 @@
/*! /*!
\page creator-include-hierarchy-view.html \page creator-include-hierarchy-view.html
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views
\title Include Hierarchy \title Include Hierarchy

View File

@@ -0,0 +1,111 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page creator-reference-terminal-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\title Terminal
\brief Opens a terminal.
When you select the \uicontrol {Run in Terminal} check box and run an
application or the \uicontrol {Open Terminal} button to open a terminal,
it opens as an output view.
To open the terminal in a separate window, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Terminal, and deselet the
\uicontrol {Use internal terminal} check box.
On Linux and \macos, you can set the terminal to open by selecting
\uicontrol Edit > \uicontrol Preferences >
\uicontrol Environment > \uicontrol System.
\image qtcreator-output-terminal.webp {Terminal pane}
\list
\li To clear the terminal, select \inlineimage icons/clean_pane_small.png
(\uicontrol Clear).
\li To close the current terminal, select \inlineimage icons/terminal-close.png
.
\li To open new terminals as tabs, select \inlineimage icons/terminal-create.png
.
\li To move between terminals, select the tabs or \inlineimage icons/arrowup.png
and \inlineimage icons/arrowdown.png
.
\li To select a word in a terminal, double-click it. To select the whole line,
triple-click it.
\li To open links in a browser, files in the editor, or folders in the
\l Projects view, hover the mouse over them, and press \key Ctrl.
\li To \l{Finding and Replacing}{search} through the output, press \key {Ctrl+F}.
\li To make the font larger or smaller, select the \inlineimage icons/plus.png
and \inlineimage icons/minus.png
buttons. You can also change the font size in terminal preferences.
\li To open terminal preferences, select \inlineimage icons/settings.png
(\uicontrol Configure).
\endlist
Most of the \QC keyboard shortcuts are disabled in the terminal, except the
ones for opening terminal preferences or the locator and quitting \QC. To
send the escape key to the terminal instead of closing the terminal, select
\uicontrol {Shift+Esc}. You can also specify that the escape key is sent to
the terminal in terminal preferences.
\section1 Terminal Preferences
To set preferences for the internal terminal, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Terminal, or select the
\uicontrol Configure button in the \uicontrol Terminal pane.
\image qtcreator-preferences-terminal.webp {Terminal tab in Preferences}
\table
\header
\li Option
\li Value
\row
\li \uicontrol {Use internal terminal}
\li Open the \uicontrol Terminal pane when you select
\uicontrol {Run in Terminal} or \uicontrol {Open Terminal}.
\row
\li \uicontrol {Send escape key to terminal}
\li Send the escape key to the terminal instead of closing the terminal.
\row
\li \uicontrol {Audible bell}
\li Play an audible bell when the a bell character is received.
\row
\li \uicontrol {Allow blinking cursor}
\li Allow the cursor to blink.
\row
\li \uicontrol {Font}
\li Select the \uicontrol {Font family} and \uicontrol Size for the text
in the terminal. You can also use the \inlineimage icons/plus.png
and \inlineimage icons/minus.png buttons in the \uicontrol Terminal
pane to change the font size.
\row
\li \uicontrol {Colors}
\li Set colors for the \uicontrol Terminal pane \uicontrol Foreground,
\uicontrol Background, \uicontrol Selection, and
\uicontrol {Find match}.
\row
\li \uicontrol {Default shell}
\li Set the full path to the default terminal executable in
\uicontrol {Shell path} and the arguments to pass to the shell
in \uicontrol {Shell arguments}.
\endtable
To use an existing color scheme, select \uicontrol {Load Theme}. To revert
color changes, select \uicontrol {Reset Theme}.
\sa {View output}
*/

View File

@@ -0,0 +1,75 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page creator-reference-to-do-entries-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\title To-Do Entries
\brief Lists the BUG, FIXME, NOTE, TODO, and WARNING keywords from the
current file, from all project files, or from a subproject.
Click the icons on the toolbar to show only the selected
keywords.
\image qtcreator-to-do-entries.webp {To-Do Entries}
You can also open task list files generated by code scanning and
analysis tools in \l Issues. For more information, see
\l{Showing Task List Files in Issues}.
\section1 Enabling the To-Do Plugin
The Todo plugin is disabled by default. To enable it:
\list 1
\li Select \uicontrol Help > \uicontrol {About Plugins} >
\uicontrol Utilities > \uicontrol Todo.
\li Select \uicontrol OK.
\li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
\endlist
\section1 To-Do Preferences
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
for the keyword.
\image qtcreator-todo-options.png {To-Do preferences}
\list
\li To change the icon and line background color of the selected keyword,
select \uicontrol Edit.
\li To remove the selected keyword, select \uicontrol Remove.
\li To reset the list to predefined keywords, select \uicontrol Reset.
All your changes will be permanently lost.
\li To determine whether the keywords in the whole project, in the
current file, or in a subproject are displayed by default, select
the appropriate option in the \uicontrol {Scanning scope} group.
\endlist
\section1 Excluding Files from Scanning
To exclude files from scanning, select \uicontrol {Project Settings} >
\uicontrol {To-Do} in the \uicontrol Projects mode.
\image qtcreator-todo-excluded-files.png {Excluded Files in To-Do preferences}
Select \uicontrol Add and double-click the placeholder text in
\uicontrol {Exclude Files} to enter a regular expression that
matches the path to files to exclude. Use a forward slash (/)
as a separator in the path also on Windows.
Select the link in \uicontrol {Use global settings} to open global
To-Do preferences.
\sa {Enable and disable plugins}
*/

View File

@@ -9,7 +9,6 @@
\nextpage studio-content-library.html \nextpage studio-content-library.html
\else \else
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\endif \endif
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views

View File

@@ -8,7 +8,6 @@
\nextpage creator-file-system-view.html \nextpage creator-file-system-view.html
\else \else
\previouspage creator-how-to-show-and-hide-sidebars.html \previouspage creator-how-to-show-and-hide-sidebars.html
\nextpage creator-output-panes.html
\endif \endif
\ingroup creator-reference-sidebar-views \ingroup creator-reference-sidebar-views

View File

@@ -0,0 +1,257 @@
// 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.
// **********************************************************************
/*!
\page creator-reference-issues-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\ingroup studio-reference-output-views
\title Issues
\brief Lists issues from different sources.
The \uicontrol Issues view filters out irrelevant output from the build tools
and presents the issues in an organized way.
To further filter the output by type, select \inlineimage icons/filtericon.png
(\uicontrol {Filter Tree}) and then select a filter:
\list
\if defined(qtdesignstudio)
\li \uicontrol {Asset Export} - Errors and warnings encountered
while exporting assets.
\li \uicontrol {Asset Importer Error} - Errors and warnings encountered
while importing assets from a design tool.
\else
\li \uicontrol Autotests - Errors and warnings encountered while running
tests.
\endif
\li \uicontrol {Build System} - Errors and warnings encountered when
opening and managing projects.
\if defined(qtcreator)
\li \uicontrol {Clang Code Model} -
\l {Parsing C++ Files with the Clang Code Model}
{Errors and warnings from the current editor}.
\li \uicontrol {Clang Tools} - Errors and warnings from
\l {Using Clang Tools}{Clang-Tidy and Clazy}
\endif
\li \uicontrol Compile - Selected output from the compiler. Open
\uicontrol {Compile Output} for more detailed information.
\li \uicontrol{Debug Information} - Lists debug information packages that might
be missing.
\if defined(qtcreator)
\li \uicontrol Debugger - Errors encountered while running the
\l{Analyzing Code}{Valgrind code analysis tools}.
\endif
\li \uicontrol{Debugger Runtime} - Errors encountered when starting \QC. For
example, information about missing DLLs.
\li \uicontrol Deployment - Errors encountered between building an application
successfully and starting it on a \l{glossary-device}{device}.
\if defined(qtcreator)
\li \uicontrol {My Tasks} - Entries from a task list file (.tasks) generated
by \l{Showing Task List Files in Issues}
{code scanning and analysis tools}.
\li \uicontrol Python - Runtime errors and exceptions of Python scripts.
\endif
\li \uicontrol QML and \uicontrol {QML Analysis} -
\l{JavaScript and QML Error Codes}
{QML and JavaScript syntax errors}.
\if defined(qtcreator)
\li \uicontrol Sanitizer - Tasks created when you run an application if
you used an \e {address sanitizer} to detect memory handling issues.
\endif
\endlist
To find output in the view, enter search criteria in the \uicontrol Filter
field.
\image qtcreator-issues.webp {Issues}
Select one or several lines to apply context-menu actions to their contents.
You can remove the selected lines or copy their contents to the clipboard.
For single lines, you can search the Internet for a solution using the
contents of the line as search criteria or open a version control
annotation view of the line that causes the error message.
To view detailed information about the selected line (where available), press
\key Space.
To navigate to the corresponding source code, click an issue or
select \uicontrol {Show in Editor} in the context menu. The entry must contain the
name of the file where the issue was found.
To view more information about an issue in \l {Compile Output},
select \uicontrol {Show Compile Output} in the context menu.
To jump from one issue to the next or previous
one, select \inlineimage icons/arrowup.png
and \inlineimage icons/arrowdown.png
or press \key F6 and \key Shift+F6.
By default, a new build clears the \uicontrol Issues view. To keep
the issues from the previous build rounds, deselect \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Build & Run} > \uicontrol General >
\uicontrol {Clear issues list on new build}.
*/
/*!
\page creator-reference-search-results-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\ingroup studio-reference-output-views
\title Search Results
\brief Lets you search through projects, files on a file system or the
currently open files.
The search history (1) stores the search results. You can select earlier
searches from the history.
\image qtcreator-search-results.webp {Search Results - criteria}
The figure below shows an example search result for all
occurrences of the search string in the specified directory.
\image qtcreator-search-results-matches.webp {Search Results - matches found}
For more information about the different search options, see
\l {Finding and Replacing}.
*/
/*!
\page creator-reference-application-output-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\ingroup studio-reference-output-views
\title Application Output
\brief Displays the status of a program when you execute it, and the debug
output.
\image qtcreator-application-output.webp {Application Output}
\if defined(qtcreator)
If you specify command line arguments in the run settings that are passed
to the application when running it, they are displayed as a part of the
application output. For more information, see
\l{Specifying Run Settings for Desktop Device Types}.
\endif
Select toolbar buttons to run applications, to attach the debugger to the
running application, and to stop running or debugging.
\section1 Application Output Preferences
To set preferences for displaying application output:
\list
\li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {Build & Run} > \uicontrol {Application Output}.
\li Select the \inlineimage icons/settings.png
(\uicontrol {Open Settings Page}) button.
\endlist
\image qtcreator-preferences-application-output.webp {Application Output tab in Preferences}
You can select whether to open \uicontrol{Application Output} on output when
running or debugging applications, to clear old output on a new run,
to word-wrap output, and to limit output to the specified number of lines.
*/
/*!
\page creator-reference-compile-output-view.html
\previouspage creator-how-to-view-output.html
\ingroup creator-reference-output-views
\ingroup studio-reference-output-views
\title Compile Output
\brief Shows all output from the compiler.
\uicontrol{Compile Output} shows a more detailed version of information
displayed in \l Issues.
\image qtcreator-compile-output.webp {Compile Output}
Double-click a file name in an error message to open the file in the
code editor.
To cancel the build, select the \uicontrol {Cancel Build} button.
To copy the output to the clipboard, select \uicontrol {Select All} in the
context menu, and then select \uicontrol Copy. Save the output as a file if
you want to examine it later without having to build the project again.
This is useful for large projects that take a long time to build.
\section1 Compile Output Preferences
To specify whether to open the \uicontrol {Compile Output} view on output
when building applications:
\list 1
\li Open the preferences:
\list
\li In the \uicontrol {Compile Output} view,
select \inlineimage icons/settings.png
(\uicontrol {Open Settings Page}).
\li Select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {Build & Run} > \uicontrol {Compile Output}.
\endlist
\image qtcreator-preferences-compile-output.webp {Compile Output tab in Preferences}
\li Select the \uicontrol {Open Compile Output when building} check box.
\li In the \uicontrol {Limit output to} field, you can specify the
maximum amount of build output lines to display.
\endlist
\section1 Parsing Existing Compile Output
You can use \QC's output parsers to parse output from builds done outside
of \QC or stored from previous build runs. By default, the parsers from the
kit selected for the active project are used, but you can select another
kit.
To parse compile output:
\list 1
\li Select \uicontrol Tools > \uicontrol {Parse Build Output}.
\image qtcreator-parse-build-output.png
\li Paste the build output in the \uicontrol {Build Output} field, or
select \uicontrol {Load from File} to load it from a file.
\li Deselect the \uicontrol {Output went to stderr} check box if the
parser expects issues on \c stdout.
\li In the \uicontrol {Use parsers from kit} field, select the kit to
use for parsing the output. Select \uicontrol Manage to view
and modify kit settings.
\li The parser displays the parsed output in \l Issues. By default, the
view is cleared before adding the new output.
Deselect the \uicontrol {Clear existing tasks} check box to append
the new output to the old output.
\li Select \uicontrol OK to start parsing.
\endlist
*/

View File

@@ -1,12 +1,6 @@
// Copyright (C) 2023 The Qt Company Ltd. // Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// **********************************************************************
// 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.
// **********************************************************************
/*! /*!
\page creator-quick-tour.html \page creator-quick-tour.html
\if defined(qtdesignstudio) \if defined(qtdesignstudio)
@@ -14,7 +8,7 @@
\nextpage creator-using-qt-quick-designer.html \nextpage creator-using-qt-quick-designer.html
\else \else
\previouspage creator-overview.html \previouspage creator-overview.html
\nextpage creator-views.html \nextpage creator-configuring.html
\endif \endif
\title User Interface \title User Interface
@@ -66,7 +60,7 @@
\li \inlineimage numbers/07.png \li \inlineimage numbers/07.png
\li Output \li Output
\li View output from building, running, and other actions. \li View output from building, running, and other actions.
\li \l{Viewing Output} \li \l{View output}
\endtable \endtable
To see where the above controls are in the UI, select To see where the above controls are in the UI, select
@@ -127,6 +121,7 @@
\li \l {Find menu items on \macos} \li \l {Find menu items on \macos}
\li \l {Set high DPI scaling} \li \l {Set high DPI scaling}
\li \l {Switch UI themes} \li \l {Switch UI themes}
\li \l {View output}
\endlist \endlist
\section1 Viewing Images \section1 Viewing Images
@@ -140,465 +135,3 @@
\endif \endif
*/ */
/*!
\page creator-output-panes.html
\if defined(qtdesignstudio)
\previouspage creator-editor-functions.html
\nextpage creator-highlighting.html
\else
\previouspage creator-open-documents-view.html
\nextpage creator-configuring.html
\endif
\title Viewing Output
\image qtcreator-general-messages.webp {General Messages}
You can view the following types of output:
\list
\li \l {Issues}
\li \l {Search Results}
\li \l {Application Output}
\li \l {Compile Output}
\if defined(qtcreator)
\li \l {Terminal}
\endif
\li \uicontrol {QML Debugger Console}
\li \uicontrol{General Messages}
\if defined(qtcreator)
\li \l {Static Code Analysis}{Axivion}
\endif
\li \uicontrol{Version Control}
\if defined(qtcreator)
\li \l{Running Autotests}{Test Results}
\li \l{Using Squish}{Squish} test results and Squish Server and
Runner logs
\li \l {To-Do Entries}
\endif
\endlist
Output is available on the taskbar in all
\if defined(qtcreator)
\l{Switch between modes}{modes}.
\else
\l{Mode}{modes}.
\endif
\image qtcreator-output-panes-taskbar.webp "Output on the taskbar"
You can view output in the following ways:
\list
\li Select the output view on the taskbar.
\li Select \key Alt (\key Cmd on \macos) and the number of the view on
the taskbar.
\li Select \inlineimage icons/output-pane-menu.png
, and then select the view to open.
\li Select \uicontrol View > \uicontrol Output.
The menu items also display the \l{Keyboard Shortcuts}
{keyboard shortcuts} that you can use.
\endlist
To maximize an open output view, select the \inlineimage icons/arrowup.png
(\uicontrol Maximize) button or press \key {Alt+Shift+9}.
To increase or decrease the output text size, select \inlineimage icons/plus.png
(\uicontrol {Zoom In}) or \inlineimage icons/minus.png
(\uicontrol {Zoom Out}), or press \key Ctrl++ or \key Ctrl+-. Zooming is
not supported in all output views.
To open the \uicontrol{General Messages} and
\if defined(qtcreator)
\l{Using Version Control Systems}{Version Control}
\else
\l{Using Git}{Version Control}
\endif
views, select \uicontrol View > \uicontrol Output.
\if defined(qtcreator)
To view \uicontrol {To-Do Entries}, enable the \uicontrol Todo plugin.
\endif
For more information about the \uicontrol {QML Debugger Console} view, see
\l{Executing JavaScript Expressions}.
If the text in the output is not displayed correctly, \QC might
be using a different codec from the one used by the tools that generate
the output. To specify the codec to use, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Environment > \uicontrol Interface, and
then select the codec in the \uicontrol {Text codec for tools} field.
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
\section1 Finding and Filtering Output
To search from output, press \key {Ctrl+F} when the view is active. Enter
search criteria in the \uicontrol Find field. For more information, see
\l{Finding and Replacing}.
Besides searching from the output, you can enter a string in the
\uicontrol Filter field to filter it. To specify filtering options,
select the \inlineimage icons/magnifier.png "Filtering options menu"
button. You can filter output by using regular expressions or
case-sensitivity. Select \uicontrol {Show Non-matching Lines} to
hide the lines that match the filter.
Finding and filtering are not supported in all output views.
\section1 Issues
\uicontrol{Issues} lists the following types of issues:
\list
\if defined(qtdesignstudio)
\li \uicontrol {Asset Export} - Errors and warnings encountered
while exporting assets.
\li \uicontrol {Asset Importer Error} - Errors and warnings encountered
while importing assets from a design tool.
\else
\li \uicontrol Autotests - Errors and warnings encountered while running
tests.
\endif
\li \uicontrol {Build System} - Errors and warnings encountered during a
build.
\if defined(qtcreator)
\li \uicontrol {Clang Code Model} -
\l {Parsing C++ Files with the Clang Code Model}
{Errors and warnings from the current editor}.
\li \uicontrol {Clang Tools} - Errors and warnings from
\l {Using Clang Tools}{Clang-Tidy and Clazy}
\endif
\li \uicontrol Compile - Selected output from the compiler. Open
\uicontrol {Compile Output} for more detailed information.
\li \uicontrol{Debug Information} - Lists debug information packages that might
be missing.
\if defined(qtcreator)
\li \uicontrol Debugger - Errors encountered while running the
\l{Analyzing Code}{Valgrind code analysis tools}.
\endif
\li \uicontrol{Debugger Runtime} - Errors encountered when starting \QC. For
example, information about missing DLLs.
\li \uicontrol Deployment - Errors encountered between building an application
successfully and starting it on a \l{glossary-device}{device}.
\if defined(qtcreator)
\li \uicontrol {My Tasks} - Entries from a task list file (.tasks) generated
by \l{Showing Task List Files in Issues}
{code scanning and analysis tools}.
\li \uicontrol Python - Runtime errors and exceptions of Python scripts.
\endif
\li \uicontrol QML and \uicontrol {QML Analysis} -
\l{JavaScript and QML Error Codes}
{QML and JavaScript syntax errors}.
\if defined(qtcreator)
\li \uicontrol Sanitizer - Tasks created when you run an application if
you used an \e {address sanitizer} to detect memory handling issues.
\endif
\endlist
The view filters out irrelevant output from the build tools and presents the
issues in an organized way. To further filter the output by type, select
\inlineimage icons/filtericon.png
(\uicontrol {Filter Tree}) and then select a filter. To find output in the
view, enter search criteria in the \uicontrol Filter field.
\image qtcreator-issues.webp {Issues}
Select one or several lines to apply context-menu actions to their contents.
You can remove the selected lines or copy their contents to the clipboard.
For single lines, you can search the Internet for a solution using the
contents of the line as search criteria or open a version control
annotation view of the line that causes the error message.
To view detailed information about the selected line (where available), press
\key Space.
To navigate to the corresponding source code, click an issue or
select \uicontrol {Show in Editor} in the context menu. The entry must contain the
name of the file where the issue was found.
To view more information about an issue in \l {Compile Output},
select \uicontrol {Show Compile Output} in the context menu.
To jump from one issue to the next or previous
one, select \inlineimage icons/arrowup.png
and \inlineimage icons/arrowdown.png
or press \key F6 and \key Shift+F6.
By default, a new build clears the \uicontrol Issues view. To keep
the issues from the previous build rounds, deselect \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Build & Run} > \uicontrol General >
\uicontrol {Clear issues list on new build}.
\section1 Search Results
In \uicontrol{Search Results}, you can search through projects, files on
a file system or the currently open files:
\image qtcreator-search-results.webp {Search Results - criteria}
The search history (1) stores the search results. You can select earlier
searches from the history.
The figure below shows an example search result for all
occurrences of the search string in the specified directory.
\image qtcreator-search-results-matches.webp {Search Results - matches found}
For more information about the different search options, see
\l {Finding and Replacing}.
\section1 Application Output
\uicontrol{Application Output} displays the status of a program when
you execute it, and the debug output.
\image qtcreator-application-output.webp {Application Output}
\if defined(qtcreator)
If you specify command line arguments in the run settings that are passed
to the application when running it, they are displayed as a part of the
application output. For more information, see
\l{Specifying Run Settings for Desktop Device Types}.
\endif
Select toolbar buttons to run applications, to attach the debugger to the
running application, and to stop running or debugging.
To specify settings for displaying application output, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run} >
\uicontrol {Application Output}, or click the \inlineimage icons/settings.png
(\uicontrol {Open Settings Page}) button. You can select whether to open
\uicontrol{Application Output} on output when running or debugging
applications, to clear old output on a new run,
to word-wrap output, and to limit output to the specified number of lines.
\section1 Compile Output
\uicontrol{Compile Output} shows all output from the compiler.
The \uicontrol{Compile Output} is a more detailed version of information
displayed in \l Issues.
\image qtcreator-compile-output.webp {Compile Output}
Double-click on a file name in an error message to open the file in the
code editor.
Select the \uicontrol {Cancel Build} button to cancel the build.
To specify whether to open the \uicontrol {Compile Output} view on output
when building applications, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {Build & Run} > \uicontrol {Compile Output}, and then select the
\uicontrol {Open Compile Output when building} check box.
In the \uicontrol {Limit output to} field, you can specify the maximum
amount of build output lines to display.
You can also open the preferences page by clicking \inlineimage icons/settings.png
(\uicontrol {Open Settings Page}).
To copy the output to the clipboard, select \uicontrol {Select All} in the
context menu, and then select \uicontrol Copy. Save the output as a file if
you want to examine it later without having to build the project again.
This is useful for large projects that take a long time to build.
\section2 Parsing Existing Compile Output
You can use \QC's output parsers to parse output from builds done outside
of \QC or stored from previous build runs. By default, the parsers from the
kit selected for the active project are used, but you can select another
kit.
To parse compile output:
\list 1
\li Select \uicontrol Tools > \uicontrol {Parse Build Output}.
\image qtcreator-parse-build-output.png
\li Paste the build output in the \uicontrol {Build Output} field, or
select \uicontrol {Load from File} to load it from a file.
\li Deselect the \uicontrol {Output went to stderr} check box if the
parser expects issues on \c stdout.
\li In the \uicontrol {Use parsers from kit} field, select the kit to
use for parsing the output. Select \uicontrol Manage to view
and modify kit settings.
\li The parser displays the parsed output in \l Issues. By default, the
view is cleared before adding the new output.
Deselect the \uicontrol {Clear existing tasks} check box to append
the new output to the old output.
\li Select \uicontrol OK to start parsing.
\endlist
\if defined(qtcreator)
\section1 Terminal
When you select the \uicontrol {Run in Terminal} check box and run an
application or the \uicontrol {Open Terminal} button to open a terminal,
the default terminal opens. On Linux and \macos, you can set the default
terminal by selecting \uicontrol Edit > \uicontrol Preferences >
\uicontrol Environment > \uicontrol System.
To open the terminal on the taskbar instead of in a separate window, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol Terminal >
\uicontrol {Use internal terminal}.
\image qtcreator-output-terminal.webp {Terminal pane}
To clear the terminal, select \inlineimage icons/clean_pane_small.png
(\uicontrol Clear).
To close the current terminal, select \inlineimage icons/terminal-close.png
.
To open new terminals as tabs, select \inlineimage icons/terminal-create.png
.
To move between terminals, select the tabs or \inlineimage icons/arrowup.png
and \inlineimage icons/arrowdown.png
.
To select a word in a terminal, double-click it. To select the whole line,
triple-click it.
To open links in a browser, files in the editor, or folders in the
\l Projects view, hover the mouse over them, and press \key Ctrl.
To \l{Finding and Replacing}{search} through the output, press \key {Ctrl+F}.
To make the font larger or smaller, select the \inlineimage icons/plus.png
and \inlineimage icons/minus.png
buttons. You can also change the font size in terminal preferences.
To open terminal preferences, select \inlineimage icons/settings.png
(\uicontrol Configure).
Most of the \QC keyboard shortcuts are disabled in the terminal, except the
ones for opening terminal preferences or the locator and quitting \QC. To
send the escape key to the terminal instead of closing the terminal, select
\uicontrol {Shift+Esc}. You can also specify that the escape key is sent to
the terminal in terminal preferences.
\section2 Setting Terminal Preferences
To set preferences for the internal terminal, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol Terminal, or select the
\uicontrol Configure button in the \uicontrol Terminal pane.
\image qtcreator-preferences-terminal.webp {Terminal tab in Preferences}
\table
\header
\li Option
\li Value
\row
\li \uicontrol {Use internal terminal}
\li Open the \uicontrol Terminal pane when you select
\uicontrol {Run in Terminal} or \uicontrol {Open Terminal}.
\row
\li \uicontrol {Send escape key to terminal}
\li Send the escape key to the terminal instead of closing the terminal.
\row
\li \uicontrol {Audible bell}
\li Play an audible bell when the a bell character is received.
\row
\li \uicontrol {Allow blinking cursor}
\li Allow the cursor to blink.
\row
\li \uicontrol {Font}
\li Select the \uicontrol {Font family} and \uicontrol Size for the text
in the terminal. You can also use the \inlineimage icons/plus.png
and \inlineimage icons/minus.png buttons in the \uicontrol Terminal
pane to change the font size.
\row
\li \uicontrol {Colors}
\li Set colors for the \uicontrol Terminal pane \uicontrol Foreground,
\uicontrol Background, \uicontrol Selection, and
\uicontrol {Find match}.
\row
\li \uicontrol {Default shell}
\li Set the full path to the default terminal executable in
\uicontrol {Shell path} and the arguments to pass to the shell
in \uicontrol {Shell arguments}.
\endtable
To use an existing color scheme, select \uicontrol {Load Theme}. To revert
color changes, select \uicontrol {Reset Theme}.
\section1 To-Do Entries
\uicontrol {To-Do Entries} lists the BUG, FIXME, NOTE, TODO, and
WARNING keywords from the current file, from all project files, or from a
subproject. Click the icons on the toolbar to show only the selected
keywords.
\image qtcreator-to-do-entries.webp {To-Do Entries}
To add keywords, select \uicontrol Edit > \uicontrol Preferences >
\uicontrol {To-Do} > \uicontrol Add. Set an icon and a line background color
for the keyword.
\image qtcreator-todo-options.png {To-Do preferences}
To change the icon and line background color of the selected keyword, select
\uicontrol Edit.
To remove the selected keyword, select \uicontrol Remove.
To reset the list to predefined keywords, select \uicontrol Reset. All your
changes will be permanently lost.
To determine whether the keywords in the whole project, in the current file,
or in a subproject are displayed by default, select the appropriate option
in the \uicontrol {Scanning scope} group.
To exclude files from scanning, select \uicontrol {Project Settings} >
\uicontrol {To-Do} in the \uicontrol Projects mode.
\image qtcreator-todo-excluded-files.png {Excluded Files in To-Do preferences}
Select \uicontrol Add and double-click the placeholder text in
\uicontrol {Exclude Files} to enter a regular expression that
matches the path to files to exclude. Use a forward slash (/)
as a separator in the path also on Windows.
Select the link in \uicontrol {Use global settings} to open global
To-Do preferences.
The Todo plugin is disabled by default. To enable the plugin, select
\uicontrol Help > \uicontrol {About Plugins} > \uicontrol Utilities >
\uicontrol Todo. Then select \uicontrol {Restart Now} to restart \QC
and load the plugin.
In addition, you can open task list files generated by code scanning and
analysis tools in \l Issues. For more information, see
\l{Showing Task List Files in Issues}.
\endif
*/

View File

@@ -20,7 +20,7 @@
To use GitLab, you must create a connection to the GitLab server and clone To use GitLab, you must create a connection to the GitLab server and clone
the projects you want to work on. You can also link previously cloned the projects you want to work on. You can also link previously cloned
projects to GitLab in the project settings. This enables you to receive projects to GitLab in the project settings. This enables you to receive
event notifications in the \l {Viewing Output}{Version Control} pane. event notifications in the \l {View output}{Version Control} pane.
\section1 Connecting to GitLab Servers \section1 Connecting to GitLab Servers

View File

@@ -200,7 +200,6 @@
\list \list
\li \l{Writing Code} \li \l{Writing Code}
\list \list
\li \l{Viewing Output}
\li \l{Semantic Highlighting} \li \l{Semantic Highlighting}
\li \l{Checking Code Syntax} \li \l{Checking Code Syntax}
\li \l{Completing Code} \li \l{Completing Code}

View File

@@ -36253,7 +36253,7 @@ Weitere Erklärungen sind möglicherweise in "Ausgabe der Anwendung" z
</message> </message>
<message> <message>
<source>The build device failed to prepare for the build of %1 (%2).</source> <source>The build device failed to prepare for the build of %1 (%2).</source>
<translation>Das Build-Gerät konnte nicht für das Erstellen von %1 (%2) vorbereitet werden.</translation> <translation>Das Gerät konnte nicht für das Erstellen von %1 (%2) vorbereitet werden.</translation>
</message> </message>
<message> <message>
<source>Compile</source> <source>Compile</source>
@@ -36395,7 +36395,7 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message> </message>
<message> <message>
<source>Locates files of all open projects. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source> <source>Locates files of all open projects. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
<translation type="unfinished"></translation> <translation>Findet Dateien in allen geöffneten Projekten. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message> </message>
<message> <message>
<source>All Projects</source> <source>All Projects</source>
@@ -36495,7 +36495,7 @@ Außer: %2
</message> </message>
<message> <message>
<source>Locates files from the current document&apos;s project. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source> <source>Locates files from the current document&apos;s project. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
<translation type="unfinished"></translation> <translation>Findet Dateien im Projekt des aktuellen Dokuments. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message> </message>
<message> <message>
<source>Project &quot;%1&quot;</source> <source>Project &quot;%1&quot;</source>
@@ -37215,23 +37215,23 @@ Bitte versuchen Sie es erneut.</translation>
</message> </message>
<message> <message>
<source>Locates files from all project directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source> <source>Locates files from all project directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
<translation type="unfinished"></translation> <translation>Findet Dateien in allen Projektverzeichnissen. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message> </message>
<message> <message>
<source>Run Run Configuration</source> <source>Run Run Configuration</source>
<translation type="unfinished"></translation> <translation>Ausführungskonfiguration ausführen</translation>
</message> </message>
<message> <message>
<source>Runs a run configuration of the active project.</source> <source>Runs a run configuration of the active project.</source>
<translation type="unfinished"></translation> <translation>Führt eine Ausführungskonfiguration des aktiven Projekts aus.</translation>
</message> </message>
<message> <message>
<source>Switch Run Configuration</source> <source>Switch Run Configuration</source>
<translation type="unfinished"></translation> <translation>Ausführungskonfiguration auswählen</translation>
</message> </message>
<message> <message>
<source>Switches the active run configuration of the active project.</source> <source>Switches the active run configuration of the active project.</source>
<translation type="unfinished"></translation> <translation>Wechselt die aktive Ausführungskonfiguration des aktiven Projekts.</translation>
</message> </message>
<message> <message>
<source>Run %1</source> <source>Run %1</source>
@@ -37869,7 +37869,7 @@ The name of the build configuration created by default for a generic project.</e
</message> </message>
<message> <message>
<source>Environment:</source> <source>Environment:</source>
<translation type="unfinished">Umgebung:</translation> <translation>Umgebung:</translation>
</message> </message>
<message> <message>
<source>No executable specified.</source> <source>No executable specified.</source>
@@ -38167,12 +38167,12 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
</message> </message>
<message> <message>
<source>&amp;Start Wizard to Add Device...</source> <source>&amp;Start Wizard to Add Device...</source>
<translation type="unfinished"></translation> <translation>Gerät mit &amp;Assistent hinzufügen...</translation>
</message> </message>
<message> <message>
<source>Add %1</source> <source>Add %1</source>
<extracomment>Add &lt;Device Type Name&gt;</extracomment> <extracomment>Add &lt;Device Type Name&gt;</extracomment>
<translation type="unfinished"></translation> <translation>%1 hinzufügen</translation>
</message> </message>
<message> <message>
<source>Yes (id is &quot;%1&quot;)</source> <source>Yes (id is &quot;%1&quot;)</source>
@@ -38475,7 +38475,7 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
</message> </message>
<message> <message>
<source>Show in Application Output when running</source> <source>Show in Application Output when running</source>
<translation type="unfinished"></translation> <translation>Beim Start in &quot;Ausgabe der Anwendung&quot; anzeigen</translation>
</message> </message>
<message> <message>
<source>No device configured.</source> <source>No device configured.</source>
@@ -38756,7 +38756,7 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
</message> </message>
<message> <message>
<source>Ignoring invalid task (no text).</source> <source>Ignoring invalid task (no text).</source>
<translation type="unfinished"></translation> <translation>Ignoriere ungültige Aufgabe (kein Text).</translation>
</message> </message>
<message> <message>
<source>File Error</source> <source>File Error</source>
@@ -39036,47 +39036,57 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
<source>Creates a widget-based Qt application that contains a Qt Designer-based main window and C++ source and header files to implement the application logic. <source>Creates a widget-based Qt application that contains a Qt Designer-based main window and C++ source and header files to implement the application logic.
Preselects a desktop Qt for building the application if available.</source> Preselects a desktop Qt for building the application if available.</source>
<translation type="unfinished"></translation> <translation>Erstellt eine Widget-basierte Qt-Anwendung mit einem Qt Designer-basierten Hauptfenster und C++-Quell- und Headerdateien zur Implementierung der Applikationslogik.
Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern verfügbar.</translation>
</message> </message>
<message> <message>
<source>Creates a C++ library. You can create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;</source> <source>Creates a C++ library. You can create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;</source>
<translation type="unfinished"></translation> <translation>Erstellt eine C++-Bibliothek. Sie können folgendes erstellen:&lt;ul&gt;&lt;li&gt;eine dynamisch gebundene C++-Bibliothek zur Verwendung mit &lt;tt&gt;QPluginLoader&lt;/tt&gt; zur Laufzeit (Plugins)&lt;/li&gt;&lt;li&gt;eine statisch oder dynamisch gebundene C++-Bibliothek zur Verwendung in einem anderen Projekt zur Linkzeit&lt;/li&gt;&lt;/ul&gt;</translation>
</message> </message>
<message> <message>
<source>Creates a project containing a single main.cpp file with a stub implementation and no graphical UI. <source>Creates a project containing a single main.cpp file with a stub implementation and no graphical UI.
Preselects a desktop Qt for building the application if available.</source> Preselects a desktop Qt for building the application if available.</source>
<translation type="unfinished"></translation> <translation>Erstellt ein Projekt, das aus einer main.cpp-Datei mit einem Implementationsrumpf ohne grafische Benutzeroberfläche besteht.
Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern verfügbar.</translation>
</message> </message>
<message> <message>
<source>PySide 2</source> <source>PySide 2</source>
<translation type="unfinished">PySide 2</translation> <translation>PySide 2</translation>
</message> </message>
<message> <message>
<source>Define Python Interpreter</source> <source>Define Python Interpreter</source>
<translation type="unfinished"></translation> <translation>Python-Interpreter festlegen</translation>
</message> </message>
<message> <message>
<source>Creates a Qt Quick application that contains an empty window. <source>Creates a Qt Quick application that contains an empty window.
Use this &quot;compat&quot; version if you want to use other build systems than CMake or Qt versions lower than 6.</source> Use this &quot;compat&quot; version if you want to use other build systems than CMake or Qt versions lower than 6.</source>
<translation type="unfinished"></translation> <translation>Erstellt eine Qt Quick-Anwendung, die ein leeres Fenster enthält.
Nutzen Sie diese &quot;Kompatibilitätsversion&quot;, falls Sie andere Buildsysteme als CMake oder frühere Qt-Versionen als Qt 6 benutzen wollen.</translation>
</message> </message>
<message> <message>
<source>Qt Quick Application (compat)</source> <source>Qt Quick Application (compat)</source>
<translation type="unfinished"></translation> <translation>Qt Quick-Anwendung (compat)</translation>
</message> </message>
<message> <message>
<source>Creates a Qt Quick UI project for previewing and prototyping designs. <source>Creates a Qt Quick UI project for previewing and prototyping designs.
To develop a full application, create a Qt Quick Application project instead.</source> To develop a full application, create a Qt Quick Application project instead.</source>
<translation type="unfinished"></translation> <translation>Erstellt ein Qt Quick UI-Projekt für Vorschauen und Design-Prototypen.
Für vollständige Anwendungen erstellen Sie stattdessen eine Qt Quick-Anwendung.</translation>
</message> </message>
<message> <message>
<source>Creates a Qt Quick application that can have both QML and C++ code. You can build the application and deploy it to desktop, embedded, and mobile target platforms. <source>Creates a Qt Quick application that can have both QML and C++ code. You can build the application and deploy it to desktop, embedded, and mobile target platforms.
You can select an option to create a project that you can open in Qt Design Studio, which has a visual editor for Qt Quick UIs.</source> You can select an option to create a project that you can open in Qt Design Studio, which has a visual editor for Qt Quick UIs.</source>
<translation type="unfinished"></translation> <translation>Erstellt eine Qt Quick-Anwendung, die aus QML- und C++-Code bestehen kann. Unterstützt das Erstellen und Deployment der Anwendung für Desktop, Embedded und Mobile Zielplattformen.
Wahlweise können Sie ein Projekt erstellen, das in Qt Design Studio geöffnet werden kann, welches einen visuellen Editor für Qt Quick-Benutzeroberflächen enthält.</translation>
</message> </message>
<message> <message>
<source>Qt Quick Application</source> <source>Qt Quick Application</source>
@@ -39088,11 +39098,11 @@ You can select an option to create a project that you can open in Qt Design Stud
</message> </message>
<message> <message>
<source>Boost Test (header only)</source> <source>Boost Test (header only)</source>
<translation type="unfinished"></translation> <translation>Boost Test (nur Header)</translation>
</message> </message>
<message> <message>
<source>Boost Test (shared libraries)</source> <source>Boost Test (shared libraries)</source>
<translation type="unfinished"></translation> <translation>Boost Test (dynamisch gebundene Bibliotheken)</translation>
</message> </message>
<message> <message>
<source>Test framework:</source> <source>Test framework:</source>
@@ -39108,7 +39118,7 @@ You can select an option to create a project that you can open in Qt Design Stud
</message> </message>
<message> <message>
<source>Boost install directory (optional):</source> <source>Boost install directory (optional):</source>
<translation type="unfinished"></translation> <translation>Boost-Installationsverzeichnis (optional):</translation>
</message> </message>
<message> <message>
<source>Creates a new unit test project. Unit tests allow you to verify that the code is fit for use and that there are no regressions.</source> <source>Creates a new unit test project. Unit tests allow you to verify that the code is fit for use and that there are no regressions.</source>
@@ -39136,11 +39146,11 @@ You can select an option to create a project that you can open in Qt Design Stud
</message> </message>
<message> <message>
<source>Creates a markdown file.</source> <source>Creates a markdown file.</source>
<translation type="unfinished"></translation> <translation>Erzeugt eine Markdown-Datei.</translation>
</message> </message>
<message> <message>
<source>Markdown File</source> <source>Markdown File</source>
<translation type="unfinished"></translation> <translation>Markdown-Datei</translation>
</message> </message>
<message> <message>
<source>Creates a Java file with boilerplate code.</source> <source>Creates a Java file with boilerplate code.</source>
@@ -39198,27 +39208,29 @@ You can select an option to create a project that you can open in Qt Design Stud
<source>You must tell Qt Creator which test framework is used inside the project. <source>You must tell Qt Creator which test framework is used inside the project.
You should not mix multiple test frameworks in a project.</source> You should not mix multiple test frameworks in a project.</source>
<translation type="unfinished"></translation> <translation>Sie müssen Qt Creator mitteilen, welches Test-Framework im Projekt benutzt wird.
Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translation>
</message> </message>
<message> <message>
<source>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.&apos; + Util.preferredSuffix(&apos;text/x-c++src&apos;)}</source> <source>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.&apos; + Util.preferredSuffix(&apos;text/x-c++src&apos;)}</source>
<translation type="unfinished"></translation> <translation>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.&apos; + Util.preferredSuffix(&apos;text/x-c++src&apos;)}</translation>
</message> </message>
<message> <message>
<source>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.qml&apos;}</source> <source>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.qml&apos;}</source>
<translation type="unfinished"></translation> <translation>%{JS: &apos;tst_&apos; + value(&apos;TestCaseName&apos;).toLowerCase() + &apos;.qml&apos;}</translation>
</message> </message>
<message> <message>
<source>Test Information</source> <source>Test Information</source>
<translation type="unfinished"></translation> <translation>Testinformation</translation>
</message> </message>
<message> <message>
<source>Creates a source file that you can add to an existing test project.</source> <source>Creates a source file that you can add to an existing test project.</source>
<translation type="unfinished"></translation> <translation>Erstellt eine Quelldatei, die zu einem existierenden Testprojekt hinzugefügt werden kann.</translation>
</message> </message>
<message> <message>
<source>Test Case</source> <source>Test Case</source>
<translation type="unfinished"></translation> <translation>Testfall</translation>
</message> </message>
<message> <message>
<source>Creates an empty Nim script file using UTF-8 charset.</source> <source>Creates an empty Nim script file using UTF-8 charset.</source>
@@ -39836,11 +39848,11 @@ You should not mix multiple test frameworks in a project.</source>
</message> </message>
<message> <message>
<source>Qt 6.4</source> <source>Qt 6.4</source>
<translation type="unfinished">Qt 6.4</translation> <translation>Qt 6.4</translation>
</message> </message>
<message> <message>
<source>Qt 6.5</source> <source>Qt 6.5</source>
<translation type="unfinished">Qt 6.5</translation> <translation>Qt 6.5</translation>
</message> </message>
<message> <message>
<source>The minimum version of Qt you want to build the application for.</source> <source>The minimum version of Qt you want to build the application for.</source>
@@ -39890,7 +39902,7 @@ You should not mix multiple test frameworks in a project.</source>
</message> </message>
<message> <message>
<source>Creates a CMake-based test project where you can enter a code snippet to compile and check it.</source> <source>Creates a CMake-based test project where you can enter a code snippet to compile and check it.</source>
<translation type="unfinished"></translation> <translation>Erstellt ein CMake-basiertes Testprojekt, für welches Sie einen Code-Ausschnitt angegeben können, der erstellt und geprüft wird.</translation>
</message> </message>
<message> <message>
<source>Code Snippet</source> <source>Code Snippet</source>
@@ -41019,7 +41031,7 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>Enter the path to the executable</source> <source>Enter the path to the executable</source>
<translation type="unfinished"></translation> <translation>Geben Sie den Pfad zur ausführbaren Datei ein</translation>
</message> </message>
<message> <message>
<source>Executable:</source> <source>Executable:</source>
@@ -41051,7 +41063,7 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>Interpreter:</source> <source>Interpreter:</source>
<translation type="unfinished"></translation> <translation>Interpreter:</translation>
</message> </message>
<message> <message>
<source>X11 Forwarding:</source> <source>X11 Forwarding:</source>
@@ -41217,7 +41229,7 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>The build directory is not reachable from the build device.</source> <source>The build directory is not reachable from the build device.</source>
<translation>Das Build-Verzeichnis kann auf dem Build-Gerät nicht erreicht werden.</translation> <translation>Das Build-Verzeichnis kann auf dem Gerät nicht erreicht werden.</translation>
</message> </message>
<message> <message>
<source>Shadow build:</source> <source>Shadow build:</source>
@@ -41333,7 +41345,7 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>Run device type</source> <source>Run device type</source>
<translation type="unfinished"></translation> <translation>Gerätetyp (Ausführung)</translation>
</message> </message>
<message> <message>
<source>Unknown device type</source> <source>Unknown device type</source>
@@ -41341,7 +41353,7 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>Run device</source> <source>Run device</source>
<translation type="unfinished"></translation> <translation>Gerät (Ausführung)</translation>
</message> </message>
<message> <message>
<source>The device to run the applications on.</source> <source>The device to run the applications on.</source>
@@ -41377,11 +41389,11 @@ Was soll %1 tun?</translation>
</message> </message>
<message> <message>
<source>Device root directory</source> <source>Device root directory</source>
<translation type="unfinished"></translation> <translation>Wurzelverzeichnis des Geräts</translation>
</message> </message>
<message> <message>
<source>Build device root directory</source> <source>Build device root directory</source>
<translation type="unfinished"></translation> <translation>Wurzelverzeichnis des Geräts (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Change...</source> <source>Change...</source>
@@ -41790,7 +41802,7 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>Build device</source> <source>Build device</source>
<translation>Build-Gerät</translation> <translation>Gerät (Erstellung)</translation>
</message> </message>
<message> <message>
<source>The device used to build applications on.</source> <source>The device used to build applications on.</source>
@@ -41798,27 +41810,27 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>No build device set.</source> <source>No build device set.</source>
<translation>Kein Build-Gerät gesetzt.</translation> <translation>Kein Gerät für die Erstellung gesetzt.</translation>
</message> </message>
<message> <message>
<source>Build host address</source> <source>Build host address</source>
<translation>Hostadresse des Build-Geräts</translation> <translation>Hostadresse des Geräts (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Build SSH port</source> <source>Build SSH port</source>
<translation>SSH-Port des Build-Geräts</translation> <translation>SSH-Port des Geräts (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Build user name</source> <source>Build user name</source>
<translation>Benutzername des Build-Geräts</translation> <translation>Benutzername des Geräts (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Build private key file</source> <source>Build private key file</source>
<translation>Private Schlüsseldatei des Build-Geräts</translation> <translation>Private Schlüsseldatei des Geräts (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Build device name</source> <source>Build device name</source>
<translation>Build-Gerätename</translation> <translation>Gerätename (Erstellung)</translation>
</message> </message>
<message> <message>
<source>Run as root user</source> <source>Run as root user</source>
@@ -41879,29 +41891,29 @@ fails because Clang does not understand the target architecture.</source>
</message> </message>
<message> <message>
<source>Source:</source> <source>Source:</source>
<translation type="unfinished">Quelle:</translation> <translation>Quelle:</translation>
</message> </message>
<message> <message>
<source>Target:</source> <source>Target:</source>
<translation type="unfinished">Ziel:</translation> <translation>Ziel:</translation>
</message> </message>
<message> <message>
<source>Copying failed.</source> <source>Copying failed.</source>
<translation type="unfinished"></translation> <translation>Fehler beim Kopieren.</translation>
</message> </message>
<message> <message>
<source>Copying finished.</source> <source>Copying finished.</source>
<translation type="unfinished"></translation> <translation>Kopieren beendet.</translation>
</message> </message>
<message> <message>
<source>Copy file</source> <source>Copy file</source>
<extracomment>Default CopyStep display name</extracomment> <extracomment>Default CopyStep display name</extracomment>
<translation type="unfinished"></translation> <translation>Datei kopieren</translation>
</message> </message>
<message> <message>
<source>Copy directory recursively</source> <source>Copy directory recursively</source>
<extracomment>Default CopyStep display name</extracomment> <extracomment>Default CopyStep display name</extracomment>
<translation type="unfinished"></translation> <translation>Verzeichnis rekursiv kopieren</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -49641,211 +49653,211 @@ Failed to open file &quot;%1&quot;</source>
<name>QtC::Terminal</name> <name>QtC::Terminal</name>
<message> <message>
<source>Configure...</source> <source>Configure...</source>
<translation type="unfinished">Einstellungen...</translation> <translation>Einstellungen...</translation>
</message> </message>
<message> <message>
<source>Sends Esc to terminal instead of Qt Creator.</source> <source>Sends Esc to terminal instead of Qt Creator.</source>
<translation type="unfinished"></translation> <translation>Sendet Escape zum Terminal statt zu Qt Creator.</translation>
</message> </message>
<message> <message>
<source>Press %1 to send Esc to terminal.</source> <source>Press %1 to send Esc to terminal.</source>
<translation type="unfinished"></translation> <translation>Drücken Sie %1, um Escape zum Terminal zu senden.</translation>
</message> </message>
<message> <message>
<source>Terminal</source> <source>Terminal</source>
<translation type="unfinished">Terminal</translation> <translation>Terminal</translation>
</message> </message>
<message> <message>
<source>Sends keyboard shortcuts to Terminal.</source> <source>Sends keyboard shortcuts to Terminal.</source>
<translation type="unfinished"></translation> <translation>Sendet Tastenkombinationen zum Terminal.</translation>
</message> </message>
<message> <message>
<source>Sends keyboard shortcuts to Qt Creator.</source> <source>Sends keyboard shortcuts to Qt Creator.</source>
<translation type="unfinished"></translation> <translation>Sendet Tastenkombinationen zu Qt Creator.</translation>
</message> </message>
<message> <message>
<source>New Terminal</source> <source>New Terminal</source>
<translation type="unfinished"></translation> <translation>Neues Terminal</translation>
</message> </message>
<message> <message>
<source>Create a new Terminal.</source> <source>Create a new Terminal.</source>
<translation type="unfinished"></translation> <translation>Erstelle ein neues Terminal.</translation>
</message> </message>
<message> <message>
<source>Next Terminal</source> <source>Next Terminal</source>
<translation type="unfinished"></translation> <translation>Nächstes Terminal</translation>
</message> </message>
<message> <message>
<source>Previous Terminal</source> <source>Previous Terminal</source>
<translation type="unfinished"></translation> <translation>Vorangehendes Terminal</translation>
</message> </message>
<message> <message>
<source>Close the current Terminal.</source> <source>Close the current Terminal.</source>
<translation type="unfinished"></translation> <translation>Das aktuelle Terminal schließen.</translation>
</message> </message>
<message> <message>
<source>Devices</source> <source>Devices</source>
<translation type="unfinished">Geräte</translation> <translation>Geräte</translation>
</message> </message>
<message> <message>
<source>The color used for %1.</source> <source>The color used for %1.</source>
<translation type="unfinished"></translation> <translation>Die für &quot;%1&quot; benutzte Farbe.</translation>
</message> </message>
<message> <message>
<source>Failed to open file.</source> <source>Failed to open file.</source>
<translation type="unfinished"></translation> <translation>Datei konnte nicht geöffnet werden.</translation>
</message> </message>
<message> <message>
<source>JSON parsing error: &quot;%1&quot;, at offset: %2</source> <source>JSON parsing error: &quot;%1&quot;, at offset: %2</source>
<translation type="unfinished"></translation> <translation>Fehler beim Auswerten von JSON: &quot;%1&quot;, an Position: %2</translation>
</message> </message>
<message> <message>
<source>No colors found.</source> <source>No colors found.</source>
<translation type="unfinished"></translation> <translation>Es wurden keine Farben gefunden.</translation>
</message> </message>
<message> <message>
<source>Invalid color format.</source> <source>Invalid color format.</source>
<translation type="unfinished"></translation> <translation>Ungültiges Farbformat.</translation>
</message> </message>
<message> <message>
<source>Unknown color scheme format.</source> <source>Unknown color scheme format.</source>
<translation type="unfinished"></translation> <translation>Unbekanntes Farbschema-Format.</translation>
</message> </message>
<message> <message>
<source>Use internal terminal</source> <source>Use internal terminal</source>
<translation type="unfinished"></translation> <translation>Integriertes Terminal benutzen</translation>
</message> </message>
<message> <message>
<source>Uses the internal terminal when &quot;Run In Terminal&quot; is enabled and for &quot;Open Terminal here&quot;.</source> <source>Uses the internal terminal when &quot;Run In Terminal&quot; is enabled and for &quot;Open Terminal here&quot;.</source>
<translation type="unfinished"></translation> <translation>Benutzt das integrierte Terminal, wenn &quot;Im Terminal ausführen&quot; aktiviert ist und für &quot;Terminalfenster hier öffnen&quot;.</translation>
</message> </message>
<message> <message>
<source>Family:</source> <source>Family:</source>
<translation type="unfinished">Name:</translation> <translation>Name:</translation>
</message> </message>
<message> <message>
<source>The font family used in the terminal.</source> <source>The font family used in the terminal.</source>
<translation type="unfinished"></translation> <translation>Der Name der Zeichensatz-Familie, die im Terminal benutzt wird.</translation>
</message> </message>
<message> <message>
<source>Size:</source> <source>Size:</source>
<translation type="unfinished">Größe:</translation> <translation>Größe:</translation>
</message> </message>
<message> <message>
<source>The font size used in the terminal (in points).</source> <source>The font size used in the terminal (in points).</source>
<translation type="unfinished"></translation> <translation>Die Größe des Zeichensatzes, der im Terminal benutzt wird (in Punkten).</translation>
</message> </message>
<message> <message>
<source>Allow blinking cursor</source> <source>Allow blinking cursor</source>
<translation type="unfinished"></translation> <translation>Blinkenden Cursor erlauben</translation>
</message> </message>
<message> <message>
<source>Allow the cursor to blink.</source> <source>Allow the cursor to blink.</source>
<translation type="unfinished"></translation> <translation>Erlaubt dem Cursor zu blinken.</translation>
</message> </message>
<message> <message>
<source>Shell path:</source> <source>Shell path:</source>
<translation type="unfinished"></translation> <translation>Shell-Pfad:</translation>
</message> </message>
<message> <message>
<source>The shell executable to be started.</source> <source>The shell executable to be started.</source>
<translation type="unfinished"></translation> <translation>Die ausführbare Datei der Shell, die gestartet werden soll.</translation>
</message> </message>
<message> <message>
<source>Shell arguments:</source> <source>Shell arguments:</source>
<translation type="unfinished"></translation> <translation>Shell-Argumente:</translation>
</message> </message>
<message> <message>
<source>The arguments to be passed to the shell.</source> <source>The arguments to be passed to the shell.</source>
<translation type="unfinished"></translation> <translation>Die Argumente, die an die Shell übergeben werden sollen.</translation>
</message> </message>
<message> <message>
<source>Send escape key to terminal</source> <source>Send escape key to terminal</source>
<translation type="unfinished"></translation> <translation>Escape-Taste zum Terminal senden</translation>
</message> </message>
<message> <message>
<source>Sends the escape key to the terminal when pressedinstead of closing the terminal.</source> <source>Sends the escape key to the terminal when pressedinstead of closing the terminal.</source>
<translation type="unfinished"></translation> <translation>Sendet die Escape-Taste zum Terminal, anstatt das Terminal zu schliessen.</translation>
</message> </message>
<message> <message>
<source>Audible bell</source> <source>Audible bell</source>
<translation type="unfinished"></translation> <translation>Akustische Glocke</translation>
</message> </message>
<message> <message>
<source>Makes the terminal beep when a bell character is received.</source> <source>Makes the terminal beep when a bell character is received.</source>
<translation type="unfinished"></translation> <translation>Lässt das Terminal piepen, wenn ein Glockenzeichen empfangen wird.</translation>
</message> </message>
<message> <message>
<source>Load Theme...</source> <source>Load Theme...</source>
<translation type="unfinished"></translation> <translation>Thema laden...</translation>
</message> </message>
<message> <message>
<source>Reset Theme</source> <source>Reset Theme</source>
<translation type="unfinished"></translation> <translation>Thema zurücksetzen</translation>
</message> </message>
<message> <message>
<source>Error</source> <source>Error</source>
<translation type="unfinished">Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<source>General</source> <source>General</source>
<translation type="unfinished">Allgemein</translation> <translation>Allgemein</translation>
</message> </message>
<message> <message>
<source>Font</source> <source>Font</source>
<translation type="unfinished">Zeichensatz</translation> <translation>Zeichensatz</translation>
</message> </message>
<message> <message>
<source>Colors</source> <source>Colors</source>
<translation type="unfinished"></translation> <translation>Farben</translation>
</message> </message>
<message> <message>
<source>Foreground</source> <source>Foreground</source>
<translation type="unfinished"></translation> <translation>Zeichen</translation>
</message> </message>
<message> <message>
<source>Background</source> <source>Background</source>
<translation type="unfinished"></translation> <translation>Hintergrund</translation>
</message> </message>
<message> <message>
<source>Selection</source> <source>Selection</source>
<translation type="unfinished">Auswahl</translation> <translation>Auswahl</translation>
</message> </message>
<message> <message>
<source>Find match</source> <source>Find match</source>
<translation type="unfinished"></translation> <translation>Fundstelle</translation>
</message> </message>
<message> <message>
<source>Default Shell</source> <source>Default Shell</source>
<translation type="unfinished"></translation> <translation>Vorgabe-Shell</translation>
</message> </message>
<message> <message>
<source>Copy</source> <source>Copy</source>
<translation type="unfinished">Kopieren</translation> <translation>Kopieren</translation>
</message> </message>
<message> <message>
<source>Paste</source> <source>Paste</source>
<translation type="unfinished">Einfügen</translation> <translation>Einfügen</translation>
</message> </message>
<message> <message>
<source>Clear Selection</source> <source>Clear Selection</source>
<translation type="unfinished">Auswahl löschen</translation> <translation>Auswahl löschen</translation>
</message> </message>
<message> <message>
<source>Clear Terminal</source> <source>Clear Terminal</source>
<translation type="unfinished"></translation> <translation>Terminal-Inhalt löschen</translation>
</message> </message>
<message> <message>
<source>Move Cursor Word Left</source> <source>Move Cursor Word Left</source>
<translation type="unfinished"></translation> <translation>Cursor ein Wort nach links bewegen</translation>
</message> </message>
<message> <message>
<source>Move Cursor Word Right</source> <source>Move Cursor Word Right</source>
<translation type="unfinished"></translation> <translation>Cursor ein Wort nach rechts bewegen</translation>
</message> </message>
<message> <message>
<source>Close Terminal</source> <source>Close Terminal</source>
<translation type="unfinished"></translation> <translation>Terminal schließen</translation>
</message> </message>
</context> </context>
<context> <context>

View File

@@ -218,14 +218,6 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
template<class OutputContainer, class InputContainer1, class InputContainer2, class Merge> template<class OutputContainer, class InputContainer1, class InputContainer2, class Merge>
OutputContainer setUnionMerge(InputContainer1 &&input1, InputContainer2 &&input2, Merge merge); OutputContainer setUnionMerge(InputContainer1 &&input1, InputContainer2 &&input2, Merge merge);
/////////////////////////
// usize / ssize
/////////////////////////
template<typename Container>
std::make_unsigned_t<typename Container::size_type> usize(Container container);
template<typename Container>
std::make_signed_t<typename Container::size_type> ssize(Container container);
///////////////////////// /////////////////////////
// setUnion // setUnion
///////////////////////// /////////////////////////
@@ -1340,15 +1332,15 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
} }
template<typename Container> template<typename Container>
std::make_unsigned_t<typename Container::size_type> usize(Container container) auto usize(const Container &container)
{ {
return static_cast<std::make_unsigned_t<typename Container::size_type>>(container.size()); return static_cast<std::make_unsigned_t<decltype(std::size(container))>>(std::size(container));
} }
template<typename Container> template<typename Container>
std::make_signed_t<typename Container::size_type> ssize(Container container) auto ssize(const Container &container)
{ {
return static_cast<std::make_signed_t<typename Container::size_type>>(container.size()); return static_cast<std::make_signed_t<decltype(std::size(container))>>(std::size(container));
} }
template<typename Compare> template<typename Compare>

View File

@@ -21,7 +21,7 @@ ProcessStubCreator::ProcessStubCreator(TerminalInterface *interface)
: m_interface(interface) : m_interface(interface)
{} {}
static const QLatin1String TerminalAppScript{R"( static const QLatin1String TerminalAppScriptAttached{R"(
tell application "Terminal" tell application "Terminal"
activate activate
set newTab to do script "%1 && exit" set newTab to do script "%1 && exit"
@@ -33,14 +33,27 @@ static const QLatin1String TerminalAppScript{R"(
end tell end tell
)"}; )"};
static const QLatin1String TerminalAppScriptDetached{R"(
tell application "Terminal"
activate
do script "%1 && exit"
end tell
)"};
struct AppScript
{
QString attached;
QString detached;
};
expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData &setupData) expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData &setupData)
{ {
const TerminalCommand terminal = TerminalCommand::terminalEmulator(); const TerminalCommand terminal = TerminalCommand::terminalEmulator();
bool detached = setupData.m_terminalMode == TerminalMode::Detached; bool detached = setupData.m_terminalMode == TerminalMode::Detached;
if (HostOsInfo::isMacHost()) { if (HostOsInfo::isMacHost()) {
static const QMap<QString, QString> terminalMap = { static const QMap<QString, AppScript> terminalMap = {
{"Terminal.app", TerminalAppScript}, {"Terminal.app", {TerminalAppScriptAttached, TerminalAppScriptDetached}},
}; };
if (terminalMap.contains(terminal.command.toString())) { if (terminalMap.contains(terminal.command.toString())) {
@@ -48,29 +61,36 @@ expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData
= Utils::transform(setupData.m_environment.toStringList(), [](const QString &env) { = Utils::transform(setupData.m_environment.toStringList(), [](const QString &env) {
return CommandLine{"export", {env}}.toUserOutput(); return CommandLine{"export", {env}}.toUserOutput();
}).join('\n'); }).join('\n');
const QString shScript = QString("cd '%1'\n%2\nclear\n'%3' %4\n")
Process *process = new Process(detached ? nullptr : this);
if (detached) {
QObject::connect(process, &Process::done, process, &Process::deleteLater);
}
QTemporaryFile shFile;
shFile.setAutoRemove(false);
QTC_ASSERT(shFile.open(),
return make_unexpected(Tr::tr("Failed to open temporary script file.")));
const QString shScript = QString("cd '%1'\n%2\nclear\n'%3' %4\nrm '%5'\n")
.arg(setupData.m_workingDirectory.nativePath()) .arg(setupData.m_workingDirectory.nativePath())
.arg(env) .arg(env)
.arg(setupData.m_commandLine.executable().nativePath()) .arg(setupData.m_commandLine.executable().nativePath())
.arg(setupData.m_commandLine.arguments()); .arg(setupData.m_commandLine.arguments())
.arg(shFile.fileName());
Process *process = new Process(detached ? nullptr : this); shFile.write(shScript.toUtf8());
if (detached) shFile.close();
QObject::connect(process, &Process::done, process, &Process::deleteLater);
QTemporaryFile *shFile = new QTemporaryFile(process); FilePath::fromUserInput(shFile.fileName())
QTC_ASSERT(shFile->open(),
return make_unexpected(Tr::tr("Failed to open temporary script file.")));
shFile->write(shScript.toUtf8());
shFile->close();
FilePath::fromUserInput(shFile->fileName())
.setPermissions(QFile::ExeUser | QFile::ExeGroup | QFile::ExeOther | QFile::ReadUser .setPermissions(QFile::ExeUser | QFile::ExeGroup | QFile::ExeOther | QFile::ReadUser
| QFile::ReadGroup | QFile::ReadOther | QFile::WriteUser | QFile::ReadGroup | QFile::ReadOther | QFile::WriteUser
| QFile::WriteGroup | QFile::WriteOther); | QFile::WriteGroup | QFile::WriteOther);
const QString script const QString script = (detached
= terminalMap.value(terminal.command.toString()).arg(shFile->fileName()); ? terminalMap.value(terminal.command.toString()).detached
: terminalMap.value(terminal.command.toString()).attached)
.arg(shFile.fileName());
process->setCommand({"osascript", {"-"}}); process->setCommand({"osascript", {"-"}});
process->setWriteData(script.toUtf8()); process->setWriteData(script.toUtf8());

View File

@@ -181,8 +181,9 @@ QList<Document::Ptr> QuickTestParser::scanDirectoryForQuickTestQmlFiles(const Fi
QList<Document::Ptr> foundDocs; QList<Document::Ptr> foundDocs;
const Snapshot snapshot = QmlJSTools::Internal::ModelManager::instance()->snapshot();
for (const FilePath &path : std::as_const(dirs)) { for (const FilePath &path : std::as_const(dirs)) {
const QList<Document::Ptr> docs = m_qmlSnapshot.documentsInDirectory(path); const QList<Document::Ptr> docs = snapshot.documentsInDirectory(path);
for (const Document::Ptr &doc : docs) { for (const Document::Ptr &doc : docs) {
const FilePath fi = doc->fileName(); const FilePath fi = doc->fileName();
//const QFileInfo fi(doc->fileName()); //const QFileInfo fi(doc->fileName());

View File

@@ -35,6 +35,7 @@ ClangFormatSettings::ClangFormatSettings()
usePredefinedStyle.setSettingsKey("usePredefinedStyle"); usePredefinedStyle.setSettingsKey("usePredefinedStyle");
usePredefinedStyle.setLabelText(Tr::tr("Use predefined style:")); usePredefinedStyle.setLabelText(Tr::tr("Use predefined style:"));
usePredefinedStyle.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
usePredefinedStyle.setDefaultValue(true); usePredefinedStyle.setDefaultValue(true);
predefinedStyle.setSettingsKey("predefinedStyle"); predefinedStyle.setSettingsKey("predefinedStyle");

View File

@@ -59,26 +59,6 @@ void ClangEditorDocumentProcessor::semanticRehighlight()
BuiltinEditorDocumentProcessor::semanticRehighlight(); BuiltinEditorDocumentProcessor::semanticRehighlight();
} }
bool ClangEditorDocumentProcessor::hasProjectPart() const
{
return !m_projectPart.isNull();
}
CppEditor::ProjectPart::ConstPtr ClangEditorDocumentProcessor::projectPart() const
{
return m_projectPart;
}
void ClangEditorDocumentProcessor::clearProjectPart()
{
m_projectPart.clear();
}
::Utils::Id ClangEditorDocumentProcessor::diagnosticConfigId() const
{
return m_diagnosticConfigId;
}
void ClangEditorDocumentProcessor::setParserConfig( void ClangEditorDocumentProcessor::setParserConfig(
const CppEditor::BaseEditorDocumentParser::Configuration &config) const CppEditor::BaseEditorDocumentParser::Configuration &config)
{ {

View File

@@ -19,12 +19,6 @@ public:
void semanticRehighlight() override; void semanticRehighlight() override;
bool hasProjectPart() const;
CppEditor::ProjectPart::ConstPtr projectPart() const;
void clearProjectPart();
::Utils::Id diagnosticConfigId() const;
void setParserConfig(const CppEditor::BaseEditorDocumentParser::Configuration &config) override; void setParserConfig(const CppEditor::BaseEditorDocumentParser::Configuration &config) override;
CppEditor::BaseEditorDocumentParser::Configuration parserConfig(); CppEditor::BaseEditorDocumentParser::Configuration parserConfig();
@@ -37,8 +31,6 @@ signals:
private: private:
TextEditor::TextDocument &m_document; TextEditor::TextDocument &m_document;
CppEditor::ProjectPart::ConstPtr m_projectPart;
::Utils::Id m_diagnosticConfigId;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -232,9 +232,7 @@ ClangModelManagerSupport::ClangModelManagerSupport()
connect(modelManager, &CppModelManager::abstractEditorSupportRemoved, connect(modelManager, &CppModelManager::abstractEditorSupportRemoved,
this, &ClangModelManagerSupport::onAbstractEditorSupportRemoved); this, &ClangModelManagerSupport::onAbstractEditorSupportRemoved);
connect(modelManager, &CppModelManager::projectPartsUpdated, connect(modelManager, &CppModelManager::projectPartsUpdated,
this, &ClangModelManagerSupport::onProjectPartsUpdated); this, &ClangModelManagerSupport::updateLanguageClient);
connect(modelManager, &CppModelManager::projectPartsRemoved,
this, &ClangModelManagerSupport::onProjectPartsRemoved);
connect(modelManager, &CppModelManager::fallbackProjectPartUpdated, this, [this] { connect(modelManager, &CppModelManager::fallbackProjectPartUpdated, this, [this] {
if (sessionModeEnabled()) if (sessionModeEnabled())
return; return;
@@ -861,37 +859,6 @@ void ClangModelManagerSupport::onTextMarkContextMenuRequested(TextEditor::TextEd
} }
} }
using ClangEditorDocumentProcessors = QVector<ClangEditorDocumentProcessor *>;
static ClangEditorDocumentProcessors clangProcessors()
{
ClangEditorDocumentProcessors result;
for (const CppEditorDocumentHandle *editorDocument : cppModelManager()->cppEditorDocuments())
result.append(qobject_cast<ClangEditorDocumentProcessor *>(editorDocument->processor()));
return result;
}
void ClangModelManagerSupport::onProjectPartsUpdated(Project *project)
{
QTC_ASSERT(project, return);
updateLanguageClient(project);
QStringList projectPartIds;
const ProjectInfo::ConstPtr projectInfo = cppModelManager()->projectInfo(project);
QTC_ASSERT(projectInfo, return);
for (const ProjectPart::ConstPtr &projectPart : projectInfo->projectParts())
projectPartIds.append(projectPart->id());
onProjectPartsRemoved(projectPartIds);
}
void ClangModelManagerSupport::onProjectPartsRemoved(const QStringList &projectPartIds)
{
if (!projectPartIds.isEmpty())
reinitializeBackendDocuments(projectPartIds);
}
void ClangModelManagerSupport::onClangdSettingsChanged() void ClangModelManagerSupport::onClangdSettingsChanged()
{ {
const bool sessionMode = sessionModeEnabled(); const bool sessionMode = sessionModeEnabled();
@@ -940,21 +907,4 @@ void ClangModelManagerSupport::onClangdSettingsChanged()
} }
} }
static ClangEditorDocumentProcessors
clangProcessorsWithProjectParts(const QStringList &projectPartIds)
{
return ::Utils::filtered(clangProcessors(), [projectPartIds](ClangEditorDocumentProcessor *p) {
return p->hasProjectPart() && projectPartIds.contains(p->projectPart()->id());
});
}
void ClangModelManagerSupport::reinitializeBackendDocuments(const QStringList &projectPartIds)
{
const ClangEditorDocumentProcessors processors = clangProcessorsWithProjectParts(projectPartIds);
for (ClangEditorDocumentProcessor *processor : processors) {
processor->clearProjectPart();
processor->run();
}
}
} // ClangCodeModel::Internal } // ClangCodeModel::Internal

View File

@@ -81,12 +81,8 @@ private:
int lineNumber, int lineNumber,
QMenu *menu); QMenu *menu);
void onProjectPartsUpdated(ProjectExplorer::Project *project);
void onProjectPartsRemoved(const QStringList &projectPartIds);
void onClangdSettingsChanged(); void onClangdSettingsChanged();
void reinitializeBackendDocuments(const QStringList &projectPartIds);
void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument); void connectTextDocumentToTranslationUnit(TextEditor::TextDocument *textDocument);
void connectToWidgetsMarkContextMenuRequested(QWidget *editorWidget); void connectToWidgetsMarkContextMenuRequested(QWidget *editorWidget);

View File

@@ -7,7 +7,6 @@
#include "clangconstants.h" #include "clangconstants.h"
#include "clangdclient.h" #include "clangdclient.h"
#include "clangdiagnostictooltipwidget.h" #include "clangdiagnostictooltipwidget.h"
#include "clangeditordocumentprocessor.h"
#include "clangutils.h" #include "clangutils.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
@@ -49,46 +48,15 @@ Project *projectForCurrentEditor()
if (filePath.isEmpty()) if (filePath.isEmpty())
return nullptr; return nullptr;
if (auto processor = ClangEditorDocumentProcessor::get(filePath)) { if (ProjectPart::ConstPtr projectPart = projectPartForFile(filePath))
if (ProjectPart::ConstPtr projectPart = processor->projectPart()) return projectForProjectPart(*projectPart);
return projectForProjectPart(*projectPart);
}
return nullptr; return nullptr;
} }
enum class DiagnosticType { Clang, Tidy, Clazy };
DiagnosticType diagnosticType(const ClangDiagnostic &diagnostic)
{
if (!diagnostic.disableOption.isEmpty())
return DiagnosticType::Clang;
const DiagnosticTextInfo textInfo(diagnostic.text);
if (DiagnosticTextInfo::isClazyOption(textInfo.option()))
return DiagnosticType::Clazy;
return DiagnosticType::Tidy;
}
void disableDiagnosticInConfig(ClangDiagnosticConfig &config, const ClangDiagnostic &diagnostic) void disableDiagnosticInConfig(ClangDiagnosticConfig &config, const ClangDiagnostic &diagnostic)
{ {
switch (diagnosticType(diagnostic)) { config.setClangOptions(config.clangOptions() + QStringList(diagnostic.disableOption));
case DiagnosticType::Clang:
config.setClangOptions(config.clangOptions() + QStringList(diagnostic.disableOption));
break;
case DiagnosticType::Tidy:
config.setChecks(ClangToolType::Tidy, config.checks(ClangToolType::Tidy) + QString(",-")
+ DiagnosticTextInfo(diagnostic.text).option());
break;
case DiagnosticType::Clazy: {
const DiagnosticTextInfo textInfo(diagnostic.text);
const QString checkName = DiagnosticTextInfo::clazyCheckName(textInfo.option());
QStringList newChecks = config.checks(ClangToolType::Clazy).split(',');
newChecks.removeOne(checkName);
config.setChecks(ClangToolType::Clazy, newChecks.join(','));
break;
}
}
} }
ClangDiagnosticConfig diagnosticConfig() ClangDiagnosticConfig diagnosticConfig()
@@ -210,8 +178,10 @@ ClangDiagnostic convertDiagnostic(const ClangdDiagnostic &src,
target.severity = convertSeverity(*src.severity()); target.severity = convertSeverity(*src.severity());
const Diagnostic::Code code = src.code().value_or(Diagnostic::Code()); const Diagnostic::Code code = src.code().value_or(Diagnostic::Code());
const QString * const codeString = std::get_if<QString>(&code); const QString * const codeString = std::get_if<QString>(&code);
if (codeString && codeString->startsWith("-W")) if (codeString && codeString->startsWith("-W")) {
target.enableOption = *codeString; target.enableOption = *codeString;
target.disableOption = "-Wno-" + codeString->mid(2);
}
for (const CodeAction &codeAction : src.codeActions().value_or(QList<CodeAction>())) { for (const CodeAction &codeAction : src.codeActions().value_or(QList<CodeAction>())) {
const std::optional<WorkspaceEdit> edit = codeAction.edit(); const std::optional<WorkspaceEdit> edit = codeAction.edit();
if (!edit) if (!edit)
@@ -304,15 +274,17 @@ ClangdTextMark::ClangdTextMark(TextEditor::TextDocument *doc,
actions << action; actions << action;
// Remove diagnostic warning action // Remove diagnostic warning action
Project *project = projectForCurrentEditor(); if (!diag.disableOption.isEmpty()) {
if (project && isDiagnosticConfigChangable(project)) { if (Project * const project = projectForCurrentEditor();
action = new QAction(); project && isDiagnosticConfigChangable(project)) {
action->setIcon(Icons::BROKEN.icon()); action = new QAction();
action->setToolTip(Tr::tr("Disable Diagnostic in Current Project")); action->setIcon(Icons::BROKEN.icon());
QObject::connect(action, &QAction::triggered, [diag] { action->setToolTip(Tr::tr("Disable Diagnostic in Current Project"));
disableDiagnosticInCurrentProjectConfig(diag); QObject::connect(action, &QAction::triggered, [diag] {
}); disableDiagnosticInCurrentProjectConfig(diag);
actions << action; });
actions << action;
}
} }
return actions; return actions;
}); });

View File

@@ -754,6 +754,8 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
// Update QT_QMAKE_EXECUTABLE and CMAKE_C|XX_COMPILER config values // Update QT_QMAKE_EXECUTABLE and CMAKE_C|XX_COMPILER config values
updateConfigWithDirectoryData(config, data); updateConfigWithDirectoryData(config, data);
data->hasQmlDebugging = CMakeBuildConfiguration::hasQmlDebugging(config);
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")}; QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
if (buildConfigurationTypes.front().isEmpty()) { if (buildConfigurationTypes.front().isEmpty()) {
buildConfigurationTypes.clear(); buildConfigurationTypes.clear();
@@ -774,6 +776,13 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
DirectoryData *newData = new DirectoryData(*data); DirectoryData *newData = new DirectoryData(*data);
newData->cmakeBuildType = buildType; newData->cmakeBuildType = buildType;
// Handle QML Debugging
auto type = CMakeBuildConfigurationFactory::buildTypeFromByteArray(
newData->cmakeBuildType);
if (type == CMakeBuildConfigurationFactory::BuildTypeDebug
|| type == CMakeBuildConfigurationFactory::BuildTypeProfile)
newData->hasQmlDebugging = true;
result.emplace_back(newData); result.emplace_back(newData);
} }

View File

@@ -73,7 +73,7 @@ void CopilotPlugin::initialize()
connect(requestAction, &QAction::triggered, this, [this] { connect(requestAction, &QAction::triggered, this, [this] {
if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget()) { if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget()) {
if (m_client->reachable()) if (m_client && m_client->reachable())
m_client->requestCompletions(editor); m_client->requestCompletions(editor);
} }
}); });

View File

@@ -130,8 +130,8 @@ void ProgressView::mousePressEvent(QMouseEvent *ev)
static QPoint boundedInParent(QWidget *widget, const QPoint &pos, QWidget *parent) static QPoint boundedInParent(QWidget *widget, const QPoint &pos, QWidget *parent)
{ {
QPoint bounded = pos; QPoint bounded = pos;
bounded.setX(qBound(widget->rect().width(), bounded.x(), parent->width())); bounded.setX(std::max(widget->rect().width(), std::min(bounded.x(), parent->width())));
bounded.setY(qBound(widget->rect().height(), bounded.y(), parent->height())); bounded.setY(std::max(widget->rect().height(), std::min(bounded.y(), parent->height())));
return bounded; return bounded;
} }

View File

@@ -609,6 +609,7 @@ bool SessionManager::loadSession(const QString &session, bool initial)
return true; return true;
} }
} else if (loadImplicitDefault) { } else if (loadImplicitDefault) {
emit SessionManager::instance()->sessionLoaded(DEFAULT_SESSION);
return true; return true;
} }

View File

@@ -492,6 +492,7 @@ void ClangdProjectSettings::setDiagnosticConfigId(Utils::Id configId)
{ {
m_customSettings.diagnosticConfigId = configId; m_customSettings.diagnosticConfigId = configId;
saveSettings(); saveSettings();
emit ClangdSettings::instance().changed();
} }
void ClangdProjectSettings::blockIndexing() void ClangdProjectSettings::blockIndexing()

View File

@@ -56,7 +56,8 @@ void CppHighlighter::highlightBlock(const QString &text)
const Tokens tokens = tokenize(text, initialLexerState); const Tokens tokens = tokenize(text, initialLexerState);
lexerState = tokenize.state(); // refresh lexer state lexerState = tokenize.state(); // refresh lexer state
initialLexerState &= ~0x80; // discard newline expected bit static const auto lexerStateWithoutNewLineExpectedBit = [](int state) { return state & ~0x80; };
initialLexerState = lexerStateWithoutNewLineExpectedBit(initialLexerState);
int foldingIndent = initialBraceDepth; int foldingIndent = initialBraceDepth;
if (TextBlockUserData *userData = TextDocumentLayout::textUserData(currentBlock())) { if (TextBlockUserData *userData = TextDocumentLayout::textUserData(currentBlock())) {
userData->setFoldingIndent(0); userData->setFoldingIndent(0);
@@ -220,7 +221,8 @@ void CppHighlighter::highlightBlock(const QString &text)
if (text.length() > lastTokenEnd) if (text.length() > lastTokenEnd)
formatSpaces(text, lastTokenEnd, text.length() - lastTokenEnd); formatSpaces(text, lastTokenEnd, text.length() - lastTokenEnd);
if (!initialLexerState && lexerState && !tokens.isEmpty()) { if (!initialLexerState && lexerStateWithoutNewLineExpectedBit(lexerState)
&& !tokens.isEmpty()) {
const Token &lastToken = tokens.last(); const Token &lastToken = tokens.last();
if (lastToken.is(T_COMMENT) || lastToken.is(T_DOXY_COMMENT)) { if (lastToken.is(T_COMMENT) || lastToken.is(T_DOXY_COMMENT)) {
insertParen({Parenthesis::Opened, QLatin1Char('+'), lastToken.utf16charsBegin()}); insertParen({Parenthesis::Opened, QLatin1Char('+'), lastToken.utf16charsBegin()});
@@ -636,6 +638,30 @@ void CppHighlighterTest::test()
QCOMPARE(actualFormat, expectedFormat); QCOMPARE(actualFormat, expectedFormat);
} }
} }
void CppHighlighterTest::testParentheses_data()
{
QTest::addColumn<int>("line");
QTest::addColumn<int>("expectedParenCount");
QTest::newRow("function head") << 41 << 2;
QTest::newRow("function opening brace") << 42 << 1;
QTest::newRow("loop head") << 43 << 1;
QTest::newRow("comment") << 44 << 0;
QTest::newRow("loop end") << 45 << 3;
QTest::newRow("function closing brace") << 46 << 1;
}
void CppHighlighterTest::testParentheses()
{
QFETCH(int, line);
QFETCH(int, expectedParenCount);
QTextBlock block = m_doc.findBlockByNumber(line - 1);
QVERIFY(block.isValid());
QCOMPARE(TextDocumentLayout::parentheses(block).count(), expectedParenCount);
}
} // namespace Internal } // namespace Internal
#endif // WITH_TESTS #endif // WITH_TESTS

View File

@@ -52,6 +52,8 @@ public:
private slots: private slots:
void test_data(); void test_data();
void test(); void test();
void testParentheses_data();
void testParentheses();
private: private:
QTextDocument m_doc; QTextDocument m_doc;

View File

@@ -37,3 +37,10 @@ const auto s5 = uR"("o
ne")"_w; ne")"_w;
const auto s6 = u"o\ const auto s6 = u"o\
ne"_w; ne"_w;
static void parenTest()
{
do {
/* comment */ \
} while (false);
}

View File

@@ -155,7 +155,8 @@ bool DebuggerRunConfigurationAspect::useCppDebugger() const
static bool projectHasQmlDefines(ProjectExplorer::Project *project) static bool projectHasQmlDefines(ProjectExplorer::Project *project)
{ {
auto projectInfo = CppEditor::CppModelManager::instance()->projectInfo(project); auto projectInfo = CppEditor::CppModelManager::instance()->projectInfo(project);
QTC_ASSERT(projectInfo, return false); if (!projectInfo) // we may have e.g. a Python project
return false;
return Utils::anyOf(projectInfo->projectParts(), return Utils::anyOf(projectInfo->projectParts(),
[](const CppEditor::ProjectPart::ConstPtr &part){ [](const CppEditor::ProjectPart::ConstPtr &part){
return Utils::anyOf(part->projectMacros, [](const Macro &macro){ return Utils::anyOf(part->projectMacros, [](const Macro &macro){

View File

@@ -59,6 +59,7 @@ QWidget *NinjaBuildStep::createConfigWidget()
buildTargetsList->setFrameShadow(QFrame::Raised); buildTargetsList->setFrameShadow(QFrame::Raised);
auto toolArguments = new QLineEdit(widget); auto toolArguments = new QLineEdit(widget);
toolArguments->setText(m_commandArgs);
auto wrapper = Core::ItemViewFind::createSearchableWrapper(buildTargetsList, auto wrapper = Core::ItemViewFind::createSearchableWrapper(buildTargetsList,
Core::ItemViewFind::LightColored); Core::ItemViewFind::LightColored);

View File

@@ -60,7 +60,7 @@ QWidget *NimCompilerBuildStep::createConfigWidget()
auto additionalArgumentsLineEdit = new QLineEdit(widget); auto additionalArgumentsLineEdit = new QLineEdit(widget);
auto commandTextEdit = new QTextEdit(widget); auto commandTextEdit = new QTextEdit(widget);
commandTextEdit->setEnabled(false); commandTextEdit->setReadOnly(true);
commandTextEdit->setMinimumSize(QSize(0, 0)); commandTextEdit->setMinimumSize(QSize(0, 0));
auto defaultArgumentsComboBox = new QComboBox(widget); auto defaultArgumentsComboBox = new QComboBox(widget);

View File

@@ -83,7 +83,7 @@ NimToolChainConfigWidget::NimToolChainConfigWidget(NimToolChain *tc)
fillUI(); fillUI();
// Connect // Connect
connect(m_compilerCommand, &PathChooser::textChanged, this, [this] { connect(m_compilerCommand, &PathChooser::validChanged, this, [this] {
const FilePath path = m_compilerCommand->rawFilePath(); const FilePath path = m_compilerCommand->rawFilePath();
auto tc = static_cast<NimToolChain *>(toolChain()); auto tc = static_cast<NimToolChain *>(toolChain());
QTC_ASSERT(tc, return); QTC_ASSERT(tc, return);

View File

@@ -222,26 +222,18 @@ void DesignModeWidget::setup()
// Connect opening of the 'workspaces' menu with creation of the workspaces menu // Connect opening of the 'workspaces' menu with creation of the workspaces menu
connect(mworkspaces->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowWorkspaces); connect(mworkspaces->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowWorkspaces);
Core::ActionContainer *mpanes = Core::ActionManager::actionContainer(Core::Constants::M_VIEW_PANES);
// Initially disable menus // Initially disable menus
mviews->menu()->setEnabled(false);
mworkspaces->menu()->setEnabled(false); mworkspaces->menu()->setEnabled(false);
mpanes->menu()->setEnabled(false);
// Enable/disable menus when mode is different to MODE_DESIGN // Enable/disable menus when mode is different to MODE_DESIGN
connect(Core::ModeManager::instance(), connect(Core::ModeManager::instance(),
&Core::ModeManager::currentModeChanged, &Core::ModeManager::currentModeChanged,
this, this,
[mviews, mworkspaces, mpanes](Utils::Id mode, Utils::Id) { [mworkspaces](Utils::Id mode, Utils::Id) {
if (mode == Core::Constants::MODE_DESIGN) { if (mode == Core::Constants::MODE_DESIGN) {
mviews->menu()->setEnabled(true);
mworkspaces->menu()->setEnabled(true); mworkspaces->menu()->setEnabled(true);
mpanes->menu()->setEnabled(true);
} else { } else {
mviews->menu()->setEnabled(false);
mworkspaces->menu()->setEnabled(false); mworkspaces->menu()->setEnabled(false);
mpanes->menu()->setEnabled(false);
} }
}); });

View File

@@ -38,7 +38,7 @@ public:
auto fetchButton = new QPushButton(Tr::tr("Fetch Device Environment")); auto fetchButton = new QPushButton(Tr::tr("Fetch Device Environment"));
addWidget(fetchButton); addWidget(fetchButton);
connect(target, &Target::kitChanged, [aspect] { aspect->setRemoteEnvironment({}); }); connect(target, &Target::kitChanged, aspect, [aspect] { aspect->setRemoteEnvironment({}); });
connect(fetchButton, &QPushButton::clicked, this, [aspect, target] { connect(fetchButton, &QPushButton::clicked, this, [aspect, target] {
if (IDevice::ConstPtr device = DeviceKitAspect::device(target->kit())) { if (IDevice::ConstPtr device = DeviceKitAspect::device(target->kit())) {

View File

@@ -3,7 +3,7 @@ import qbs
StaticLibrary { StaticLibrary {
name: "qtcjson" name: "qtcjson"
Depends { name: "cpp" } Depends { name: "cpp" }
cpp.cxxLanguageVersion: "c++11" cpp.cxxLanguageVersion: "c++17"
cpp.minimumMacosVersion: project.minimumMacosVersion cpp.minimumMacosVersion: project.minimumMacosVersion
files: [ files: [
"json.cpp", "json.cpp",

View File

@@ -15,7 +15,7 @@
# resolver: # resolver:
# name: custom-snapshot # name: custom-snapshot
# location: "./custom-snapshot.yaml" # location: "./custom-snapshot.yaml"
resolver: lts-7.24 resolver: lts-21.1
# User packages to be built. # User packages to be built.
# Various formats can be used as shown in the example below. # Various formats can be used as shown in the example below.

View File

@@ -192,7 +192,7 @@
:Send to Codepaster.protocolBox_QComboBox {name='protocolBox' type='QComboBox' visible='1' window=':Send to Codepaster_CodePaster::PasteView'} :Send to Codepaster.protocolBox_QComboBox {name='protocolBox' type='QComboBox' visible='1' window=':Send to Codepaster_CodePaster::PasteView'}
:Send to Codepaster.qt_spinbox_lineedit_QLineEdit {name='qt_spinbox_lineedit' type='QLineEdit' visible='1' window=':Send to Codepaster_CodePaster::PasteView'} :Send to Codepaster.qt_spinbox_lineedit_QLineEdit {name='qt_spinbox_lineedit' type='QLineEdit' visible='1' window=':Send to Codepaster_CodePaster::PasteView'}
:Send to Codepaster_CodePaster::PasteView {name='CodePaster.ViewDialog' type='QDialog' visible='1' windowTitle='Send to Codepaster'} :Send to Codepaster_CodePaster::PasteView {name='CodePaster.ViewDialog' type='QDialog' visible='1' windowTitle='Send to Codepaster'}
:Session Manager_ProjectExplorer::Internal::SessionDialog {name='ProjectExplorer.SessionDialog' type='ProjectExplorer::Internal::SessionDialog' visible='1' windowTitle='Session Manager'} :Session Manager_ProjectExplorer::Internal::SessionDialog {name='ProjectExplorer.SessionDialog' type='Core::Internal::SessionDialog' visible='1'}
:Startup.contextHelpComboBox_QComboBox {container=':Form.Startup_QGroupBox' name='contextHelpComboBox' type='QComboBox' visible='1'} :Startup.contextHelpComboBox_QComboBox {container=':Form.Startup_QGroupBox' name='contextHelpComboBox' type='QComboBox' visible='1'}
:User Interface.languageBox_QComboBox {name='languageBox' type='QComboBox' visible='1'} :User Interface.languageBox_QComboBox {name='languageBox' type='QComboBox' visible='1'}
:Utils::FakeToolTip {type='Utils::FakeToolTip' unnamed='1' visible='1'} :Utils::FakeToolTip {type='Utils::FakeToolTip' unnamed='1' visible='1'}

View File

@@ -8,7 +8,7 @@ source("../../shared/suites_qtta.py")
def main(): def main():
# expected error texts - for different compilers # expected error texts - for different compilers
expectedErrorAlternatives = ["'SyntaxError' was not declared in this scope", expectedErrorAlternatives = ["'SyntaxError' was not declared in this scope",
"\xe2\x80\x98SyntaxError\xe2\x80\x99 was not declared in this scope", u"\u2018SyntaxError\u2019 was not declared in this scope",
"'SyntaxError' : undeclared identifier", # MSVC2013 "'SyntaxError' : undeclared identifier", # MSVC2013
"'SyntaxError': undeclared identifier", # MSVC2015 "'SyntaxError': undeclared identifier", # MSVC2015
"use of undeclared identifier 'SyntaxError'", "use of undeclared identifier 'SyntaxError'",

View File

@@ -28,7 +28,7 @@ def main():
baseName = os.path.basename(currentFile) baseName = os.path.basename(currentFile)
fileName = os.path.join(directory, baseName) fileName = os.path.join(directory, baseName)
test.log("Testing file %s" % fileName) test.log("Testing file %s" % fileName)
content = readFile(currentFile) content = stringify(readFile(currentFile))
preparedContent, emptyLine, trailingWS = prepareFileExternal(fileName, content) preparedContent, emptyLine, trailingWS = prepareFileExternal(fileName, content)
isIgnored = isIgnoredFile(baseName, ignoredFiles) isIgnored = isIgnoredFile(baseName, ignoredFiles)
test.verify(preparedContent.find('\t') != -1, "Added at least one tab.") test.verify(preparedContent.find('\t') != -1, "Added at least one tab.")

View File

@@ -18,7 +18,7 @@ def main():
return return
for currentFile in files: for currentFile in files:
test.log("Opening file %s" % currentFile) test.log("Opening file %s" % currentFile)
size = len(readFile(currentFile)) size = len(stringify(readFile(currentFile)))
invokeMenuItem("File", "Open File or Project...") invokeMenuItem("File", "Open File or Project...")
selectFromFileDialog(currentFile, True) selectFromFileDialog(currentFile, True)
editor = getEditorForFileSuffix(currentFile) editor = getEditorForFileSuffix(currentFile)

View File

@@ -4,6 +4,8 @@
source("../../shared/qtcreator.py") source("../../shared/qtcreator.py")
currentSelectedTreeItem = None currentSelectedTreeItem = None
sectionInProgress = None
genericDebuggers = []
warningOrError = re.compile('<p><b>((Error|Warning).*?)</p>') warningOrError = re.compile('<p><b>((Error|Warning).*?)</p>')
def main(): def main():
@@ -28,6 +30,7 @@ def __createMinimumIni__(emptyParent):
iniFile.close() iniFile.close()
def __checkKits__(): def __checkKits__():
global genericDebuggers
mouseClick(waitForObjectItem(":Options_QListView", "Kits")) mouseClick(waitForObjectItem(":Options_QListView", "Kits"))
# check compilers # check compilers
expectedCompilers = __getExpectedCompilers__() expectedCompilers = __getExpectedCompilers__()
@@ -51,6 +54,8 @@ def __checkKits__():
__iterateTree__(":BuildAndRun_QTreeView", __dbgFunc__, foundDebugger) __iterateTree__(":BuildAndRun_QTreeView", __dbgFunc__, foundDebugger)
test.verify(__compareDebuggers__(foundDebugger, expectedDebuggers), test.verify(__compareDebuggers__(foundDebugger, expectedDebuggers),
"Verifying found and expected debuggers are equal.") "Verifying found and expected debuggers are equal.")
if not test.compare(len(genericDebuggers), 2, "Verifying generic debugger count."):
test.log(str(genericDebuggers))
# check Qt versions # check Qt versions
qmakePath = which("qmake") qmakePath = which("qmake")
foundQt = [] foundQt = []
@@ -87,14 +92,16 @@ def __processSubItems__(treeObjStr, section, parModelIndexStr, doneItems,
additionalFunc, *additionalParameters) additionalFunc, *additionalParameters)
def __iterateTree__(treeObjStr, additionalFunc, *additionalParameters): def __iterateTree__(treeObjStr, additionalFunc, *additionalParameters):
global currentSelectedTreeItem global currentSelectedTreeItem, sectionInProgress
model = waitForObject(treeObjStr).model() model = waitForObject(treeObjStr).model()
# 1st row: Auto-detected, 2nd row: Manual # 1st row: Auto-detected, 2nd row: Manual (Debugger has additional section Generic prepended)
for sect in dumpIndices(model): for sect in dumpIndices(model):
sectionInProgress = str(sect.text)
doneItems = [] doneItems = []
parentModelIndex = "%s container='%s'}" % (objectMap.realName(sect)[:-1], treeObjStr) parentModelIndex = "%s container='%s'}" % (objectMap.realName(sect)[:-1], treeObjStr)
__processSubItems__(treeObjStr, sect, parentModelIndex, doneItems, __processSubItems__(treeObjStr, sect, parentModelIndex, doneItems,
additionalFunc, *additionalParameters) additionalFunc, *additionalParameters)
sectionInProgress = None
def __compFunc__(it, foundComp, foundCompNames): def __compFunc__(it, foundComp, foundCompNames):
# skip sub section items (will continue on its children) # skip sub section items (will continue on its children)
@@ -118,9 +125,16 @@ def __compFunc__(it, foundComp, foundCompNames):
foundCompNames.append(it) foundCompNames.append(it)
def __dbgFunc__(it, foundDbg): def __dbgFunc__(it, foundDbg):
global sectionInProgress, genericDebuggers
waitFor("object.exists(':Path.Utils_BaseValidatingLineEdit')", 2000) waitFor("object.exists(':Path.Utils_BaseValidatingLineEdit')", 2000)
pathLineEdit = findObject(":Path.Utils_BaseValidatingLineEdit") pathLineEdit = findObject(":Path.Utils_BaseValidatingLineEdit")
foundDbg.append(str(pathLineEdit.text)) if sectionInProgress == 'Generic':
debugger = str(pathLineEdit.text)
test.verify(debugger == 'gdb' or debugger == 'lldb',
'Verifying generic debugger is GDB or LLDB.')
genericDebuggers.append(debugger)
else:
foundDbg.append(str(pathLineEdit.text))
def __qtFunc__(it, foundQt, qmakePath): def __qtFunc__(it, foundQt, qmakePath):
qtPath = str(waitForObject(":QtSupport__Internal__QtVersionManager.qmake_QLabel").text) qtPath = str(waitForObject(":QtSupport__Internal__QtVersionManager.qmake_QLabel").text)

View File

@@ -22,10 +22,9 @@ kitNameTemplate = "Manual.%s"
def __removeKit__(_, kitName): def __removeKit__(_, kitName):
global kitNameTemplate global kitNameTemplate
if kitName == Targets.getStringForTarget(Targets.getDefaultKit()):
# The following kits will be the default kit at that time
kitNameTemplate += " (default)"
item = kitNameTemplate % kitName.replace(".", "\\.") item = kitNameTemplate % kitName.replace(".", "\\.")
if kitName == Targets.getStringForTarget(Targets.getDefaultKit()):
item += " (default)"
mouseClick(waitForObjectItem(":BuildAndRun_QTreeView", item)) mouseClick(waitForObjectItem(":BuildAndRun_QTreeView", item))
clickButton(waitForObject(":Remove_QPushButton")) clickButton(waitForObject(":Remove_QPushButton"))

View File

@@ -63,18 +63,18 @@ def prepareTestExamples():
def switchSession(toSession): def switchSession(toSession):
test.log("Switching to session '%s'" % toSession) test.log("Switching to session '%s'" % toSession)
invokeMenuItem("File", "Sessions", "Manage...") invokeMenuItem("File", "Sessions", "Manage...")
sessionView = ("{name='sessionView' type='ProjectExplorer::Internal::SessionView' visible='1' " sessionView = ("{name='sessionView' type='Core::Internal::SessionView' visible='1' "
"window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}") "window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}")
mouseClick(waitForObjectItem(sessionView, toSession)) mouseClick(waitForObjectItem(sessionView, toSession))
clickButton(waitForObject("{name='btOpen' type='QPushButton' visible='1' " clickButton(waitForObject("{name='btOpen' type='QPushButton' visible='1' "
"window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}")) "window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}"))
def createAndSwitchToSession(toSession): def createAndSwitchToSession(toSession):
sessionInputDialog = ("{type='ProjectExplorer::Internal::SessionNameInputDialog' unnamed='1' " sessionInputDialog = ("{type='Core::Internal::SessionNameInputDialog' unnamed='1' "
"visible='1' windowTitle='New Session Name'}") "visible='1' windowTitle='New Session Name'}")
test.log("Switching to session '%s' after creating it." % toSession) test.log("Switching to session '%s' after creating it." % toSession)
invokeMenuItem("File", "Sessions", "Manage...") invokeMenuItem("File", "Sessions", "Manage...")
clickButton(waitForObject("{name='btCreateNew' text='New' type='QPushButton' visible='1' " clickButton(waitForObject("{name='btCreateNew' type='QPushButton' visible='1' "
"window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}")) "window=':Session Manager_ProjectExplorer::Internal::SessionDialog'}"))
lineEdit = waitForObject("{type='QLineEdit' unnamed='1' visible='1' window=%s}" lineEdit = waitForObject("{type='QLineEdit' unnamed='1' visible='1' window=%s}"
% sessionInputDialog) % sessionInputDialog)