Merge remote-tracking branch 'origin/9.0'

Conflicts:
	src/plugins/qmldesigner/CMakeLists.txt

Change-Id: I500420df35519e6903abc570d1283185f01bf900
This commit is contained in:
Eike Ziller
2022-10-10 11:47:45 +02:00
846 changed files with 6064 additions and 13885 deletions

View File

@@ -22,16 +22,22 @@ function(setup_dependencies_component)
set(_elfutils_arg "--elfutils \"${_elfutils_path}\"")
endif()
install(CODE "
set(_ide_app_target \"\${CMAKE_INSTALL_PREFIX}/${IDE_APP_PATH}/${IDE_APP_TARGET}${CMAKE_EXECUTABLE_SUFFIX}\")
# DESTDIR is set for e.g. the cpack DEB generator, but is empty in other situations
if(DEFINED ENV{DESTDIR})
set(DESTDIR_WITH_SEP \"\$ENV{DESTDIR}/\")
else()
set(DESTDIR_WITH_SEP \"\")
endif()
set(_default_app_target \"\${DESTDIR_WITH_SEP}\${CMAKE_INSTALL_PREFIX}/${IDE_APP_PATH}/${IDE_APP_TARGET}${CMAKE_EXECUTABLE_SUFFIX}\")
set(_ide_app_target \"\${_default_app_target}\")
if (NOT EXISTS \"\${_ide_app_target}\")
# The component CPack generators (WIX, NSIS64, IFW) install every component with their own CMAKE_INSTALL_PREFIX
# directory and since deployqt.py needs the path to IDE_APP_TARGET the line below is needeed
string(REPLACE \"Dependencies\" \"${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}\" _ide_app_target \"\${_ide_app_target}\")
endif()
if (NOT EXISTS \"\${_ide_app_target}\")
# On Linux with the DEB generator the CMAKE_INSTALL_PREFIX is relative and the DESTDIR environment variable is needed
# to point out to the IDE_APP_TARGET binary
set(_ide_app_target \"\$ENV{DESTDIR}/\${CMAKE_INSTALL_PREFIX}/${IDE_APP_PATH}/${IDE_APP_TARGET}${CMAKE_EXECUTABLE_SUFFIX}\")
# something went wrong, reset to default and hope for the best
set(_ide_app_target \"\${_default_app_target}\")
endif()
execute_process(COMMAND
\"${Python3_EXECUTABLE}\"

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -132,10 +132,14 @@
to run in parallel to make the analysis faster on multi-core
processors.
\li In the \uicontrol {Diagnostic Configuration} group, select
\uicontrol Manage to create or edit a custom configuration.
\li The \uicontrol {Diagnostic configuration} field shows the
checks to perform. Click the value of the field to open the
\uicontrol {Diagnostic Configurations} dialog, where you can
select and edit the checks to perform.
\li Select \uicontrol Copy to create a custom Clang configuration.
\image qtcreator-clang-tools-diagnostics-configuration.png "Diagnostics Configuration dialog"
\li Select \uicontrol Copy to copy the selected diagnostics for editing.
\image qtcreator-clang-copy-diagnostic-configuration.png "Copy Diagnostic Configuration dialog"
@@ -148,8 +152,6 @@
system to the Clang code model for displaying annotations in the
code editor.
\image qtcreator-clang-tools-diagnostics-configuration.png "Diagnostics Configuration dialog"
\li In the \uicontrol {Clang-Tidy Checks} tab, select
\uicontrol {Select Checks} to select the checks to perform.
To filter the checks, enter a string in the

View File

@@ -716,4 +716,23 @@
\uicontrol {Enable auto format on file save}.
\image qtcreator-qml-js-editing.png "QML/JS Editing preferences"
\if defined(qtcreator)
\section1 Inspecting Preprocessed C++ Code
To analyze the causes of compile errors or errors caused by wrong includes
pulled in by dependencies or C++ macros expanding to something unexpected,
select \uicontrol {Show Preprocessed Source} in the editor context menu.
This action expands all C++ macros to their actual code and removes code that
is guarded by a currently inactive \c {#ifdef} statements. If you deselect
the \uicontrol {Use built-in preprocessor to show pre-processed files} check
box in \uicontrol Edit > \uicontrol Preferences > \uicontrol C++ >
\uicontrol {Code Model}, this action also expands all
\c {"#include <foo.h>"} statements to their actual contents.
\image qtcreator-clang-code-model-options.png "C++ Code Model preferences"
\endif
*/

View File

@@ -151,6 +151,8 @@
Press and hold \key Alt and double-click strings to select several strings
simultaneously.
Press \key {Alt+Shift+I} to create cursors at the ends of selected lines.
Press \key Esc to remove all the cursors and selections.
\section1 Splitting the Editor View
@@ -282,6 +284,10 @@
supported for namespaces, classes, functions, variables, include statements,
and macros.
When the cursor is on a string literal and the string is a QRC file path,
following the symbol opens the specified resource file for editing in the
\uicontrol {Resource Browser}.
To switch between the definition and declaration of a function, place the
cursor on either and press \key {Shift+F2} or right-click and select
\uicontrol {Switch Between Function Declaration/Definition} or

View File

@@ -39,6 +39,9 @@
\uicontrol Behavior and deselect the
\uicontrol {Enable scroll wheel zooming} check box.
To improve the readability of text in the editor, adjust the line spacing in
the \uicontrol {Line spacing} field.
Antialiasing is used by default to make text look smoother and more readable
on the screen. Deselect the \uicontrol Antialias check box to turn off
antialiasing.

View File

@@ -114,6 +114,14 @@
\li To process precompiled headers, deselect the
\uicontrol {Ignore precompiled headers} check box.
\li When you select \uicontrol {Show Preprocessed Source} in the code
editor context menu, the built-in preprocessor is used to show the
pre-processed source file in the editor. To invoke the actual
compiler for showing the code, deselect the
\uicontrol {Use built-in preprocessor to show pre-processed files}
check box. For more information, see
\l {Inspecting Preprocessed C++ Code}.
\li To avoid out-of-memory crashes caused by indexing huge source files
that are typically auto-generated by scripts or code, the size of
files to index is limited to 5MB by default. To adjust the limit,
@@ -132,6 +140,11 @@
re-scanning is incremental, so nothing is lost by closing and re-starting
\QC.
By default, \QC runs one clangd process per project. If you have created
\l{Managing Sessions}{sessions} that contain related projects, you can
specify that the projects in the session should be managed by a single
clangd process.
The document outline in the \l{Viewing Defined Types and Symbols}
{Outline} view is backed by clangd's document symbol support, which
makes the results more reliable than before.
@@ -144,11 +157,11 @@
\image qtcreator-options-clangd.png "clangd preferences"
\li In \uicontrol {Path to executable}, enter the path to clangd
version 14, or later.
\li For more accurate results during global symbol searches, select
\uicontrol {Enable background indexing}. However, this increases the
CPU load the first time you open the project. If clangd background
indexing is disabled, \QC falls back to a faster, but less accurate
built-in indexer.
\li In the \uicontrol {Background indexing} field, select \uicontrol Off
to use a faster, but less accurate built-in indexer than the one used
by default. You can set the indexing priority depending on whether
the accuracy of results or speed is more important to you during
global symbol searches.
\li By default, clangd attempts to use all unused cores. You can set a
fixed number of cores to use in \uicontrol {Worker thread count}.
Background indexing also uses this many worker threads.
@@ -164,10 +177,12 @@
\li Select \uicontrol {Ignore files greater than} to make parsing faster
by ignoring big files. Specify the maximum size of files to parse in
the field next to the check box.
\li The \uicontrol {Diagnostic Configuration} field shows the Clang
\li The \uicontrol {Diagnostic configuration} field shows the Clang
checks to perform. Click the value of the field to open the
\uicontrol {Diagnostic Configurations} dialog, where you can
select and edit the checks to perform.
\li Select \uicontrol Add to select sessions that should use a single
clangd process for indexing.
\endlist
\section1 Clang Checks

View File

@@ -4,7 +4,7 @@
/*!
\previouspage creator-ctf-visualizer.html
\page creator-autotest.html
\nextpage creator-advanced.html
\nextpage creator-squish.html
\title Running Autotests

View File

@@ -0,0 +1,330 @@
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\previouspage creator-autotest.html
\page creator-squish.html
\nextpage creator-advanced.html
\title Using Squish
\l{https://doc.froglogic.com/squish/latest/}{Squish} is an automated GUI
testing framework for testing Android, iOS, Java, Qt, Tk, Windows, and
XView applications, as well as HTML-based web applications running in
browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and
Microsoft Internet Explorer and Edge.
The experimental Squish plugin integrates Squish into \QC. You can:
\list
\li Open existing Squish test suites.
\li Create new test suites and test cases.
\li Record test cases (in a very limited way compared to what you can do
inside the Squish IDE).
\li Use Squish Runner and Server to run test suites or cases and view
the results in the \uicontrol Squish \l{Viewing Output}{output}.
\li Set breakpoints before running tests to stop at certain locations and
inspect the local variables, similarly to when debugging a test.
\endlist
When running test suites or cases, the Squish Runner instructs the Squish
Server to start the application under test (AUT). The server can be running
on multiple machines, and the AUT can be located on a different path on each
of them. Therefore, you must either map AUTs to their corresponding paths or
specify AUT paths to search from in the server settings.
In addition, you can test an already running application by attaching to it.
This enables you to test your application using a Squish Server running on
another machine. However, you can have only one server attached to your
application at a time. Also, the attached application is not closed when the
test case is completed.
To use the plugin, you must download and install Squish, create a connection
to the Squish Server, and specify AUTs to run.
\section1 Enabling the Squish Plugin
To enable the Squish plugin:
\list 1
\li Select \uicontrol Help > \uicontrol {About Plugins} >
\uicontrol Utilities > \uicontrol Squish to enable the plugin.
\li Select \uicontrol {Restart Now} to restart \QC and load the plugin.
\endlist
\section1 Specifying a Squish Server
To specify a Squish Server to run:
\list 1
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Squish.
\image qtcreator-squish-preferences.png "Squish general preferences"
\li In the \uicontrol {Squish path} field, specify the path to the Squish
installation directory.
\li In the \uicontrol {License path} field, specify the path to your
Squish license file if it is not located in your home folder. For
example, if you have a global installation with several users, where
the license key is installed in the global folder.
\li Select the \uicontrol {Local server} check box to use a locally
installed \c {squishserver.exe}. To use a server running in another
machine, deselect the check box and specify the server address in the
\uicontrol {Server host} field and the port number in the
\uicontrol {Server port} field. If no port is specified, \QC starts
\c squishserver in a way that enables it to automatically select an
open port.
\li Select the \uicontrol {Verbose log} check box to include additional
logging levels in the log output.
\li Select the \uicontrol {Minimize IDE} check box to automatically
minimize \QC when running or recording test cases.
\endlist
\section1 Specifying AUTs
To specify applications to test using Squish, select \uicontrol {Tools} >
\uicontrol {Squish} > \uicontrol {Server Settings}.
\image qtcreator-squish-server-settings.png "Squish Server Settings"
\section2 Mapping AUTs
To specify the path to an AUT to run, select \uicontrol {Mapped AUTs} >
\uicontrol Add and locate the AUT.
The Squish server checks whether the name of the AUT to run is mapped to a
path and starts the AUT using the mapped path. This way, it does not need
to search from all the specified AUT paths.
Mapping AUTs prevents the server from accidentally executing the wrong AUT
if two different executables have the same name, as the server executes the
first matching AUT it finds in the \uicontrol {AUT Paths} list.
To change the path to the selected AUT, select \uicontrol {Edit}.
To remove the mapping to the selected AUT, select \uicontrol {Remove}.
\section2 Specifying AUT Paths
To specify a path to search AUTs from, select \uicontrol {AUT Paths} >
\uicontrol Add.
The Squish Server searches for the executable to run from the specified
AUT paths and runs the first one with the specified name that it finds in
any path.
To change the selected AUT path, select \uicontrol {Edit}.
To remove the selected AUT path, select \uicontrol {Remove}.
\section2 Adding Attachable AUTs
To specify the path to a running AUT, select \uicontrol {Attachable AUTs} >
\uicontrol Add. In the \uicontrol {Add Attachable AUT} dialog, specify a
connection to a running application to register an attachable AUT.
\image qtcreator-squish-server-settings-add-attachable-aut.png "Add Attachable AUT dialog"
To change the connection to the selected AUT, select \uicontrol {Edit}.
To remove the connection to the selected AUT, select \uicontrol {Remove}.
\section1 Managing Test Suites and Cases
You can manage Squish test suites and cases in the \uicontrol Squish
\l {Working with Sidebars}{view}.
\image qtcreator-squish-view.png "Squish sidebar view"
To show existing test suites in \uicontrol {Test Suites}, select
\uicontrol {Open Squish Suites} in the context menu.
\image qtcreator-squish-view-open-squish-suites.png "Open Squish Test Suites dialog"
You can open the \uicontrol {Squish Test Suite} wizard for creating a new
test suite by selecting \uicontrol {Create New Test Suite} in the context
menu.
To add a test case to a test suite, select it and then select
\uicontrol {Add New Test Case} in the context menu.
To close all test suites, select \uicontrol {Close All Test Suites} in the
context menu.
To add a shared folder to \uicontrol {Shared Folders}, select
\uicontrol {Add Shared Folder} in the context menu. To remove all
shared folders, select \uicontrol {Remove All Shared Folders}.
Double-click a test suite in \uicontrol {Test Suites} to open the
\c {suite.conf} configuration file for editing.
\section2 Creating Test Suites
To create a new test suite:
\list 1
\li Select \uicontrol File > \uicontrol {New Project}
> \uicontrol {Squish} > \uicontrol {Squish Test Suite} >
\uicontrol Choose.
\image qtcreator-squish-create-test-suite.png "Create Squish Test Suite wizard"
\li On the \uicontrol {Location} page, in \uicontrol {Test Suite Name},
enter a name for the test suite.
\image qtcreator-squish-create-test-suite-location.png "Location page"
\li In \uicontrol {Test Suite folder's parent folder}, enter the path to
the folder to create the test suite folder, and then select
\uicontrol Next.
\li On the \uicontrol Setup page, select the GUI toolkit used by the AUT,
and then select \uicontrol Next.
\image qtcreator-squish-create-test-suite-setup.png "Setup page"
Currently, only desktop GUI toolkits are supported.
\li On the \uicontrol {Script Language} page, select the scripting
language to use for the test suite's test script, and then select
\uicontrol Next.
\image qtcreator-squish-create-test-suite-language.png "Languages page"
\li On the \uicontrol {AUT} page, select the AUT to test, and then select
\uicontrol Next.
\image qtcreator-squish-create-test-suite-aut.png "AUT page"
\li On the \uicontrol {Summary} page review the test suite settings, and
then select \uicontrol Finish to create the test suite.
\endlist
The test suite is listed in \uicontrol {Test Suites} in the \uicontrol Squish
sidebar view.
\section2 Recording Test Cases
Squish records tests using the scripting language that you specified for the
test suite. Recordings are made into existing test cases.
In \uicontrol {Test Suites}, select the \inlineimage icons/recordfill.png
(\uicontrol {Record Test Case}) button next to the test case name. The AUT
that you selected for the test suite is displayed and you can start recording
the test case.
\image qtcreator-squish-control-bar-record-test-case.png "Squish control bar for recording test cases"
When you are done, select the \inlineimage icons/stop_small.png
(\uicontrol {Stop}) button in the \uicontrol {Control Bar}.
You can edit recorded test scripts or copy parts of them into manually
created test scripts.
\image qtcreator-squish-test-script-edit.png "A test script open in the editor"
\section2 Running Test Suites
You can run a recorded test case to have Squish repeat all the actions that
you applied when recording the test, but without the pauses that humans are
prone to but which computers don't need.
To run a test case, select the \inlineimage icons/run_small.png
(\uicontrol {Run}) button next to the test case in \uicontrol {Test Suites}.
\image qtcreator-squish-control-bar-run-test-case.png "Squish control bar for running test cases"
While the test is running, you can view test results as well as interrupt and
stop tests in the \uicontrol {Control Bar}.
\section2 Mapping Symbolic Names
When Squish records a test, it uses \e {symbolic names} to identify the UI
elements. Symbolic names are stored in an object map that can be either
text-based or script-based. Text-based symbolic names are plain strings
starting with a colon (:), whereas script-based symbolic names are script
variables.
Squish generates symbolic names programmatically, but you can use them in
hand-written code, or when you edit test cases or use extracts from recorded
test cases.
Symbolic names have one major advantage over real names: if a property
that a real name depends on changes in the AUT, the real name becomes
invalid, and you must update all occurrences of it in test scripts.
When using symbolic names, you only need to update the real name in the
object map. You do not need to make any changes to the tests.
To edit the object map of a test suite, select the
\inlineimage icons/objectsmap.png
button next to the test suite in \uicontrol {Test Suites}.
\image qtcreator-squish-symbolic-names.png "Symbolic Names view"
You can filter the symbolic names in the \uicontrol {Symbolic Names} view.
To edit a symbolic name or the names or values of its properties,
double-click the name or value in the view and enter a new one.
To add a new symbolic name, select \uicontrol New. Double-click the
placeholder for the name and enter a new name. Then select \uicontrol New
next to \uicontrol Properties to enter properties for the symbolic name.
To remove the selected symbolic name or property, select \uicontrol Remove.
To jump to the symbolic name associated to the selected
property, select \inlineimage icons/jumpto.png
.
\section2 Inspecting Local Variables
If you set breakpoints in the test code before running the test, the test
execution is automatically interrupted when a breakpoint is hit. You can
inspect the contents of local variables in the \uicontrol {Squish Locals}
view.
\image qtcreator-squish-locals.png "Squish Locals view"
Use the \uicontrol {Step Into}, \uicontrol {Step Over}, and
\uicontrol {Step Out} buttons in the \uicontrol Squish debugging
view to step through the code.
\image qtcreator-squish-debugging-view.png "Squish debugging view"
\section2 Specifying Settings for Running Tests
To specify settings for running tests, select \uicontrol Tools >
\uicontrol Squish > \uicontrol {Server Settings}:
\list
\li In the \uicontrol {Maximum startup time} field, set the maximum time
to wait for the AUT to start before throwing an error.
\li In the \uicontrol {Maximum response time} field, set the maximum time
to wait for the AUT to respond before throwing an error.
\li In the \uicontrol {Maximum post-mortem wait time} field, set the
maximum time to wait after the main AUT has exited. This is useful
for AUTs invoked through launcher applications, such as shell scripts
or batch files.
\li Select the \uicontrol {Animate mouse cursor} check box to to animate
the mouse cursor when playing back a test.
\endlist
\section1 Viewing Test Results
Squish uses compare, verify, and exception functions to record the results of
tests applied to a running AUT in the test log as \e {passes} or \e {fails}.
In addition, any kind of test results can be recorded in the test log.
You can view the test log in the \uicontrol Squish output,
\uicontrol {Test Results} tab.
\image qtcreator-squish-output-test-results.png "Test Results output"
The \uicontrol Result column displays the time when each test run started
and finished, log information and warnings, and test result status:
\list
\li \uicontrol Pass - The test passed.
\li \uicontrol Fail - The test failed.
\li \uicontrol ExpectedFail - The test failed, as expected. For example,
a known bug in the AUT caused a comparison or verification to fail.
\li \uicontrol UnexpectedPass - The test passed unexpectedly. For
example, a comparison or verification succeeded even though it was
expected to fail.
\endlist
The \uicontrol Message column displays log messages and information about
the type of the operation that was performed: comparison, verification, or
exception.
\section1 Viewing Squish Runner and Server Logs
You can view the Squish Runner and Server logs in the \uicontrol Squish
output, \uicontrol {Runner/Server Log} tab.
\image qtcreator-squish-output-runner-server-log.png "Runner and Server Log output"
*/

View File

@@ -8,7 +8,7 @@
// **********************************************************************
/*!
\previouspage creator-autotest.html
\previouspage creator-squish.html
\page creator-advanced.html
\nextpage creator-os-supported-platforms.html

View File

@@ -37,9 +37,13 @@
\li \l{Running Autotests}
You can create, build and run Qt tests, Qt Quick tests, Google
Create, build and run Qt tests, Qt Quick tests, Google
tests, and Boost tests using \QC.
\li \l{Using Squish}
Map AUTs to \QC and run Squish test suites and cases from it.
\endlist
*/

View File

@@ -208,6 +208,11 @@
\li Imports an existing project that does not use any of the
supported build systems: qmake, Qbs, CMake, or Autotools.
This enables you to use \QC as a code editor.
\row
\li Squish
\li Squish Test Suite
\li Creates a new \l {Using Squish}{Squish test suite}.
\endtable
To create a new project, select \uicontrol File > \uicontrol{New Project} and

View File

@@ -38,9 +38,15 @@
To specify global code style settings sets for C++ files, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol C++.
\image qtcreator-code-style-settings-edit-cpp.png "Edit Code Style Settings dialog"
To specify global code style settings sets for QML files, select
\uicontrol Edit > \uicontrol Preferences > \uicontrol {Qt Quick}.
\image qtcreator-code-style-settings-edit-qtquick.png "Edit Code Style Settings view"
Only \uicontrol General settings are available for QML files.
To configure the editor behavior for the current project:
\list 1
@@ -58,12 +64,6 @@
\li Click \uicontrol Edit to specify code style settings for the project.
\image qtcreator-code-style-settings-edit-cpp.png "Edit Code Style Settings dialog"
\note Only \uicontrol General settings are available for QML files.
\image qtcreator-code-style-settings-edit-qtquick.png "Edit Code Style Settings view"
\endlist
For more information about the settings, see \l{Indenting Text or Code}.

View File

@@ -187,6 +187,7 @@
\li \l{Visualizing Chrome Trace Events}
\endlist
\li \l{Running Autotests}
\li \l{Using Squish}
\endlist
\li \l{Advanced Use}
\list

View File

@@ -87,6 +87,7 @@
\li \l{Debugging}
\li \l{Analyzing Code}
\li \l{Running Autotests}
\li \l{Using Squish}
\endlist
\li \b {\l{Advanced Use}}
\list

View File

@@ -379,9 +379,13 @@
\li \uicontrol{Version Control}
\if defined(qtcreator)
\li \uicontrol{Test Results}
\li \l{Running Autotests}{Test Results}
\li \l{Using Squish}{Squish} test results and Squish Server and
Runner logs
\li \uicontrol {To-Do Entries}
\endif
\endlist

View File

@@ -43,6 +43,10 @@
is de-activated and the image resources are displayed in the \QD
\uicontrol {Resource Browser}.
To open resource files from the code editor, select
\uicontrol {Follow Symbol Under Cursor} in the context menu
or press \key F2 when the cursor is over a string literal.
\section1 Specifying Settings for Qt Designer
You can drag and drop the views in \QD to new positions on the screen.

View File

@@ -7,6 +7,8 @@
\nextpage qtbridge-figma-using.html
\title Setting Up \QBF
\note \QBF is included in the
\l{https://www.qt.io/pricing}{\QDS Enterprise license}.
\QBF is delivered with \QDS as a developer plugin that you can install to
the Desktop version of Figma. To install the plugin, open the Plugin Manager

View File

@@ -8,35 +8,24 @@
\title Asset Creation with Other Tools
Typically, you as a designer would design a UI using imaging and design
tools, such as Adobe Photoshop, Sketch, Figma, Blender, or Maya, and then
send your design to a developer for implementation. You can use the \QB
export tool to convert 2D assets into a metadata format supported by \QDS.
You can use the export functionality of 3D graphics tools to save your 3D
assets in a format that can be imported into \QDS.
Typically, you as a designer would like to use specialized UI design tools,
such as Adobe Photoshop, Sketch, Figma, Blender, or Maya, and then send the
design to a developer for functionality implementation. Here you can use the
\QB export tool to convert 2D or 3D assets for \QDS.
You can import the 2D and 3D assets into \QDS for editing before you
submit the UI to the developer for adding the functionality to the
You can import the assets into \QDS. There you can also edit them more if needed. You
can then submit the UI to the developer for adding further functionality to the
application.
If you want to make further changes to your components in the design tool,
you can export the UI files back into the metadata format, which you can
then import back into the design tool by using \QB. For example, you could
create components in a design tool and export them to \QDS before you start
making instances of them. In \QDS, you can add functionality to the
components, such as button states and then bring them back to the design
tool as assets. If you use functional \QDS components in the design tool,
you will find it easier to merge new iterations of the design to \QDS and
continue to build the components there.
The following image describes the workflow using \QBPS and \QDS:
The following image describes the workflow in a basic way using \QBPS and \QDS:
\image studio-workflow.png
The workflow consists of the following steps:
\list 1
\li Export your design from a design tool into the metadata format.
\li Export your design from a design tool into a metadata
format supported by \QDS.
\li \l{Creating Projects}{Create a project} in \QDS and import the
metadata file to it.
\li Edit the imported components and create more components in
@@ -46,9 +35,6 @@
\li Create interactions in \l States and \l {Connections}.
\li \l{Validating with Target Hardware}{Preview} your design in
real time, on the desktop or on a mobile or an embedded device.
\li Optionally, export your components back into the metadata format
that you can import back into the design tool by using \QB. You
can continue to iterate your design this way until it is ready.
\endlist
For more information, watch a video that shows how to perform the tasks
@@ -65,9 +51,5 @@
Import assets that you exported from design tools to a \QDS project
and edit them in the \uicontrol Design mode to create a UI.
\li \l {Exporting Components}
Export UI files (.ui.qml) back to the metadata format and PNG assets
to generate native file formats in design tools using \QB.
\endlist
*/

View File

@@ -8,6 +8,9 @@
\title Translations
The \uicontrol Translations view is included in the
\l{https://www.qt.io/pricing}{Qt Design Studio Enterprise license}.
You handle translations and multi-language support in the
\uicontrol {Translations} view.

View File

@@ -26,6 +26,7 @@ set(CPACK_DEBIAN_COMPRESSION_TYPE lzma)
get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
list(REMOVE_ITEM CPACK_COMPONENTS_ALL ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
list(REMOVE_ITEM CPACK_COMPONENTS_ALL libraries) # empty component, breaks WIX
list(REMOVE_ITEM CPACK_COMPONENTS_ALL DebugInfo) # exclude the huge debug info
list(PREPEND CPACK_COMPONENTS_ALL ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
set(CPACK_COMPONENT_Dependencies_HIDDEN TRUE)

View File

@@ -7,8 +7,8 @@ from __future__ import print_function
import argparse
import collections
import glob
import os
import shutil
import common
@@ -70,6 +70,8 @@ def get_arguments():
action='store_true', default=False)
parser.add_argument('--with-pch', help='Enable building with PCH',
action='store_true', default=False)
parser.add_argument('--with-cpack', help='Create packages with cpack',
action='store_true', default=False)
parser.add_argument('--add-path', help='Prepends a CMAKE_PREFIX_PATH to the build',
action='append', dest='prefix_paths', default=[])
parser.add_argument('--add-module-path', help='Prepends a CMAKE_MODULE_PATH to the build',
@@ -92,6 +94,23 @@ def get_arguments():
if not args.qt_path and not args.no_qtcreator:
parser.error("argument --qt-path is required if --no-qtcreator is not given")
if args.with_cpack:
if common.is_mac_platform():
print('warning: --with-cpack is not supported on macOS, turning off')
args.with_cpack = False
elif common.is_linux_platform():
args.cpack_generators = ['DEB']
elif common.is_windows_platform():
args.cpack_generators = []
if shutil.which('makensis'):
args.cpack_generators += ['NSIS64']
if shutil.which('candle') and shutil.which('torch'):
args.cpack_generators += ['WIX']
else:
print('warning: could not find NSIS or WIX, turning cpack off')
args.with_cpack = False
return args
def common_cmake_arguments(args):
@@ -149,7 +168,6 @@ def build_qtcreator(args, paths):
'-DBUILD_DEVELOPER_DOCS=' + cmake_option(not args.no_docs),
'-DBUILD_EXECUTABLE_SDKTOOL=OFF',
'-DQTC_FORCE_XCB=ON',
'-DCMAKE_INSTALL_PREFIX=' + common.to_posix_path(paths.install),
'-DWITH_TESTS=' + cmake_option(args.with_tests)]
cmake_args += common_cmake_arguments(args)
@@ -168,6 +186,9 @@ def build_qtcreator(args, paths):
cmake_args += ['-DWITH_SANITIZE=ON',
'-DSANITIZE_FLAGS=' + ",".join(args.sanitize_flags)]
if args.with_cpack:
cmake_args += ['-DCPACK_PACKAGE_FILE_NAME=qtcreator' + args.zip_infix]
cmake_args += args.config_args
common.check_print_call(cmake_args + [paths.src], paths.build)
@@ -288,6 +309,8 @@ def package_qtcreator(args, paths):
paths.src,
paths.install],
paths.result)
if args.with_cpack and args.cpack_generators:
common.check_print_call(['cpack', '-G', ';'.join(args.cpack_generators)], paths.build)
def get_paths(args):

View File

@@ -413,7 +413,7 @@ void NodeInstanceClientProxy::readDataStream()
break;
}
for (const QVariant &command : qAsConst(commandList))
for (const QVariant &command : std::as_const(commandList))
dispatchCommand(command);
}

View File

@@ -206,7 +206,7 @@ QVector4D GeneralHelper::focusNodesToCamera(QQuick3DCamera *camera, float defaul
totalMinBound = {-halfExtent, -halfExtent, -halfExtent};
totalMaxBound = {halfExtent, halfExtent, halfExtent};
}
for (const auto node : qAsConst(nodeList)) {
for (const auto node : std::as_const(nodeList)) {
auto model = qobject_cast<QQuick3DModel *>(node);
qreal maxExtent = defaultExtent;
QVector3D center = node->scenePosition();
@@ -345,7 +345,7 @@ void GeneralHelper::alignCameras(QQuick3DCamera *camera, const QVariant &nodes)
nodeList.append(cameraNode);
}
for (QQuick3DCamera *node : qAsConst(nodeList)) {
for (QQuick3DCamera *node : std::as_const(nodeList)) {
node->setPosition(camera->position());
node->setRotation(camera->rotation());
}
@@ -587,7 +587,7 @@ void GeneralHelper::setMultiSelectionTargets(QQuick3DNode *multiSelectRootNode,
// Filter selection to contain only topmost parent nodes in the selection
m_multiSelDataMap.clear();
m_multiSelNodes.clear();
for (auto &connection : qAsConst(m_multiSelectConnections))
for (auto &connection : std::as_const(m_multiSelectConnections))
disconnect(connection);
m_multiSelectConnections.clear();
m_multiSelectRootNode = multiSelectRootNode;
@@ -599,7 +599,7 @@ void GeneralHelper::setMultiSelectionTargets(QQuick3DNode *multiSelectRootNode,
if (node)
selNodes.insert(node);
}
for (const auto selNode : qAsConst(selNodes)) {
for (const auto selNode : std::as_const(selNodes)) {
bool found = false;
QQuick3DNode *parent = selNode->parentNode();
while (parent) {
@@ -617,7 +617,7 @@ void GeneralHelper::setMultiSelectionTargets(QQuick3DNode *multiSelectRootNode,
// The new selection should be notified by creator immediately after anyway.
m_multiSelDataMap.clear();
m_multiSelNodes.clear();
for (auto &connection : qAsConst(m_multiSelectConnections))
for (auto &connection : std::as_const(m_multiSelectConnections))
disconnect(connection);
m_multiSelectConnections.clear();
}));
@@ -643,7 +643,7 @@ void GeneralHelper::resetMultiSelectionNode()
m_multiSelNodeData = {};
if (!m_multiSelDataMap.isEmpty()) {
for (const auto &data : qAsConst(m_multiSelDataMap))
for (const auto &data : std::as_const(m_multiSelDataMap))
m_multiSelNodeData.startScenePos += data.startScenePos;
m_multiSelNodeData.startScenePos /= m_multiSelDataMap.size();
}
@@ -880,9 +880,9 @@ bool GeneralHelper::getBounds(QQuick3DViewport *view3D, QQuick3DNode *node, QVec
};
// Combine all child bounds
for (const auto &newBounds : qAsConst(minBoundsVec))
for (const auto &newBounds : std::as_const(minBoundsVec))
combineMinBounds(localMinBounds, newBounds);
for (const auto &newBounds : qAsConst(maxBoundsVec))
for (const auto &newBounds : std::as_const(maxBoundsVec))
combineMaxBounds(localMaxBounds, newBounds);
if (qobject_cast<QQuick3DModel *>(node)) {

View File

@@ -31,7 +31,7 @@ SelectionBoxGeometry::SelectionBoxGeometry()
SelectionBoxGeometry::~SelectionBoxGeometry()
{
for (auto &connection : qAsConst(m_connections))
for (auto &connection : std::as_const(m_connections))
QObject::disconnect(connection);
m_connections.clear();
}
@@ -145,7 +145,7 @@ void SelectionBoxGeometry::doUpdateGeometry()
GeometryBase::doUpdateGeometry();
for (auto &connection : qAsConst(m_connections))
for (auto &connection : std::as_const(m_connections))
QObject::disconnect(connection);
m_connections.clear();
@@ -278,9 +278,9 @@ void SelectionBoxGeometry::getBounds(
};
// Combine all child bounds
for (const auto &newBounds : qAsConst(minBoundsVec))
for (const auto &newBounds : std::as_const(minBoundsVec))
combineMinBounds(localMinBounds, newBounds);
for (const auto &newBounds : qAsConst(maxBoundsVec))
for (const auto &newBounds : std::as_const(maxBoundsVec))
combineMaxBounds(localMaxBounds, newBounds);
if (qobject_cast<QQuick3DModel *>(node)) {

View File

@@ -1424,9 +1424,9 @@ Qt5InformationNodeInstanceServer::~Qt5InformationNodeInstanceServer()
if (m_editView3DData.rootItem)
m_editView3DData.rootItem->disconnect(this);
for (auto view : qAsConst(m_view3Ds))
for (auto view : std::as_const(m_view3Ds))
view->disconnect();
for (auto node : qAsConst(m_3DSceneMap))
for (auto node : std::as_const(m_3DSceneMap))
node->disconnect();
if (m_editView3DData.rootItem)
@@ -1720,7 +1720,7 @@ QObject *Qt5InformationNodeInstanceServer::findView3DForInstance(
// If no ancestor View3D was found, check if the scene root is specified as importScene in
// some View3D.
QObject *sceneRoot = find3DSceneRoot(instance);
for (const auto &view3D : qAsConst(m_view3Ds)) {
for (const auto &view3D : std::as_const(m_view3Ds)) {
auto view = qobject_cast<QQuick3DViewport *>(view3D);
if (view && sceneRoot == view->importScene())
return view3D;
@@ -1740,7 +1740,7 @@ QObject *Qt5InformationNodeInstanceServer::findView3DForSceneRoot(
return findView3DForInstance(instanceForObject(sceneRoot));
} else {
// No instance, so the scene root must be scene property of one of the views
for (const auto &view3D : qAsConst(m_view3Ds)) {
for (const auto &view3D : std::as_const(m_view3Ds)) {
auto view = qobject_cast<QQuick3DViewport *>(view3D);
if (view && sceneRoot == view->scene())
return view3D;
@@ -1825,7 +1825,7 @@ QObject *Qt5InformationNodeInstanceServer::find3DSceneRoot([[maybe_unused]] QObj
return find3DSceneRoot(instanceForObject(obj));
// If there is no instance, obj could be a scene in a View3D
for (const auto &viewObj : qAsConst(m_view3Ds)) {
for (const auto &viewObj : std::as_const(m_view3Ds)) {
const auto view = qobject_cast<QQuick3DViewport *>(viewObj);
if (view && view->scene() == obj)
return obj;
@@ -2684,7 +2684,7 @@ void Qt5InformationNodeInstanceServer::handlePickTarget(
return;
}
for (auto childItem : qAsConst(childItems)) {
for (auto childItem : std::as_const(childItems)) {
if (!hasInstanceForObject(childItem)) {
// Children of components do not have instances, but will still need to be pickable
// and redirect their pick to the component

View File

@@ -63,7 +63,7 @@ void Qt5PreviewNodeInstanceServer::collectItemChangesAndSendChangeCommands()
stateInstances.append(instance.stateInstances());
}
for (ServerNodeInstance instance : qAsConst(stateInstances)) {
for (ServerNodeInstance instance : std::as_const(stateInstances)) {
instance.activateState();
QImage previewImage = renderPreviewImage();
if (!previewImage.isNull())

0
share/qtcreator/scripts/openTerminal.py Normal file → Executable file
View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -5247,7 +5247,7 @@ Razón: %3</translation>
</message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
<name>Git</name>
<message>
<source>Checkout</source>
<translation>Recuperar (Checkout)</translation>
@@ -5311,9 +5311,6 @@ Razón: %3</translation>
<source>Remote branches</source>
<translation>Ramas remotas</translation>
</message>
</context>
<context>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<source>Select a Git commit</source>
<translation>Seleccione un commit de Git</translation>
@@ -5330,9 +5327,6 @@ Razón: %3</translation>
<source>Selected directory is not a Git repository</source>
<translation>El directorio seleccionado no es un repositorio de Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitClient</name>
<message>
<source>Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work.</source>
<translation>Tenga en cuenta que el plugin Git para Qt Creator no es capaz de interactuar con un servidor Git por ahora. Por lo tanto, identificación manual mediante ssh etc. no funcionará.</translation>
@@ -5465,16 +5459,10 @@ Razón: %3</translation>
<source>There are no modified files.</source>
<translation>No hay archivos modificados.</translation>
</message>
</context>
<context>
<name>Git::Internal::GitOutputWindow</name>
<message>
<source>Git Output</source>
<translation type="obsolete">Salida de Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
<translation></translation>
@@ -5663,10 +5651,6 @@ Razón: %3</translation>
<source>Could not find working directory</source>
<translation>No se pudo encontrar el directorio de trabajo</translation>
</message>
<message>
<source>Revert</source>
<translation type="unfinished">Revertir</translation>
</message>
<message>
<source>Would you like to revert all pending changes to the project?</source>
<translation type="unfinished"></translation>
@@ -5695,32 +5679,18 @@ Razón: %3</translation>
<source>The commit message check failed. Do you want to commit the change?</source>
<translation>La comprobación del mensaje de commit ha fallado. ¿Quiere realizar un commit con los cambios de todos modos?</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSettings</name>
<message>
<source>The binary &apos;%1&apos; could not be located in the path &apos;%2&apos;</source>
<translation>El binario &apos;%1&apos; no pudo ser localizado en la ruta &apos;%2&apos;</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitEditor</name>
<message>
<source>Git Commit</source>
<translation>Commit de Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitPanel</name>
<message>
<source>General Information</source>
<translation>Información general</translation>
</message>
<message>
<location/>
<source>Repository:</source>
<translation>Repositorio:</translation>
</message>
<message>
<location/>
<source>repository</source>
@@ -5751,9 +5721,6 @@ Razón: %3</translation>
<source>Email:</source>
<translation>Email:</translation>
</message>
</context>
<context>
<name>Git::Internal::LocalBranchModel</name>
<message>
<source>&lt;New branch&gt;</source>
<translation>&lt;Nueva rama&gt;</translation>
@@ -5762,9 +5729,6 @@ Razón: %3</translation>
<source>Type to create a new branch</source>
<translation>Nombre para la nueva rama</translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPage</name>
<message>
<source>Git</source>
<translation></translation>
@@ -5822,9 +5786,6 @@ Razón: %3</translation>
<source>Omit date from annotation output</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GitCommand</name>
<message>
<source>
&apos;%1&apos; failed (exit code %2).
@@ -12672,7 +12633,7 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
<name>Git::Internal::CloneWizard</name>
<name>Git</name>
<message>
<source>Clones a project from a git repository.</source>
<translation type="unfinished"></translation>
@@ -12681,9 +12642,6 @@ p, li { white-space: pre-wrap; }
<source>Git Repository Clone</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Git::CloneWizardPage</name>
<message>
<source>Specify repository URL, checkout directory and path.</source>
<translation type="unfinished"></translation>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7129,7 +7129,7 @@ on slow machines. In this case, the value should be increased.</source>
</message>
</context>
<context>
<name>Git::CloneWizardPage</name>
<name>Git</name>
<message>
<source>Specify repository URL, checkout directory and path.</source>
<translation>Határozza meg a tároló URL-t, megnézési könyvtárat és útvonalat.</translation>
@@ -7138,9 +7138,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Clone URL:</source>
<translation>Klón URL:</translation>
</message>
</context>
<context>
<name>Git::Internal::0</name>
<message>
<source>Checkout</source>
<translation type="obsolete">Megnézés</translation>
@@ -7677,9 +7674,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Timeout (seconds):</source>
<translation type="obsolete">Időtúllépés (másodpercek):</translation>
</message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
<message>
<source>Branches</source>
<translation>Elágazások</translation>
@@ -7740,9 +7734,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Failed to create a tracking branch</source>
<translation>Nem sikerült létrehozni egy követő elágazást</translation>
</message>
</context>
<context>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<source>Select a Git commit</source>
<translation>Egy Git kommit kiválasztása</translation>
@@ -7759,9 +7750,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Selected directory is not a Git repository</source>
<translation>A kiválaszott könyvtár nem egy Git tároló</translation>
</message>
</context>
<context>
<name>Git::Internal::CloneWizard</name>
<message>
<source>Clones a project from a git repository.</source>
<translation>Egy projekt klónozása egy git tárolóból.</translation>
@@ -7770,9 +7758,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Git Repository Clone</source>
<translation>Git Tároló Klónozása</translation>
</message>
</context>
<context>
<name>Git::Internal::GitClient</name>
<message>
<source>Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work.</source>
<translation>Ne felejtse el, hogy a git beépülő modul a QtCreatorban nem képes még együttmáködni a szerverel. Így, a manuális ssh azonosítás, stb. nem fog működni.</translation>
@@ -7886,9 +7871,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>There are no modified files.</source>
<translation>Nincsenek módosítások.</translation>
</message>
</context>
<context>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
<translation>&amp;Git</translation>
@@ -8065,10 +8047,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>&amp;Redo</source>
<translation>&amp;Helyrehozás</translation>
</message>
<message>
<source>Revert</source>
<translation>Visszatérés</translation>
</message>
<message>
<source>Would you like to revert all pending changes to the project?</source>
<translation>Vissza szeretné állítani minden függőben levő változtatását a projektre?</translation>
@@ -8093,31 +8071,18 @@ on slow machines. In this case, the value should be increased.</source>
<source>The commit message check failed. Do you want to commit the change?</source>
<translation>A kommit üzenet ellenőrzése nem sikerült. Kommitolni szeretné a változtatásokat?</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSettings</name>
<message>
<source>The binary &apos;%1&apos; could not be located in the path &apos;%2&apos;</source>
<translation>A(z) &apos;%1&apos; binarás nincs telepítve a(z) &apos;%2&apos; útvonalon</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitEditor</name>
<message>
<source>Git Commit</source>
<translation>Git kommit</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitPanel</name>
<message>
<source>General Information</source>
<translation>Általános információ</translation>
</message>
<message>
<source>Repository:</source>
<translation>Tároló:</translation>
</message>
<message>
<source>repository</source>
<translation>tároló</translation>
@@ -8142,9 +8107,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Email:</source>
<translation>EMail:</translation>
</message>
</context>
<context>
<name>Git::Internal::LocalBranchModel</name>
<message>
<source>&lt;New branch&gt;</source>
<translation>&lt;Új elágazás&gt;</translation>
@@ -8153,9 +8115,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Type to create a new branch</source>
<translation>Gépelje be az új elágazás létrehozásához</translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPage</name>
<message>
<source>Environment variables</source>
<translation>Környezeti változók</translation>
@@ -8204,9 +8163,6 @@ on slow machines. In this case, the value should be increased.</source>
<source>Git Settings</source>
<translation>Git beállítások</translation>
</message>
</context>
<context>
<name>GitCommand</name>
<message>
<source>
&apos;%1&apos; failed (exit code %2).

View File

@@ -5152,7 +5152,7 @@ Causa: %3</translation>
</message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
<name>Git</name>
<message>
<source>Branches</source>
<translation>Rami</translation>
@@ -5216,9 +5216,6 @@ Causa: %3</translation>
<source>Failed to create a tracking branch</source>
<translation>Creazione del ramo con traccia non riuscita</translation>
</message>
</context>
<context>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<source>Select a Git commit</source>
<translation>Selezionare un commit Git</translation>
@@ -5235,9 +5232,6 @@ Causa: %3</translation>
<source>Selected directory is not a Git repository</source>
<translation>La cartella selezionata non è un deposito Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitClient</name>
<message>
<source>Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work.</source>
<translation>Il plugin git di Qt Creator non è ancora in grado di interagire con il server. Perciò l&apos;identificazione ssh manuale e cose simili non funzioneranno.</translation>
@@ -5368,9 +5362,6 @@ Causa: %3</translation>
<source>There are no modified files.</source>
<translation>Non ci sono file modificati.</translation>
</message>
</context>
<context>
<name>Git::Internal::GitOutputWindow</name>
<message>
<source>Git Output</source>
<translation type="obsolete">Output di Git</translation>
@@ -5379,9 +5370,6 @@ Causa: %3</translation>
<source>Git</source>
<translation type="obsolete">Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
<translation>&amp;Git</translation>
@@ -5602,32 +5590,18 @@ Causa: %3</translation>
<source>The commit message check failed. Do you want to commit the change?</source>
<translation>Il controllo sul messaggio della nuova revisione è fallito. Vuoi creare la revisione?</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSettings</name>
<message>
<source>The binary &apos;%1&apos; could not be located in the path &apos;%2&apos;</source>
<translation>Impossibile trovare il binario &apos;%1&apos; nel percorso &apos;%2&apos;</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitEditor</name>
<message>
<source>Git Commit</source>
<translation>Nuova revisione git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitPanel</name>
<message>
<source>General Information</source>
<translation>Informazioni Generali</translation>
</message>
<message>
<location/>
<source>Repository:</source>
<translation>Deposito:</translation>
</message>
<message>
<location/>
<source>repository</source>
@@ -5658,9 +5632,6 @@ Causa: %3</translation>
<source>Email:</source>
<translation>Email:</translation>
</message>
</context>
<context>
<name>Git::Internal::LocalBranchModel</name>
<message>
<source>&lt;New branch&gt;</source>
<translation>&lt;nuovo branch&gt;</translation>
@@ -5669,9 +5640,6 @@ Causa: %3</translation>
<source>Type to create a new branch</source>
<translation>Scrivi il nome del nuovo ramo</translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPage</name>
<message>
<source>Environment variables</source>
<translation>Variabili d&apos;ambiente</translation>
@@ -5728,9 +5696,6 @@ Causa: %3</translation>
<source>Omit date from annotation output</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GitCommand</name>
<message>
<source>
&apos;%1&apos; failed (exit code %2).
@@ -12438,7 +12403,7 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
<name>Git::Internal::CloneWizard</name>
<name>Git</name>
<message>
<source>Clones a project from a git repository.</source>
<translation type="unfinished"></translation>
@@ -12447,9 +12412,6 @@ p, li { white-space: pre-wrap; }
<source>Git Repository Clone</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Git::CloneWizardPage</name>
<message>
<source>Specify repository URL, checkout directory and path.</source>
<translation type="unfinished"></translation>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -5119,7 +5119,7 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
</message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
<name>Git</name>
<message>
<source>Would you like to delete the &lt;b&gt;unmerged&lt;/b&gt; branch &apos;%1&apos;?</source>
<translation>Ali želite izbrisati &lt;b&gt;nezdruženo&lt;/b&gt; vejo »%1«?</translation>
@@ -5170,18 +5170,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Checkout</source>
<translation type="obsolete">Prevzemi</translation>
</message>
<message>
<source>Diff</source>
<translation type="obsolete">Razlike</translation>
</message>
<message>
<source>Refresh</source>
<translation type="obsolete">Osveži</translation>
</message>
<message>
<source>Delete...</source>
<translation type="obsolete">Izbriši </translation>
</message>
<message>
<source>Failed to delete branch</source>
<translation type="obsolete">Izbris veje ni uspel</translation>
@@ -5214,9 +5202,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Remote Branches</source>
<translation type="obsolete">Oddaljene veje</translation>
</message>
</context>
<context>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<source>Select a Git Commit</source>
<translation>Izberite zapis Git</translation>
@@ -5233,9 +5218,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Selected directory is not a Git repository</source>
<translation>Izbrana mapa ni skladišče Git</translation>
</message>
</context>
<context>
<name>Git::Internal::GitClient</name>
<message>
<source>Waiting for data...</source>
<translation>Čakanje na podatke </translation>
@@ -5463,10 +5445,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<numerusform>%n datotek ni moč zapisati: %1</numerusform>
</translation>
</message>
<message>
<source>Revert</source>
<translation>Povrni</translation>
</message>
<message>
<source>The file has been changed. Do you want to revert it?</source>
<translation>Datoteka je bila spremenjena. Ali jo želite povrniti?</translation>
@@ -5698,9 +5676,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
</numerusform>
</translation>
</message>
</context>
<context>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
<translation>&amp;Git</translation>
@@ -5847,10 +5822,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Amend %1</source>
<translation>Sprememba %1</translation>
</message>
<message>
<source>Git Commit</source>
<translation>Zapis v Git</translation>
</message>
<message>
<source>Closing Git Editor</source>
<translation>Zapiranje urejevalnika Git</translation>
@@ -6073,16 +6044,10 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Undo Changes for &quot;%1&quot;</source>
<translation type="obsolete">Razveljavi spremembe v »%1«</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSettings</name>
<message>
<source>The binary &apos;%1&apos; could not be located in the path &apos;%2&apos;</source>
<translation>Izvršljive datoteke »%1« na poti »%2« ni bilo moč najti</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitPanel</name>
<message>
<source>General Information</source>
<translation>Splošni podatki</translation>
@@ -6097,11 +6062,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>repository</source>
<translation>skladišče</translation>
</message>
<message>
<location/>
<source>Branch:</source>
<translation>Veja:</translation>
</message>
<message>
<location/>
<source>branch</source>
@@ -6122,9 +6082,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Email:</source>
<translation>E-pošta:</translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPage</name>
<message>
<source>Git</source>
<translation>Git</translation>
@@ -6219,9 +6176,6 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
<source>Use &quot;patience diff&quot; algorithm</source>
<translation type="obsolete">Uporabi algoritem za razlike po pasjansi</translation>
</message>
</context>
<context>
<name>GitCommand</name>
<message>
<source>
&apos;%1&apos; failed (exit code %2).
@@ -12714,7 +12668,7 @@ Za uporabo v polje Iskalnika vtipkajte to bližnjico in presledek ter nato iskan
</message>
</context>
<context>
<name>Git::Internal::CloneWizard</name>
<name>Git</name>
<message>
<source>Clones a Git repository and tries to load the contained project.</source>
<translation>Sklonira skladišče Git in poskusi naložiti vsebovani projekt.</translation>
@@ -12723,9 +12677,6 @@ Za uporabo v polje Iskalnika vtipkajte to bližnjico in presledek ter nato iskan
<source>Git Repository Clone</source>
<translation>Klon skladišča Git</translation>
</message>
</context>
<context>
<name>Git::CloneWizardPage</name>
<message>
<source>Location</source>
<translation>Mesto</translation>
@@ -13623,7 +13574,7 @@ Razlog: %2</translation>
</message>
</context>
<context>
<name>Git::Internal::StashDialog</name>
<name>Git</name>
<message>
<source>Stashes</source>
<translation>Zapisi na strani</translation>
@@ -13701,10 +13652,6 @@ You can choose between stashing the changes or discarding them.</source>
<translation>%1 ni moč obnoviti, ker je bilo skladišče spremenjeno.
Spremembe lahko zapišete na stran ali pa jih zavržete.</translation>
</message>
<message>
<source>Stash</source>
<translation>Zapiši na stran</translation>
</message>
<message>
<source>Discard</source>
<translation>Zavrzi</translation>
@@ -13749,7 +13696,7 @@ Spremembe lahko zapišete na stran ali pa jih zavržete.</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialCommitPanel</name>
<name>Mercurial</name>
<message>
<source>General Information</source>
<translation>Splošni podatki</translation>
@@ -13789,9 +13736,6 @@ Spremembe lahko zapišete na stran ali pa jih zavržete.</translation>
<source>Email:</source>
<translation>E-pošta:</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::OptionsPage</name>
<message>
<source>Form</source>
<translation>Obrazec</translation>
@@ -13865,9 +13809,6 @@ Spremembe lahko zapišete na stran ali pa jih zavržete.</translation>
<source>Mercurial</source>
<translation>Mercurial</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::RevertDialog</name>
<message>
<source>Revert</source>
<translation>Povrni</translation>
@@ -13882,9 +13823,6 @@ Spremembe lahko zapišete na stran ali pa jih zavržete.</translation>
<source>Revision:</source>
<translation>Revizija:</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::SrcDestDialog</name>
<message>
<source>Dialog</source>
<translation>Pogovorno okno</translation>
@@ -16057,14 +15995,11 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
</message>
</context>
<context>
<name>Git::Internal::GitCommand</name>
<name>Git</name>
<message>
<source>Error: Git timed out after %1s.</source>
<translation>Napaka: po %1 s je Git-u potekel čas.</translation>
</message>
</context>
<context>
<name>Git::Internal::GitEditor</name>
<message>
<source>Blame %1</source>
<translation>Odgovornost za %1</translation>
@@ -16090,7 +16025,7 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::CloneWizard</name>
<name>Mercurial</name>
<message>
<source>Clones a Mercurial repository and tries to load the contained project.</source>
<translation>Sklonira skladišče Mercurial in poskusi naložiti vsebovani projekt.</translation>
@@ -16099,9 +16034,6 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
<source>Mercurial Clone</source>
<translation>Klon skladišča Mercurial</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::CloneWizardPage</name>
<message>
<source>Location</source>
<translation>Mesto</translation>
@@ -16114,16 +16046,10 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
<source>Clone URL:</source>
<translation>URL za kloniranje:</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::CommitEditor</name>
<message>
<source>Commit Editor</source>
<translation>Urejevalnik zapisov</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialClient</name>
<message>
<source>Unable to find parent revisions of %1 in %2: %3</source>
<translation>Ni moč najti starševskih revizij za %1 v %2: %3</translation>
@@ -16156,16 +16082,6 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
<source>Working...</source>
<translation type="obsolete">Delam </translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialControl</name>
<message>
<source>Mercurial</source>
<translation>Mercurial</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialEditor</name>
<message>
<source>Annotate %1</source>
<translation>Dodaj opombo za %1</translation>
@@ -16174,13 +16090,6 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
<source>Annotate parent revision %1</source>
<translation>Dodaj opombo za starševsko revizijo %1</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialPlugin</name>
<message>
<source>Mercurial</source>
<translation>Mercurial</translation>
</message>
<message>
<source>Annotate Current File</source>
<translation>Dodaj opombo za trenutno datoteko</translation>
@@ -16373,9 +16282,6 @@ Desetiška predznačena vrednost (najprej veliki konec): %4</translation>
<source>Close commit editor</source>
<translation type="obsolete">Zapri urejevalnik za zapise</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::OptionsPageWidget</name>
<message>
<source>Mercurial Command</source>
<translation>Ukaz Mercurial</translation>
@@ -19361,7 +19267,7 @@ GDB omogoča navedbo zaporedja ukazov, ki so ločeni z »\n«.</translation>
</message>
</context>
<context>
<name>Git::Internal::BranchAddDialog</name>
<name>Git</name>
<message>
<source>Dialog</source>
<translation>Pogovorno okno</translation>
@@ -19384,9 +19290,6 @@ GDB omogoča navedbo zaporedja ukazov, ki so ločeni z »\n«.</translation>
<source>Track local branch &apos;%1&apos;</source>
<translation>Spremljaj krajevno vejo »%1«</translation>
</message>
</context>
<context>
<name>Git::Internal::RemoteAdditionDialog</name>
<message>
<source>Add Remote</source>
<translation>Dodajanje oddaljene</translation>
@@ -19401,33 +19304,15 @@ GDB omogoča navedbo zaporedja ukazov, ki so ločeni z »\n«.</translation>
<source>URL:</source>
<translation>URL:</translation>
</message>
</context>
<context>
<name>Git::Internal::RemoteDialog</name>
<message>
<source>Remotes</source>
<translation>Oddaljene</translation>
</message>
<message>
<location/>
<source>Re&amp;fresh</source>
<translation>Os&amp;veži</translation>
</message>
<message>
<location/>
<source>&amp;Add...</source>
<translation>&amp;Dodaj ...</translation>
</message>
<message>
<location/>
<source>F&amp;etch</source>
<translation>&amp;Pridobi</translation>
</message>
<message>
<location/>
<source>&amp;Remove</source>
<translation>&amp;Odstrani</translation>
</message>
<message>
<source>Delete Remote</source>
<translation>Izbriši oddaljeno</translation>
@@ -24415,14 +24300,11 @@ Datoteke se ohrani.</numerusform>
</message>
</context>
<context>
<name>Git::Internal::BranchModel</name>
<name>Git</name>
<message>
<source>Local Branches</source>
<translation>Krajevne veje</translation>
</message>
</context>
<context>
<name>Git::Internal::BaseGitDiffArgumentsWidget</name>
<message>
<source>Use the patience algorithm for calculating the differences.</source>
<translation>Za ugotovitev razlik uporabi potrpežljiv algoritem.</translation>
@@ -24439,9 +24321,6 @@ Datoteke se ohrani.</numerusform>
<source>Ignore Whitespace</source>
<translation>Prezri praznine</translation>
</message>
</context>
<context>
<name>Git::Internal::GitShowArgumentsWidget</name>
<message>
<source>Select the pretty printing format.</source>
<translation>Izberite obliko lepega izpisa.</translation>
@@ -24474,9 +24353,6 @@ Datoteke se ohrani.</numerusform>
<source>raw</source>
<translation>surovo</translation>
</message>
</context>
<context>
<name>Git::Internal::GitBlameArgumentsWidget</name>
<message>
<source>Hide the date of a change from the output.</source>
<translation>V izhodu skrij datum spremembe.</translation>
@@ -24485,17 +24361,6 @@ Datoteke se ohrani.</numerusform>
<source>Omit Date</source>
<translation>Izpusti datum</translation>
</message>
<message>
<source>Ignore whitespace only changes.</source>
<translation>Prezri spremembe s samimi prazninami.</translation>
</message>
<message>
<source>Ignore Whitespace</source>
<translation>Prezri praznine</translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPageWidget</name>
<message>
<source>Set the environment variable HOME to &apos;%1&apos;
(%2).
@@ -24713,7 +24578,7 @@ ključe SSH išče na tem mestu in ne v mapi, kjer je nameščen.</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialDiffParameterWidget</name>
<name>Mercurial</name>
<message>
<source>Ignore whitespace</source>
<translation>Prezri presledke</translation>
@@ -25531,21 +25396,15 @@ neposredno dostopati do objektov izvodov komponent QML in lastnosti.</translatio
</message>
</context>
<context>
<name>QmlJSTools::Internal::FunctionFilter</name>
<name>QmlJSTools</name>
<message>
<source>Methods and functions</source>
<translation>Metode in funkcije</translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::ModelManager</name>
<message>
<source>Indexing</source>
<translation>Indeksiranje</translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::PluginDumper</name>
<message>
<source>Type dump of QML plugin in %1 failed.
Errors:
@@ -25592,9 +25451,6 @@ Please build the debugging helpers on the Qt version options page.</source>
<translation>Pomožnega programa za odlaganje podatkov o tipih iz vstavkov C++ ni bilo moč najti.
S strani z možnostmi za različice Qt zgradite razhroščevalne pomočnike.</translation>
</message>
</context>
<context>
<name>QmlJSTools</name>
<message>
<source>Code Style</source>
<translation>Slog kode</translation>
@@ -25603,9 +25459,6 @@ S strani z možnostmi za različice Qt zgradite razhroščevalne pomočnike.</tr
<source>Qt Quick</source>
<translation>Qt Quick</translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::QmlJSToolsPlugin</name>
<message>
<source>&amp;QML/JS</source>
<translation>&amp;QML/JS</translation>
@@ -25614,9 +25467,6 @@ S strani z možnostmi za različice Qt zgradite razhroščevalne pomočnike.</tr
<source>Reset Code Model</source>
<translation>Ponastavi model kode</translation>
</message>
</context>
<context>
<name>QmlJSTools::QmlJSToolsSettings</name>
<message>
<source>Global Qt Quick</source>
<comment>Settings</comment>
@@ -30159,14 +30009,11 @@ Preverite pravice za dostop do mape.</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitEditor</name>
<name>Git</name>
<message>
<source>Git Commit</source>
<translation type="obsolete">Git zapis</translation>
</message>
</context>
<context>
<name>Git::Internal::LocalBranchModel</name>
<message>
<source>&lt;New branch&gt;</source>
<translation type="obsolete">&lt;nova veja&gt;</translation>
@@ -32332,7 +32179,7 @@ Preverite, ali je telefon priključen in ali App TRK teče.</translation>
</message>
</context>
<context>
<name>Git::Internal::RemoteBranchModel</name>
<name>Git</name>
<message>
<source>(no branch)</source>
<translation type="obsolete">(brez vej)</translation>
@@ -32352,7 +32199,7 @@ Preverite, ali je telefon priključen in ali App TRK teče.</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialJobRunner</name>
<name>Mercurial</name>
<message>
<source>Executing: %1 %2
</source>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4875,7 +4875,7 @@ Reason: %3</source>
</message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
<name>Git</name>
<message>
<source>Checkout</source>
<translation type="unfinished"></translation>
@@ -4924,9 +4924,6 @@ Reason: %3</source>
<source>&amp;Checkout</source>
<translation>(&amp;C)</translation>
</message>
</context>
<context>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<source>Select a Git Commit</source>
<translation> Git </translation>
@@ -4955,9 +4952,6 @@ Reason: %3</source>
<source>Change:</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::GitClient</name>
<message>
<source>Waiting for data...</source>
<translation>...</translation>
@@ -5207,9 +5201,6 @@ Reason: %3</source>
<source>Cannot determine git version: %1</source>
<translation> git %1</translation>
</message>
</context>
<context>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
<translation>Git(&amp;G)</translation>
@@ -5549,16 +5540,10 @@ Reason: %3</source>
<source>Do you want to commit the change?</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::GitSettings</name>
<message>
<source>The binary &apos;%1&apos; could not be located in the path &apos;%2&apos;</source>
<translation> &apos;%2&apos; &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitPanel</name>
<message>
<source>General Information</source>
<translation></translation>
@@ -5595,9 +5580,6 @@ Reason: %3</source>
<source>By&amp;pass hooks</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Git::Internal::SettingsPage</name>
<message>
<source>&lt;b&gt;Note:&lt;/b&gt;</source>
<translation>&lt;b&gt;&lt;/b&gt;</translation>
@@ -11104,7 +11086,7 @@ Will not be applied to whitespace in comments and strings.</source>
</message>
</context>
<context>
<name>Git::Internal::CloneWizard</name>
<name>Git</name>
<message>
<source>Clones a Git repository and tries to load the contained project.</source>
<translation> Git </translation>
@@ -11113,9 +11095,6 @@ Will not be applied to whitespace in comments and strings.</source>
<source>Git Repository Clone</source>
<translation>Git </translation>
</message>
</context>
<context>
<name>Git::CloneWizardPage</name>
<message>
<source>Location</source>
<translation></translation>
@@ -11891,7 +11870,7 @@ Reason: %2</source>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialCommitPanel</name>
<name>Mercurial</name>
<message>
<source>General Information</source>
<translation></translation>
@@ -11924,9 +11903,6 @@ Reason: %2</source>
<source>Email:</source>
<translation></translation>
</message>
</context>
<context>
<name>Mercurial::Internal::OptionsPage</name>
<message>
<source>Form</source>
<translation></translation>
@@ -11987,9 +11963,6 @@ Reason: %2</source>
<source>The number of recent commit logs to show, choose 0 to see all entries.</source>
<translation> 0 </translation>
</message>
</context>
<context>
<name>Mercurial::Internal::RevertDialog</name>
<message>
<source>Revert</source>
<translation></translation>
@@ -12002,9 +11975,6 @@ Reason: %2</source>
<source>Revision:</source>
<translation></translation>
</message>
</context>
<context>
<name>Mercurial::Internal::SrcDestDialog</name>
<message>
<source>Dialog</source>
<translation></translation>
@@ -12122,7 +12092,7 @@ Reason: %2</source>
</message>
</context>
<context>
<name>Mercurial::Internal::CloneWizard</name>
<name>Mercurial</name>
<message>
<source>Clones a Mercurial repository and tries to load the contained project.</source>
<translation> Mercurial </translation>
@@ -12131,9 +12101,6 @@ Reason: %2</source>
<source>Mercurial Clone</source>
<translation>Mercurial </translation>
</message>
</context>
<context>
<name>Mercurial::Internal::CloneWizardPage</name>
<message>
<source>Location</source>
<translation></translation>
@@ -12146,16 +12113,10 @@ Reason: %2</source>
<source>Clone URL:</source>
<translation></translation>
</message>
</context>
<context>
<name>Mercurial::Internal::CommitEditor</name>
<message>
<source>Commit Editor</source>
<translation></translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialClient</name>
<message>
<source>Unable to find parent revisions of %1 in %2: %3</source>
<translation> %2 %1 %3</translation>
@@ -12172,20 +12133,6 @@ Reason: %2</source>
<source>Hg outgoing %1</source>
<translation>Hg %1</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialControl</name>
<message>
<source>Mercurial</source>
<translation>Mercurial</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialPlugin</name>
<message>
<source>Mercurial</source>
<translation>Mercurial</translation>
</message>
<message>
<source>Annotate Current File</source>
<translation></translation>
@@ -12382,9 +12329,6 @@ Reason: %2</source>
<source>Message check failed. Do you want to proceed?</source>
<translation></translation>
</message>
</context>
<context>
<name>Mercurial::Internal::OptionsPageWidget</name>
<message>
<source>Mercurial Command</source>
<translation>Mercurial </translation>
@@ -12503,7 +12447,7 @@ Reason: %2</source>
</message>
</context>
<context>
<name>Git::Internal::StashDialog</name>
<name>Git</name>
<message>
<source>Stashes</source>
<translation></translation>
@@ -12577,10 +12521,6 @@ You can choose between stashing the changes or discarding them.</source>
<translation>%1
</translation>
</message>
<message>
<source>Stash</source>
<translation></translation>
</message>
<message>
<source>Discard</source>
<translation></translation>
@@ -12589,10 +12529,6 @@ You can choose between stashing the changes or discarding them.</source>
<source>Restore Stash to Branch</source>
<translation></translation>
</message>
<message>
<source>Branch:</source>
<translation></translation>
</message>
<message>
<source>Stash Restore</source>
<translation></translation>
@@ -13281,7 +13217,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
</context>
<context>
<name>Git::Internal::GitEditor</name>
<name>Git</name>
<message>
<source>Blame %1</source>
<translation>&quot;%1&quot; </translation>
@@ -13315,7 +13251,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialEditor</name>
<name>Mercurial</name>
<message>
<source>Annotate %1</source>
<translation> %1</translation>
@@ -16830,7 +16766,7 @@ Setting breakpoints by file name and line number may fail.</source>
</message>
</context>
<context>
<name>Git::Internal::SettingsPageWidget</name>
<name>Git</name>
<message>
<source>Set the environment variable HOME to &apos;%1&apos;
(%2).
@@ -20126,7 +20062,7 @@ Do you want to retry?</source>
</message>
</context>
<context>
<name>Git::Internal::BaseGitDiffArgumentsWidget</name>
<name>Git</name>
<message>
<source>Use the patience algorithm for calculating the differences.</source>
<translation>使 patience </translation>
@@ -20143,9 +20079,6 @@ Do you want to retry?</source>
<source>Ignore Whitespace</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::GitShowArgumentsWidget</name>
<message>
<source>oneline</source>
<translation></translation>
@@ -20174,9 +20107,6 @@ Do you want to retry?</source>
<source>raw</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::GitBlameArgumentsWidget</name>
<message>
<source>Hide the date of a change from the output.</source>
<translation></translation>
@@ -20185,14 +20115,6 @@ Do you want to retry?</source>
<source>Omit Date</source>
<translation></translation>
</message>
<message>
<source>Ignore whitespace only changes.</source>
<translation></translation>
</message>
<message>
<source>Ignore Whitespace</source>
<translation></translation>
</message>
</context>
<context>
<name>GLSLEditor</name>
@@ -20629,21 +20551,15 @@ QML component instance objects and properties directly.</source>
</message>
</context>
<context>
<name>QmlJSTools::Internal::FunctionFilter</name>
<name>QmlJSTools</name>
<message>
<source>Methods and Functions</source>
<translation></translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::ModelManager</name>
<message>
<source>Indexing</source>
<translation></translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::PluginDumper</name>
<message>
<source>QML module does not contain information about components contained in plugins
@@ -21770,7 +21686,7 @@ if (a &amp;&amp;
</message>
</context>
<context>
<name>Git::Internal::BranchAddDialog</name>
<name>Git</name>
<message>
<source>Dialog</source>
<translation></translation>
@@ -21791,9 +21707,6 @@ if (a &amp;&amp;
<source>Track local branch &apos;%1&apos;</source>
<translation> &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>Git::Internal::RemoteAdditionDialog</name>
<message>
<source>Add Remote</source>
<translation></translation>
@@ -21806,29 +21719,14 @@ if (a &amp;&amp;
<source>URL:</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::RemoteDialog</name>
<message>
<source>Remotes</source>
<translation></translation>
</message>
<message>
<source>Re&amp;fresh</source>
<translation>(&amp;F)</translation>
</message>
<message>
<source>&amp;Add...</source>
<translation>(&amp;A)...</translation>
</message>
<message>
<source>F&amp;etch</source>
<translation>(&amp;E)</translation>
</message>
<message>
<source>&amp;Remove</source>
<translation>(&amp;R)</translation>
</message>
<message>
<source>Delete Remote</source>
<translation></translation>
@@ -22423,7 +22321,7 @@ These files are preserved.</source>
</message>
</context>
<context>
<name>Git::Internal::BranchModel</name>
<name>Git</name>
<message>
<source>Local Branches</source>
<translation></translation>
@@ -22445,7 +22343,7 @@ These files are preserved.</source>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialDiffParameterWidget</name>
<name>Mercurial</name>
<message>
<source>Ignore whitespace</source>
<translation></translation>
@@ -22724,9 +22622,6 @@ These files are preserved.</source>
<source>Qt Quick</source>
<translation>Qt Quick</translation>
</message>
</context>
<context>
<name>QmlJSTools::Internal::QmlJSToolsPlugin</name>
<message>
<source>&amp;QML/JS</source>
<translation>QML/JS(&amp;Q)</translation>
@@ -22735,9 +22630,6 @@ These files are preserved.</source>
<source>Reset Code Model</source>
<translation></translation>
</message>
</context>
<context>
<name>QmlJSTools::QmlJSToolsSettings</name>
<message>
<source>Global</source>
<comment>Settings</comment>
@@ -28076,7 +27968,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
<name>AutotoolsProjectManager</name>
<name>Android</name>
<message>
<source>Autogen</source>
<comment>Display name for AutotoolsProjectManager::AutogenStep id.</comment>
@@ -28443,7 +28335,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
<name>Git::Internal::CommitData</name>
<name>Git</name>
<message>
<source>untracked</source>
<translation></translation>
@@ -28476,9 +28368,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
<source>updated</source>
<translation></translation>
</message>
</context>
<context>
<name>Git::Internal::GitLogArgumentsWidget</name>
<message>
<source>Show Diff</source>
<translation></translation>
@@ -29018,7 +28907,7 @@ references to elements in other files, loops, etc.)</source>
</message>
</context>
<context>
<name>AddNewAVDDialog</name>
<name>Android</name>
<message>
<source>Create new AVD</source>
<translation type="unfinished"></translation>
@@ -29039,9 +28928,6 @@ references to elements in other files, loops, etc.)</source>
<source> MiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AndroidCreateKeystoreCertificate</name>
<message>
<source>Create a keystore and a certificate</source>
<translation type="unfinished"></translation>
@@ -29118,9 +29004,6 @@ references to elements in other files, loops, etc.)</source>
<source>&gt;AA; </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AndroidDeployStepWidget</name>
<message>
<source>Form</source>
<translation type="unfinished"></translation>
@@ -29163,9 +29046,6 @@ This option is useful when you want to try your application on devices which don
<source>Choose APK</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AndroidPackageCreationWidget</name>
<message>
<source>Manifest</source>
<translation type="unfinished"></translation>
@@ -29245,10 +29125,6 @@ This option is useful when you want to try your application on devices which don
<source>Discard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Libraries</source>
<translation type="unfinished"></translation>
@@ -29302,9 +29178,6 @@ This option is useful when you want to try your application on devices which don
<source>Certificate alias:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AndroidSettingsWidget</name>
<message>
<source>Android Configuration</source>
<translation type="unfinished"></translation>
@@ -29313,10 +29186,6 @@ This option is useful when you want to try your application on devices which don
<source>Android SDK location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Android NDK location:</source>
<translation type="unfinished"></translation>
@@ -29369,14 +29238,6 @@ This option is useful when you want to try your application on devices which don
<source>Start Android AVD Manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ClearCase</name>
@@ -30148,7 +30009,7 @@ This option is useful when you want to try your application on devices which don
</message>
</context>
<context>
<name>Android::Internal::AndroidConfigurations</name>
<name>Android</name>
<message>
<source>Error Creating AVD</source>
<translation type="unfinished"></translation>
@@ -30158,20 +30019,6 @@ This option is useful when you want to try your application on devices which don
Please install an SDK of at least API version %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android</name>
<message>
<source>Android</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidCreateKeystoreCertificate</name>
<message>
<source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Password is too short&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Passwords don&apos;t match&lt;/span&gt;</source>
<translation type="unfinished"></translation>
@@ -30192,23 +30039,10 @@ Please install an SDK of at least API version %1.</source>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployConfiguration</name>
<message>
<source>Deploy to Android device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployConfigurationFactory</name>
<message>
<source>Deploy on Android</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployStep</name>
<message>
<source>Deploy to Android device</source>
<extracomment>AndroidDeployStep default display name</extracomment>
@@ -30266,16 +30100,10 @@ Please install an SDK of at least API version %1.</source>
<source>Pulling files necessary for debugging.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployStepFactory</name>
<message>
<source>Deploy to Android device or emulator</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployStepWidget</name>
<message>
<source>&lt;b&gt;Deploy configurations&lt;/b&gt;</source>
<translation type="unfinished"></translation>
@@ -30288,27 +30116,14 @@ Please install an SDK of at least API version %1.</source>
<source>Android package (*.apk)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDevice</name>
<message>
<source>Run on Android</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Android</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeviceFactory</name>
<message>
<source>Android Device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidManager</name>
<message>
<source>Error creating Android directory &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
@@ -30338,16 +30153,10 @@ Please install at least one SDK.</source>
<source>Can&apos;t open &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidPackageCreationFactory</name>
<message>
<source>Create Android (.apk) Package</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidPackageCreationStep</name>
<message>
<source>Packaging for Android</source>
<translation type="unfinished"></translation>
@@ -30365,10 +30174,6 @@ Please install at least one SDK.</source>
Please make sure your application is built successfully and is selected in Application tab (&apos;Run option&apos;).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to run keytool</source>
<translation type="unfinished"></translation>
@@ -30405,49 +30210,18 @@ Please make sure your application is built successfully and is selected in Appli
<source>Package created.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Package deploy: Running command &apos;%1 %2&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Packaging failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Packaging error: Could not start command &apos;%1 %2&apos;. Reason: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Packaging Error: Command &apos;%1 %2&apos; failed.</source>
<translation type="unfinished"> &apos;%1&apos; {1 %2&apos;?}</translation>
</message>
<message>
<source> Reason: %1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<source>Exit code: %1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<source>Keystore</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keystore password:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Certificate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Certificate password (%1):</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidPackageCreationWidget</name>
<message>
<source>Invalid Package Name</source>
<translation type="unfinished"></translation>
@@ -30485,27 +30259,14 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
<source>Select keystore file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keystore files (*.keystore *.jks)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidPackageInstallationFactory</name>
<message>
<source>Deploy to device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidPackageInstallationStep</name>
<message>
<source>Copy application data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidQtVersion</name>
<message>
<source>Failed to detect the ABIs used by the Qt version.</source>
<translation type="unfinished"></translation>
@@ -30515,30 +30276,18 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
<extracomment>Qt Version is meant for Android</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidRunConfiguration</name>
<message>
<source>Run on Android device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidRunControl</name>
<message>
<source>Starting remote process.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidRunControlFactory</name>
<message>
<source>Run on Android device or emulator.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidRunner</name>
<message>
<source>
@@ -30579,16 +30328,10 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
&apos;%1&apos; killed.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidSettingsPage</name>
<message>
<source>Android Configurations</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AvdModel</name>
<message>
<source>AVD Name</source>
<extracomment>AVD - Android Virtual Device</extracomment>
@@ -30602,9 +30345,6 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
<source>CPU/ABI</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidSettingsWidget</name>
<message>
<source>Android SDK Folder</source>
<translation type="unfinished"></translation>
@@ -30641,9 +30381,6 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
<source>Select OpenJDK Path</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidToolChainFactory</name>
<message>
<source>Android GCC</source>
<translation type="unfinished"></translation>
@@ -30656,9 +30393,6 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
<source>Android GCC (%1-%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidToolChainConfigWidget</name>
<message>
<source>NDK Root:</source>
<translation type="unfinished"></translation>
@@ -31889,15 +31623,11 @@ Stepping into the module or setting breakpoints by file and is expected to work.
</message>
</context>
<context>
<name>Gerrit::Internal::GerritDialog</name>
<name>Git</name>
<message>
<source>Gerrit %1@%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Query:</source>
<translation type="unfinished"></translation>
@@ -31922,13 +31652,6 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>Checkout...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refresh</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritModel</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Subject&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Number&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Owner&lt;/td&gt;&lt;td&gt;%3 &lt;a href=&quot;mailto:%4&quot;&gt;%4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Project&lt;/td&gt;&lt;td&gt;%5 (%6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;%7, %8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Patch set&lt;/td&gt;&lt;td&gt;%9&lt;/td&gt;&lt;/tr&gt;%10&lt;tr&gt;&lt;td&gt;URL&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%11&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
@@ -31953,10 +31676,6 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>Approvals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Parse error: &apos;%1&apos; -&gt; %2</source>
<translation type="unfinished"></translation>
@@ -31969,9 +31688,6 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>Parse error in line &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::QueryContext</name>
<message>
<source>Gerrit</source>
<translation type="unfinished"></translation>
@@ -31988,16 +31704,6 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>%1 returned %2.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritOptionsPage</name>
<message>
<source>Gerrit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritOptionsWidget</name>
<message>
<source>HTTPS</source>
<translation type="unfinished"></translation>
@@ -32028,25 +31734,10 @@ Stepping into the module or setting breakpoints by file and is expected to work.
&quot;gerrit.config&quot;.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::FetchContext</name>
<message>
<source>Gerrit Fetch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 crashed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 returned %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error running %1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error writing to temporary file.</source>
<translation type="unfinished"></translation>
@@ -32059,9 +31750,6 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>Cherry-picking %1...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritPlugin</name>
<message>
<source>Gerrit...</source>
<translation type="unfinished"></translation>
@@ -32074,24 +31762,14 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>Enter Local Repository for &apos;%1&apos; (%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Git::Internal::GitSubmitEditorWidget</name>
<message>
<source>Detached HEAD</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Git::Internal::ResetDialog</name>
<message>
<source>Sha1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Subject</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset to:</source>
<translation type="unfinished"></translation>
@@ -32616,7 +32294,7 @@ Remote stderr was: %1</source>
</message>
</context>
<context>
<name>QmlJSTools::FindExportedCppTypes</name>
<name>QmlJSTools</name>
<message>
<source>The type will only be available in Qt Creator&apos;s QML editors when the type name is a string literal</source>
<translation type="unfinished"> Qt Creator QML編輯器時可使用</translation>

View File

@@ -584,7 +584,7 @@ int main(int argc, char **argv)
if (!overrideLanguage.isEmpty())
uiLanguages.prepend(overrideLanguage);
const QString &creatorTrPath = resourcePath() + "/translations";
for (QString locale : qAsConst(uiLanguages)) {
for (QString locale : std::as_const(uiLanguages)) {
locale = QLocale(locale).name();
if (translator.load("qtcreator_" + locale, creatorTrPath)) {
const QString &qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);

View File

@@ -2019,7 +2019,7 @@ bool Bind::visit(SimpleDeclarationAST *ast)
}
}
for (const auto &nameAndLoc : qAsConst(namesAndLocations)) {
for (const auto &nameAndLoc : std::as_const(namesAndLocations)) {
const int sourceLocation = nameAndLoc.second;
Declaration *decl = control()->newDeclaration(sourceLocation, nameAndLoc.first);
if (const Type * const t = declTy.type(); t && declTy.isTypedef() && t->asClassType()

View File

@@ -381,7 +381,7 @@ namespace ADS
{
DockWidget* dockWidget = d->m_tabBar->currentTab()->dockWidget();
if (!d->m_dockWidgetActionsButtons.isEmpty()) {
for (auto button : qAsConst(d->m_dockWidgetActionsButtons)) {
for (auto button : std::as_const(d->m_dockWidgetActionsButtons)) {
d->m_layout->removeWidget(button);
delete button;
}

View File

@@ -204,7 +204,7 @@ namespace ADS
return;
m_visibleDockAreaCount = 0;
for (auto dockArea : qAsConst(m_dockAreas))
for (auto dockArea : std::as_const(m_dockAreas))
m_visibleDockAreaCount += dockArea->isHidden() ? 0 : 1;
}
@@ -1110,7 +1110,7 @@ namespace ADS
DockAreaWidget *DockContainerWidget::dockAreaAt(const QPoint &globalPosition) const
{
for (auto dockArea : qAsConst(d->m_dockAreas)) {
for (auto dockArea : std::as_const(d->m_dockAreas)) {
if (dockArea->isVisible()
&& dockArea->rect().contains(dockArea->mapFromGlobal(globalPosition)))
return dockArea;
@@ -1131,7 +1131,7 @@ namespace ADS
int DockContainerWidget::visibleDockAreaCount() const
{
int result = 0;
for (auto dockArea : qAsConst(d->m_dockAreas))
for (auto dockArea : std::as_const(d->m_dockAreas))
result += dockArea->isHidden() ? 0 : 1;
return result;
@@ -1221,7 +1221,7 @@ namespace ADS
QList<DockAreaWidget *> DockContainerWidget::openedDockAreas() const
{
QList<DockAreaWidget *> result;
for (auto dockArea : qAsConst(d->m_dockAreas)) {
for (auto dockArea : std::as_const(d->m_dockAreas)) {
if (!dockArea->isHidden())
result.append(dockArea);
}
@@ -1361,7 +1361,7 @@ namespace ADS
QList<DockWidget *> DockContainerWidget::dockWidgets() const
{
QList<DockWidget *> result;
for (const auto dockArea : qAsConst(d->m_dockAreas))
for (const auto dockArea : std::as_const(d->m_dockAreas))
result.append(dockArea->dockWidgets());
return result;
@@ -1370,7 +1370,7 @@ namespace ADS
DockWidget::DockWidgetFeatures DockContainerWidget::features() const
{
DockWidget::DockWidgetFeatures features(DockWidget::AllDockWidgetFeatures);
for (const auto dockArea : qAsConst(d->m_dockAreas))
for (const auto dockArea : std::as_const(d->m_dockAreas))
features &= dockArea->features();
return features;
@@ -1383,7 +1383,7 @@ namespace ADS
void DockContainerWidget::closeOtherAreas(DockAreaWidget *keepOpenArea)
{
for (const auto dockArea : qAsConst(d->m_dockAreas)) {
for (const auto dockArea : std::as_const(d->m_dockAreas)) {
if (dockArea == keepOpenArea)
continue;

View File

@@ -106,13 +106,13 @@ namespace ADS
void hideFloatingWidgets()
{
// Hide updates of floating widgets from user
for (auto floatingWidget : qAsConst(m_floatingWidgets))
for (auto floatingWidget : std::as_const(m_floatingWidgets))
floatingWidget->hide();
}
void markDockWidgetsDirty()
{
for (auto dockWidget : qAsConst(m_dockWidgetsMap))
for (auto dockWidget : std::as_const(m_dockWidgetsMap))
dockWidget->setProperty("dirty", true);
}
@@ -216,7 +216,7 @@ namespace ADS
// function are invisible to the user now and have no assigned dock area
// They do not belong to any dock container, until the user toggles the
// toggle view action the next time
for (auto dockWidget : qAsConst(m_dockWidgetsMap)) {
for (auto dockWidget : std::as_const(m_dockWidgetsMap)) {
if (dockWidget->property(internal::dirtyProperty).toBool()) {
dockWidget->flagAsUnassigned();
emit dockWidget->viewToggled(false);
@@ -233,7 +233,7 @@ namespace ADS
// The dock areas because the previous toggleView() action has changed
// the dock area index
int count = 0;
for (auto dockContainer : qAsConst(m_containers)) {
for (auto dockContainer : std::as_const(m_containers)) {
count++;
for (int i = 0; i < dockContainer->dockAreaCount(); ++i) {
DockAreaWidget *dockArea = dockContainer->dockArea(i);
@@ -259,7 +259,7 @@ namespace ADS
{
// Finally we need to send the topLevelChanged() signals for all dock
// widgets if top level changed
for (auto dockContainer : qAsConst(m_containers)) {
for (auto dockContainer : std::as_const(m_containers)) {
DockWidget *topLevelDockWidget = dockContainer->topLevelDockWidget();
if (topLevelDockWidget) {
topLevelDockWidget->emitTopLevelChanged(true);
@@ -329,7 +329,7 @@ namespace ADS
// Using a temporal vector since the destructor of
// FloatingDockWidgetContainer alters d->m_floatingWidgets.
std::vector<FloatingDockContainer *> aboutToDeletes;
for (auto floatingWidget : qAsConst(d->m_floatingWidgets)) {
for (auto floatingWidget : std::as_const(d->m_floatingWidgets)) {
if (floatingWidget)
aboutToDeletes.push_back(floatingWidget);
}
@@ -483,7 +483,7 @@ namespace ADS
stream.writeAttribute("version", QString::number(CurrentVersion));
stream.writeAttribute("userVersion", QString::number(version));
stream.writeAttribute("containers", QString::number(d->m_containers.count()));
for (auto container : qAsConst(d->m_containers))
for (auto container : std::as_const(d->m_containers))
container->saveState(stream);
stream.writeEndElement();
@@ -527,7 +527,7 @@ namespace ADS
if (d->m_uninitializedFloatingWidgets.empty())
return;
for (auto floatingWidget : qAsConst(d->m_uninitializedFloatingWidgets))
for (auto floatingWidget : std::as_const(d->m_uninitializedFloatingWidgets))
floatingWidget->show();
d->m_uninitializedFloatingWidgets.clear();

View File

@@ -592,7 +592,7 @@ namespace ADS {
if (windowHandle()->devicePixelRatio() == d->m_lastDevicePixelRatio) // TODO
return;
for (auto widget : qAsConst(d->m_dropIndicatorWidgets))
for (auto widget : std::as_const(d->m_dropIndicatorWidgets))
d->updateDropIndicatorIcon(widget);
d->m_lastDevicePixelRatio = devicePixelRatioF();

View File

@@ -176,7 +176,7 @@ Aggregate::~Aggregate()
QList<QObject *> components;
{
QWriteLocker locker(&lock());
for (QObject *component : qAsConst(m_components)) {
for (QObject *component : std::as_const(m_components)) {
disconnect(component, &QObject::destroyed, this, &Aggregate::deleteSelf);
aggregateMap().remove(component);
}

View File

@@ -26,7 +26,7 @@ public:
template <typename T> T *component() {
QReadLocker locker(&lock());
for (QObject *component : qAsConst(m_components)) {
for (QObject *component : std::as_const(m_components)) {
if (T *result = qobject_cast<T *>(component))
return result;
}
@@ -36,7 +36,7 @@ public:
template <typename T> QList<T *> components() {
QReadLocker locker(&lock());
QList<T *> results;
for (QObject *component : qAsConst(m_components)) {
for (QObject *component : std::as_const(m_components)) {
if (T *result = qobject_cast<T *>(component)) {
results << result;
}

View File

@@ -26,7 +26,7 @@ public:
return true;
SafeMatcher matcher;
for (const T *existingItem : qAsConst(_container)) {
for (const T *existingItem : std::as_const(_container)) {
if (Matcher::match(existingItem, item, &matcher))
return true;
}

View File

@@ -299,7 +299,7 @@ void Document::setLastModified(const QDateTime &lastModified)
QStringList Document::includedFiles() const
{
QStringList files;
for (const Include &i : qAsConst(_resolvedIncludes))
for (const Include &i : std::as_const(_resolvedIncludes))
files.append(i.resolvedFileName());
files.removeDuplicates();
return files;
@@ -488,7 +488,7 @@ Symbol *Document::lastVisibleSymbolAt(int line, int column) const
const Macro *Document::findMacroDefinitionAt(int line) const
{
for (const Macro &macro : qAsConst(_definedMacros)) {
for (const Macro &macro : std::as_const(_definedMacros)) {
if (macro.line() == line)
return &macro;
}
@@ -497,7 +497,7 @@ const Macro *Document::findMacroDefinitionAt(int line) const
const Document::MacroUse *Document::findMacroUseAt(int utf16charsOffset) const
{
for (const Document::MacroUse &use : qAsConst(_macroUses)) {
for (const Document::MacroUse &use : std::as_const(_macroUses)) {
if (use.containsUtf16charOffset(utf16charsOffset)
&& (utf16charsOffset < use.utf16charsBegin() + use.macro().nameToQString().size())) {
return &use;
@@ -508,7 +508,7 @@ const Document::MacroUse *Document::findMacroUseAt(int utf16charsOffset) const
const Document::UndefinedMacroUse *Document::findUndefinedMacroUseAt(int utf16charsOffset) const
{
for (const Document::UndefinedMacroUse &use : qAsConst(_undefinedMacroUses)) {
for (const Document::UndefinedMacroUse &use : std::as_const(_undefinedMacroUses)) {
if (use.containsUtf16charOffset(utf16charsOffset)
&& (utf16charsOffset < use.utf16charsBegin()
+ QString::fromUtf8(use.name(), use.name().size()).length()))

View File

@@ -399,7 +399,7 @@ private:
if (!klass) {
if (const auto namedType = baseExprType->asNamedType()) {
items = context.lookup(namedType->name(), item->scope());
for (const LookupItem &item : qAsConst(items)) {
for (const LookupItem &item : std::as_const(items)) {
if ((klass = item.type()->asClassType()))
break;
}
@@ -410,7 +410,7 @@ private:
items = context.lookup(memberAccess->member_name->name, klass);
if (items.isEmpty())
return Usage::Type::Other;
for (const LookupItem &item : qAsConst(items)) {
for (const LookupItem &item : std::as_const(items)) {
if (item.type()->asFunctionType()) {
if (item.type().isConst())
return Usage::Type::Read;

View File

@@ -1357,7 +1357,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name,
for (int i = 0; i < argumentCountOfSpecialization; ++i)
templParams.insert(templateSpecialization->templateParameterAt(i)->name(), i);
for (const Name *baseName : qAsConst(allBases)) {
for (const Name *baseName : std::as_const(allBases)) {
ClassOrNamespace *baseBinding = nullptr;
if (const Identifier *nameId = baseName->asNameId()) {
@@ -1435,7 +1435,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name,
// Find the missing bases for regular (non-template) types.
// Ex.: class A : public B<Some>::Type {};
for (const Name *baseName : qAsConst(allBases)) {
for (const Name *baseName : std::as_const(allBases)) {
ClassOrNamespace *binding = this;
if (const QualifiedNameId *qBaseName = baseName->asQualifiedNameId()) {
if (const Name *qualification = qBaseName->base())

View File

@@ -47,7 +47,7 @@ QString Macro::decoratedName() const
if (f._functionLike) {
text += QLatin1Char('(');
bool first = true;
for (const QByteArray &formal : qAsConst(_formals)) {
for (const QByteArray &formal : std::as_const(_formals)) {
if (! first)
text += QLatin1String(", ");
else

View File

@@ -522,7 +522,7 @@ QString MatchingText::insertMatchingBrace(const QTextCursor &cursor, const QStri
}
QString result;
for (const QChar &ch : qAsConst(text)) {
for (const QChar &ch : std::as_const(text)) {
if (ch == QLatin1Char('(')) result += QLatin1Char(')');
else if (ch == QLatin1Char('[')) result += QLatin1Char(']');
else if (ch == QLatin1Char('{')) result += QLatin1Char('}');

View File

@@ -176,7 +176,7 @@ bool OptionsParser::checkForLoadOption()
return false;
if (nextToken(RequiredToken)) {
if (m_currentArg == QLatin1String("all")) {
for (PluginSpec *spec : qAsConst(m_pmPrivate->pluginSpecs))
for (PluginSpec *spec : std::as_const(m_pmPrivate->pluginSpecs))
spec->d->setForceEnabled(true);
m_isDependencyRefreshNeeded = true;
} else {
@@ -203,7 +203,7 @@ bool OptionsParser::checkForNoLoadOption()
return false;
if (nextToken(RequiredToken)) {
if (m_currentArg == QLatin1String("all")) {
for (PluginSpec *spec : qAsConst(m_pmPrivate->pluginSpecs))
for (PluginSpec *spec : std::as_const(m_pmPrivate->pluginSpecs))
spec->d->setForceDisabled(true);
m_isDependencyRefreshNeeded = true;
} else {
@@ -287,7 +287,7 @@ void OptionsParser::forceDisableAllPluginsExceptTestedAndForceEnabled()
{
for (const PluginManagerPrivate::TestSpec &testSpec : m_pmPrivate->testSpecs)
testSpec.pluginSpec->d->setForceEnabled(true);
for (PluginSpec *spec : qAsConst(m_pmPrivate->pluginSpecs)) {
for (PluginSpec *spec : std::as_const(m_pmPrivate->pluginSpecs)) {
if (!spec->isForceEnabled() && !spec->isRequired())
spec->d->setForceDisabled(true);
}

View File

@@ -579,7 +579,7 @@ QString PluginManager::serializedArguments()
if (!rc.isEmpty())
rc += separator;
rc += QLatin1String(argumentKeywordC);
for (const QString &argument : qAsConst(d->arguments))
for (const QString &argument : std::as_const(d->arguments))
rc += separator + argument;
}
return rc;
@@ -746,7 +746,7 @@ void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int d
void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
{
// Check plugins for options
for (PluginSpec *ps : qAsConst(d->pluginSpecs)) {
for (PluginSpec *ps : std::as_const(d->pluginSpecs)) {
const PluginSpec::PluginArgumentDescriptions pargs = ps->argumentDescriptions();
if (!pargs.empty()) {
str << "\nPlugin: " << ps->name() << '\n';
@@ -761,7 +761,7 @@ void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation,
*/
void PluginManager::formatPluginVersions(QTextStream &str)
{
for (PluginSpec *ps : qAsConst(d->pluginSpecs))
for (PluginSpec *ps : std::as_const(d->pluginSpecs))
str << " " << ps->name() << ' ' << ps->version() << ' ' << ps->description() << '\n';
}
@@ -993,7 +993,7 @@ void PluginManagerPrivate::writeSettings()
return;
QStringList tempDisabledPlugins;
QStringList tempForceEnabledPlugins;
for (PluginSpec *spec : qAsConst(pluginSpecs)) {
for (PluginSpec *spec : std::as_const(pluginSpecs)) {
if (spec->isEnabledByDefault() && !spec->isEnabledBySettings())
tempDisabledPlugins.append(spec->name());
if (!spec->isEnabledByDefault() && spec->isEnabledBySettings())
@@ -1203,7 +1203,7 @@ static TestPlan generateCustomTestPlan(IPlugin *plugin,
} else {
// Add all matching test functions of all remaining test objects
for (QObject *testObject : qAsConst(remainingTestObjectsOfPlugin)) {
for (QObject *testObject : std::as_const(remainingTestObjectsOfPlugin)) {
const QStringList allFunctions = testFunctions(testObject->metaObject());
const QStringList matchingFunctions = matchingTestFunctions(allFunctions,
matchText);
@@ -1250,7 +1250,7 @@ void PluginManagerPrivate::startTests()
}
int failedTests = 0;
for (const TestSpec &testSpec : qAsConst(testSpecs)) {
for (const TestSpec &testSpec : std::as_const(testSpecs)) {
IPlugin *plugin = testSpec.pluginSpec->plugin();
if (!plugin)
continue; // plugin not loaded
@@ -1395,7 +1395,7 @@ void PluginManagerPrivate::shutdown()
const QVector<PluginSpec *> PluginManagerPrivate::loadQueue()
{
QVector<PluginSpec *> queue;
for (PluginSpec *spec : qAsConst(pluginSpecs)) {
for (PluginSpec *spec : std::as_const(pluginSpecs)) {
QVector<PluginSpec *> circularityCheckQueue;
loadQueue(spec, queue, circularityCheckQueue);
}
@@ -1702,13 +1702,13 @@ void PluginManagerPrivate::readPluginPaths()
void PluginManagerPrivate::resolveDependencies()
{
for (PluginSpec *spec : qAsConst(pluginSpecs))
for (PluginSpec *spec : std::as_const(pluginSpecs))
spec->d->resolveDependencies(pluginSpecs);
}
void PluginManagerPrivate::enableDependenciesIndirectly()
{
for (PluginSpec *spec : qAsConst(pluginSpecs))
for (PluginSpec *spec : std::as_const(pluginSpecs))
spec->d->enabledIndirectly = false;
// cannot use reverse loadQueue here, because test dependencies can introduce circles
QVector<PluginSpec *> queue = Utils::filtered(pluginSpecs, &PluginSpec::isEffectivelyEnabled);
@@ -1723,7 +1723,7 @@ PluginSpec *PluginManagerPrivate::pluginForOption(const QString &option, bool *r
{
// Look in the plugins for an option
*requiresArgument = false;
for (PluginSpec *spec : qAsConst(pluginSpecs)) {
for (PluginSpec *spec : std::as_const(pluginSpecs)) {
PluginArgumentDescription match = Utils::findOrDefault(spec->argumentDescriptions(),
[option](PluginArgumentDescription pad) {
return pad.name == option;

View File

@@ -998,7 +998,7 @@ bool PluginSpecPrivate::resolveDependencies(const QVector<PluginSpec *> &specs)
return false;
}
QHash<PluginDependency, PluginSpec *> resolvedDependencies;
for (const PluginDependency &dependency : qAsConst(dependencies)) {
for (const PluginDependency &dependency : std::as_const(dependencies)) {
PluginSpec * const found = Utils::findOrDefault(specs, [&dependency](PluginSpec *spec) {
return spec->provides(dependency.name, dependency.version);
});

View File

@@ -358,7 +358,7 @@ void PluginView::updatePlugins()
}
Utils::sort(collections, &CollectionItem::m_name);
for (CollectionItem *collection : qAsConst(collections))
for (CollectionItem *collection : std::as_const(collections))
m_model->rootItem()->appendChild(collection);
emit m_model->layoutChanged();

View File

@@ -535,7 +535,7 @@ void DiagramController::onBeginResetModel()
void DiagramController::onEndResetModel()
{
updateAllDiagramsList();
for (MDiagram *diagram : qAsConst(m_allDiagrams)) {
for (MDiagram *diagram : std::as_const(m_allDiagrams)) {
const QList<DElement *> elements = diagram->diagramElements();
// remove all elements which are not longer part of the model
for (int i = elements.size() - 1; i >= 0; --i) {

View File

@@ -230,7 +230,7 @@ ObjectItem *DiagramSceneModel::findTopmostObjectItem(const QPointF &scenePos) co
{
// fetch affected items from scene in correct drawing order to find topmost element
const QList<QGraphicsItem *> items = m_graphicsScene->items(scenePos);
for (QGraphicsItem *item : qAsConst(items)) {
for (QGraphicsItem *item : std::as_const(items)) {
if (m_graphicsItems.contains(item)) {
DObject *object = dynamic_cast<DObject *>(m_itemToElementMap.value(item));
if (object)
@@ -807,7 +807,7 @@ void DiagramSceneModel::onEndRemoveElement(int row, const MDiagram *diagram)
Q_UNUSED(diagram)
QMT_CHECK(m_busyState == RemoveElement);
// update elements from store (see above)
for (const Uid &end_uid : qAsConst(m_relationEndsUid)) {
for (const Uid &end_uid : std::as_const(m_relationEndsUid)) {
DElement *dEnd = m_diagramController->findElement(end_uid, diagram);
if (dEnd)
updateGraphicsItem(graphicsItem(dEnd), dEnd);
@@ -854,11 +854,11 @@ void DiagramSceneModel::onSelectionChanged()
}
// select more items secondarily
for (QGraphicsItem *selectedItem : qAsConst(m_selectedItems)) {
for (QGraphicsItem *selectedItem : std::as_const(m_selectedItems)) {
if (auto selectable = dynamic_cast<ISelectable *>(selectedItem)) {
QRectF boundary = selectable->getSecondarySelectionBoundary();
if (!boundary.isEmpty()) {
for (QGraphicsItem *item : qAsConst(m_graphicsItems)) {
for (QGraphicsItem *item : std::as_const(m_graphicsItems)) {
if (auto secondarySelectable = dynamic_cast<ISelectable *>(item)) {
if (!item->isSelected() && !secondarySelectable->isSecondarySelected()) {
secondarySelectable->setBoundarySelected(boundary, true);
@@ -1023,7 +1023,7 @@ void DiagramSceneModel::restoreSelectedStatusAfterExport(const DiagramSceneModel
void DiagramSceneModel::recalcSceneRectSize()
{
QRectF sceneRect = m_originItem->mapRectToScene(m_originItem->boundingRect());
for (QGraphicsItem *item : qAsConst(m_graphicsItems)) {
for (QGraphicsItem *item : std::as_const(m_graphicsItems)) {
// TODO use an interface to update sceneRect by item
if (!dynamic_cast<SwimlaneItem *>(item))
sceneRect |= item->mapRectToScene(item->boundingRect());

View File

@@ -554,7 +554,7 @@ QByteArray DependencyInfo::calculateFingerprint(const ImportDependencies &deps)
hash.addData("/", 1);
QList<ImportKey> imports = Utils::toList(allImports);
std::sort(imports.begin(), imports.end());
for (const ImportKey &k : qAsConst(imports))
for (const ImportKey &k : std::as_const(imports))
k.addToHash(hash);
return hash.result();
}

View File

@@ -2565,7 +2565,7 @@ const ObjectValue *Imports::resolveAliasAndMarkUsed(const QString &name) const
{
if (const ObjectValue *value = m_aliased.value(name, nullptr)) {
// mark all respective ImportInfo objects to avoid dropping imports (QmlDesigner) on rewrite
for (const Import &i : qAsConst(m_imports)) {
for (const Import &i : std::as_const(m_imports)) {
const ImportInfo &info = i.info;
if (info.as() == name)
i.used = true; // FIXME: This evilly modifies a 'const' object

View File

@@ -212,7 +212,7 @@ Context::ImportsPerDocument LinkPrivate::linkImports()
importsPerDocument.insert(document.data(), QSharedPointer<Imports>(imports));
}
for (const Document::Ptr &doc : qAsConst(m_snapshot)) {
for (const Document::Ptr &doc : std::as_const(m_snapshot)) {
if (doc == document)
continue;
@@ -413,7 +413,7 @@ Import LinkPrivate::importNonFile(const Document::Ptr &doc, const ImportInfo &im
}
if (!importFound) {
for (const Utils::FilePath &dir : qAsConst(m_applicationDirectories)) {
for (const Utils::FilePath &dir : std::as_const(m_applicationDirectories)) {
auto qmltypes = dir.dirEntries(
Utils::FileFilter(QStringList{"*.qmltypes"}, QDir::Files));

View File

@@ -278,9 +278,9 @@ void ModelManagerInterface::loadQmlTypeDescriptionsInternal(const QString &resou
for (auto it = objs.cbegin(); it != objs.cend(); ++it)
CppQmlTypesLoader::defaultLibraryObjects.insert(it.key(), it.value());
for (const QString &error : qAsConst(errors))
for (const QString &error : std::as_const(errors))
writeMessageInternal(error);
for (const QString &warning : qAsConst(warnings))
for (const QString &warning : std::as_const(warnings))
writeMessageInternal(warning);
}
@@ -462,7 +462,7 @@ void ModelManagerInterface::iterateQrcFiles(
}
QSet<Utils::FilePath> pathsChecked;
for (const ModelManagerInterface::ProjectInfo &pInfo : qAsConst(pInfos)) {
for (const ModelManagerInterface::ProjectInfo &pInfo : std::as_const(pInfos)) {
QList<Utils::FilePath> qrcFilePaths;
if (resources == ActiveQrcResources)
qrcFilePaths = pInfo.activeResourceFiles;
@@ -470,7 +470,7 @@ void ModelManagerInterface::iterateQrcFiles(
qrcFilePaths = pInfo.allResourceFiles;
for (const Utils::FilePath &p : generatedQrc(pInfo.applicationDirectories))
qrcFilePaths.append(p);
for (const Utils::FilePath &qrcFilePath : qAsConst(qrcFilePaths)) {
for (const Utils::FilePath &qrcFilePath : std::as_const(qrcFilePaths)) {
if (pathsChecked.contains(qrcFilePath))
continue;
pathsChecked.insert(qrcFilePath);
@@ -566,19 +566,19 @@ void ModelManagerInterface::updateProjectInfo(const ProjectInfo &pinfo, ProjectE
// remove files that are no longer in the project and have been deleted
QList<Utils::FilePath> deletedFiles;
for (const Utils::FilePath &oldFile : qAsConst(oldInfo.sourceFiles)) {
for (const Utils::FilePath &oldFile : std::as_const(oldInfo.sourceFiles)) {
if (snapshot.document(oldFile) && !pinfo.sourceFiles.contains(oldFile)
&& !oldFile.exists()) {
deletedFiles += oldFile;
}
}
removeFiles(deletedFiles);
for (const Utils::FilePath &oldFile : qAsConst(deletedFiles))
for (const Utils::FilePath &oldFile : std::as_const(deletedFiles))
m_fileToProject.remove(oldFile, p);
// parse any files not yet in the snapshot
QList<Utils::FilePath> newFiles;
for (const Utils::FilePath &file : qAsConst(pinfo.sourceFiles)) {
for (const Utils::FilePath &file : std::as_const(pinfo.sourceFiles)) {
if (!m_fileToProject.contains(file, p))
m_fileToProject.insert(file, p);
if (!snapshot.document(file))
@@ -589,11 +589,11 @@ void ModelManagerInterface::updateProjectInfo(const ProjectInfo &pinfo, ProjectE
// update qrc cache
m_qrcContents = pinfo.resourceFileContents;
for (const Utils::FilePath &newQrc : qAsConst(pinfo.allResourceFiles))
for (const Utils::FilePath &newQrc : std::as_const(pinfo.allResourceFiles))
m_qrcCache.addPath(newQrc.toString(), m_qrcContents.value(newQrc));
for (const Utils::FilePath &newQrc : generatedQrc(pinfo.applicationDirectories))
m_qrcCache.addPath(newQrc.toString(), m_qrcContents.value(newQrc));
for (const Utils::FilePath &oldQrc : qAsConst(oldInfo.allResourceFiles))
for (const Utils::FilePath &oldQrc : std::as_const(oldInfo.allResourceFiles))
m_qrcCache.removePath(oldQrc.toString());
m_pluginDumper->loadBuiltinTypes(pinfo);
@@ -654,7 +654,7 @@ QList<ModelManagerInterface::ProjectInfo> ModelManagerInterface::allProjectInfos
projects = m_fileToProject.values(path.canonicalPath());
}
QList<ProjectInfo> infos;
for (ProjectExplorer::Project *project : qAsConst(projects)) {
for (ProjectExplorer::Project *project : std::as_const(projects)) {
ProjectInfo info = projectInfo(project);
if (!info.project.isNull())
infos.append(info);
@@ -1011,7 +1011,7 @@ void ModelManagerInterface::parseLoop(QSet<Utils::FilePath> &scannedPaths,
}
// add new files to parse list
for (const Utils::FilePath &file : qAsConst(importedFiles)) {
for (const Utils::FilePath &file : std::as_const(importedFiles)) {
if (!files.contains(file))
files.append(file);
}
@@ -1200,7 +1200,7 @@ static QList<Utils::FilePath> minimalPrefixPaths(const QList<Utils::FilePath> &p
{
QList<Utils::FilePath> sortedPaths;
// find minimal prefix, ensure '/' at end
for (Utils::FilePath path : qAsConst(paths)) {
for (Utils::FilePath path : std::as_const(paths)) {
if (!path.endsWith("/"))
path = path.withNewPath(path.path() + "/");
if (path.path().length() > 1)
@@ -1226,7 +1226,7 @@ void ModelManagerInterface::updateImportPaths()
QList<Utils::FilePath> allApplicationDirectories;
QmlLanguageBundles activeBundles;
QmlLanguageBundles extendedBundles;
for (const ProjectInfo &pInfo : qAsConst(m_projects)) {
for (const ProjectInfo &pInfo : std::as_const(m_projects)) {
for (const auto &importPath : pInfo.importPaths) {
const FilePath canonicalPath = importPath.path().canonicalPath();
if (!canonicalPath.isEmpty())
@@ -1235,13 +1235,13 @@ void ModelManagerInterface::updateImportPaths()
allApplicationDirectories.append(pInfo.applicationDirectories);
}
for (const ViewerContext &vContext : qAsConst(m_defaultVContexts)) {
for (const ViewerContext &vContext : std::as_const(m_defaultVContexts)) {
for (const Utils::FilePath &path : vContext.paths)
allImportPaths.maybeInsert(path, vContext.language);
allApplicationDirectories.append(vContext.applicationDirectories);
}
for (const ProjectInfo &pInfo : qAsConst(m_projects)) {
for (const ProjectInfo &pInfo : std::as_const(m_projects)) {
activeBundles.mergeLanguageBundles(pInfo.activeBundle);
const auto languages = pInfo.activeBundle.languages();
for (Dialect l : languages) {
@@ -1254,7 +1254,7 @@ void ModelManagerInterface::updateImportPaths()
}
}
for (const ProjectInfo &pInfo : qAsConst(m_projects)) {
for (const ProjectInfo &pInfo : std::as_const(m_projects)) {
if (!pInfo.qtQmlPath.isEmpty())
allImportPaths.maybeInsert(pInfo.qtQmlPath, Dialect::QmlQtQuick2);
}
@@ -1269,7 +1269,7 @@ void ModelManagerInterface::updateImportPaths()
allImportPaths.maybeInsert(importPath);
}
for (const Utils::FilePath &path : qAsConst(m_defaultImportPaths))
for (const Utils::FilePath &path : std::as_const(m_defaultImportPaths))
allImportPaths.maybeInsert(path, Dialect::Qml);
allImportPaths.compact();
allApplicationDirectories = Utils::filteredUnique(allApplicationDirectories);
@@ -1288,9 +1288,9 @@ void ModelManagerInterface::updateImportPaths()
QList<Utils::FilePath> importedFiles;
QSet<Utils::FilePath> scannedPaths;
QSet<Utils::FilePath> newLibraries;
for (const Document::Ptr &doc : qAsConst(snapshot))
for (const Document::Ptr &doc : std::as_const(snapshot))
findNewLibraryImports(doc, snapshot, this, &importedFiles, &scannedPaths, &newLibraries);
for (const Utils::FilePath &path : qAsConst(allApplicationDirectories)) {
for (const Utils::FilePath &path : std::as_const(allApplicationDirectories)) {
allImportPaths.maybeInsert(path, Dialect::Qml);
findNewQmlApplicationInPath(path, snapshot, this, &newLibraries);
}
@@ -1381,9 +1381,9 @@ bool rescanExports(const QString &fileName, FindExportedCppTypes &finder,
}
if (!hasNewInfo) {
QHash<QString, QByteArray> newFingerprints;
for (const auto &newType : qAsConst(exported))
for (const auto &newType : std::as_const(exported))
newFingerprints[newType->className()]=newType->fingerprint();
for (const auto &oldType : qAsConst(data.exportedTypes)) {
for (const auto &oldType : std::as_const(data.exportedTypes)) {
if (newFingerprints.value(oldType->className()) != oldType->fingerprint()) {
hasNewInfo = true;
break;
@@ -1521,7 +1521,7 @@ ViewerContext ModelManagerInterface::getVContext(const ViewerContext &vCtx,
Q_FALLTHROUGH();
case ViewerContext::AddAllPaths:
{
for (const Utils::FilePath &path : qAsConst(defaultVCtx.paths))
for (const Utils::FilePath &path : std::as_const(defaultVCtx.paths))
maybeAddPath(res, path);
switch (res.language.dialect()) {
case Dialect::AnyLanguage:
@@ -1552,7 +1552,7 @@ ViewerContext ModelManagerInterface::getVContext(const ViewerContext &vCtx,
allProjects = m_projects.values();
}
std::sort(allProjects.begin(), allProjects.end(), &pInfoLessThanImports);
for (const ProjectInfo &pInfo : qAsConst(allProjects))
for (const ProjectInfo &pInfo : std::as_const(allProjects))
addPathsOnLanguageMatch(pInfo.importPaths);
}
const auto environmentPaths = environmentImportPaths();
@@ -1574,7 +1574,7 @@ ViewerContext ModelManagerInterface::getVContext(const ViewerContext &vCtx,
res.selectors.append(defaultVCtx.selectors);
Q_FALLTHROUGH();
case ViewerContext::AddDefaultPaths:
for (const Utils::FilePath &path : qAsConst(defaultVCtx.paths))
for (const Utils::FilePath &path : std::as_const(defaultVCtx.paths))
maybeAddPath(res, path);
if (res.language == Dialect::AnyLanguage || res.language == Dialect::Qml)
maybeAddPath(res, info.qtQmlPath);
@@ -1692,7 +1692,7 @@ void ModelManagerInterface::resetCodeModel()
QMutexLocker locker(&m_mutex);
// find all documents currently in the code model
for (const Document::Ptr &doc : qAsConst(m_validSnapshot))
for (const Document::Ptr &doc : std::as_const(m_validSnapshot))
documents.append(doc->fileName());
// reset the snapshot

View File

@@ -151,7 +151,7 @@ void PluginDumper::onLoadPluginTypes(const Utils::FilePath &libraryPath,
// watch library qmltypes file
if (!plugin.typeInfoPaths.isEmpty()) {
for (const FilePath &path : qAsConst(plugin.typeInfoPaths)) {
for (const FilePath &path : std::as_const(plugin.typeInfoPaths)) {
if (!path.exists())
continue;
if (!pluginWatcher()->watchesFile(path.toString()))

View File

@@ -198,7 +198,7 @@ void TimelineTraceManager::setAggregateTraces(bool aggregateTraces)
void TimelineTraceManager::initialize()
{
for (const Initializer &initializer : qAsConst(d->initializers))
for (const Initializer &initializer : std::as_const(d->initializers))
initializer();
}
@@ -209,7 +209,7 @@ void TimelineTraceManager::finalize()
// Load notes after the timeline models have been initialized ...
// which happens on stateChanged(Done).
for (const Finalizer &finalizer : qAsConst(d->finalizers))
for (const Finalizer &finalizer : std::as_const(d->finalizers))
finalizer();
}
@@ -398,7 +398,7 @@ void TimelineTraceManager::TimelineTraceManagerPrivate::reset()
traceStart = -1;
traceEnd = -1;
for (const Clearer &clearer : qAsConst(clearers))
for (const Clearer &clearer : std::as_const(clearers))
clearer();
numEvents = 0;

View File

@@ -180,7 +180,7 @@ bool BaseAspect::isVisible() const
void BaseAspect::setVisible(bool visible)
{
d->m_visible = visible;
for (QWidget *w : qAsConst(d->m_subWidgets)) {
for (QWidget *w : std::as_const(d->m_subWidgets)) {
QTC_ASSERT(w, continue);
// This may happen during layout building. Explicit setting visibility here
// may create a show a toplevel widget for a moment until it is parented
@@ -274,7 +274,7 @@ QString BaseAspect::toolTip() const
void BaseAspect::setToolTip(const QString &tooltip)
{
d->m_tooltip = tooltip;
for (QWidget *w : qAsConst(d->m_subWidgets)) {
for (QWidget *w : std::as_const(d->m_subWidgets)) {
QTC_ASSERT(w, continue);
w->setToolTip(tooltip);
}
@@ -288,7 +288,7 @@ bool BaseAspect::isEnabled() const
void BaseAspect::setEnabled(bool enabled)
{
d->m_enabled = enabled;
for (QWidget *w : qAsConst(d->m_subWidgets)) {
for (QWidget *w : std::as_const(d->m_subWidgets)) {
QTC_ASSERT(w, continue);
w->setEnabled(enabled);
}
@@ -313,7 +313,7 @@ bool BaseAspect::isReadOnly() const
void BaseAspect::setReadOnly(bool readOnly)
{
d->m_readOnly = readOnly;
for (QWidget *w : qAsConst(d->m_subWidgets)) {
for (QWidget *w : std::as_const(d->m_subWidgets)) {
QTC_ASSERT(w, continue);
if (auto lineEdit = qobject_cast<QLineEdit *>(w))
lineEdit->setReadOnly(readOnly);
@@ -1661,7 +1661,7 @@ void MultiSelectionAspect::addToLayout(LayoutBuilder &builder)
switch (d->m_displayStyle) {
case DisplayStyle::ListView:
d->m_listView = createSubWidget<QListWidget>();
for (const QString &val : qAsConst(d->m_allValues)) {
for (const QString &val : std::as_const(d->m_allValues)) {
auto item = new QListWidgetItem(val, d->m_listView);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(value().contains(item->text()) ? Qt::Checked : Qt::Unchecked);
@@ -2239,7 +2239,7 @@ void AspectContainer::registerAspect(BaseAspect *aspect)
void AspectContainer::registerAspects(const AspectContainer &aspects)
{
for (BaseAspect *aspect : qAsConst(aspects.d->m_items))
for (BaseAspect *aspect : std::as_const(aspects.d->m_items))
registerAspect(aspect);
}
@@ -2270,7 +2270,7 @@ const QList<BaseAspect *> &AspectContainer::aspects() const
void AspectContainer::fromMap(const QVariantMap &map)
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->fromMap(map);
emit fromMapFinished();
@@ -2279,7 +2279,7 @@ void AspectContainer::fromMap(const QVariantMap &map)
void AspectContainer::toMap(QVariantMap &map) const
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->toMap(map);
}
@@ -2288,7 +2288,7 @@ void AspectContainer::readSettings(QSettings *settings)
for (const QString &group : d->m_settingsGroup)
settings->beginGroup(group);
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->readSettings(settings);
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
@@ -2300,7 +2300,7 @@ void AspectContainer::writeSettings(QSettings *settings) const
for (const QString &group : d->m_settingsGroup)
settings->beginGroup(group);
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->writeSettings(settings);
for (int i = 0; i != d->m_settingsGroup.size(); ++i)
@@ -2319,7 +2319,7 @@ void AspectContainer::setSettingsGroups(const QString &groupKey, const QString &
void AspectContainer::apply()
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->apply();
emit applied();
@@ -2327,26 +2327,26 @@ void AspectContainer::apply()
void AspectContainer::cancel()
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->cancel();
}
void AspectContainer::finish()
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->finish();
}
void AspectContainer::reset()
{
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->setValueQuietly(aspect->defaultValue());
}
void AspectContainer::setAutoApply(bool on)
{
d->m_autoApply = on;
for (BaseAspect *aspect : qAsConst(d->m_items))
for (BaseAspect *aspect : std::as_const(d->m_items))
aspect->setAutoApply(on);
}
@@ -2357,7 +2357,7 @@ void AspectContainer::setOwnsSubAspects(bool on)
bool AspectContainer::isDirty() const
{
for (BaseAspect *aspect : qAsConst(d->m_items)) {
for (BaseAspect *aspect : std::as_const(d->m_items)) {
if (aspect->isDirty())
return true;
}
@@ -2382,7 +2382,7 @@ void AspectContainer::copyFrom(const AspectContainer &other)
void AspectContainer::forEachAspect(const std::function<void(BaseAspect *)> &run) const
{
for (BaseAspect *aspect : qAsConst(d->m_items)) {
for (BaseAspect *aspect : std::as_const(d->m_items)) {
if (auto container = dynamic_cast<AspectContainer *>(aspect))
container->forEachAspect(run);
else

View File

@@ -64,7 +64,7 @@ static void qtSection(const QStringList &qtIncludes, QTextStream &str)
{
QStringList sorted = qtIncludes;
sort(sorted);
for (const QString &inc : qAsConst(sorted)) {
for (const QString &inc : std::as_const(sorted)) {
if (!inc.isEmpty())
str << QStringLiteral("#include <%1>\n").arg(inc);
}

View File

@@ -174,31 +174,11 @@ DeviceShell::~DeviceShell()
* \param stdInData Data to send to the stdin of the command
* \return true if the command finished with EXIT_SUCCESS(0)
*
* Runs the cmd inside the internal shell process and return whether it exited with EXIT_SUCCESS
* Runs the cmd inside the internal shell process and return stdout, stderr and exit code
*
* Will automatically defer to the internal thread
*/
bool DeviceShell::runInShell(const CommandLine &cmd, const QByteArray &stdInData)
{
QTC_ASSERT(m_shellProcess, return false);
Q_ASSERT(QThread::currentThread() != &m_thread);
const RunResult result = run(cmd, stdInData);
return result.exitCode == 0;
}
/*!
* \brief DeviceShell::outputForRunInShell
* \param cmd The command to run
* \param stdInData Data to send to the stdin of the command
* \return The stdout of the command
*
* Runs a command inside the running shell and returns the stdout that was generated by it.
*
* Will automatically defer to the internal thread
*/
DeviceShell::RunResult DeviceShell::outputForRunInShell(const CommandLine &cmd,
const QByteArray &stdInData)
RunResult DeviceShell::runInShell(const CommandLine &cmd, const QByteArray &stdInData)
{
QTC_ASSERT(m_shellProcess, return {});
Q_ASSERT(QThread::currentThread() != &m_thread);
@@ -210,7 +190,7 @@ DeviceShell::State DeviceShell::state() const { return m_shellScriptState; }
QStringList DeviceShell::missingFeatures() const { return m_missingFeatures; }
DeviceShell::RunResult DeviceShell::run(const CommandLine &cmd, const QByteArray &stdInData)
RunResult DeviceShell::run(const CommandLine &cmd, const QByteArray &stdInData)
{
if (m_shellScriptState == State::NoScript) {
// Fallback ...
@@ -539,16 +519,16 @@ void DeviceShell::onReadyRead()
QTC_ASSERT(itCmd != m_commandOutput.end(), continue);
switch (type) {
case Utils::DeviceShell::ParseType::StdOut:
case ParseType::StdOut:
itCmd->stdOut.append(data);
break;
case Utils::DeviceShell::ParseType::StdErr:
case ParseType::StdErr:
itCmd->stdErr.append(data);
break;
case Utils::DeviceShell::ParseType::ExitCode: {
case ParseType::ExitCode: {
bool ok = false;
int exitCode;
exitCode = QString::fromUtf8(data.begin(), data.size()).toInt(&ok);
exitCode = data.toInt(&ok);
QTC_ASSERT(ok, exitCode = -1);
itCmd->exitCode = exitCode;
itCmd->waiter->wakeOne();

View File

@@ -5,6 +5,8 @@
#include "utils_global.h"
#include "fileutils.h"
#include <QMap>
#include <QMutex>
#include <QProcess>
@@ -28,13 +30,6 @@ class QTCREATOR_UTILS_EXPORT DeviceShell : public QObject
public:
enum class State { FailedToStart = -1, Unknown = 0, Succeeded = 1, NoScript = 2 };
struct RunResult
{
int exitCode = 0;
QByteArray stdOut;
QByteArray stdErr;
};
enum class ParseType {
StdOut,
StdErr,
@@ -46,8 +41,7 @@ public:
bool start();
bool runInShell(const CommandLine &cmd, const QByteArray &stdInData = {});
RunResult outputForRunInShell(const CommandLine &cmd, const QByteArray &stdInData = {});
RunResult runInShell(const CommandLine &cmd, const QByteArray &stdInData = {});
State state() const;

View File

@@ -509,7 +509,7 @@ void FancyLineEdit::validate()
// Check buttons.
if (d->m_oldText.isEmpty() || t.isEmpty()) {
for (auto &button : qAsConst(d->m_iconbutton)) {
for (auto &button : std::as_const(d->m_iconbutton)) {
if (button->hasAutoHide())
button->animateShow(!t.isEmpty());
}

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