Merge remote-tracking branch 'origin/9.0'
Conflicts: src/plugins/qmldesigner/CMakeLists.txt Change-Id: I500420df35519e6903abc570d1283185f01bf900
@@ -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}\"
|
||||
|
BIN
doc/qtcreator/images/icons/jumpto.png
Normal file
After Width: | Height: | Size: 399 B |
BIN
doc/qtcreator/images/icons/objectsmap.png
Normal file
After Width: | Height: | Size: 140 B |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-create-test-suite-aut.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-create-test-suite.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-debugging-view.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-locals.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 6.3 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-output-test-results.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-preferences.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 3.9 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-server-settings.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-symbolic-names.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-test-script-edit.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/qtcreator/images/qtcreator-squish-view.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -4,7 +4,7 @@
|
||||
/*!
|
||||
\previouspage creator-ctf-visualizer.html
|
||||
\page creator-autotest.html
|
||||
\nextpage creator-advanced.html
|
||||
\nextpage creator-squish.html
|
||||
|
||||
\title Running Autotests
|
||||
|
||||
|
330
doc/qtcreator/src/howto/creator-only/creator-squish.qdoc
Normal 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"
|
||||
*/
|
@@ -8,7 +8,7 @@
|
||||
// **********************************************************************
|
||||
|
||||
/*!
|
||||
\previouspage creator-autotest.html
|
||||
\previouspage creator-squish.html
|
||||
\page creator-advanced.html
|
||||
\nextpage creator-os-supported-platforms.html
|
||||
|
||||
|
@@ -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
|
||||
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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}.
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
*/
|
||||
|
@@ -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.
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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):
|
||||
|
@@ -413,7 +413,7 @@ void NodeInstanceClientProxy::readDataStream()
|
||||
break;
|
||||
}
|
||||
|
||||
for (const QVariant &command : qAsConst(commandList))
|
||||
for (const QVariant &command : std::as_const(commandList))
|
||||
dispatchCommand(command);
|
||||
}
|
||||
|
||||
|
@@ -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)) {
|
||||
|
@@ -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)) {
|
||||
|
@@ -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
|
||||
|
@@ -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
@@ -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>&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 '%1' could not be located in the path '%2'</source>
|
||||
<translation>El binario '%1' no pudo ser localizado en la ruta '%2'</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><New branch></source>
|
||||
<translation><Nueva rama></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>
|
||||
'%1' 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>
|
||||
|
@@ -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>&Git</source>
|
||||
<translation>&Git</translation>
|
||||
@@ -8065,10 +8047,6 @@ on slow machines. In this case, the value should be increased.</source>
|
||||
<source>&Redo</source>
|
||||
<translation>&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 '%1' could not be located in the path '%2'</source>
|
||||
<translation>A(z) '%1' binarás nincs telepítve a(z) '%2' ú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><New branch></source>
|
||||
<translation><Új elágazás></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>
|
||||
'%1' failed (exit code %2).
|
||||
|
@@ -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'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>&Git</source>
|
||||
<translation>&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 '%1' could not be located in the path '%2'</source>
|
||||
<translation>Impossibile trovare il binario '%1' nel percorso '%2'</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><New branch></source>
|
||||
<translation><nuovo branch></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'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>
|
||||
'%1' 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>
|
||||
|
@@ -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 <b>unmerged</b> branch '%1'?</source>
|
||||
<translation>Ali želite izbrisati <b>nezdruženo</b> 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>&Git</source>
|
||||
<translation>&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 "%1"</source>
|
||||
<translation type="obsolete">Razveljavi spremembe v »%1«</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Git::Internal::GitSettings</name>
|
||||
<message>
|
||||
<source>The binary '%1' could not be located in the path '%2'</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 "patience diff" algorithm</source>
|
||||
<translation type="obsolete">Uporabi algoritem za razlike po pasjansi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GitCommand</name>
|
||||
<message>
|
||||
<source>
|
||||
'%1' 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 '%1'</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&fresh</source>
|
||||
<translation>Os&veži</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>&Add...</source>
|
||||
<translation>&Dodaj ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>F&etch</source>
|
||||
<translation>&Pridobi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>&Remove</source>
|
||||
<translation>&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 '%1'
|
||||
(%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>&QML/JS</source>
|
||||
<translation>&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><New branch></source>
|
||||
<translation type="obsolete"><nova veja></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>
|
||||
|
@@ -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>&Checkout</source>
|
||||
<translation>取出(&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>&Git</source>
|
||||
<translation>Git(&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 '%1' could not be located in the path '%2'</source>
|
||||
<translation>在路徑 '%2' 中找不到執行檔 '%1'</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&pass hooks</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Git::Internal::SettingsPage</name>
|
||||
<message>
|
||||
<source><b>Note:</b></source>
|
||||
<translation><b>注意:</b></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>"%1" 的提交紀錄</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 '%1'
|
||||
(%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 &&
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Git::Internal::BranchAddDialog</name>
|
||||
<name>Git</name>
|
||||
<message>
|
||||
<source>Dialog</source>
|
||||
<translation>對話框</translation>
|
||||
@@ -21791,9 +21707,6 @@ if (a &&
|
||||
<source>Track local branch '%1'</source>
|
||||
<translation>追蹤本地分支 '%1'</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Git::Internal::RemoteAdditionDialog</name>
|
||||
<message>
|
||||
<source>Add Remote</source>
|
||||
<translation>新增遠端</translation>
|
||||
@@ -21806,29 +21719,14 @@ if (a &&
|
||||
<source>URL:</source>
|
||||
<translation>網址:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Git::Internal::RemoteDialog</name>
|
||||
<message>
|
||||
<source>Remotes</source>
|
||||
<translation>遠端</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Re&fresh</source>
|
||||
<translation>刷新(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Add...</source>
|
||||
<translation>新增(&A)...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>F&etch</source>
|
||||
<translation>抓取(&E)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Remove</source>
|
||||
<translation>移除(&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>&QML/JS</source>
|
||||
<translation>QML/JS(&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>>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><span style=" color:#ff0000;">Password is too short</span></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><span style=" color:#ff0000;">Passwords don't match</span></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><b>Deploy configurations</b></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 '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -30338,16 +30153,10 @@ Please install at least one SDK.</source>
|
||||
<source>Can't open '%1'</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 ('Run option').</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 '%1 %2'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation type="unfinished">打包失敗。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging error: Could not start command '%1 %2'. Reason: %3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging Error: Command '%1 %2' failed.</source>
|
||||
<translation type="unfinished">打包錯誤:指令 '%1' 失敗。 {1 %2'?}</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. "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. "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. "org.example.
|
||||
'%1' 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. "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. "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. "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>&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><html><head/><body><table><tr><td>Subject</td><td>%1</td></tr><tr><td>Number</td><td><a href="%11">%2</a></td></tr><tr><td>Owner</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Project</td><td>%5 (%6)</td></tr><tr><td>Status</td><td>%7, %8</td></tr><tr><td>Patch set</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html></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: '%1' -> %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 '%1'</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.
|
||||
"gerrit.config".</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 '%1' (%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's QML editors when the type name is a string literal</source>
|
||||
<translation type="unfinished">此種類型名稱字串字面常數僅在 Qt Creator 中的 QML編輯器時可使用</translation>
|
||||
|
@@ -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);
|
||||
|
2
src/libs/3rdparty/cplusplus/Bind.cpp
vendored
@@ -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()
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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 ¯o : qAsConst(_definedMacros)) {
|
||||
for (const Macro ¯o : std::as_const(_definedMacros)) {
|
||||
if (macro.line() == line)
|
||||
return ¯o;
|
||||
}
|
||||
@@ -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()))
|
||||
|
@@ -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;
|
||||
|
@@ -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())
|
||||
|
@@ -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
|
||||
|
@@ -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('}');
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
});
|
||||
|
@@ -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();
|
||||
|
@@ -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) {
|
||||
|
@@ -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());
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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()))
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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());
|
||||
}
|
||||
|