Merge remote-tracking branch 'origin/9.0'
Change-Id: I2e11bfba622c14578f08ca988ad98dab97cb385b
44
dist/changelog/changes-9.0.0.md
vendored
@@ -16,7 +16,16 @@ General
|
||||
* Added change log browser `Help > Change Log` (`Qt Creator > Change Log` on
|
||||
macOS)
|
||||
* Added option for showing locator as a centered popup
|
||||
* Added non-menu actions to locator `t` filter
|
||||
* Locator `t` filter
|
||||
* Added non-menu actions
|
||||
* Added fuzzy matching
|
||||
|
||||
Help
|
||||
----
|
||||
|
||||
* Added support for dark themes to Qt documentation (QTCREATORBUG-26557)
|
||||
* Fixed that Qt 6 documentation was shown for Qt 5 based projects
|
||||
(QTCREATORBUG-10331)
|
||||
|
||||
Editing
|
||||
-------
|
||||
@@ -27,6 +36,7 @@ Editing
|
||||
* Added `Create Cursors at Selected Line Ends`
|
||||
* Improved UI for multiple markers on the same line (QTCREATORBUG-27415)
|
||||
* Fixed performance issue with large selections
|
||||
* Fixed saving files with non-breaking spaces (QTCREATORBUG-17875)
|
||||
* Fixed `Rewrap Paragraph` for Doxygen comments (QTCREATORBUG-9739)
|
||||
* Fixed MIME type matching for generic highlighting with MIME type aliases
|
||||
|
||||
@@ -34,14 +44,18 @@ Editing
|
||||
|
||||
* Moved code style editor from dialog directly into the preferences page
|
||||
* Added `Show Preprocessed Source`
|
||||
* Added `Follow Symbol Under Cursor to Type`
|
||||
* Added `Follow Symbol` for QRC files in string literals (QTCREATORBUG-28087)
|
||||
* Added option for returning only non-value types by const reference
|
||||
(QTCREATORBUG-25790)
|
||||
* Added option for using `auto` in `Assign to Local Variable` refactoring
|
||||
action (QTCREATORBUG-28099)
|
||||
* Fixed that selection was not considered for refactoring actions
|
||||
(QTCREATORBUG-27886)
|
||||
* Clangd
|
||||
* Added option for using single Clangd instance for the whole session
|
||||
(QTCREATORBUG-26526)
|
||||
* Added option for indexing priority (`--background-index-priority`)
|
||||
* Added option for maximum number of completion results (default 100)
|
||||
(QTCREATORBUG-27152)
|
||||
* Added option for document specific preprocessor directives
|
||||
@@ -51,6 +65,8 @@ Editing
|
||||
(QTCREATORBUG-27594)
|
||||
* Built-in
|
||||
* Added support for structured bindings (QTCREATORBUG-27975)
|
||||
* Fixed that document specific preprocessor directives were not used after
|
||||
session load (QTCREATORBUG-22584)
|
||||
* ClangFormat
|
||||
* Moved settings back to top level preferences page
|
||||
|
||||
@@ -69,6 +85,10 @@ Editing
|
||||
* Made `Fit to Screen` sticky and added option for the default
|
||||
(QTCREATORBUG-27816)
|
||||
|
||||
### Diff Viewer
|
||||
|
||||
* Fixed that calculating differences blocked Qt Creator
|
||||
|
||||
Projects
|
||||
--------
|
||||
|
||||
@@ -81,22 +101,30 @@ Projects
|
||||
|
||||
* Moved settings from `Kits` and `Build & Run` into their own `CMake` category
|
||||
* Turned `Package manager auto setup` off by default
|
||||
* Added support for CMake configure presets (QTCREATORBUG-24555)
|
||||
* Added support for CMake configure and build presets, including conditions and
|
||||
toolchain files (QTCREATORBUG-24555)
|
||||
* Added option for changing environment for configure step
|
||||
* Added option for hiding subfolders in source groups (QTCREATORBUG-27432)
|
||||
* Fixed that `PATH` environment variable was not completely set up during first
|
||||
CMake run
|
||||
* Fixed issues with importing builds using Visual C++ generator
|
||||
|
||||
### Qbs
|
||||
|
||||
* Fixed that `qbs.sysroot` was not considered
|
||||
|
||||
### Qmake
|
||||
|
||||
* Added workaround for `mkspec`s that add compiler flags to `QMAKE_CXX`
|
||||
(QTCREATORBUG-28201)
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
* Added warning for missing QML debugging functionality for mobile and embedded
|
||||
devices
|
||||
* Fixed display of strings with characters more than 2 bytes long
|
||||
* Improved type name lookup performance for heavily templated code
|
||||
|
||||
Version Control Systems
|
||||
-----------------------
|
||||
@@ -109,6 +137,7 @@ Test Integration
|
||||
----------------
|
||||
|
||||
* Added support for Squish
|
||||
([Documentation](https://doc-snapshots.qt.io/qtcreator-9.0/creator-squish.html))
|
||||
* Catch 2
|
||||
* Fixed handling of exceptions (QTCREATORBUG-28131)
|
||||
|
||||
@@ -137,12 +166,21 @@ Platforms
|
||||
|
||||
* Added option for SSH port to wizard
|
||||
* Added fallback for devices without `base64`
|
||||
* Added experimental support to user remote linux build devices (QTCREATORBUG-28242)
|
||||
|
||||
### Docker
|
||||
|
||||
* Added option for `docker` command
|
||||
* Added detection of Python
|
||||
* Added option to auto-detect in PATH plus additional directories
|
||||
* Added option for overwriting `ENTRYPOINT` of docker container
|
||||
* Added automatic mounting of source and build directory before building
|
||||
* Improved device wizard
|
||||
* Added sorting of images
|
||||
* Added option to hide images without tag
|
||||
* Added double-click for selecting image
|
||||
* Fixed interrupting and pausing of GDB
|
||||
* Fixed running `ctest` on device
|
||||
|
||||
Credits for these changes go to:
|
||||
--------------------------------
|
||||
@@ -165,7 +203,9 @@ Fawzi Mohamed
|
||||
Florian Koch
|
||||
Henning Gruendl
|
||||
Jaroslaw Kobus
|
||||
Leena Miettinen
|
||||
Lucie Gérard
|
||||
Marc Mutz
|
||||
Marco Bubke
|
||||
Marcus Tillmanns
|
||||
Miikka Heikkinen
|
||||
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.4 KiB |
@@ -145,6 +145,9 @@
|
||||
removed. The real Type must contain the given Type. For example, \c int
|
||||
matches \c int32_t but not \c vector<int>, and \c vector matches
|
||||
\c {std::pmr::vector<int>} but not \c {std::optional<vector<int>>}.
|
||||
|
||||
To return non-trivial objects by using a \c const reference, select the
|
||||
\uicontrol {Return non-value types by const reference} check box.
|
||||
\endif
|
||||
|
||||
\section1 Summary of Refactoring Actions
|
||||
@@ -721,6 +724,13 @@
|
||||
Foo * localFoo = new Foo;
|
||||
\endcode
|
||||
|
||||
By default, \QC uses the \c auto variable type when creating the
|
||||
variable. To label the variable with its actual type, select
|
||||
\uicontrol Edit > \uicontrol Preferences > \uicontrol C++ >
|
||||
\uicontrol {Quick Fixes}, and then deselect the
|
||||
\uicontrol {Use type "auto" when creating new variables} check
|
||||
box.
|
||||
|
||||
\li Function call or class name
|
||||
\row
|
||||
\li Insert Virtual Functions of Base Classes
|
||||
|
@@ -41,13 +41,13 @@
|
||||
The following image displays the context sensitive help in the \uicontrol Edit
|
||||
mode.
|
||||
|
||||
\image qtcreator-context-sensitive-help.png
|
||||
\image qtcreator-context-sensitive-help.png "Context-sensitive help in Edit mode"
|
||||
|
||||
If the help HTML file does not use a style sheet, you can change the font
|
||||
family, style, and size in \uicontrol Edit > \uicontrol Preferences >
|
||||
\uicontrol Help > \uicontrol General.
|
||||
|
||||
\image qtcreator-help-options.png "Help General preferences"
|
||||
\image qtcreator-help-options.png "General tab in Help preferences"
|
||||
|
||||
You can set the default zoom level in the \uicontrol Zoom field. When
|
||||
viewing help pages, you can use the mouse scroll wheel to zoom them. To
|
||||
|
@@ -76,7 +76,7 @@
|
||||
|
||||
\endlist
|
||||
|
||||
To switch between sessions, select \uicontrol {Switch To}.
|
||||
To switch between sessions, select \uicontrol {Open}.
|
||||
|
||||
\if defined(qtcreator)
|
||||
When you launch \QC, a list of existing sessions is displayed in the
|
||||
|
@@ -218,6 +218,10 @@
|
||||
|
||||
\endlist
|
||||
|
||||
Select \uicontrol {Set as Default} to use the current settings for the
|
||||
background and outline modes and fitting images to screen as default
|
||||
values for the image viewer.
|
||||
|
||||
\section2 Exporting SVG Images
|
||||
|
||||
If you have a freely scalable icon in the SVG format,
|
||||
|
@@ -10999,8 +10999,8 @@ se projektu '%2' nepodařilo přidat.</translation>
|
||||
<translation>&Smazat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Přepnout na sezení</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Otevřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a></source>
|
||||
@@ -56809,7 +56809,7 @@ Tento průvodce vás provede základními kroky, které jsou nutné pro nasazen
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWidget</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formulář</translation>
|
||||
@@ -56826,13 +56826,6 @@ Tento průvodce vás provede základními kroky, které jsou nutné pro nasazen
|
||||
<source>GDB commands:</source>
|
||||
<translation>Příkazy GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formulář</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Název:</translation>
|
||||
@@ -56841,18 +56834,6 @@ Tento průvodce vás provede základními kroky, které jsou nutné pro nasazen
|
||||
<source>localhost</source>
|
||||
<translation>localhost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB port:</source>
|
||||
<translation>Port GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB host:</source>
|
||||
<translation>Hostitel GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Příkazy GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>load
|
||||
monitor reset</source>
|
||||
@@ -57779,53 +57760,27 @@ Soubory ve zdrojovém adresáři balíčku pro Android jsou zkopírovány do adr
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Zařízení Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Zřízení nového nastavení zařízení Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation>Nastavit server GDB nebo hardwarový ladicí program</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Zařízení Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Příkazy GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>Příkazy GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>%1 (via GDB server or hardware debugger)</source>
|
||||
<translation>%1 (pomocí serveru GDB nebo hardwarového ladicího programu)</translation>
|
||||
@@ -57835,16 +57790,10 @@ Soubory ve zdrojovém adresáři balíčku pro Android jsou zkopírovány do adr
|
||||
<extracomment>Bare Metal run configuration default run name</extracomment>
|
||||
<translation>Spustit na serveru GDB nebo hardwarovém ladicím programu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationFactory</name>
|
||||
<message>
|
||||
<source>%1 (on GDB server or hardware debugger)</source>
|
||||
<translation>%1 (na serveru GDB nebo hardwarovém ladicím programu)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Spustitelný soubor:</translation>
|
||||
@@ -57865,9 +57814,6 @@ Soubory ve zdrojovém adresáři balíčku pro Android jsou zkopírovány do adr
|
||||
<source>Unknown</source>
|
||||
<translation>Neznámý</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunControlFactory</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Nelze ladit: Kit nemá žádné zařízení.</translation>
|
||||
|
@@ -2340,16 +2340,10 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation>Indtast GDB-kommandoer for at nulstille hardwaren. MCU'en bør standses efter disse kommandoer.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>Clone of %1</source>
|
||||
<translation>Klon af %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Ukendt</translation>
|
||||
@@ -2366,9 +2360,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Custom Executable</source>
|
||||
<translation>Brugerdefineret eksekverbar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Kan ikke fejlrette: kit har ingen enhed.</translation>
|
||||
@@ -2385,37 +2376,22 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Cannot debug: Could not find executable for "%1".</source>
|
||||
<translation>Kan ikke fejlrette: kunne ikke finde eksekverbar for "%1".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Bare Metal-enhed</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation>GDB-serverudbyder:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Ny Bare Metal-enhed konfigurationsopsætning</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation>Opsæt GDB-server eller hardware-fejlretter</translation>
|
||||
@@ -2424,38 +2400,14 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Name:</source>
|
||||
<translation>Navn:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation>GDB-serverudbyder:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Bare Metal-enhed</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>GDB-kommandoer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>GDB-kommandoer:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Ukendt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Vært:</translation>
|
||||
@@ -2468,16 +2420,10 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Reset commands:</source>
|
||||
<translation>Nulstil-kommandoer:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>Standard</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderChooser</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Håndter...</translation>
|
||||
@@ -2486,17 +2432,10 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>None</source>
|
||||
<translation>Ingen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the GDB server provider.</source>
|
||||
<translation>Indtast navnet på GDB-serverudbyderen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Navn:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation>Vælg den ønskede opstart-tilstand af GDB-serverudbyderen.</translation>
|
||||
@@ -2517,9 +2456,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation>Opstart i pipe-tilstand</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Navn</translation>
|
||||
@@ -2536,9 +2472,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation>Følgende udbydere var allerede konfigureret:<br>&nbsp;%1<br>De blev ikke konfigureret igen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Tilføj</translation>
|
||||
@@ -2555,13 +2488,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>GDB Server Providers</source>
|
||||
<translation>GDB-serverudbydere</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the GDB server provider, like "localhost" or "192.0.2.1".</source>
|
||||
<translation>Indtast TCP/IP-værtsnavn af GDB-serverudbyderen, såsom "localhost" eller "192.0.2.1".</translation>
|
||||
@@ -2570,13 +2496,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Enter TCP/IP port which will be listened by the GDB server provider.</source>
|
||||
<translation>Indtast TCP/IP-port som skal lyttes på af GDB-serverudbyderen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Vært:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Eksekverbar fil:</translation>
|
||||
@@ -2593,32 +2512,10 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Yderligere argumenter:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Init-kommandoer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Nulstil-kommandoer:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>OpenOCD</source>
|
||||
<translation>OpenOCD</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Vært:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Eksekverbar fil:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation>Angiv detaljeniveauet (0..99).</translation>
|
||||
@@ -2651,14 +2548,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>Version:</source>
|
||||
<translation>Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Init-kommandoer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Nulstil-kommandoer:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation>ST-LINK/V1</translation>
|
||||
@@ -2667,9 +2556,6 @@ Advarsel: dette er en eksperimentel facilitet og kan lede til at test-eksekverba
|
||||
<source>ST-LINK/V2</source>
|
||||
<translation>ST-LINK/V2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation>ST-LINK-redskab</translation>
|
||||
@@ -21150,21 +21036,15 @@ Fejl: %5</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationFactory</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Build</source>
|
||||
<translation>Byg</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Build directory:</source>
|
||||
<translation>Bygmappe:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Target:</source>
|
||||
<translation>Mål:</translation>
|
||||
@@ -21193,16 +21073,10 @@ Fejl: %5</translation>
|
||||
<source>Release</source>
|
||||
<translation>Udgivelse</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepFactory</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Nim-kompiler byggetrin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStep</name>
|
||||
<message>
|
||||
<source>Nim Clean Step</source>
|
||||
<translation>Nim renstrin</translation>
|
||||
@@ -21223,24 +21097,15 @@ Fejl: %5</translation>
|
||||
<source>Clean step completed successfully.</source>
|
||||
<translation>Renstrin fuldført.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Working directory:</source>
|
||||
<translation>Arbejdsmappe:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimPlugin</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<comment>SnippetProvider</comment>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimProject</name>
|
||||
<message>
|
||||
<source>Scanning for Nim files</source>
|
||||
<translation>Skanner efter Nim-filer</translation>
|
||||
@@ -21253,9 +21118,6 @@ Fejl: %5</translation>
|
||||
<source>Nim compiler does not exist.</source>
|
||||
<translation>Nim-kompiler findes ikke.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimSettings</name>
|
||||
<message>
|
||||
<source>Global</source>
|
||||
<comment>Settings</comment>
|
||||
@@ -21265,9 +21127,6 @@ Fejl: %5</translation>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>&Kompilersti:</translation>
|
||||
@@ -21276,62 +21135,22 @@ Fejl: %5</translation>
|
||||
<source>&Compiler version:</source>
|
||||
<translation>&Kompiler-version:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimBuildConfigurationWidget</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Generelt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStylePreferencesFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Code Style</source>
|
||||
<translation>Kodestil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Nim-kompiler byggetrin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Nim build step</source>
|
||||
<translation>Nim-byggetrin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepFactory</name>
|
||||
<message>
|
||||
<source>Nim Compiler Clean Step</source>
|
||||
<translation>Nim-kompiler renstrin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepWidget</name>
|
||||
<message>
|
||||
<source>Nim clean step</source>
|
||||
<translation>Nim renstrin</translation>
|
||||
@@ -24586,8 +24405,8 @@ til projektet "%2".</translation>
|
||||
<translation>&Slet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Skift til</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Åbn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore last session on startup</source>
|
||||
@@ -42856,19 +42675,12 @@ Vil du overskrive dem?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimRunConfiguration</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Current Build Target</source>
|
||||
<translation>Aktuelle byggemål</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::BuildStepList</name>
|
||||
<message>
|
||||
|
@@ -6605,8 +6605,8 @@ konnte dem Projekt "%2" nicht hinzugefügt werden.</translation>
|
||||
<translation><a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">Was ist eine Sitzung?</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Verwenden</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Öffnen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -23474,7 +23474,7 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Set up Debug Server or Hardware Debugger</source>
|
||||
<translation>Debug-Server oder Hardware-Debugger einrichten</translation>
|
||||
@@ -23885,7 +23885,7 @@ Möchten Sie das vorhandene Paket deinstallieren?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
@@ -23894,9 +23894,6 @@ Möchten Sie das vorhandene Paket deinstallieren?</translation>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Bare-Metal-Gerät</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>GDB-Kommandos:</translation>
|
||||
@@ -26963,30 +26960,14 @@ Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.</translati
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation>Geben Sie GDB-Kommandos ein, um die Hardware zurückzusetzen. Die MCU sollte danach angehalten sein.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Debug server provider:</source>
|
||||
<translation>Debug-Server-Provider:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Einrichtung der Konfiguration für neues Bare-Metal-Gerät</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>GDB-Kommandos</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Unbekannt</translation>
|
||||
@@ -31414,11 +31395,7 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Unbekannt</translation>
|
||||
</message>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
|
||||
<translation>Die entfernte ausführbare Datei muss eingestellt sein um eine benutzerdefinierte enternte Ausführungskonfiguration zu verwenden.</translation>
|
||||
@@ -31427,9 +31404,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Custom Executable</source>
|
||||
<translation>Benutzerdefinierte ausführbare Datei</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Kann nicht debuggen: Das Kit hat kein Gerät.</translation>
|
||||
@@ -31458,9 +31432,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Unable to create an uVision project options template.</source>
|
||||
<translation>Es kann keine uVision-Projekteinstellungsvorlage erzeugt werden.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation>Wählen Sie den gewünschten Startmodus des GDB-Server-Providers.</translation>
|
||||
@@ -31473,10 +31444,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Peripheral description files (*.svd)</source>
|
||||
<translation>Peripherie-Beschreibungsdatei (*.svd)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select Peripheral Description File</source>
|
||||
<translation>Wählen Sie eine Peripherie-Beschreibungsdateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peripheral description file:</source>
|
||||
<translation>Peripherie-Beschreibungsdatei:</translation>
|
||||
@@ -31489,9 +31456,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation>Im Pipe-Modus starten</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the debug server, like "localhost" or "192.0.2.1".</source>
|
||||
<translation>Geben Sie den TCP/IP-Hostnamen des Debug-Servers ein, etwa "localhost" oder "192.0.2.1".</translation>
|
||||
@@ -31500,9 +31464,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Enter TCP/IP port which will be listened by the debug server.</source>
|
||||
<translation>Geben Sie den TCP/IP-Port ein, an dem der Debug-Server Verbindungen annehmen wird.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
@@ -31531,17 +31492,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Kommandos zum Zurücksetzen:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Ausführbare Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation>Geben Sie den Detailgrad an (0..99).</translation>
|
||||
@@ -31574,14 +31524,6 @@ Senden selbst auch Zeit benötigt.</translation>
|
||||
<source>Version:</source>
|
||||
<translation>Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Kommandos zum Einrichten:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Kommandos zum Zurücksetzen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation>ST-LINK/V1</translation>
|
||||
@@ -35352,7 +35294,7 @@ Möchten Sie sie überschreiben?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepConfigWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Target:</source>
|
||||
<translation>Ziel:</translation>
|
||||
@@ -35829,21 +35771,15 @@ Siehe auch die Einstellungen für Google Test.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStep</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Nim-Compiler Build-Schritt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Nim build step</source>
|
||||
<translation>Nim-Build-Schritt</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Code Style</source>
|
||||
<translation>Coding-Stil</translation>
|
||||
@@ -35852,16 +35788,6 @@ Siehe auch die Einstellungen für Google Test.</translation>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStylePreferencesFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStep</name>
|
||||
<message>
|
||||
<source>Nim Clean Step</source>
|
||||
<translation>Nim-Schritt zur Bereinigung</translation>
|
||||
@@ -35890,18 +35816,11 @@ Siehe auch die Einstellungen für Google Test.</translation>
|
||||
<source>Nim Compiler Clean Step</source>
|
||||
<translation>Nim-Compiler-Schritt zur Bereinigung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimSettings</name>
|
||||
<message>
|
||||
<source>Global</source>
|
||||
<comment>Settings</comment>
|
||||
<translation>Global</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::CustomExecutableRunConfiguration</name>
|
||||
@@ -37799,15 +37718,12 @@ Ablaufdatum: %3</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimPlugin</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<comment>SnippetProvider</comment>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimProject</name>
|
||||
<message>
|
||||
<source>No Nim compiler set.</source>
|
||||
<translation>Es ist kein Nim-Compiler eingerichtet.</translation>
|
||||
@@ -37816,9 +37732,6 @@ Ablaufdatum: %3</translation>
|
||||
<source>Nim compiler does not exist.</source>
|
||||
<translation>Der Nim-Compiler existiert nicht.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>&Compiler-Pfad:</translation>
|
||||
@@ -40919,7 +40832,7 @@ Möchten Sie sie überschreiben?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimRunConfiguration</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Current Build Target</source>
|
||||
<translation>Aktuelles Build-Ziel</translation>
|
||||
@@ -41980,11 +41893,7 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Nim-Compiler Build-Schritt</translation>
|
||||
</message>
|
||||
<name>Nim</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::MakeStep</name>
|
||||
@@ -42256,7 +42165,7 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolsSettingsWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Nimsuggest</source>
|
||||
<translation>Nimsuggest</translation>
|
||||
@@ -42879,15 +42788,11 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimToolsSettingsPage</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Tools</source>
|
||||
<translation>Werkzeuge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PerfProfiler</name>
|
||||
@@ -43923,7 +43828,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleBuildStepWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Arguments:</source>
|
||||
<translation>Argumente:</translation>
|
||||
@@ -44363,7 +44268,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProviderChooser</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Verwalten...</translation>
|
||||
@@ -44372,9 +44277,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>None</source>
|
||||
<translation>Keine</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProviderModel</name>
|
||||
<message>
|
||||
<source>Not recognized</source>
|
||||
<translation>Nicht erkannt</translation>
|
||||
@@ -44399,9 +44301,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation>Die folgenden Provider wurden bereits konfiguriert:<br>&nbsp;%1<br>Sie wurden nicht noch einmal konfiguriert.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Hinzufügen</translation>
|
||||
@@ -44422,13 +44321,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Clone of %1</source>
|
||||
<translation>Kopie von %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>EBlink</source>
|
||||
<translation>EBlink</translation>
|
||||
@@ -44445,25 +44337,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation>ST-LINK-Werkzeug</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::EBlinkGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Ausführbare Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Script file:</source>
|
||||
<translation>Skriptdatei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verbosity level:</source>
|
||||
<translation>Detailgrad:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type:</source>
|
||||
<translation>Typ:</translation>
|
||||
@@ -44472,14 +44349,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Speed:</source>
|
||||
<translation>Geschwindigkeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Kommandos zum Einrichten:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Kommandos zum Zurücksetzen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SWD</source>
|
||||
<translation>SWD</translation>
|
||||
@@ -44488,13 +44357,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::JLinkGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JLink GDB Server (JLinkGDBServerCL.exe)</source>
|
||||
<translation>JLink GDB-Server (JLinkGDBServerCL.exe)</translation>
|
||||
@@ -44503,10 +44365,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>JLink GDB Server (JLinkGDBServer)</source>
|
||||
<translation>JLink GDB-Server (JLinkGDBServer)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Ausführbare Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>Vorgabe</translation>
|
||||
@@ -44527,21 +44385,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Device:</source>
|
||||
<translation>Geräte:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Zusätzliche Argumente:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Kommandos zum Einrichten:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Kommandos zum Zurücksetzen:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::UvscServerProvider</name>
|
||||
<message>
|
||||
<source>uVision Simulator</source>
|
||||
<translation>uVision Simulator</translation>
|
||||
@@ -44550,25 +44393,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>uVision St-Link</source>
|
||||
<translation>uVision St-Link</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUvscAdapterOptionsWidget</name>
|
||||
<message>
|
||||
<source>Port:</source>
|
||||
<translation>Port:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Speed:</source>
|
||||
<translation>Geschwindigkeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SWD</source>
|
||||
<translation>SWD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>9MHz</source>
|
||||
<translation>9MHz</translation>
|
||||
@@ -44641,20 +44469,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>5kHz</source>
|
||||
<translation>5kHz</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::UvscServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Version</translation>
|
||||
@@ -44663,9 +44477,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Vendor</source>
|
||||
<translation>Anbieter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionMemoryModel</name>
|
||||
<message>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
@@ -44678,23 +44489,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Size</source>
|
||||
<translation>Größe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionAlgorithmModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectorToolPanel</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Verwalten...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectorDetailsPanel</name>
|
||||
<message>
|
||||
<source>Vendor:</source>
|
||||
<translation>Anbieter:</translation>
|
||||
@@ -44711,42 +44505,14 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Memory:</source>
|
||||
<translation>Speicher:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peripheral description files (*.svd)</source>
|
||||
<translation>Peripherie-Beschreibungsdatei (*.svd)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select Peripheral Description File</source>
|
||||
<translation>Wählen Sie eine Peripherie-Beschreibungsdatei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peripheral description file:</source>
|
||||
<translation>Peripherie-Beschreibungsdatei:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionModel</name>
|
||||
<message>
|
||||
<source>Path</source>
|
||||
<translation>Pfad</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionCpuDllModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectorToolPanel</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Verwalten...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::IarToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>&Compiler-Pfad:</translation>
|
||||
@@ -44759,20 +44525,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::IDebugServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the debugger server provider.</source>
|
||||
<translation>Geben Sie den Namen des Debug-Server-Providers ein.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Name:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SdccToolChain</name>
|
||||
<message>
|
||||
<source>SDCC %1 (%2, %3)</source>
|
||||
<translation>SDCC %1 (%2, %3)</translation>
|
||||
@@ -44782,17 +44538,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<translation>SDCC</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::SdccToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>&Compiler-Pfad:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Beautifier::Internal::ArtisticStyle</name>
|
||||
<message>
|
||||
@@ -46619,26 +46364,12 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleBuildConfiguration</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfiguration</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::CodeStyleSettings</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::Internal::AddRunConfigDialog</name>
|
||||
<message>
|
||||
@@ -47680,11 +47411,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::ToolSettingsPage</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
<name>Nim</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjextExplorer::Internal::KitOptionsPageWidget</name>
|
||||
@@ -47917,7 +47644,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonBuildSettingsWidget</name>
|
||||
<name>MesonProjectManager</name>
|
||||
<message>
|
||||
<source>Apply Configuration Changes</source>
|
||||
<translation>Konfigurationsänderungen anwenden</translation>
|
||||
@@ -47926,9 +47653,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Filter</source>
|
||||
<translation>Filter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Tool arguments:</source>
|
||||
<translation>Toolparameter:</translation>
|
||||
@@ -48177,23 +47901,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::JLinkUvscAdapterOptionsWidget</name>
|
||||
<message>
|
||||
<source>Port:</source>
|
||||
<translation>Port:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Speed:</source>
|
||||
<translation>Geschwindigkeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SWD</source>
|
||||
<translation>SWD</translation>
|
||||
</message>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>50MHz</source>
|
||||
<translation>50MHz</translation>
|
||||
@@ -48238,13 +47946,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>200kHz</source>
|
||||
<translation>200kHz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>100kHz</source>
|
||||
<translation>100kHz</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>KeilToolChain</name>
|
||||
<message>
|
||||
<source>KEIL %1 (%2, %3)</source>
|
||||
<translation>KEIL %1 (%2, %3)</translation>
|
||||
@@ -48254,21 +47955,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<translation>KEIL</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::KeilToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>&Compiler-Pfad:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Platform codegen flags:</source>
|
||||
<translation>Plattformspezifische Optionen für codegen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Beautifier::Internal</name>
|
||||
<message>
|
||||
@@ -48420,7 +48106,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonActionsManager</name>
|
||||
<name>MesonProjectManager</name>
|
||||
<message>
|
||||
<source>Configure</source>
|
||||
<translation>Konfigurieren</translation>
|
||||
@@ -48433,24 +48119,15 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Build "%1"</source>
|
||||
<translation>"%1" erstellen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonBuildSettingsWidget</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Build</source>
|
||||
<comment>MesonProjectManager::MesonBuildStepConfigWidget display name.</comment>
|
||||
<translation>Erstellen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::BuidOptionsModel</name>
|
||||
<message>
|
||||
<source>Key</source>
|
||||
<translation>Schlüssel</translation>
|
||||
@@ -48459,9 +48136,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Value</source>
|
||||
<translation>Wert</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonProcess</name>
|
||||
<message>
|
||||
<source>Configuring "%1".</source>
|
||||
<translation>Konfiguriere "%1"</translation>
|
||||
@@ -48502,48 +48176,18 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
<source>Executable does not exist: %1</source>
|
||||
<translation>Ausführbare Datei existiert nicht: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonProject</name>
|
||||
<message>
|
||||
<source>No compilers set in kit.</source>
|
||||
<translation>Im Kit sind keine Compiler eingerichtet.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::NinjaBuildStep</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::GeneralSettingsPage</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonToolKitAspect</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unconfigured</source>
|
||||
<translation>Nicht konfiguriert</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::NinjaToolKitAspect</name>
|
||||
<message>
|
||||
<source>Unconfigured</source>
|
||||
<translation>Nicht konfiguriert</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::ToolsSettingsPage</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
@@ -48574,18 +48218,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::MesonToolManager</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChain</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
<name>Nim</name>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::Internal::BuildEnvironmentWidget</name>
|
||||
|
@@ -11390,8 +11390,8 @@ francis : voila une nouvelle suggestion :)</translatorcomment>
|
||||
<translation>&Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Basculer vers</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Ouvrir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New session name</source>
|
||||
@@ -54923,7 +54923,7 @@ Cet assistant vous guidera à travers les étapes essentielles pour déployez un
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWidget</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formulaire</translation>
|
||||
@@ -54940,13 +54940,6 @@ Cet assistant vous guidera à travers les étapes essentielles pour déployez un
|
||||
<source>GDB commands:</source>
|
||||
<translation>Commandes GDB :</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formulaire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Nom :</translation>
|
||||
@@ -54955,18 +54948,6 @@ Cet assistant vous guidera à travers les étapes essentielles pour déployez un
|
||||
<source>localhost</source>
|
||||
<translation>localhost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB port:</source>
|
||||
<translation>Port GDB :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB host:</source>
|
||||
<translation>Hôte GDB :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Commandes GDB :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>load
|
||||
monitor reset</source>
|
||||
@@ -55834,53 +55815,27 @@ réinitialisation du moniteur</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Périphérique Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Nouveau paramètres de configuration du périphérique Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation>Définir un serveur GDB ou un débogueur hardware</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Périphérique Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Commandes GDB :</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>Commandes GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>%1 (via GDB server or hardware debugger)</source>
|
||||
<translation>%1 (via le serveur GDB ou le débogueur hardware)</translation>
|
||||
@@ -55890,16 +55845,10 @@ réinitialisation du moniteur</translation>
|
||||
<extracomment>Bare Metal run configuration default run name</extracomment>
|
||||
<translation>Exécuter sur un serveur GDB ou un débogueur hardware</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationFactory</name>
|
||||
<message>
|
||||
<source>%1 (on GDB server or hardware debugger)</source>
|
||||
<translation>%1 (via le serveur GDB ou le débogueur hardware)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Exécutable :</translation>
|
||||
@@ -55920,9 +55869,6 @@ réinitialisation du moniteur</translation>
|
||||
<source>Unknown</source>
|
||||
<translation>Inconnue</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunControlFactory</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Impossible de déboguer : le kit n'a pas de périphérique.</translation>
|
||||
|
@@ -5128,7 +5128,7 @@ Greška: %5</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepConfigWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Target:</source>
|
||||
<translation>Odredište:</translation>
|
||||
@@ -5149,24 +5149,14 @@ Greška: %5</translation>
|
||||
<source>None</source>
|
||||
<translation>Bez</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug</source>
|
||||
<translation>Ukloni greške</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Release</source>
|
||||
<translation>Objavi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Working directory:</source>
|
||||
<translation>Radni direktorij:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolsSettingsWidget</name>
|
||||
<message>
|
||||
<source>Nimsuggest</source>
|
||||
<translation>Nimsuggest</translation>
|
||||
@@ -5957,8 +5947,8 @@ Greška: %5</translation>
|
||||
<translation>&Ukloni</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Prebaci na</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Otvori</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore last session on startup</source>
|
||||
@@ -15273,7 +15263,7 @@ Check the test environment.</source>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Nepoznato</translation>
|
||||
@@ -15286,9 +15276,6 @@ Check the test environment.</source>
|
||||
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15305,37 +15292,22 @@ Check the test environment.</source>
|
||||
<source>Cannot debug: Could not find executable for "%1".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15344,45 +15316,18 @@ Check the test environment.</source>
|
||||
<source>Name:</source>
|
||||
<translation>Naziv:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Nepoznato</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>Standardno</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15395,24 +15340,14 @@ Check the test environment.</source>
|
||||
<source>Reset commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>Clone of %1</source>
|
||||
<translation>Klon od %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the GDB server provider.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Naziv:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15433,9 +15368,6 @@ Check the test environment.</source>
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Enter GDB commands to reset the board and to write the nonvolatile memory.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15444,9 +15376,6 @@ Check the test environment.</source>
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the GDB server provider, like "localhost" or "192.0.2.1".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15455,9 +15384,6 @@ Check the test environment.</source>
|
||||
<source>Enter TCP/IP port which will be listened by the GDB server provider.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderChooser</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15466,9 +15392,6 @@ Check the test environment.</source>
|
||||
<source>None</source>
|
||||
<translation>Bez</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Naziv</translation>
|
||||
@@ -15485,9 +15408,6 @@ Check the test environment.</source>
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Dodaj</translation>
|
||||
@@ -15504,24 +15424,10 @@ Check the test environment.</source>
|
||||
<source>GDB Server Providers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>OpenOCD</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15538,32 +15444,10 @@ Check the test environment.</source>
|
||||
<source>Additional arguments:</source>
|
||||
<translation type="unfinished">Dodatni argumenti:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -15596,14 +15480,6 @@ Check the test environment.</source>
|
||||
<source>Version:</source>
|
||||
<translation>Verzija:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -27126,42 +27002,27 @@ Rok upotrebe: %3</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimBuildConfigurationWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Opće</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Nim build step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepFactory</name>
|
||||
<message>
|
||||
<source>Nim Compiler Clean Step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepWidget</name>
|
||||
<message>
|
||||
<source>Nim clean step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Code Style</source>
|
||||
<translation>Stil kodiranja</translation>
|
||||
@@ -27170,35 +27031,15 @@ Rok upotrebe: %3</translation>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimToolsSettingsPage</name>
|
||||
<message>
|
||||
<source>Tools</source>
|
||||
<translation>Alati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStylePreferencesFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimPlugin</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<comment>SnippetProvider</comment>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Debug</source>
|
||||
<translation>Uklanjanje grešaka</translation>
|
||||
@@ -27207,27 +27048,10 @@ Rok upotrebe: %3</translation>
|
||||
<source>Profile</source>
|
||||
<translation>Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Release</source>
|
||||
<translation>Objavljivanje</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Build directory:</source>
|
||||
<translation>Direktorij gradnje:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStep</name>
|
||||
<message>
|
||||
<source>Nim Clean Step</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@@ -27248,9 +27072,6 @@ Rok upotrebe: %3</translation>
|
||||
<source>Clean step completed successfully.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimProject</name>
|
||||
<message>
|
||||
<source>Scanning for Nim files</source>
|
||||
<translation>Traženje Nim datoteka</translation>
|
||||
@@ -27263,23 +27084,10 @@ Rok upotrebe: %3</translation>
|
||||
<source>Nim compiler does not exist.</source>
|
||||
<translation>Nim kompajler ne postoji.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimRunConfiguration</name>
|
||||
<message>
|
||||
<source>Current Build Target</source>
|
||||
<translation>Trenutačno odredište gradnje</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Staza za &kompajler:</translation>
|
||||
@@ -27288,32 +27096,11 @@ Rok upotrebe: %3</translation>
|
||||
<source>&Compiler version:</source>
|
||||
<translation>Verzija &kompajlera:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimSettings</name>
|
||||
<message>
|
||||
<source>Global</source>
|
||||
<comment>Settings</comment>
|
||||
<translation>Globalno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolsSettingsPage</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Perforce::Internal::PerforceChecker</name>
|
||||
|
@@ -958,8 +958,8 @@
|
||||
<translation>&Usuń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Przełącz sesję</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Otwórz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a></source>
|
||||
@@ -26284,7 +26284,7 @@ Zdalny: %4</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation>Ustaw serwer GDB lub debugger sprzętowy</translation>
|
||||
@@ -27062,21 +27062,15 @@ Czy odinstalować istniejący pakiet?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Komendy GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationFactory</name>
|
||||
<message>
|
||||
<source>%1 (on GDB server or hardware debugger)</source>
|
||||
<translation>%1 (na serwerze GDB lub debuggerze sprzętowym)</translation>
|
||||
@@ -29876,37 +29870,14 @@ Zainstaluj SDK o wersji %1 lub wyższej.</translation>
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation>Wprowadź komendy GDB resetujące sprzęt. MCU powinien zostać zatrzymany po tych komendach.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Urządzenie Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation>Dostawca serwera GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Nowa konfiguracja urządzenia Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>Komendy GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>%1 (via GDB server or hardware debugger)</source>
|
||||
<translation>%1 (poprzez serwer GDB lub debugger sprzętowy)</translation>
|
||||
@@ -29916,9 +29887,6 @@ Zainstaluj SDK o wersji %1 lub wyższej.</translation>
|
||||
<extracomment>Bare Metal run configuration default run name</extracomment>
|
||||
<translation>Uruchom na serwerze GDB lub debuggerze sprzętowym</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Plik wykonywalny:</translation>
|
||||
@@ -33396,18 +33364,11 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfigWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Plik wykonywalny:</translation>
|
||||
</message>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Work directory:</source>
|
||||
<translation>Katalog roboczy:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<message>
|
||||
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
|
||||
<translation>W celu uruchomienia własnej, zdalnej konfiguracji uruchamiania, należy ustawić zdalny plik wykonywalny.</translation>
|
||||
@@ -33416,9 +33377,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Custom Executable (on GDB server or hardware debugger)</source>
|
||||
<translation>Własny plik wykonywalny (na serwerze GDB lub debuggerze sprzętowym)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Nie można debugować: brak urządzenia w zestawie narzędzi.</translation>
|
||||
@@ -33431,16 +33389,10 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Cannot debug: Could not find executable for "%1".</source>
|
||||
<translation>Nie można debugować: nie można odnaleźć pliku wykonywalnego dla "%1".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>Domyślny</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
@@ -33453,24 +33405,14 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Reset commands:</source>
|
||||
<translation>Komendy resetujące:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>Clone of %1</source>
|
||||
<translation>Klon %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the GDB server provider.</source>
|
||||
<translation>Podaj nazwę dostawcy serwera GDB.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Nazwa:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation>Wybierz tryb startowy dostarczyciela serwera GDB.</translation>
|
||||
@@ -33491,9 +33433,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation>Start w trybie potokowym</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the GDB server provider, like "localhost" or "192.0.2.1".</source>
|
||||
<translation>Podaj nazwę TCP/IP hosta dostawcy serwera GDB, np. "localhost" lub "192.0.2.1".</translation>
|
||||
@@ -33502,9 +33441,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Enter TCP/IP port which will be listened by the GDB server provider.</source>
|
||||
<translation>Podaj port TCP/IP, na którym będzie nasłuchiwał dostawca serwera GDB.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderChooser</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Zarządzaj...</translation>
|
||||
@@ -33513,9 +33449,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>None</source>
|
||||
<translation>Brak</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Nazwa</translation>
|
||||
@@ -33532,9 +33465,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation>Następujący dostawcy zostali już skonfigurowani:<br>&nbsp;%1<br>Nie zostali oni ponownie skonfigurowani.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Dodaj</translation>
|
||||
@@ -33551,24 +33481,10 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>GDB Server Providers</source>
|
||||
<translation>Dostawcy serwera GDB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>OpenOCD</source>
|
||||
<translation>OpenOCD</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Plik wykonywalny:</translation>
|
||||
@@ -33585,32 +33501,10 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Dodatkowe argumenty:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Komendy inicjalizujące:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Komendy resetujące:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation>Narzędzie ST-LINK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Host:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Plik wykonywalny:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation>Poziom gadatliwości (0..99).</translation>
|
||||
@@ -33643,14 +33537,6 @@ Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowan
|
||||
<source>Version:</source>
|
||||
<translation>Wersja:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Komendy inicjalizujące:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Komendy resetujące:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation>ST-LINK/V1</translation>
|
||||
@@ -37988,7 +37874,7 @@ Czy nadpisać go?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepConfigWidget</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formularz</translation>
|
||||
@@ -38021,13 +37907,6 @@ Czy nadpisać go?</translation>
|
||||
<source>Release</source>
|
||||
<translation>Release</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation>Formularz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Working directory:</source>
|
||||
<translation>Katalog roboczy:</translation>
|
||||
@@ -38583,49 +38462,31 @@ Komunikat:
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimRunConfiguration</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Current Build Target</source>
|
||||
<translation>Bieżący cel budowania</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimBuildConfigurationWidget</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Ogólne</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Krok budowania kompilatora Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Nim build step</source>
|
||||
<translation>Krok budowania Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepFactory</name>
|
||||
<message>
|
||||
<source>Nim Compiler Clean Step</source>
|
||||
<translation>Krok czyszczenia kompilatora Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerCleanStepWidget</name>
|
||||
<message>
|
||||
<source>Nim clean step</source>
|
||||
<translation>Krok czyszczenia Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Code Style</source>
|
||||
<translation>Styl kodu</translation>
|
||||
@@ -38634,37 +38495,14 @@ Komunikat:
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStylePreferencesFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Build</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Build directory:</source>
|
||||
<translation>Katalog budowania:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepFactory</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Krok budowania kompilatora Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStep</name>
|
||||
<message>
|
||||
<source>Nim Clean Step</source>
|
||||
<translation>Krok czyszczenia Nim</translation>
|
||||
@@ -38685,18 +38523,11 @@ Komunikat:
|
||||
<source>Clean step completed successfully.</source>
|
||||
<translation>Krok czyszczenia poprawnie zakończony.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimSettings</name>
|
||||
<message>
|
||||
<source>Global</source>
|
||||
<comment>Settings</comment>
|
||||
<translation>Globalne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ProjectExplorer::Internal::CustomExecutableConfigurationWidget</name>
|
||||
@@ -41536,7 +41367,7 @@ Termin wygaśnięcia: %3</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimProject</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Scanning for Nim files</source>
|
||||
<translation>Skanowanie w poszukiwaniu plików Nim</translation>
|
||||
@@ -41549,16 +41380,6 @@ Termin wygaśnięcia: %3</translation>
|
||||
<source>Nim compiler does not exist</source>
|
||||
<translation>Brak kompilatora Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Ścieżka do &kompilatora:</translation>
|
||||
@@ -42225,7 +42046,7 @@ Błąd: %5</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimPlugin</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<comment>SnippetProvider</comment>
|
||||
|
@@ -95,8 +95,8 @@
|
||||
<translation>Сбросить</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Активировать</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Открыть</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Restore last workspace on startup</source>
|
||||
@@ -3402,9 +3402,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation>Введите команды GDB для аппаратного сброса. После этих команд процессор должен быть остановлен.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Неизвестно</translation>
|
||||
@@ -3417,9 +3414,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Custom Executable</source>
|
||||
<translation>Особая программа</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Cannot debug: Kit has no device.</source>
|
||||
<translation>Отладка невозможна: отсутствует устройство в комплекте.</translation>
|
||||
@@ -3448,70 +3442,30 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Unable to create an uVision project options template.</source>
|
||||
<translation>Не удалось создать шаблон проекта настроек uVision.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Голое железо</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Устройство на голом железе</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Debug server provider:</source>
|
||||
<translation>Тип сервера отладки:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Настройка новой конфигурации голого устройства</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up Debug Server or Hardware Debugger</source>
|
||||
<translation>Настройка сервера отладки или аппаратного отладчика</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Название:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug server provider:</source>
|
||||
<translation>Тип сервера отладки:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>Команды GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Команды GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation>Неизвестно</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProviderChooser</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Управление...</translation>
|
||||
@@ -3520,9 +3474,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>None</source>
|
||||
<translation>Нет</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProviderModel</name>
|
||||
<message>
|
||||
<source>Not recognized</source>
|
||||
<translation>Не определён</translation>
|
||||
@@ -3547,10 +3498,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<translation>UVSC-совместимый провайдер отладчика
|
||||
(используется совместно с KEIL uVision).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type</source>
|
||||
<translation>Тип</translation>
|
||||
@@ -3567,9 +3514,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation>Следующие провайдеры уже настроены:<br>&nbsp;%1<br>Повторно настраиваться не будут.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DebugServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Добавить</translation>
|
||||
@@ -3594,9 +3538,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Bare Metal</source>
|
||||
<translation>Bare Metal</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::EBlinkGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Хост:</translation>
|
||||
@@ -3673,9 +3614,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>EBlink</source>
|
||||
<translation>EBlink</translation>
|
||||
@@ -3692,9 +3630,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation>Утилита ST-LINK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation>Выберите желаемый метод запуска сервера GDB.</translation>
|
||||
@@ -3723,9 +3658,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation>Запуск в локальном режиме (pipe)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the debug server, like "localhost" or "192.0.2.1".</source>
|
||||
<translation>Введите TCP/IP имя сервера отладки, например: «localhost» или «192.0.2.1».</translation>
|
||||
@@ -3734,9 +3666,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Enter TCP/IP port which will be listened by the debug server.</source>
|
||||
<translation>Введите порт TCP/IP, который будет прослушиваться сервером отладки.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::IDebugServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the debugger server provider.</source>
|
||||
<translation>Введите имя провайдера сервера отладки.</translation>
|
||||
@@ -3745,9 +3674,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Name:</source>
|
||||
<translation>Имя:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::IarToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Путь к &компилятору:</translation>
|
||||
@@ -3760,13 +3686,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::JLinkGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Хост:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JLink GDB Server (JLinkGDBServerCL.exe)</source>
|
||||
<translation>JLink сервер GDB (JLinkGDBServerCL.exe)</translation>
|
||||
@@ -3775,10 +3694,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>JLink GDB Server (JLinkGDBServer)</source>
|
||||
<translation>JLink сервер GDB (JLinkGDBServer)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Исполняемый файл:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>По умолчанию</translation>
|
||||
@@ -3811,33 +3726,10 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Дополнительные параметры:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Команды инициализации:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команды сброса:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::JLinkUvscAdapterOptionsWidget</name>
|
||||
<message>
|
||||
<source>Port:</source>
|
||||
<translation>Порт:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Speed:</source>
|
||||
<translation>Скорость:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SWD</source>
|
||||
<translation>SWD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>50MHz</source>
|
||||
<translation>50 МГц</translation>
|
||||
@@ -3886,39 +3778,10 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>100kHz</source>
|
||||
<translation>100 кГц</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::JLinkUvscServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Adapter options:</source>
|
||||
<translation>Параметры адаптера:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::KeilToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Путь к &компилятору:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Platform codegen flags:</source>
|
||||
<translation>Флаги генерации кода для платформы:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Хост:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Исполняемый файл:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Root scripts directory:</source>
|
||||
<translation>Корень каталога скриптов:</translation>
|
||||
@@ -3927,32 +3790,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Configuration file:</source>
|
||||
<translation>Файл конфигурации:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Дополнительные параметры:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Команды инициализации:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команды сброса:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::SdccToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Путь к &компилятору:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&ABI:</source>
|
||||
<translation>&ABI:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::SimulatorUvscServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Limit speed to real-time.</source>
|
||||
<translation>Ограничить скорость реальным временем.</translation>
|
||||
@@ -3961,25 +3798,10 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Limit speed to real-time:</source>
|
||||
<translation>Ограничить скорость:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Хост:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Исполняемый файл:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation>Укажите уровень информативности (0...99).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verbosity level:</source>
|
||||
<translation>Уровень информативности:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continue listening for connections after disconnect.</source>
|
||||
<translation>Продолжать ожидание подключений после отключения.</translation>
|
||||
@@ -4004,14 +3826,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Version:</source>
|
||||
<translation>Версия:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Команды инициализации:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команды сброса:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation>ST-LINK/V1</translation>
|
||||
@@ -4020,25 +3834,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>ST-LINK/V2</source>
|
||||
<translation>ST-LINK/V2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUvscAdapterOptionsWidget</name>
|
||||
<message>
|
||||
<source>Port:</source>
|
||||
<translation>Порт:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Speed:</source>
|
||||
<translation>Скорость:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>JTAG</source>
|
||||
<translation>JTAG</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SWD</source>
|
||||
<translation>SWD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>9MHz</source>
|
||||
<translation>9 МГц</translation>
|
||||
@@ -4091,10 +3886,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>125kHz</source>
|
||||
<translation>125 кГц</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>100kHz</source>
|
||||
<translation>100 кГц</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>50kHz</source>
|
||||
<translation>50 кГц</translation>
|
||||
@@ -4111,16 +3902,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>5kHz</source>
|
||||
<translation>5 кГц</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUvscServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Adapter options:</source>
|
||||
<translation>Параметры адаптера:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionAlgorithmModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Название</translation>
|
||||
@@ -4141,9 +3922,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>RAM Size</source>
|
||||
<translation>RAM Объём</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionAlgorithmView</name>
|
||||
<message>
|
||||
<source>Algorithm path.</source>
|
||||
<translation>Путь к алгоритму.</translation>
|
||||
@@ -4164,16 +3942,10 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>RAM:</source>
|
||||
<translation>RAM:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionDialog</name>
|
||||
<message>
|
||||
<source>Available Target Devices</source>
|
||||
<translation>Доступные устройства</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionMemoryModel</name>
|
||||
<message>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
@@ -4186,13 +3958,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Size</source>
|
||||
<translation>Размер</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectionModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Название</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version</source>
|
||||
<translation>Версия</translation>
|
||||
@@ -4201,16 +3966,10 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Vendor</source>
|
||||
<translation>Поставщик</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelector</name>
|
||||
<message>
|
||||
<source>Target device not selected.</source>
|
||||
<translation>Устройство не выбрано.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectorDetailsPanel</name>
|
||||
<message>
|
||||
<source>Vendor:</source>
|
||||
<translation>Поставщик:</translation>
|
||||
@@ -4231,63 +3990,22 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Flash algorithm:</source>
|
||||
<translation>Алгоритм прошивания:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peripheral description files (*.svd)</source>
|
||||
<translation>Файлы описания устройств (*.svd)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select Peripheral Description File</source>
|
||||
<translation>Выбор файла описания внешнего устройства</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Peripheral description file:</source>
|
||||
<translation>Файл описания устройства:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DeviceSelectorToolPanel</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Управление...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionCpuDllModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Название</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionCpuDllView</name>
|
||||
<message>
|
||||
<source>Debugger CPU library (depends on a CPU core).</source>
|
||||
<translation>Библиотека поддержки процессора для отладчика (зависит от ядра процессора).</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionDialog</name>
|
||||
<message>
|
||||
<source>Available Target Drivers</source>
|
||||
<translation>Доступные драйвера</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectionModel</name>
|
||||
<message>
|
||||
<source>Path</source>
|
||||
<translation>Путь</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelector</name>
|
||||
<message>
|
||||
<source>Target driver not selected.</source>
|
||||
<translation>Драйвер не выбран.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectorDetailsPanel</name>
|
||||
<message>
|
||||
<source>Debugger driver library.</source>
|
||||
<translation>Библиотека драйвера отладчика.</translation>
|
||||
@@ -4300,16 +4018,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>CPU library:</source>
|
||||
<translation>Библиотека процессора:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::Uv::DriverSelectorToolPanel</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Управление...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::UvscServerProvider</name>
|
||||
<message>
|
||||
<source>uVision Simulator</source>
|
||||
<translation>Симулятор uVision</translation>
|
||||
@@ -4322,13 +4030,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>uVision JLink</source>
|
||||
<translation>uVision JLink</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::UvscServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Хост:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose Keil Toolset Configuration File</source>
|
||||
<translation>Выбор файла конфигурации инструментария Keil</translation>
|
||||
@@ -4345,9 +4046,6 @@ Warning: this is an experimental feature and might lead to failing to execute th
|
||||
<source>Target driver:</source>
|
||||
<translation>Драйвер:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetalDeployConfiguration</name>
|
||||
<message>
|
||||
<source>Deploy to BareMetal Device</source>
|
||||
<translation>Развёртывание на устройство на голом железе</translation>
|
||||
@@ -23728,7 +23426,7 @@ Add, modify, and remove document filters, which determine the documentation set
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>IarToolChain</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>IAREW %1 (%2, %3)</source>
|
||||
<translation>IAREW %1 (%2, %3)</translation>
|
||||
@@ -25092,7 +24790,7 @@ Error: %5</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>KeilToolChain</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>KEIL %1 (%2, %3)</source>
|
||||
<translation>KEIL %1 (%2, %3)</translation>
|
||||
@@ -26527,7 +26225,7 @@ Error: %5</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonBuildStepConfigWidget</name>
|
||||
<name>MesonProjectManager</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
@@ -26540,9 +26238,6 @@ Error: %5</translation>
|
||||
<source>Targets:</source>
|
||||
<translation>Цели:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::BuidOptionsModel</name>
|
||||
<message>
|
||||
<source>Key</source>
|
||||
<translation>Ключ</translation>
|
||||
@@ -26551,20 +26246,10 @@ Error: %5</translation>
|
||||
<source>Value</source>
|
||||
<translation>Значение</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::GeneralSettingsPage</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Основное</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::GeneralSettingsWidget</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Automatically run Meson when needed.</source>
|
||||
<translation>Запускать Meson по необходимости.</translation>
|
||||
@@ -26581,9 +26266,6 @@ Error: %5</translation>
|
||||
<source>Ninja verbose mode</source>
|
||||
<translation>Ninja в подробном режиме</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonActionsManager</name>
|
||||
<message>
|
||||
<source>Configure</source>
|
||||
<translation>Configure</translation>
|
||||
@@ -26596,17 +26278,10 @@ Error: %5</translation>
|
||||
<source>Build "%1"</source>
|
||||
<translation>Сборка «%1»</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonBuildSettingsWidget</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply Configuration Changes</source>
|
||||
<translation>Применить изменения</translation>
|
||||
@@ -26625,17 +26300,11 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Filter</source>
|
||||
<translation>Фильтр</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Build</source>
|
||||
<comment>MesonProjectManager::MesonBuildStepConfigWidget display name.</comment>
|
||||
<translation>Сборка</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonProcess</name>
|
||||
<message>
|
||||
<source>Configuring "%1".</source>
|
||||
<translation>Настройка «%1».</translation>
|
||||
@@ -26680,9 +26349,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Command is not executable: %1</source>
|
||||
<translation>Команда не запускается: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonProject</name>
|
||||
<message>
|
||||
<source>No Meson tool set.</source>
|
||||
<translation>Программа Meson не указана.</translation>
|
||||
@@ -26695,9 +26361,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>No compilers set in kit.</source>
|
||||
<translation>У комплекта не заданы компиляторы.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::MesonToolKitAspect</name>
|
||||
<message>
|
||||
<source>Meson Tool</source>
|
||||
<translation>Утилита Meson</translation>
|
||||
@@ -26710,28 +26373,14 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Cannot validate this meson executable.</source>
|
||||
<translation>Невозможно проверить эту программу Meson.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unconfigured</source>
|
||||
<translation>Не настроено</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::NinjaBuildStep</name>
|
||||
<message>
|
||||
<source>Meson Build</source>
|
||||
<translation>Сборка Meson</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::NinjaToolKitAspect</name>
|
||||
<message>
|
||||
<source>Ninja Tool</source>
|
||||
<translation>Утилита Ninja</translation>
|
||||
@@ -26748,17 +26397,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Ninja</source>
|
||||
<translation>Ninja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unconfigured</source>
|
||||
<translation>Не настроено</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::ToolItemSettings</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Имя:</translation>
|
||||
@@ -26767,9 +26405,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Path:</source>
|
||||
<translation>Путь:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::ToolTreeItem</name>
|
||||
<message>
|
||||
<source>Meson executable path does not exist.</source>
|
||||
<translation>Не найден путь к программе Meson.</translation>
|
||||
@@ -26782,9 +26417,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Meson executable path is not executable.</source>
|
||||
<translation>Путь к программе Meson не исполняемый.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::ToolsSettingsPage</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Имя</translation>
|
||||
@@ -26821,13 +26453,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<source>Cannot get tool version.</source>
|
||||
<translation>Не удалось получить версию инструмента.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::Internal::ToolsSettingsWidget</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add</source>
|
||||
<translation>Добавить</translation>
|
||||
@@ -26849,13 +26474,6 @@ Useful if build directory is corrupted or when rebuilding with a newer version o
|
||||
<translation>Сделать по умолчанию</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MesonProjectManager::MesonToolManager</name>
|
||||
<message>
|
||||
<source>Meson</source>
|
||||
<translation>Meson</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MimeTypeDialog</name>
|
||||
<message>
|
||||
@@ -27288,28 +26906,19 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::CodeStyleSettings</name>
|
||||
<name>Nim</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimBuildConfiguration</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Основное</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Этап сборки компилятора Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Target:</source>
|
||||
<translation>Цель:</translation>
|
||||
@@ -27338,9 +26947,6 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Release</source>
|
||||
<translation>Выпуск</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimCompilerCleanStep</name>
|
||||
<message>
|
||||
<source>Nim Clean Step</source>
|
||||
<translation>Этап очистки компилятора Nim</translation>
|
||||
@@ -27369,17 +26975,11 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Nim Compiler Clean Step</source>
|
||||
<translation>Этап очистки компилятора Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimPlugin</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<comment>SnippetProvider</comment>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimProject</name>
|
||||
<message>
|
||||
<source>No Nim compiler set.</source>
|
||||
<translation>Компилятор Nim не задан.</translation>
|
||||
@@ -27388,35 +26988,15 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Nim compiler does not exist.</source>
|
||||
<translation>Компилятор Nim отсутствует.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimRunConfiguration</name>
|
||||
<message>
|
||||
<source>Current Build Target</source>
|
||||
<translation>Цель текущей сборки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimSettings</name>
|
||||
<message>
|
||||
<source>Global</source>
|
||||
<comment>Settings</comment>
|
||||
<translation>Общие</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChain</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolChainConfigWidget</name>
|
||||
<message>
|
||||
<source>&Compiler path:</source>
|
||||
<translation>Путь к &компилятору:</translation>
|
||||
@@ -27425,9 +27005,6 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>&Compiler version:</source>
|
||||
<translation>&Версия компилятора:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimToolsSettingsWidget</name>
|
||||
<message>
|
||||
<source>Nimsuggest</source>
|
||||
<translation>Nimsuggest</translation>
|
||||
@@ -27436,23 +27013,10 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Path</source>
|
||||
<translation>Путь</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleBuildConfiguration</name>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation>Основное</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleBuildStep</name>
|
||||
<message>
|
||||
<source>Nimble Build</source>
|
||||
<translation>Сборка Nimble</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleBuildStepWidget</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
@@ -27465,9 +27029,6 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Reset to Default</source>
|
||||
<translation>Сбросить на умолчальные</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleTaskStep</name>
|
||||
<message>
|
||||
<source>Nimble task %1 not found.</source>
|
||||
<translation>Не удалось найти задачу Nimble %1.</translation>
|
||||
@@ -27476,13 +27037,6 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Nimble Task</source>
|
||||
<translation>Задача Nimble</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleTaskStepWidget</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Task arguments:</source>
|
||||
<translation>Параметры задачи:</translation>
|
||||
@@ -27491,77 +27045,22 @@ If set to false, the target will be moved straight to the current mouse position
|
||||
<source>Tasks:</source>
|
||||
<translation>Задачи:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::NimbleTestConfiguration</name>
|
||||
<message>
|
||||
<source>Nimble Test</source>
|
||||
<translation>Тест Nimble</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Nim::ToolSettingsPage</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStylePreferencesFactory</name>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCodeStyleSettingsPage</name>
|
||||
<message>
|
||||
<source>Code Style</source>
|
||||
<translation>Стиль кода</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStep</name>
|
||||
<message>
|
||||
<source>Nim Compiler Build Step</source>
|
||||
<translation>Этап сборки компилятора Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimCompilerBuildStepConfigWidget</name>
|
||||
<message>
|
||||
<source>Nim build step</source>
|
||||
<translation>Этап сборки Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimToolsSettingsPage</name>
|
||||
<message>
|
||||
<source>Tools</source>
|
||||
<translation>Инструменты</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nim</source>
|
||||
<translation>Nim</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimbleBuildStep</name>
|
||||
<message>
|
||||
<source>Nimble Build</source>
|
||||
<translation>Сборка Nimble</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NimbleTaskStep</name>
|
||||
<message>
|
||||
<source>Nimble Task</source>
|
||||
<translation>Задача Nimble</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NoShowCheckbox</name>
|
||||
@@ -44973,7 +44472,7 @@ Row: %4, Column: %5
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SdccToolChain</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>SDCC %1 (%2, %3)</source>
|
||||
<translation>SDCC %1 (%2, %3)</translation>
|
||||
|
@@ -7537,8 +7537,8 @@ enojen »Vstopi« za oddajo signala pa vas bo privedel neposredno do ustrezne pr
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>&Switch To</source>
|
||||
<translation>P&reklopi na</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Odpri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
|
@@ -15576,8 +15576,8 @@ to project '%2'.</source>
|
||||
<translation>Ви&далити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>&Перемкнутись до</translation>
|
||||
<source>&Open</source>
|
||||
<translation>&Відкрити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New session name</source>
|
||||
@@ -36314,7 +36314,7 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWidget</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="vanished">Форма</translation>
|
||||
@@ -36323,25 +36323,6 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d
|
||||
<source>GDB host:</source>
|
||||
<translation type="vanished">Вузол GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB port:</source>
|
||||
<translation type="vanished">Порт GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation type="vanished">Команди GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Form</source>
|
||||
<translation type="vanished">Форма</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation>Налаштування сервера GDB або апаратного зневаджувача</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Назва:</translation>
|
||||
@@ -36350,34 +36331,10 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d
|
||||
<source>GDB server provider:</source>
|
||||
<translation>Постачальник сервера GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation type="vanished">Команди ініціалізації:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation type="vanished">Команди скидання:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Голий пристрій</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>localhost</source>
|
||||
<translation type="vanished">localhost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB port:</source>
|
||||
<translation type="vanished">Порт GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB host:</source>
|
||||
<translation type="vanished">Вузол GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation type="vanished">Команди GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>load
|
||||
monitor reset</source>
|
||||
@@ -37410,95 +37367,27 @@ Do you want to uninstall the existing package next time?</source>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDevice</name>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Голе залізо</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation type="vanished">Голий пристрій</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation type="vanished">Налаштування нової конфігурації голого пристрою</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalDeviceConfigurationWizardSetupPage</name>
|
||||
<message>
|
||||
<source>Set up GDB Server or Hardware Debugger</source>
|
||||
<translation type="vanished">Налаштування сервера GDB або апаратного зневаджувача</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation type="vanished">Голий пристрій</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget</name>
|
||||
<message>
|
||||
<source>GDB commands:</source>
|
||||
<translation>Команди GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation type="vanished">Команди GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>%1 (via GDB server or hardware debugger)</source>
|
||||
<translation type="vanished">%1 (через сервер GDB або апаратний зневаджувач)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Run on GDB server or hardware debugger</source>
|
||||
<extracomment>Bare Metal run configuration default run name</extracomment>
|
||||
<translation type="vanished">Виконати на сервері GDB або апаратному зневаджувачі</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationFactory</name>
|
||||
<message>
|
||||
<source>%1 (on GDB server or hardware debugger)</source>
|
||||
<translation>%1 (через сервер GDB або апаратний зневаджувач)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::BareMetalRunConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation type="vanished">Виконуваний модуль:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Arguments:</source>
|
||||
<translation type="vanished">Аргументи:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><default></source>
|
||||
<translation type="vanished"><типово></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Working directory:</source>
|
||||
<translation type="vanished">Робоча тека:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown</source>
|
||||
<translation type="vanished">Невідомо</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunControlFactory</name>
|
||||
<message>
|
||||
<source>Cannot debug: Local executable is not set.</source>
|
||||
<translation>Неможливо зневадити: локальний виконуваний модуль не задано.</translation>
|
||||
@@ -41067,57 +40956,14 @@ Install an SDK of at least API version %1.</source>
|
||||
<source>Enter GDB commands to reset the hardware. The MCU should be halted after these commands.</source>
|
||||
<translation>Введіть команди GDB для апаратного скидання. Мікроконтролер має бути зупинено після цих команд.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bare Metal</source>
|
||||
<translation>Голе залізо</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationFactory</name>
|
||||
<message>
|
||||
<source>Bare Metal Device</source>
|
||||
<translation>Голий пристрій</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWidget</name>
|
||||
<message>
|
||||
<source>GDB host:</source>
|
||||
<translation type="vanished">Вузол GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB port:</source>
|
||||
<translation type="vanished">Порт GDB:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation type="vanished">Команди ініціалізації:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation type="vanished">Команди скидання:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GDB server provider:</source>
|
||||
<translation>Постачальник сервера GDB:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDeviceConfigurationWizard</name>
|
||||
<message>
|
||||
<source>New Bare Metal Device Configuration Setup</source>
|
||||
<translation>Налаштування нової конфігурації голого пристрою</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalGdbCommandsDeployStep</name>
|
||||
<message>
|
||||
<source>GDB commands</source>
|
||||
<translation>Команди GDB</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfiguration</name>
|
||||
<message>
|
||||
<source>%1 (via GDB server or hardware debugger)</source>
|
||||
<translation>%1 (через сервер GDB або апаратний зневаджувач)</translation>
|
||||
@@ -41127,17 +40973,10 @@ Install an SDK of at least API version %1.</source>
|
||||
<extracomment>Bare Metal run configuration default run name</extracomment>
|
||||
<translation>Виконати на сервері GDB або апаратному зневаджувачі</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalRunConfigurationWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Виконуваний модуль:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Arguments:</source>
|
||||
<translation type="vanished">Аргументи:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><default></source>
|
||||
<translation><типово></translation>
|
||||
@@ -45881,22 +45720,11 @@ Affected are breakpoints %1</source>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfigWidget</name>
|
||||
<message>
|
||||
<source>Executable:</source>
|
||||
<translation>Виконуваний модуль:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Arguments:</source>
|
||||
<translation type="vanished">Аргументи:</translation>
|
||||
</message>
|
||||
<name>BareMetal</name>
|
||||
<message>
|
||||
<source>Work directory:</source>
|
||||
<translation>Робоча тека:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalCustomRunConfiguration</name>
|
||||
<message>
|
||||
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
|
||||
<translation>Має бути заданий віддалений виконуваний модуль, щоб виконати користувацьку віддалену конфігурацію запуску.</translation>
|
||||
@@ -45905,9 +45733,6 @@ Affected are breakpoints %1</source>
|
||||
<source>Custom Executable (on GDB server or hardware debugger)</source>
|
||||
<translation>Виконуваний модуль (через сервер GDB або апаратний зневаджувач)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::BareMetalDebugSupport</name>
|
||||
<message>
|
||||
<source>Debugging failed.</source>
|
||||
<translation>Збій зневадження.</translation>
|
||||
@@ -45920,16 +45745,10 @@ Affected are breakpoints %1</source>
|
||||
<source>Starting GDB server...</source>
|
||||
<translation>Запуск сервера GDB...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>Default</source>
|
||||
<translation>Типовий</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::DefaultGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Вузол:</translation>
|
||||
@@ -45942,24 +45761,14 @@ Affected are breakpoints %1</source>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команди скидання:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::GdbServerProvider</name>
|
||||
<message>
|
||||
<source>Clone of %1</source>
|
||||
<translation>Клон %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Enter the name of the GDB server provider.</source>
|
||||
<translation>Введіть назву постачальника сервера GDB.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
<translation>Назва:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose the desired startup mode of the GDB server provider.</source>
|
||||
<translation>Оберіть бажаний режим запуску постачальника сервера GDB.</translation>
|
||||
@@ -45980,9 +45789,6 @@ Affected are breakpoints %1</source>
|
||||
<source>Startup in Pipe Mode</source>
|
||||
<translation>Запуск в режимі конвеєра</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::HostWidget</name>
|
||||
<message>
|
||||
<source>Enter TCP/IP hostname of the GDB server provider, like "localhost" or "192.0.2.1".</source>
|
||||
<translation>Введіть назву вузла постачальника сервера GDB (напр., "localhost" або "192.0.2.1").</translation>
|
||||
@@ -45991,9 +45797,6 @@ Affected are breakpoints %1</source>
|
||||
<source>Enter TCP/IP port which will be listened by the GDB server provider.</source>
|
||||
<translation>Введіть порт, на якому буде слухати постачальник сервера GDB.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderChooser</name>
|
||||
<message>
|
||||
<source>Manage...</source>
|
||||
<translation>Управління...</translation>
|
||||
@@ -46002,9 +45805,6 @@ Affected are breakpoints %1</source>
|
||||
<source>None</source>
|
||||
<translation>Немає</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProviderModel</name>
|
||||
<message>
|
||||
<source>Name</source>
|
||||
<translation>Назва</translation>
|
||||
@@ -46025,9 +45825,6 @@ Affected are breakpoints %1</source>
|
||||
<source>The following providers were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||
<translation>Наступні постачальники вже сконфігуровано:<br>&nbsp;%1<br>Їх не буде сконфігуровано знову.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::GdbServerProvidersSettingsPage</name>
|
||||
<message>
|
||||
<source>GDB Server Providers</source>
|
||||
<translation>Постачальники сервера GDB</translation>
|
||||
@@ -46044,20 +45841,10 @@ Affected are breakpoints %1</source>
|
||||
<source>Remove</source>
|
||||
<translation>Видалити</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>OpenOCD</source>
|
||||
<translation>OpenOCD</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Вузол:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Виконуваний файл:</translation>
|
||||
@@ -46074,32 +45861,10 @@ Affected are breakpoints %1</source>
|
||||
<source>Additional arguments:</source>
|
||||
<translation>Додаткові аргументи:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Команди ініціалізації:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команди скидання:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderFactory</name>
|
||||
<message>
|
||||
<source>ST-LINK Utility</source>
|
||||
<translation>Утиліта ST-LINK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget</name>
|
||||
<message>
|
||||
<source>Host:</source>
|
||||
<translation>Вузол:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Executable file:</source>
|
||||
<translation>Виконуваний файл:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Specify the verbosity level (0..99).</source>
|
||||
<translation>Вкажіть рівень деталізації (0..99).</translation>
|
||||
@@ -46132,14 +45897,6 @@ Affected are breakpoints %1</source>
|
||||
<source>Version:</source>
|
||||
<translation>Версія:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Init commands:</source>
|
||||
<translation>Команди ініціалізації:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Reset commands:</source>
|
||||
<translation>Команди скидання:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ST-LINK/V1</source>
|
||||
<translation>ST-LINK/V1</translation>
|
||||
|
@@ -10526,8 +10526,8 @@ SOURCES *= .../ide/main/bin/dumper/dumper.cpp
|
||||
<translation>删除(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>切换到(&S)</translation>
|
||||
<source>&Open</source>
|
||||
<translation>打开(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New session name</source>
|
||||
|
@@ -6980,8 +6980,8 @@ Add, modify, and remove document filters, which determine the documentation set
|
||||
<translation>刪除(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Switch To</source>
|
||||
<translation>切換至(&S)</translation>
|
||||
<source>&Open</source>
|
||||
<translation>開啟(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New session name</source>
|
||||
|
@@ -35,6 +35,7 @@
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/qtcprocess.h>
|
||||
#include <utils/qtcsettings.h>
|
||||
#include <utils/threadutils.h>
|
||||
|
||||
#ifdef WITH_TESTS
|
||||
#include <utils/hostosinfo.h>
|
||||
@@ -851,7 +852,7 @@ bool PluginManager::finishScenario()
|
||||
// Waits until the running scenario is fully initialized
|
||||
void PluginManager::waitForScenarioFullyInitialized()
|
||||
{
|
||||
if (QThread::currentThread() == qApp->thread()) {
|
||||
if (isMainThread()) {
|
||||
qWarning("The waitForScenarioFullyInitialized() function can't be called from main thread.");
|
||||
return;
|
||||
}
|
||||
@@ -1378,7 +1379,7 @@ void PluginManagerPrivate::shutdown()
|
||||
#ifdef WITH_TESTS
|
||||
if (PluginManager::isScenarioRunning("TestModelManagerInterface")) {
|
||||
qDebug() << "Point 2: Expect the next call to Point 3 triggers a crash";
|
||||
QThread::currentThread()->sleep(5);
|
||||
QThread::sleep(5);
|
||||
}
|
||||
#endif
|
||||
if (!allObjects.isEmpty()) {
|
||||
|
@@ -7,7 +7,6 @@
|
||||
#include "qmljsinterpreter.h"
|
||||
#include "qmljsmodelmanagerinterface.h"
|
||||
#include "qmljsplugindumper.h"
|
||||
#include "qmljstypedescriptionreader.h"
|
||||
#include "qmljsdialect.h"
|
||||
#include "qmljsviewercontext.h"
|
||||
#include "qmljsutils.h"
|
||||
@@ -989,7 +988,7 @@ void ModelManagerInterface::parseLoop(QSet<Utils::FilePath> &scannedPaths,
|
||||
ExtensionSystem::PluginManager::waitForScenarioFullyInitialized();
|
||||
if (ExtensionSystem::PluginManager::finishScenario()) {
|
||||
qDebug() << "Point 1: Shutdown triggered";
|
||||
QThread::currentThread()->sleep(2);
|
||||
QThread::sleep(2);
|
||||
qDebug() << "Point 3: If Point 2 was already reached, expect a crash now";
|
||||
}
|
||||
}
|
||||
|
@@ -48,6 +48,7 @@ add_qtc_library(Utils
|
||||
fileinprojectfinder.cpp fileinprojectfinder.h
|
||||
filenamevalidatinglineedit.cpp filenamevalidatinglineedit.h
|
||||
filepath.cpp filepath.h
|
||||
filepathinfo.h
|
||||
filesearch.cpp filesearch.h
|
||||
filesystemmodel.cpp filesystemmodel.h
|
||||
filesystemwatcher.cpp filesystemwatcher.h
|
||||
@@ -264,6 +265,7 @@ extend_qtc_library(Utils
|
||||
fsengine/fixedlistfsengine.h
|
||||
fsengine/fsenginehandler.cpp
|
||||
fsengine/fsenginehandler.h
|
||||
fsengine/filepathinfocache.h
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
|
@@ -513,8 +513,7 @@ FilePaths FilePath::dirEntries(QDir::Filters filters) const
|
||||
// either of the specified \a nameFilters.
|
||||
// An empty \nameFilters list matches every name.
|
||||
|
||||
void FilePath::iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
|
||||
const FileFilter &filter) const
|
||||
void FilePath::iterateDirectory(const IterateDirCallback &callBack, const FileFilter &filter) const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.iterateDirectory, return);
|
||||
@@ -529,8 +528,25 @@ void FilePath::iterateDirectory(const std::function<bool(const FilePath &item)>
|
||||
}
|
||||
}
|
||||
|
||||
void FilePath::iterateDirectory(const IterateDirWithInfoCallback &callBack,
|
||||
const FileFilter &filter) const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.iterateDirectoryWithInfo, return);
|
||||
s_deviceHooks.iterateDirectoryWithInfo(*this, callBack, filter);
|
||||
return;
|
||||
}
|
||||
|
||||
QDirIterator it(path(), filter.nameFilters, filter.fileFilters, filter.iteratorFlags);
|
||||
while (it.hasNext()) {
|
||||
const FilePath path = FilePath::fromString(it.next());
|
||||
if (!callBack(path, path.filePathInfo()))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void FilePath::iterateDirectories(const FilePaths &dirs,
|
||||
const std::function<bool(const FilePath &)> &callBack,
|
||||
const IterateDirCallback &callBack,
|
||||
const FileFilter &filter)
|
||||
{
|
||||
for (const FilePath &dir : dirs)
|
||||
@@ -586,28 +602,64 @@ void FilePath::asyncFileContents(const Continuation<const std::optional<QByteArr
|
||||
cont(fileContents(maxSize, offset));
|
||||
}
|
||||
|
||||
bool FilePath::writeFileContents(const QByteArray &data) const
|
||||
bool FilePath::writeFileContents(const QByteArray &data, qint64 offset) const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.writeFileContents, return {});
|
||||
return s_deviceHooks.writeFileContents(*this, data);
|
||||
return s_deviceHooks.writeFileContents(*this, data, offset);
|
||||
}
|
||||
|
||||
QFile file(path());
|
||||
QTC_ASSERT(file.open(QFile::WriteOnly | QFile::Truncate), return false);
|
||||
if (offset != 0)
|
||||
file.seek(offset);
|
||||
qint64 res = file.write(data);
|
||||
return res == data.size();
|
||||
}
|
||||
|
||||
void FilePath::asyncWriteFileContents(const Continuation<bool> &cont, const QByteArray &data) const
|
||||
FilePathInfo FilePath::filePathInfo() const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.filePathInfo, return {});
|
||||
return s_deviceHooks.filePathInfo(*this);
|
||||
}
|
||||
|
||||
FilePathInfo result;
|
||||
|
||||
QFileInfo fi(path());
|
||||
result.fileSize = fi.size();
|
||||
result.lastModified = fi.lastModified();
|
||||
result.fileFlags = (FilePathInfo::FileFlag) fi.permissions().toInt();
|
||||
|
||||
if (fi.isDir())
|
||||
result.fileFlags |= FilePathInfo::DirectoryType;
|
||||
if (fi.isFile())
|
||||
result.fileFlags |= FilePathInfo::FileType;
|
||||
if (fi.exists())
|
||||
result.fileFlags |= FilePathInfo::ExistsFlag;
|
||||
if (fi.isSymbolicLink())
|
||||
result.fileFlags |= FilePathInfo::LinkType;
|
||||
if (fi.isBundle())
|
||||
result.fileFlags |= FilePathInfo::BundleType;
|
||||
if (fi.isHidden())
|
||||
result.fileFlags |= FilePathInfo::HiddenFlag;
|
||||
if (fi.isRoot())
|
||||
result.fileFlags |= FilePathInfo::RootFlag;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void FilePath::asyncWriteFileContents(const Continuation<bool> &cont,
|
||||
const QByteArray &data,
|
||||
qint64 offset) const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.asyncWriteFileContents, return);
|
||||
s_deviceHooks.asyncWriteFileContents(cont, *this, data);
|
||||
s_deviceHooks.asyncWriteFileContents(cont, *this, data, offset);
|
||||
return;
|
||||
}
|
||||
|
||||
cont(writeFileContents(data));
|
||||
cont(writeFileContents(data, offset));
|
||||
}
|
||||
|
||||
bool FilePath::needsDevice() const
|
||||
@@ -733,9 +785,9 @@ FilePath FilePath::absolutePath() const
|
||||
FilePath FilePath::absoluteFilePath() const
|
||||
{
|
||||
if (isAbsolutePath())
|
||||
return *this;
|
||||
return cleanPath();
|
||||
if (!needsDevice() && isEmpty())
|
||||
return *this;
|
||||
return cleanPath();
|
||||
|
||||
return FilePath::currentWorkingPath().resolvePath(*this);
|
||||
}
|
||||
@@ -1830,17 +1882,18 @@ FileFilter::FileFilter(const QStringList &nameFilters,
|
||||
{
|
||||
}
|
||||
|
||||
QStringList FileFilter::asFindArguments() const
|
||||
QStringList FileFilter::asFindArguments(const QString &path) const
|
||||
{
|
||||
QStringList arguments;
|
||||
|
||||
const QDir::Filters filters = fileFilters;
|
||||
if (filters & QDir::NoSymLinks)
|
||||
arguments.prepend("-H");
|
||||
else
|
||||
arguments.prepend("-L");
|
||||
|
||||
arguments.append({"-mindepth", "1"});
|
||||
if (iteratorFlags.testFlag(QDirIterator::FollowSymlinks))
|
||||
arguments << "-L";
|
||||
else
|
||||
arguments << "-H";
|
||||
|
||||
arguments << path;
|
||||
|
||||
if (!iteratorFlags.testFlag(QDirIterator::Subdirectories))
|
||||
arguments.append({"-maxdepth", "1"});
|
||||
@@ -1850,14 +1903,23 @@ QStringList FileFilter::asFindArguments() const
|
||||
if (!(filters & QDir::Hidden))
|
||||
filterOptions << "!" << "-name" << ".*";
|
||||
|
||||
QStringList typesToList;
|
||||
|
||||
QStringList filterFilesAndDirs;
|
||||
if (filters & QDir::Dirs)
|
||||
if (filters.testFlag(QDir::Dirs))
|
||||
filterFilesAndDirs << "-type" << "d";
|
||||
if (filters & QDir::Files) {
|
||||
if (filters.testFlag(QDir::Files)) {
|
||||
if (!filterFilesAndDirs.isEmpty())
|
||||
filterFilesAndDirs << "-o";
|
||||
filterFilesAndDirs << "-type" << "f";
|
||||
}
|
||||
|
||||
if (!filters.testFlag(QDir::NoSymLinks)) {
|
||||
if (!filterFilesAndDirs.isEmpty())
|
||||
filterFilesAndDirs << "-o";
|
||||
filterFilesAndDirs << "-type" << "l";
|
||||
}
|
||||
|
||||
if (!filterFilesAndDirs.isEmpty())
|
||||
filterOptions << "(" << filterFilesAndDirs << ")";
|
||||
|
||||
|
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "utils_global.h"
|
||||
|
||||
#include "filepathinfo.h"
|
||||
#include "osspecificaspects.h"
|
||||
|
||||
#include <QDir>
|
||||
@@ -36,7 +37,7 @@ public:
|
||||
const QDir::Filters fileFilters = QDir::NoFilter,
|
||||
const QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags);
|
||||
|
||||
QStringList asFindArguments() const;
|
||||
QStringList asFindArguments(const QString &path) const;
|
||||
|
||||
const QStringList nameFilters;
|
||||
const QDir::Filters fileFilters = QDir::NoFilter;
|
||||
@@ -118,7 +119,8 @@ public:
|
||||
FilePaths dirEntries(const FileFilter &filter, QDir::SortFlags sort = QDir::NoSort) const;
|
||||
FilePaths dirEntries(QDir::Filters filters) const;
|
||||
std::optional<QByteArray> fileContents(qint64 maxSize = -1, qint64 offset = 0) const;
|
||||
bool writeFileContents(const QByteArray &data) const;
|
||||
bool writeFileContents(const QByteArray &data, qint64 offset = 0) const;
|
||||
FilePathInfo filePathInfo() const;
|
||||
|
||||
bool operator==(const FilePath &other) const;
|
||||
bool operator!=(const FilePath &other) const;
|
||||
@@ -151,10 +153,17 @@ public:
|
||||
[[nodiscard]] Environment deviceEnvironment() const;
|
||||
[[nodiscard]] FilePath onDevice(const FilePath &deviceTemplate) const;
|
||||
[[nodiscard]] FilePath withNewPath(const QString &newPath) const;
|
||||
void iterateDirectory(const std::function<bool(const FilePath &item)> &callBack,
|
||||
|
||||
using IterateDirCallback = std::function<bool(const FilePath &item)>;
|
||||
using IterateDirWithInfoCallback
|
||||
= std::function<bool(const FilePath &item, const FilePathInfo &info)>;
|
||||
|
||||
void iterateDirectory(const IterateDirCallback &callBack, const FileFilter &filter) const;
|
||||
void iterateDirectory(const IterateDirWithInfoCallback &callBack,
|
||||
const FileFilter &filter) const;
|
||||
|
||||
static void iterateDirectories(const FilePaths &dirs,
|
||||
const std::function<bool(const FilePath &item)> &callBack,
|
||||
const IterateDirCallback &callBack,
|
||||
const FileFilter &filter);
|
||||
|
||||
enum PathAmending { AppendToPath, PrependToPath };
|
||||
@@ -180,7 +189,9 @@ public:
|
||||
void asyncFileContents(const Continuation<const std::optional<QByteArray> &> &cont,
|
||||
qint64 maxSize = -1,
|
||||
qint64 offset = 0) const;
|
||||
void asyncWriteFileContents(const Continuation<bool> &cont, const QByteArray &data) const;
|
||||
void asyncWriteFileContents(const Continuation<bool> &cont,
|
||||
const QByteArray &data,
|
||||
qint64 offset = 0) const;
|
||||
|
||||
// Prefer not to use
|
||||
// Using needsDevice() in "user" code is likely to result in code that
|
||||
@@ -256,10 +267,15 @@ public:
|
||||
std::function<FilePath(const FilePath &)> symLinkTarget;
|
||||
std::function<QString(const FilePath &)> mapToDevicePath;
|
||||
std::function<void(const FilePath &,
|
||||
const std::function<bool(const FilePath &)> &, // Abort on 'false' return.
|
||||
const FileFilter &)> iterateDirectory;
|
||||
const FilePath::IterateDirCallback &, // Abort on 'false' return.
|
||||
const FileFilter &)>
|
||||
iterateDirectory;
|
||||
std::function<void(const FilePath &,
|
||||
const FilePath::IterateDirWithInfoCallback &, // Abort on 'false' return.
|
||||
const FileFilter &)>
|
||||
iterateDirectoryWithInfo;
|
||||
std::function<std::optional<QByteArray>(const FilePath &, qint64, qint64)> fileContents;
|
||||
std::function<bool(const FilePath &, const QByteArray &)> writeFileContents;
|
||||
std::function<bool(const FilePath &, const QByteArray &, qint64)> writeFileContents;
|
||||
std::function<QDateTime(const FilePath &)> lastModified;
|
||||
std::function<QFile::Permissions(const FilePath &)> permissions;
|
||||
std::function<bool(const FilePath &, QFile::Permissions)> setPermissions;
|
||||
@@ -269,6 +285,7 @@ public:
|
||||
std::function<qint64(const FilePath &)> bytesAvailable;
|
||||
std::function<QString(const FilePath &)> deviceDisplayName;
|
||||
std::function<bool(const FilePath &, const FilePath &)> isSameDevice;
|
||||
std::function<FilePathInfo(const FilePath &)> filePathInfo;
|
||||
|
||||
|
||||
template <class ...Args> using Continuation = std::function<void(Args...)>;
|
||||
@@ -276,7 +293,8 @@ public:
|
||||
std::function<void(
|
||||
const Continuation<const std::optional<QByteArray> &> &, const FilePath &, qint64, qint64)>
|
||||
asyncFileContents;
|
||||
std::function<void(const Continuation<bool> &, const FilePath &, const QByteArray &)> asyncWriteFileContents;
|
||||
std::function<void(const Continuation<bool> &, const FilePath &, const QByteArray &, qint64)>
|
||||
asyncWriteFileContents;
|
||||
std::function<bool(const FilePath &, const FilePath &)> ensureReachable;
|
||||
};
|
||||
|
||||
|
56
src/libs/utils/filepathinfo.h
Normal file
@@ -0,0 +1,56 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
namespace Utils {
|
||||
|
||||
struct FilePathInfo
|
||||
{
|
||||
// Copy of QAbstractFileEngine::FileFlags so we don't need to include private headers.
|
||||
enum FileFlag {
|
||||
//perms (overlaps the QFile::Permission)
|
||||
ReadOwnerPerm = 0x4000, // 0x100
|
||||
WriteOwnerPerm = 0x2000, // 0x80
|
||||
ExeOwnerPerm = 0x1000, // 0x40
|
||||
ReadUserPerm = 0x0400,
|
||||
WriteUserPerm = 0x0200,
|
||||
ExeUserPerm = 0x0100,
|
||||
ReadGroupPerm = 0x0040, // 0x20
|
||||
WriteGroupPerm = 0x0020, // 0x10
|
||||
ExeGroupPerm = 0x0010, // 0x8
|
||||
ReadOtherPerm = 0x0004, // 0x4
|
||||
WriteOtherPerm = 0x0002, // 0x2
|
||||
ExeOtherPerm = 0x0001, // 0x1
|
||||
|
||||
//types
|
||||
LinkType = 0x10000, // 0xa000
|
||||
FileType = 0x20000, // 0x8000
|
||||
DirectoryType = 0x40000, // 0x4000
|
||||
BundleType = 0x80000,
|
||||
|
||||
//flags
|
||||
HiddenFlag = 0x0100000,
|
||||
LocalDiskFlag = 0x0200000, // 0x6000
|
||||
ExistsFlag = 0x0400000,
|
||||
RootFlag = 0x0800000,
|
||||
Refresh = 0x1000000,
|
||||
|
||||
//masks
|
||||
PermsMask = 0x0000FFFF,
|
||||
TypesMask = 0x000F0000,
|
||||
FlagsMask = 0x0FF00000,
|
||||
FileInfoAll = FlagsMask | PermsMask | TypesMask
|
||||
};
|
||||
|
||||
Q_DECLARE_FLAGS(FileFlags, FileFlag)
|
||||
|
||||
|
||||
qint64 fileSize = 0;
|
||||
FileFlags fileFlags;
|
||||
QDateTime lastModified;
|
||||
};
|
||||
|
||||
} // namespace Utils
|
@@ -620,39 +620,162 @@ void FileUtils::iterateLsOutput(const FilePath &base,
|
||||
}
|
||||
}
|
||||
|
||||
FilePathInfo::FileFlags fileInfoFlagsfromStatRawModeHex(const QString &hexString)
|
||||
{
|
||||
bool ok = false;
|
||||
uint mode = hexString.toUInt(&ok, 16);
|
||||
|
||||
QTC_ASSERT(ok, return {});
|
||||
|
||||
FilePathInfo::FileFlags result;
|
||||
|
||||
if (mode & 0x100) // S_IRUSR
|
||||
result |= FilePathInfo::ReadOwnerPerm;
|
||||
if (mode & 0x80) // S_IWUSR
|
||||
result |= FilePathInfo::WriteOwnerPerm;
|
||||
if (mode & 0x40) // S_IXUSR
|
||||
result |= FilePathInfo::ExeOwnerPerm;
|
||||
if (mode & 0x20) // S_IRGRP
|
||||
result |= FilePathInfo::ReadGroupPerm;
|
||||
if (mode & 0x10) // S_IWGRP
|
||||
result |= FilePathInfo::WriteGroupPerm;
|
||||
if (mode & 0x8) // S_IXGRP
|
||||
result |= FilePathInfo::ExeGroupPerm;
|
||||
if (mode & 0x4) // S_IROTH
|
||||
result |= FilePathInfo::ReadOtherPerm;
|
||||
if (mode & 0x2) // S_IWOTH
|
||||
result |= FilePathInfo::WriteOtherPerm;
|
||||
if (mode & 0x1) // S_IXOTH
|
||||
result |= FilePathInfo::ExeOtherPerm;
|
||||
if (mode & 0xa000) // S_IFLNK
|
||||
result |= FilePathInfo::LinkType;
|
||||
if (mode & 0x8000) // S_IFREG
|
||||
result |= FilePathInfo::FileType;
|
||||
if (mode & 0x4000) // S_IFDIR
|
||||
result |= FilePathInfo::DirectoryType;
|
||||
if (mode & 0x6000) // S_IFBLK
|
||||
result |= FilePathInfo::LocalDiskFlag;
|
||||
|
||||
if (result != 0) // There is no Exist flag, but if anything was set before, it must exist.
|
||||
result |= FilePathInfo::ExistsFlag;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
FilePathInfo FileUtils::filePathInfoFromTriple(const QString &infos)
|
||||
{
|
||||
const QStringList parts = infos.split(' ', Qt::SkipEmptyParts);
|
||||
if (parts.size() != 3)
|
||||
return {};
|
||||
|
||||
FilePathInfo::FileFlags flags = fileInfoFlagsfromStatRawModeHex(parts[0]);
|
||||
|
||||
const QDateTime dt = QDateTime::fromSecsSinceEpoch(parts[1].toLongLong(), Qt::UTC);
|
||||
qint64 size = parts[2].toLongLong();
|
||||
return {size, flags, dt};
|
||||
}
|
||||
|
||||
bool iterateWithFind(const FilePath &filePath,
|
||||
const FileFilter &filter,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const std::function<bool(const QString &)> callBack,
|
||||
const QString &extraArguments)
|
||||
{
|
||||
QTC_CHECK(filePath.isAbsolutePath());
|
||||
const QStringList arguments = filter.asFindArguments(filePath.path());
|
||||
|
||||
CommandLine cmdLine{"find", arguments};
|
||||
if (!extraArguments.isEmpty())
|
||||
cmdLine.addArgs(extraArguments, CommandLine::Raw);
|
||||
|
||||
const RunResult result = runInShell(cmdLine);
|
||||
const QString out = QString::fromUtf8(result.stdOut);
|
||||
if (result.exitCode != 0) {
|
||||
// Find returns non-zero exit code for any error it encounters, even if it finds some files.
|
||||
|
||||
if (!out.startsWith('"' + filePath.path())) {
|
||||
if (!filePath.exists()) // File does not exist, so no files to find.
|
||||
return true;
|
||||
|
||||
// If the output does not start with the path we are searching in, find has failed.
|
||||
// Possibly due to unknown options.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
QStringList entries = out.split("\n", Qt::SkipEmptyParts);
|
||||
// Remove the first line, it is always the directory we are searching in.
|
||||
// as long as we do not specify "mindepth > 0"
|
||||
entries.pop_front();
|
||||
for (const QString &entry : entries) {
|
||||
if (!callBack(entry))
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// returns whether 'find' could be used.
|
||||
static bool iterateWithFind(const FilePath &filePath,
|
||||
const FileFilter &filter,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const std::function<bool(const FilePath &)> &callBack)
|
||||
const FilePath::IterateDirCallback &callBack)
|
||||
{
|
||||
QTC_CHECK(filePath.isAbsolutePath());
|
||||
QStringList arguments{filePath.path()};
|
||||
arguments << filter.asFindArguments();
|
||||
const auto toFilePath = [&filePath, &callBack](const QString &entry){
|
||||
return callBack(filePath.withNewPath(entry));
|
||||
};
|
||||
|
||||
const RunResult result = runInShell({"find", arguments});
|
||||
if (!result.stdErr.isEmpty()) {
|
||||
// missing find, unknown option e.g. "find: unknown predicate `-L'\n"
|
||||
// qDebug() << "find error: " << result.stdErr;
|
||||
return false;
|
||||
}
|
||||
return iterateWithFind(filePath, filter, runInShell, toFilePath, {});
|
||||
}
|
||||
|
||||
const QString out = QString::fromUtf8(result.stdOut);
|
||||
const QStringList entries = out.split("\n", Qt::SkipEmptyParts);
|
||||
for (const QString &entry : entries) {
|
||||
const FilePath fp = FilePath::fromString(entry);
|
||||
// Call back returning 'false' indicates a request to abort iteration.
|
||||
if (!callBack(fp.onDevice(filePath)))
|
||||
break;
|
||||
// returns whether 'find' could be used.
|
||||
static bool iterateWithFind(const FilePath &filePath,
|
||||
const FileFilter &filter,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const FilePath::IterateDirWithInfoCallback &callBack)
|
||||
{
|
||||
// TODO: Using stat -L will always return the link target, not the link itself.
|
||||
// We may wan't to add the information that it is a link at some point.
|
||||
const QString infoArgs(R"(-exec echo -n \"{}\"" " \; -exec stat -L -c "%f %Y %s" "{}" \;)");
|
||||
|
||||
const auto toFilePathAndInfo = [&filePath, &callBack](const QString &entry) {
|
||||
const QString fileName = entry.mid(1, entry.lastIndexOf('\"') - 1);
|
||||
const QString infos = entry.mid(fileName.length() + 3);
|
||||
|
||||
const FilePathInfo fi = FileUtils::filePathInfoFromTriple(infos);
|
||||
if (!fi.fileFlags)
|
||||
return true;
|
||||
|
||||
const FilePath fp = filePath.withNewPath(fileName);
|
||||
return callBack(fp, fi);
|
||||
};
|
||||
|
||||
return iterateWithFind(filePath, filter, runInShell, toFilePathAndInfo, infoArgs);
|
||||
}
|
||||
|
||||
static void findUsingLs(const QString ¤t,
|
||||
const FileFilter &filter,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
QStringList *found)
|
||||
{
|
||||
const RunResult result = runInShell({"ls", {"-1", "-p", "--", current}});
|
||||
const QStringList entries = QString::fromUtf8(result.stdOut).split('\n', Qt::SkipEmptyParts);
|
||||
for (QString entry : entries) {
|
||||
const QChar last = entry.back();
|
||||
if (last == '/') {
|
||||
entry.chop(1);
|
||||
if (filter.iteratorFlags.testFlag(QDirIterator::Subdirectories))
|
||||
findUsingLs(current + '/' + entry, filter, runInShell, found);
|
||||
}
|
||||
found->append(entry);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void FileUtils::iterateUnixDirectory(const FilePath &filePath,
|
||||
const FileFilter &filter,
|
||||
bool *useFind,
|
||||
const std::function<RunResult (const CommandLine &)> &runInShell,
|
||||
const std::function<bool(const FilePath &)> &callBack)
|
||||
const FilePath::IterateDirCallback &callBack)
|
||||
{
|
||||
QTC_ASSERT(callBack, return);
|
||||
|
||||
@@ -665,12 +788,35 @@ void FileUtils::iterateUnixDirectory(const FilePath &filePath,
|
||||
}
|
||||
|
||||
// if we do not have find - use ls as fallback
|
||||
// FIXME: Recursion into subdirectories not implemented!
|
||||
const RunResult result = runInShell({"ls", {"-1", "-b", "--", filePath.path()}});
|
||||
const QStringList entries = QString::fromUtf8(result.stdOut).split('\n', Qt::SkipEmptyParts);
|
||||
QStringList entries;
|
||||
findUsingLs(filePath.path(), filter, runInShell, &entries);
|
||||
FileUtils::iterateLsOutput(filePath, entries, filter, callBack);
|
||||
}
|
||||
|
||||
void FileUtils::iterateUnixDirectory(const FilePath &filePath,
|
||||
const FileFilter &filter,
|
||||
bool *useFind,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const FilePath::IterateDirWithInfoCallback &callBack)
|
||||
{
|
||||
QTC_ASSERT(callBack, return);
|
||||
|
||||
// We try to use 'find' first, because that can filter better directly.
|
||||
// Unfortunately, it's not installed on all devices by default.
|
||||
if (useFind && *useFind) {
|
||||
if (iterateWithFind(filePath, filter, runInShell, callBack))
|
||||
return;
|
||||
*useFind = false; // remember the failure for the next time and use the 'ls' fallback below.
|
||||
}
|
||||
|
||||
// if we do not have find - use ls as fallback
|
||||
QStringList entries;
|
||||
findUsingLs(filePath.path(), filter, runInShell, &entries);
|
||||
FileUtils::iterateLsOutput(filePath, entries, filter, [&callBack](const FilePath & filePath){
|
||||
return callBack(filePath, filePath.filePathInfo());
|
||||
});
|
||||
}
|
||||
|
||||
/*!
|
||||
Copies the directory specified by \a srcFilePath recursively to \a tgtFilePath. \a tgtFilePath will contain
|
||||
the target directory, which will be created. Example usage:
|
||||
|
@@ -35,7 +35,7 @@ class CommandLine;
|
||||
|
||||
struct QTCREATOR_UTILS_EXPORT RunResult
|
||||
{
|
||||
int exitCode = 0;
|
||||
int exitCode = -1;
|
||||
QByteArray stdOut;
|
||||
QByteArray stdErr;
|
||||
};
|
||||
@@ -97,10 +97,19 @@ public:
|
||||
const FileFilter &filter,
|
||||
bool *useFind,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const std::function<bool(const FilePath &)> &callBack);
|
||||
const FilePath::IterateDirCallback &callBack);
|
||||
|
||||
static void iterateUnixDirectory(
|
||||
const FilePath &base,
|
||||
const FileFilter &filter,
|
||||
bool *useFind,
|
||||
const std::function<RunResult(const CommandLine &)> &runInShell,
|
||||
const FilePath::IterateDirWithInfoCallback &callBack);
|
||||
|
||||
static qint64 bytesAvailableFromDFOutput(const QByteArray &dfOutput);
|
||||
|
||||
static FilePathInfo filePathInfoFromTriple(const QString &infos);
|
||||
|
||||
#ifdef QT_WIDGETS_LIB
|
||||
static void setDialogParentGetter(const std::function<QWidget *()> &getter);
|
||||
|
||||
|
@@ -121,27 +121,22 @@ QIcon FileIconProviderImplementation::icon(IconType type) const
|
||||
return QFileIconProvider::icon(type);
|
||||
}
|
||||
|
||||
QIcon FileIconProviderImplementation::icon(const QFileInfo &fi) const
|
||||
{
|
||||
return icon(FilePath::fromString(fi.filePath()));
|
||||
}
|
||||
|
||||
QString FileIconProviderImplementation::type(const QFileInfo &fi) const
|
||||
{
|
||||
const FilePath fPath = FilePath::fromString(fi.filePath());
|
||||
if (fPath.needsDevice()) {
|
||||
if (fPath.isDir()) {
|
||||
if (fi.isDir()) {
|
||||
#ifdef Q_OS_WIN
|
||||
return QGuiApplication::translate("QAbstractFileIconProvider", "File Folder", "Match Windows Explorer");
|
||||
#else
|
||||
return QGuiApplication::translate("QAbstractFileIconProvider", "Folder", "All other platforms");
|
||||
#endif
|
||||
}
|
||||
if (fPath.isExecutableFile()) {
|
||||
if (fi.isExecutable()) {
|
||||
return "Program";
|
||||
}
|
||||
|
||||
return QFileIconProvider::type(fi);
|
||||
return "File";
|
||||
}
|
||||
return QFileIconProvider::type(fi);
|
||||
}
|
||||
@@ -169,6 +164,55 @@ static const QIcon &dirIcon()
|
||||
return icon;
|
||||
}
|
||||
|
||||
QIcon FileIconProviderImplementation::icon(const QFileInfo &fi) const
|
||||
{
|
||||
qCDebug(fileIconProvider) << "FileIconProvider::icon" << fi.absoluteFilePath();
|
||||
|
||||
const FilePath filePath = FilePath::fromString(fi.filePath());
|
||||
|
||||
if (filePath.isEmpty())
|
||||
return unknownFileIcon();
|
||||
|
||||
// Check if its one of the virtual devices directories
|
||||
if (filePath.path().startsWith(
|
||||
FilePath::specialPath(FilePath::SpecialPathComponent::RootPath))) {
|
||||
// If the filepath does not need a device, it is a virtual device directory
|
||||
if (!filePath.needsDevice())
|
||||
return dirIcon();
|
||||
}
|
||||
|
||||
bool isDir = fi.isDir();
|
||||
|
||||
// Check for cached overlay icons by file suffix.
|
||||
const QString filename = !isDir ? fi.fileName() : QString();
|
||||
if (!filename.isEmpty()) {
|
||||
const std::optional<QIcon> icon = getIcon(m_filenameCache, filename);
|
||||
if (icon)
|
||||
return *icon;
|
||||
}
|
||||
|
||||
const QString suffix = !isDir ? fi.suffix() : QString();
|
||||
if (!suffix.isEmpty()) {
|
||||
const std::optional<QIcon> icon = getIcon(m_suffixCache, suffix);
|
||||
if (icon)
|
||||
return *icon;
|
||||
}
|
||||
|
||||
if (filePath.needsDevice())
|
||||
return isDir ? dirIcon() : unknownFileIcon();
|
||||
|
||||
// Get icon from OS (and cache it based on suffix!)
|
||||
QIcon icon;
|
||||
if (HostOsInfo::isWindowsHost() || HostOsInfo::isMacHost())
|
||||
icon = QFileIconProvider::icon(filePath.toFileInfo());
|
||||
else // File icons are unknown on linux systems.
|
||||
icon = isDir ? QFileIconProvider::icon(filePath.toFileInfo()) : unknownFileIcon();
|
||||
|
||||
if (!isDir && !suffix.isEmpty())
|
||||
m_suffixCache.insert(suffix, icon);
|
||||
return icon;
|
||||
}
|
||||
|
||||
QIcon FileIconProviderImplementation::icon(const FilePath &filePath) const
|
||||
{
|
||||
qCDebug(fileIconProvider) << "FileIconProvider::icon" << filePath.absoluteFilePath();
|
||||
|
68
src/libs/utils/fsengine/filepathinfocache.h
Normal file
@@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../filepath.h"
|
||||
|
||||
#include <QCache>
|
||||
#include <QMutex>
|
||||
#include <QMutexLocker>
|
||||
|
||||
namespace Utils::Internal {
|
||||
|
||||
class FilePathInfoCache
|
||||
{
|
||||
public:
|
||||
struct CachedData
|
||||
{
|
||||
FilePathInfo filePathInfo;
|
||||
QDateTime timeout;
|
||||
};
|
||||
|
||||
using RetrievalFunction = CachedData (*)(const FilePath &);
|
||||
|
||||
public:
|
||||
FilePathInfoCache()
|
||||
: m_cache(50000)
|
||||
{}
|
||||
|
||||
CachedData cached(const FilePath &filePath, const RetrievalFunction &retrievalFunction)
|
||||
{
|
||||
QMutexLocker lk(&m_mutex);
|
||||
CachedData *data = m_cache.object(filePath);
|
||||
|
||||
// If the cache entry is too old, don't use it ...
|
||||
if (data && data->timeout < QDateTime::currentDateTime())
|
||||
data = nullptr;
|
||||
|
||||
// If no data was found, retrieve it and store it in the cache ...
|
||||
if (!data) {
|
||||
data = new CachedData;
|
||||
*data = retrievalFunction(filePath);
|
||||
m_cache.insert(filePath, data);
|
||||
}
|
||||
|
||||
// Return a copy of the data, so it cannot be deleted by the cache
|
||||
return *data;
|
||||
}
|
||||
|
||||
void cache(const FilePath &path, CachedData *data)
|
||||
{
|
||||
QMutexLocker lk(&m_mutex);
|
||||
m_cache.insert(path, data);
|
||||
}
|
||||
|
||||
void cache(const QList<QPair<FilePath, CachedData>> &fileDataList)
|
||||
{
|
||||
QMutexLocker lk(&m_mutex);
|
||||
for (const auto &[path, data] : fileDataList)
|
||||
m_cache.insert(path, new CachedData(data));
|
||||
}
|
||||
|
||||
private:
|
||||
QMutex m_mutex;
|
||||
QCache<FilePath, CachedData> m_cache;
|
||||
};
|
||||
|
||||
} // namespace Utils::Internal
|
@@ -4,6 +4,7 @@
|
||||
#include "fsengine_impl.h"
|
||||
|
||||
#include "diriterator.h"
|
||||
#include "filepathinfocache.h"
|
||||
|
||||
#include "../filepath.h"
|
||||
#include "../qtcassert.h"
|
||||
@@ -15,6 +16,15 @@ namespace Utils {
|
||||
|
||||
namespace Internal {
|
||||
|
||||
FilePathInfoCache g_filePathInfoCache;
|
||||
|
||||
FilePathInfoCache::CachedData createCacheData(const FilePath &filePath) {
|
||||
FilePathInfoCache::CachedData data;
|
||||
data.filePathInfo = filePath.filePathInfo();
|
||||
data.timeout = QDateTime::currentDateTime().addSecs(60);
|
||||
return data;
|
||||
};
|
||||
|
||||
FSEngineImpl::FSEngineImpl(FilePath filePath)
|
||||
: m_filePath(std::move(filePath))
|
||||
{}
|
||||
@@ -30,6 +40,10 @@ bool FSEngineImpl::open(QIODeviceBase::OpenMode openMode, std::optional<QFile::P
|
||||
bool FSEngineImpl::open(QIODevice::OpenMode openMode)
|
||||
#endif
|
||||
{
|
||||
const FilePathInfoCache::CachedData data = g_filePathInfoCache.cached(m_filePath,
|
||||
createCacheData);
|
||||
bool exists = (data.filePathInfo.fileFlags & QAbstractFileEngine::ExistsFlag);
|
||||
|
||||
ensureStorage();
|
||||
|
||||
QTC_ASSERT(m_tempStorage->open(), return false);
|
||||
@@ -38,10 +52,10 @@ bool FSEngineImpl::open(QIODevice::OpenMode openMode)
|
||||
bool write = openMode & QIODevice::WriteOnly;
|
||||
bool append = openMode & QIODevice::Append;
|
||||
|
||||
if (!write && !m_filePath.exists())
|
||||
if (!write && !exists)
|
||||
return false;
|
||||
|
||||
if (openMode & QIODevice::NewOnly && m_filePath.exists())
|
||||
if (openMode & QIODevice::NewOnly && exists)
|
||||
return false;
|
||||
|
||||
if (read || append) {
|
||||
@@ -88,7 +102,7 @@ bool FSEngineImpl::syncToDisk()
|
||||
|
||||
qint64 FSEngineImpl::size() const
|
||||
{
|
||||
return m_filePath.fileSize();
|
||||
return g_filePathInfoCache.cached(m_filePath, createCacheData).filePathInfo.fileSize;
|
||||
}
|
||||
|
||||
qint64 FSEngineImpl::pos() const
|
||||
@@ -175,8 +189,12 @@ QStringList FSEngineImpl::entryList(QDir::Filters filters, const QStringList &fi
|
||||
{
|
||||
QStringList result;
|
||||
m_filePath.iterateDirectory(
|
||||
[&result](const FilePath &p) {
|
||||
[&result](const FilePath &p, const FilePathInfo &fi) {
|
||||
result.append(p.toFSPathString());
|
||||
g_filePathInfoCache
|
||||
.cache(p,
|
||||
new FilePathInfoCache::CachedData{fi,
|
||||
QDateTime::currentDateTime().addSecs(60)});
|
||||
return true;
|
||||
},
|
||||
{filterNames, filters});
|
||||
@@ -185,22 +203,8 @@ QStringList FSEngineImpl::entryList(QDir::Filters filters, const QStringList &fi
|
||||
|
||||
QAbstractFileEngine::FileFlags FSEngineImpl::fileFlags(FileFlags type) const
|
||||
{
|
||||
FileFlags result{0};
|
||||
|
||||
if (type & FileInfoAll && m_filePath.exists()) {
|
||||
result |= QAbstractFileEngine::ExistsFlag;
|
||||
|
||||
if (type & DirectoryType && m_filePath.isDir())
|
||||
result |= QAbstractFileEngine::DirectoryType;
|
||||
if (type & FileType && m_filePath.isFile())
|
||||
result |= QAbstractFileEngine::FileType;
|
||||
|
||||
if (type & PermsMask) {
|
||||
result |= FileFlags::fromInt(m_filePath.permissions().toInt());
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
Q_UNUSED(type);
|
||||
return {g_filePathInfoCache.cached(m_filePath, createCacheData).filePathInfo.fileFlags.toInt()};
|
||||
}
|
||||
|
||||
bool FSEngineImpl::setPermissions(uint /*perms*/)
|
||||
@@ -265,7 +269,7 @@ bool FSEngineImpl::setFileTime(const QDateTime &newDate, FileTime time)
|
||||
QDateTime FSEngineImpl::fileTime(FileTime time) const
|
||||
{
|
||||
Q_UNUSED(time)
|
||||
return m_filePath.lastModified();
|
||||
return g_filePathInfoCache.cached(m_filePath, createCacheData).filePathInfo.lastModified;
|
||||
}
|
||||
|
||||
void FSEngineImpl::setFileName(const QString &file)
|
||||
@@ -289,8 +293,12 @@ QAbstractFileEngine::Iterator *FSEngineImpl::beginEntryList(QDir::Filters filter
|
||||
{
|
||||
FilePaths paths{m_filePath.pathAppended(".")};
|
||||
m_filePath.iterateDirectory(
|
||||
[&paths](const FilePath &p) {
|
||||
[&paths](const FilePath &p, const FilePathInfo &fi) {
|
||||
paths.append(p);
|
||||
FilePathInfoCache::CachedData *data
|
||||
= new FilePathInfoCache::CachedData{fi,
|
||||
QDateTime::currentDateTime().addSecs(60)};
|
||||
g_filePathInfoCache.cache(p, data);
|
||||
return true;
|
||||
},
|
||||
{filterNames, filters});
|
||||
|
@@ -2,7 +2,6 @@
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "globalfilechangeblocker.h"
|
||||
#include "qtcassert.h"
|
||||
|
||||
#include <QGuiApplication>
|
||||
|
||||
|
@@ -37,6 +37,21 @@ enum class EventLoopMode {
|
||||
On // Avoid
|
||||
};
|
||||
|
||||
enum class Channel {
|
||||
Output,
|
||||
Error
|
||||
};
|
||||
|
||||
enum class TextChannelMode {
|
||||
// Keep | Emit | Emit
|
||||
// raw | text | content
|
||||
// data | sig |
|
||||
// -----+------+--------
|
||||
Off, // yes | no | -
|
||||
SingleLine, // no | yes | Single lines
|
||||
MultiLine // yes | yes | All the available data
|
||||
};
|
||||
|
||||
enum class ProcessResult {
|
||||
// Finished successfully. Unless an ExitCodeInterpreter is set
|
||||
// this corresponds to a return code 0.
|
||||
@@ -53,6 +68,7 @@ enum class ProcessResult {
|
||||
};
|
||||
|
||||
using ExitCodeInterpreter = std::function<ProcessResult(int /*exitCode*/)>;
|
||||
using TextChannelCallback = std::function<void(const QString & /*text*/)>;
|
||||
|
||||
} // namespace Utils
|
||||
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "processreaper.h"
|
||||
#include "processutils.h"
|
||||
#include "qtcassert.h"
|
||||
#include "threadutils.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
@@ -224,7 +225,7 @@ ProcessReaper::ProcessReaper()
|
||||
|
||||
ProcessReaper::~ProcessReaper()
|
||||
{
|
||||
QTC_CHECK(QThread::currentThread() == qApp->thread());
|
||||
QTC_CHECK(isMainThread());
|
||||
QMutexLocker locker(&s_instanceMutex);
|
||||
instance()->m_private->waitForFinished();
|
||||
m_thread.quit();
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include "processreaper.h"
|
||||
#include "processutils.h"
|
||||
#include "terminalprocess_p.h"
|
||||
#include "threadutils.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
@@ -62,25 +63,25 @@ public:
|
||||
timer.start();
|
||||
auto cleanup = qScopeGuard([this, &timer] {
|
||||
const qint64 currentNsecs = timer.nsecsElapsed();
|
||||
const bool isMainThread = QThread::currentThread() == qApp->thread();
|
||||
const bool mainThread = isMainThread();
|
||||
const int hitThisAll = m_hitThisAll.fetch_add(1) + 1;
|
||||
const int hitAllAll = m_hitAllAll.fetch_add(1) + 1;
|
||||
const int hitThisMain = isMainThread
|
||||
const int hitThisMain = mainThread
|
||||
? m_hitThisMain.fetch_add(1) + 1
|
||||
: m_hitThisMain.load();
|
||||
const int hitAllMain = isMainThread
|
||||
const int hitAllMain = mainThread
|
||||
? m_hitAllMain.fetch_add(1) + 1
|
||||
: m_hitAllMain.load();
|
||||
const qint64 totalThisAll = toMs(m_totalThisAll.fetch_add(currentNsecs) + currentNsecs);
|
||||
const qint64 totalAllAll = toMs(m_totalAllAll.fetch_add(currentNsecs) + currentNsecs);
|
||||
const qint64 totalThisMain = toMs(isMainThread
|
||||
const qint64 totalThisMain = toMs(mainThread
|
||||
? m_totalThisMain.fetch_add(currentNsecs) + currentNsecs
|
||||
: m_totalThisMain.load());
|
||||
const qint64 totalAllMain = toMs(isMainThread
|
||||
const qint64 totalAllMain = toMs(mainThread
|
||||
? m_totalAllMain.fetch_add(currentNsecs) + currentNsecs
|
||||
: m_totalAllMain.load());
|
||||
printMeasurement(QLatin1String(m_functionName), hitThisAll, toMs(currentNsecs),
|
||||
totalThisAll, hitAllAll, totalAllAll, isMainThread,
|
||||
totalThisAll, hitAllAll, totalAllAll, mainThread,
|
||||
hitThisMain, totalThisMain, hitAllMain, totalAllMain);
|
||||
});
|
||||
return std::invoke(std::forward<Function>(function), std::forward<Args>(args)...);
|
||||
@@ -187,6 +188,7 @@ public:
|
||||
QTextCodec *codec = nullptr; // Not owner
|
||||
std::unique_ptr<QTextCodec::ConverterState> codecState;
|
||||
std::function<void(const QString &lines)> outputCallback;
|
||||
TextChannelMode m_textChannelMode = TextChannelMode::Off;
|
||||
|
||||
bool emitSingleLines = true;
|
||||
bool keepRawData = true;
|
||||
@@ -1211,7 +1213,7 @@ void QtcProcess::setRemoteProcessHooks(const DeviceProcessHooks &hooks)
|
||||
static bool askToKill(const QString &command)
|
||||
{
|
||||
#ifdef QT_GUI_LIB
|
||||
if (QThread::currentThread() != QCoreApplication::instance()->thread())
|
||||
if (!isMainThread())
|
||||
return true;
|
||||
const QString title = QtcProcess::tr("Process Not Responding");
|
||||
QString msg = command.isEmpty() ?
|
||||
@@ -1294,11 +1296,6 @@ ProcessResult QtcProcess::result() const
|
||||
return d->m_result;
|
||||
}
|
||||
|
||||
void QtcProcess::setResult(const ProcessResult &result)
|
||||
{
|
||||
d->m_result = result;
|
||||
}
|
||||
|
||||
ProcessResultData QtcProcess::resultData() const
|
||||
{
|
||||
return d->m_resultData;
|
||||
@@ -1774,13 +1771,6 @@ void QtcProcess::setWriteData(const QByteArray &writeData)
|
||||
d->m_setup.m_writeData = writeData;
|
||||
}
|
||||
|
||||
#ifdef QT_GUI_LIB
|
||||
static bool isGuiThread()
|
||||
{
|
||||
return QThread::currentThread() == QCoreApplication::instance()->thread();
|
||||
}
|
||||
#endif
|
||||
|
||||
void QtcProcess::runBlocking(EventLoopMode eventLoopMode)
|
||||
{
|
||||
// Attach a dynamic property with info about blocking type
|
||||
@@ -1801,7 +1791,7 @@ void QtcProcess::runBlocking(EventLoopMode eventLoopMode)
|
||||
timer.setInterval(1000);
|
||||
timer.start();
|
||||
#ifdef QT_GUI_LIB
|
||||
if (isGuiThread())
|
||||
if (isMainThread())
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
#endif
|
||||
QEventLoop eventLoop(this);
|
||||
@@ -1811,7 +1801,7 @@ void QtcProcess::runBlocking(EventLoopMode eventLoopMode)
|
||||
d->m_eventLoop = nullptr;
|
||||
timer.stop();
|
||||
#ifdef QT_GUI_LIB
|
||||
if (isGuiThread())
|
||||
if (isMainThread())
|
||||
QApplication::restoreOverrideCursor();
|
||||
#endif
|
||||
}
|
||||
@@ -1831,32 +1821,74 @@ void QtcProcess::runBlocking(EventLoopMode eventLoopMode)
|
||||
}
|
||||
}
|
||||
|
||||
void QtcProcess::setStdOutCallback(const std::function<void (const QString &)> &callback)
|
||||
void QtcProcess::setStdOutCallback(const TextChannelCallback &callback)
|
||||
{
|
||||
d->m_stdOut.outputCallback = callback;
|
||||
d->m_stdOut.emitSingleLines = false;
|
||||
}
|
||||
|
||||
void QtcProcess::setStdOutLineCallback(const std::function<void (const QString &)> &callback)
|
||||
void QtcProcess::setStdOutLineCallback(const TextChannelCallback &callback)
|
||||
{
|
||||
d->m_stdOut.outputCallback = callback;
|
||||
d->m_stdOut.emitSingleLines = true;
|
||||
d->m_stdOut.keepRawData = false;
|
||||
}
|
||||
|
||||
void QtcProcess::setStdErrCallback(const std::function<void (const QString &)> &callback)
|
||||
void QtcProcess::setStdErrCallback(const TextChannelCallback &callback)
|
||||
{
|
||||
d->m_stdErr.outputCallback = callback;
|
||||
d->m_stdErr.emitSingleLines = false;
|
||||
}
|
||||
|
||||
void QtcProcess::setStdErrLineCallback(const std::function<void (const QString &)> &callback)
|
||||
void QtcProcess::setStdErrLineCallback(const TextChannelCallback &callback)
|
||||
{
|
||||
d->m_stdErr.outputCallback = callback;
|
||||
d->m_stdErr.emitSingleLines = true;
|
||||
d->m_stdErr.keepRawData = false;
|
||||
}
|
||||
|
||||
void QtcProcess::setTextChannelMode(Channel channel, TextChannelMode mode)
|
||||
{
|
||||
const TextChannelCallback outputCb = [this](const QString &text) {
|
||||
GuardLocker locker(d->m_guard);
|
||||
emit textOnStandardOutput(text);
|
||||
};
|
||||
const TextChannelCallback errorCb = [this](const QString &text) {
|
||||
GuardLocker locker(d->m_guard);
|
||||
emit textOnStandardError(text);
|
||||
};
|
||||
const TextChannelCallback callback = (channel == Channel::Output) ? outputCb : errorCb;
|
||||
ChannelBuffer *buffer = channel == Channel::Output ? &d->m_stdOut : &d->m_stdErr;
|
||||
QTC_ASSERT(buffer->m_textChannelMode == TextChannelMode::Off, qWarning()
|
||||
<< "QtcProcess::setTextChannelMode(): Changing text channel mode for"
|
||||
<< (channel == Channel::Output ? "Output": "Error")
|
||||
<< "channel while it was previously set for this channel.");
|
||||
buffer->m_textChannelMode = mode;
|
||||
switch (mode) {
|
||||
case TextChannelMode::Off:
|
||||
buffer->outputCallback = {};
|
||||
buffer->emitSingleLines = true;
|
||||
buffer->keepRawData = true;
|
||||
break;
|
||||
case TextChannelMode::SingleLine:
|
||||
buffer->outputCallback = callback;
|
||||
buffer->emitSingleLines = true;
|
||||
buffer->keepRawData = false;
|
||||
break;
|
||||
case TextChannelMode::MultiLine:
|
||||
buffer->outputCallback = callback;
|
||||
buffer->emitSingleLines = false;
|
||||
buffer->keepRawData = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TextChannelMode QtcProcess::textChannelMode(Channel channel) const
|
||||
{
|
||||
ChannelBuffer *buffer = channel == Channel::Output ? &d->m_stdOut : &d->m_stdErr;
|
||||
return buffer->m_textChannelMode;
|
||||
}
|
||||
|
||||
void QtcProcessPrivate::slotTimeout()
|
||||
{
|
||||
if (!m_waitingForUser && (++m_hangTimerCount > m_maxHangTimerCount)) {
|
||||
|
@@ -148,15 +148,17 @@ public:
|
||||
void setTimeOutMessageBoxEnabled(bool);
|
||||
void setExitCodeInterpreter(const ExitCodeInterpreter &interpreter);
|
||||
|
||||
void setStdOutCallback(const std::function<void(const QString &)> &callback);
|
||||
void setStdOutLineCallback(const std::function<void(const QString &)> &callback);
|
||||
void setStdErrCallback(const std::function<void(const QString &)> &callback);
|
||||
void setStdErrLineCallback(const std::function<void(const QString &)> &callback);
|
||||
void setStdOutCallback(const TextChannelCallback &callback);
|
||||
void setStdOutLineCallback(const TextChannelCallback &callback);
|
||||
void setStdErrCallback(const TextChannelCallback &callback);
|
||||
void setStdErrLineCallback(const TextChannelCallback &callback);
|
||||
|
||||
void setTextChannelMode(Channel channel, TextChannelMode mode);
|
||||
TextChannelMode textChannelMode(Channel channel) const;
|
||||
|
||||
bool readDataFromProcess(QByteArray *stdOut, QByteArray *stdErr, int timeoutS = 30);
|
||||
|
||||
ProcessResult result() const;
|
||||
void setResult(const ProcessResult &result);
|
||||
|
||||
QByteArray allRawOutput() const;
|
||||
QString allOutput() const;
|
||||
@@ -182,6 +184,8 @@ signals:
|
||||
void done(); // On Starting | Running -> NotRunning state transition
|
||||
void readyReadStandardOutput();
|
||||
void readyReadStandardError();
|
||||
void textOnStandardOutput(const QString &text);
|
||||
void textOnStandardError(const QString &text);
|
||||
|
||||
private:
|
||||
friend QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug str, const QtcProcess &r);
|
||||
|
@@ -3,10 +3,9 @@
|
||||
|
||||
#include "qtcassert.h"
|
||||
#include "singleton.h"
|
||||
#include "threadutils.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QList>
|
||||
#include <QThread>
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -45,7 +44,7 @@ SingletonStaticData &Singleton::staticData(std::type_index index)
|
||||
// only.
|
||||
void Singleton::deleteAll()
|
||||
{
|
||||
QTC_ASSERT(QThread::currentThread() == qApp->thread(), return);
|
||||
QTC_ASSERT(isMainThread(), return);
|
||||
QList<Singleton *> oldList;
|
||||
{
|
||||
QMutexLocker locker(&s_mutex);
|
||||
|
@@ -2,7 +2,9 @@
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetaldebugsupport.h"
|
||||
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetaltr.h"
|
||||
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "idebugserverprovider.h"
|
||||
@@ -27,24 +29,21 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
// BareMetalDebugSupport
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
BareMetalDebugSupport::BareMetalDebugSupport(RunControl *runControl)
|
||||
: Debugger::DebuggerRunTool(runControl)
|
||||
{
|
||||
const auto dev = qSharedPointerCast<const BareMetalDevice>(device());
|
||||
if (!dev) {
|
||||
reportFailure(tr("Cannot debug: Kit has no device."));
|
||||
reportFailure(Tr::tr("Cannot debug: Kit has no device."));
|
||||
return;
|
||||
}
|
||||
|
||||
const QString providerId = dev->debugServerProviderId();
|
||||
IDebugServerProvider *p = DebugServerProviderManager::findProvider(providerId);
|
||||
if (!p) {
|
||||
reportFailure(tr("No debug server provider found for %1").arg(providerId));
|
||||
reportFailure(Tr::tr("No debug server provider found for %1").arg(providerId));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -67,5 +66,4 @@ void BareMetalDebugSupport::start()
|
||||
DebuggerRunTool::start();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -5,21 +5,10 @@
|
||||
|
||||
#include <debugger/debuggerruncontrol.h>
|
||||
|
||||
namespace ProjectExplorer {
|
||||
class RunControl;
|
||||
}
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
class IDebugServerProvider;
|
||||
|
||||
// BareMetalDebugSupport
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalDebugSupport final : public Debugger::DebuggerRunTool
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalDebugSupport(ProjectExplorer::RunControl *runControl);
|
||||
|
||||
@@ -27,5 +16,4 @@ private:
|
||||
void start() final;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -2,10 +2,12 @@
|
||||
// Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaldevice.h"
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaldeviceconfigurationwidget.h"
|
||||
#include "baremetaldeviceconfigurationwizard.h"
|
||||
#include "baremetaltr.h"
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "idebugserverprovider.h"
|
||||
|
||||
@@ -13,8 +15,7 @@
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char debugServerProviderIdKeyC[] = "IDebugServerProviderId";
|
||||
|
||||
@@ -22,7 +23,7 @@ const char debugServerProviderIdKeyC[] = "IDebugServerProviderId";
|
||||
|
||||
BareMetalDevice::BareMetalDevice()
|
||||
{
|
||||
setDisplayType(tr("Bare Metal"));
|
||||
setDisplayType(Tr::tr("Bare Metal"));
|
||||
setDefaultDisplayName(defaultDisplayName());
|
||||
setOsType(Utils::OsTypeOther);
|
||||
}
|
||||
@@ -36,7 +37,7 @@ BareMetalDevice::~BareMetalDevice()
|
||||
|
||||
QString BareMetalDevice::defaultDisplayName()
|
||||
{
|
||||
return tr("Bare Metal Device");
|
||||
return Tr::tr("Bare Metal Device");
|
||||
}
|
||||
|
||||
QString BareMetalDevice::debugServerProviderId() const
|
||||
@@ -100,7 +101,7 @@ IDeviceWidget *BareMetalDevice::createWidget()
|
||||
BareMetalDeviceFactory::BareMetalDeviceFactory()
|
||||
: IDeviceFactory(Constants::BareMetalOsType)
|
||||
{
|
||||
setDisplayName(BareMetalDevice::tr("Bare Metal Device"));
|
||||
setDisplayName(Tr::tr("Bare Metal Device"));
|
||||
setCombinedIcon(":/baremetal/images/baremetaldevicesmall.png",
|
||||
":/baremetal/images/baremetaldevice.png");
|
||||
setConstructionFunction(&BareMetalDevice::create);
|
||||
@@ -112,5 +113,4 @@ BareMetalDeviceFactory::BareMetalDeviceFactory()
|
||||
});
|
||||
}
|
||||
|
||||
} //namespace Internal
|
||||
} //namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -7,8 +7,7 @@
|
||||
#include <projectexplorer/devicesupport/idevice.h>
|
||||
#include <projectexplorer/devicesupport/idevicefactory.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class IDebugServerProvider;
|
||||
|
||||
@@ -16,8 +15,6 @@ class IDebugServerProvider;
|
||||
|
||||
class BareMetalDevice final : public ProjectExplorer::IDevice
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::BareMetalDevice)
|
||||
|
||||
public:
|
||||
using Ptr = QSharedPointer<BareMetalDevice>;
|
||||
using ConstPtr = QSharedPointer<const BareMetalDevice>;
|
||||
@@ -52,5 +49,4 @@ public:
|
||||
BareMetalDeviceFactory();
|
||||
};
|
||||
|
||||
} //namespace Internal
|
||||
} //namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -3,8 +3,9 @@
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetaldeviceconfigurationwidget.h"
|
||||
|
||||
#include "baremetaldeviceconfigurationwidget.h"
|
||||
#include "baremetaltr.h"
|
||||
#include "debugserverproviderchooser.h"
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
@@ -12,10 +13,7 @@
|
||||
|
||||
#include <QFormLayout>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
// BareMetalDeviceConfigurationWidget
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
BareMetalDeviceConfigurationWidget::BareMetalDeviceConfigurationWidget(
|
||||
const ProjectExplorer::IDevice::Ptr &deviceConfig)
|
||||
@@ -30,7 +28,7 @@ BareMetalDeviceConfigurationWidget::BareMetalDeviceConfigurationWidget(
|
||||
m_debugServerProviderChooser = new DebugServerProviderChooser(true, this);
|
||||
m_debugServerProviderChooser->populate();
|
||||
m_debugServerProviderChooser->setCurrentProviderId(dev->debugServerProviderId());
|
||||
formLayout->addRow(tr("Debug server provider:"), m_debugServerProviderChooser);
|
||||
formLayout->addRow(Tr::tr("Debug server provider:"), m_debugServerProviderChooser);
|
||||
|
||||
connect(m_debugServerProviderChooser, &DebugServerProviderChooser::providerChanged,
|
||||
this, &BareMetalDeviceConfigurationWidget::debugServerProviderChanged);
|
||||
@@ -48,5 +46,4 @@ void BareMetalDeviceConfigurationWidget::updateDeviceFromUi()
|
||||
debugServerProviderChanged();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -6,18 +6,13 @@
|
||||
|
||||
#include <projectexplorer/devicesupport/idevicewidget.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class DebugServerProviderChooser;
|
||||
|
||||
// BareMetalDeviceConfigurationWidget
|
||||
|
||||
class BareMetalDeviceConfigurationWidget final
|
||||
: public ProjectExplorer::IDeviceWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalDeviceConfigurationWidget(const ProjectExplorer::IDevicePtr &deviceConfig);
|
||||
|
||||
@@ -28,5 +23,4 @@ private:
|
||||
DebugServerProviderChooser *m_debugServerProviderChooser = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -2,25 +2,22 @@
|
||||
// Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetaldeviceconfigurationwizard.h"
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetaldeviceconfigurationwizard.h"
|
||||
#include "baremetaldeviceconfigurationwizardpages.h"
|
||||
#include "baremetaltr.h"
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
enum PageId { SetupPageId };
|
||||
|
||||
// BareMetalDeviceConfigurationWizard
|
||||
|
||||
BareMetalDeviceConfigurationWizard::BareMetalDeviceConfigurationWizard(QWidget *parent) :
|
||||
Utils::Wizard(parent),
|
||||
m_setupPage(new BareMetalDeviceConfigurationWizardSetupPage(this))
|
||||
{
|
||||
setWindowTitle(tr("New Bare Metal Device Configuration Setup"));
|
||||
setWindowTitle(Tr::tr("New Bare Metal Device Configuration Setup"));
|
||||
setPage(SetupPageId, m_setupPage);
|
||||
m_setupPage->setCommitPage(true);
|
||||
}
|
||||
@@ -36,5 +33,4 @@ ProjectExplorer::IDevice::Ptr BareMetalDeviceConfigurationWizard::device() const
|
||||
return dev;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -6,17 +6,12 @@
|
||||
#include <projectexplorer/devicesupport/idevicefwd.h>
|
||||
#include <utils/wizard.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalDeviceConfigurationWizardSetupPage;
|
||||
|
||||
// BareMetalDeviceConfigurationWizard
|
||||
|
||||
class BareMetalDeviceConfigurationWizard final : public Utils::Wizard
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalDeviceConfigurationWizard(QWidget *parent = nullptr);
|
||||
|
||||
@@ -26,5 +21,4 @@ private:
|
||||
BareMetalDeviceConfigurationWizardSetupPage *m_setupPage = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -2,9 +2,10 @@
|
||||
// Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetaldeviceconfigurationwizardpages.h"
|
||||
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetaltr.h"
|
||||
#include "debugserverproviderchooser.h"
|
||||
|
||||
#include <utils/variablechooser.h>
|
||||
@@ -14,24 +15,21 @@
|
||||
#include <QFormLayout>
|
||||
#include <QLineEdit>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
// BareMetalDeviceConfigurationWizardSetupPage
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
BareMetalDeviceConfigurationWizardSetupPage::BareMetalDeviceConfigurationWizardSetupPage(
|
||||
QWidget *parent)
|
||||
: QWizardPage(parent)
|
||||
{
|
||||
setTitle(tr("Set up Debug Server or Hardware Debugger"));
|
||||
setTitle(Tr::tr("Set up Debug Server or Hardware Debugger"));
|
||||
|
||||
const auto formLayout = new QFormLayout(this);
|
||||
formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
|
||||
m_nameLineEdit = new QLineEdit(this);
|
||||
formLayout->addRow(tr("Name:"), m_nameLineEdit);
|
||||
formLayout->addRow(Tr::tr("Name:"), m_nameLineEdit);
|
||||
m_debugServerProviderChooser = new DebugServerProviderChooser(false, this);
|
||||
m_debugServerProviderChooser->populate();
|
||||
formLayout->addRow(tr("Debug server provider:"), m_debugServerProviderChooser);
|
||||
formLayout->addRow(Tr::tr("Debug server provider:"), m_debugServerProviderChooser);
|
||||
|
||||
connect(m_nameLineEdit, &QLineEdit::textChanged,
|
||||
this, &BareMetalDeviceConfigurationWizardSetupPage::completeChanged);
|
||||
@@ -59,5 +57,4 @@ QString BareMetalDeviceConfigurationWizardSetupPage::debugServerProviderId() con
|
||||
return m_debugServerProviderChooser->currentProviderId();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -10,17 +10,12 @@ QT_BEGIN_NAMESPACE
|
||||
class QLineEdit;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class DebugServerProviderChooser;
|
||||
|
||||
// BareMetalDeviceConfigurationWizardSetupPage
|
||||
|
||||
class BareMetalDeviceConfigurationWizardSetupPage final : public QWizardPage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalDeviceConfigurationWizardSetupPage(QWidget *parent = nullptr);
|
||||
|
||||
@@ -34,5 +29,4 @@ private:
|
||||
DebugServerProviderChooser *m_debugServerProviderChooser = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -1,104 +0,0 @@
|
||||
// Copyright (C) 2016 Tim Sander <tim@krieglstein.org>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetalgdbcommandsdeploystep.h"
|
||||
|
||||
#include <QFormLayout>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
const char GdbCommandsKey[] = "BareMetal.GdbCommandsStep.Commands";
|
||||
|
||||
// BareMetalGdbCommandsDeployStepWidget
|
||||
|
||||
BareMetalGdbCommandsDeployStepWidget::BareMetalGdbCommandsDeployStepWidget(BareMetalGdbCommandsDeployStep &step)
|
||||
: BuildStepConfigWidget(&step), m_step(step)
|
||||
{
|
||||
const auto fl = new QFormLayout(this);
|
||||
fl->setContentsMargins(0, 0, 0, 0);
|
||||
fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||
setLayout(fl);
|
||||
m_commands = new QPlainTextEdit(this);
|
||||
fl->addRow(tr("GDB commands:"), m_commands);
|
||||
m_commands->setPlainText(m_step.gdbCommands());
|
||||
connect(m_commands, &QPlainTextEdit::textChanged, this, &BareMetalGdbCommandsDeployStepWidget::update);
|
||||
}
|
||||
|
||||
void BareMetalGdbCommandsDeployStepWidget::update()
|
||||
{
|
||||
m_step.updateGdbCommands(m_commands->toPlainText());
|
||||
}
|
||||
|
||||
QString BareMetalGdbCommandsDeployStepWidget::displayName() const
|
||||
{
|
||||
return QLatin1String("<b>") + m_step.displayName() + QLatin1String("</b>");
|
||||
}
|
||||
|
||||
QString BareMetalGdbCommandsDeployStepWidget::summaryText() const
|
||||
{
|
||||
return displayName();
|
||||
}
|
||||
|
||||
// BareMetalGdbCommandsDeployStep
|
||||
|
||||
BareMetalGdbCommandsDeployStep::BareMetalGdbCommandsDeployStep(BuildStepList *bsl)
|
||||
: BuildStep(bsl, stepId())
|
||||
{
|
||||
setDefaultDisplayName(displayName());
|
||||
}
|
||||
|
||||
void BareMetalGdbCommandsDeployStep::doRun()
|
||||
{
|
||||
emit finished(true);
|
||||
}
|
||||
|
||||
bool BareMetalGdbCommandsDeployStep::fromMap(const QVariantMap &map)
|
||||
{
|
||||
if (!BuildStep::fromMap(map))
|
||||
return false;
|
||||
m_gdbCommands = map.value(QLatin1String(GdbCommandsKey)).toString();
|
||||
return true;
|
||||
}
|
||||
|
||||
QVariantMap BareMetalGdbCommandsDeployStep::toMap() const
|
||||
{
|
||||
QVariantMap map = BuildStep::toMap();
|
||||
map.insert(QLatin1String(GdbCommandsKey),m_gdbCommands);
|
||||
return map;
|
||||
}
|
||||
|
||||
BuildStepConfigWidget *BareMetalGdbCommandsDeployStep::createConfigWidget()
|
||||
{
|
||||
return new BareMetalGdbCommandsDeployStepWidget(*this);
|
||||
}
|
||||
|
||||
Core::Id BareMetalGdbCommandsDeployStep::stepId()
|
||||
{
|
||||
return Core::Id("BareMetal.GdbCommandsDeployStep");
|
||||
}
|
||||
|
||||
QString BareMetalGdbCommandsDeployStep::displayName()
|
||||
{
|
||||
return tr("GDB commands");
|
||||
}
|
||||
|
||||
void BareMetalGdbCommandsDeployStep::updateGdbCommands(const QString &newCommands)
|
||||
{
|
||||
m_gdbCommands = newCommands;
|
||||
}
|
||||
|
||||
QString BareMetalGdbCommandsDeployStep::gdbCommands() const
|
||||
{
|
||||
return m_gdbCommands;
|
||||
}
|
||||
|
||||
bool BareMetalGdbCommandsDeployStep::init()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
@@ -1,61 +0,0 @@
|
||||
// Copyright (C) 2016 Tim Sander <tim@krieglstein.org>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <projectexplorer/buildstep.h>
|
||||
|
||||
#include <QPlainTextEdit>
|
||||
#include <QVariantMap>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
// BareMetalGdbCommandsDeployStep
|
||||
|
||||
class BareMetalGdbCommandsDeployStep final : public ProjectExplorer::BuildStep
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalGdbCommandsDeployStep(ProjectExplorer::BuildStepList *bsl);
|
||||
|
||||
bool fromMap(const QVariantMap &map) final;
|
||||
QVariantMap toMap() const final;
|
||||
|
||||
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() final;
|
||||
|
||||
static Core::Id stepId();
|
||||
static QString displayName();
|
||||
|
||||
void updateGdbCommands(const QString &newCommands);
|
||||
QString gdbCommands() const;
|
||||
|
||||
private:
|
||||
bool init() final;
|
||||
void doRun() final;
|
||||
|
||||
QString m_gdbCommands;
|
||||
};
|
||||
|
||||
// BareMetalGdbCommandsDeployStepWidget
|
||||
|
||||
class BareMetalGdbCommandsDeployStepWidget final
|
||||
: public ProjectExplorer::BuildStepConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BareMetalGdbCommandsDeployStepWidget(BareMetalGdbCommandsDeployStep &step);
|
||||
void update();
|
||||
|
||||
private:
|
||||
QString displayName() const;
|
||||
QString summaryText() const;
|
||||
|
||||
BareMetalGdbCommandsDeployStep &m_step;
|
||||
QPlainTextEdit *m_commands = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
@@ -2,11 +2,13 @@
|
||||
// Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetalplugin.h"
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaldebugsupport.h"
|
||||
#include "baremetaldevice.h"
|
||||
#include "baremetalplugin.h"
|
||||
#include "baremetalrunconfiguration.h"
|
||||
#include "baremetaltr.h"
|
||||
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "debugserverproviderssettingspage.h"
|
||||
@@ -27,8 +29,7 @@
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalDeployConfigurationFactory : public DeployConfigurationFactory
|
||||
{
|
||||
@@ -36,8 +37,7 @@ public:
|
||||
BareMetalDeployConfigurationFactory()
|
||||
{
|
||||
setConfigBaseId("BareMetal.DeployConfiguration");
|
||||
setDefaultDisplayName(QCoreApplication::translate("BareMetalDeployConfiguration",
|
||||
"Deploy to BareMetal Device"));
|
||||
setDefaultDisplayName(Tr::tr("Deploy to BareMetal Device"));
|
||||
addSupportedTargetDeviceType(Constants::BareMetalOsType);
|
||||
}
|
||||
};
|
||||
@@ -87,5 +87,4 @@ void BareMetalPlugin::extensionsInitialized()
|
||||
DebugServerProviderManager::instance()->restoreProviders();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -6,10 +6,7 @@
|
||||
|
||||
#include <extensionsystem/iplugin.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
|
||||
// BareMetalPlugin
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalPlugin final : public ExtensionSystem::IPlugin
|
||||
{
|
||||
@@ -34,5 +31,4 @@ private slots:
|
||||
#endif // WITH_TESTS
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -1,9 +1,11 @@
|
||||
// Copyright (C) 2016 Tim Sander <tim@krieglstein.org>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetalrunconfiguration.h"
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaltr.h"
|
||||
|
||||
#include <projectexplorer/buildsystem.h>
|
||||
#include <projectexplorer/buildtargetinfo.h>
|
||||
#include <projectexplorer/project.h>
|
||||
@@ -13,22 +15,19 @@
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// RunConfigurations
|
||||
|
||||
class BareMetalRunConfiguration final : public RunConfiguration
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::BareMetalRunConfiguration)
|
||||
|
||||
public:
|
||||
explicit BareMetalRunConfiguration(Target *target, Id id)
|
||||
: RunConfiguration(target, id)
|
||||
{
|
||||
const auto exeAspect = addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||
exeAspect->setDisplayStyle(StringAspect::LabelDisplay);
|
||||
exeAspect->setPlaceHolderText(tr("Unknown"));
|
||||
exeAspect->setPlaceHolderText(Tr::tr("Unknown"));
|
||||
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
|
||||
@@ -44,15 +43,13 @@ public:
|
||||
|
||||
class BareMetalCustomRunConfiguration final : public RunConfiguration
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::BareMetalCustomRunConfiguration)
|
||||
|
||||
public:
|
||||
explicit BareMetalCustomRunConfiguration(Target *target, Id id)
|
||||
: RunConfiguration(target, id)
|
||||
{
|
||||
const auto exeAspect = addAspect<ExecutableAspect>(target, ExecutableAspect::RunDevice);
|
||||
exeAspect->setSettingsKey("BareMetal.CustomRunConfig.Executable");
|
||||
exeAspect->setPlaceHolderText(tr("Unknown"));
|
||||
exeAspect->setPlaceHolderText(Tr::tr("Unknown"));
|
||||
exeAspect->setDisplayStyle(StringAspect::PathChooserDisplay);
|
||||
exeAspect->setHistoryCompleter("BareMetal.CustomRunConfig.History");
|
||||
exeAspect->setExpectedKind(PathChooser::Any);
|
||||
@@ -60,7 +57,8 @@ public:
|
||||
addAspect<ArgumentsAspect>(macroExpander());
|
||||
addAspect<WorkingDirectoryAspect>(macroExpander(), nullptr);
|
||||
|
||||
setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(tr("Custom Executable"), target));
|
||||
setDefaultDisplayName(RunConfigurationFactory::decoratedTargetName(
|
||||
Tr::tr("Custom Executable"), target));
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -71,8 +69,8 @@ Tasks BareMetalCustomRunConfiguration::checkForIssues() const
|
||||
{
|
||||
Tasks tasks;
|
||||
if (aspect<ExecutableAspect>()->executable().isEmpty()) {
|
||||
tasks << createConfigurationIssue(tr("The remote executable must be set in order to run "
|
||||
"a custom remote run configuration."));
|
||||
tasks << createConfigurationIssue(Tr::tr("The remote executable must be set in order to "
|
||||
"run a custom remote run configuration."));
|
||||
}
|
||||
return tasks;
|
||||
}
|
||||
@@ -89,12 +87,10 @@ BareMetalRunConfigurationFactory::BareMetalRunConfigurationFactory()
|
||||
// BaseMetalCustomRunConfigurationFactory
|
||||
|
||||
BareMetalCustomRunConfigurationFactory::BareMetalCustomRunConfigurationFactory()
|
||||
: FixedRunConfigurationFactory(BareMetalCustomRunConfiguration::tr("Custom Executable"), true)
|
||||
: FixedRunConfigurationFactory(Tr::tr("Custom Executable"), true)
|
||||
{
|
||||
registerRunConfiguration<BareMetalCustomRunConfiguration>("BareMetal");
|
||||
addSupportedTargetDeviceType(BareMetal::Constants::BareMetalOsType);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
|
||||
} // BareMetal::Internal
|
||||
|
@@ -5,8 +5,7 @@
|
||||
|
||||
#include <projectexplorer/runconfiguration.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalRunConfigurationFactory final
|
||||
: public ProjectExplorer::RunConfigurationFactory
|
||||
@@ -22,5 +21,4 @@ public:
|
||||
BareMetalCustomRunConfigurationFactory();
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
|
||||
#include "baremetaltr.h"
|
||||
#include "debugserverproviderchooser.h"
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "idebugserverprovider.h"
|
||||
@@ -14,8 +15,7 @@
|
||||
#include <QPushButton>
|
||||
#include <QSettings>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// DebugServerProviderChooser
|
||||
|
||||
@@ -25,7 +25,7 @@ DebugServerProviderChooser::DebugServerProviderChooser(
|
||||
{
|
||||
m_chooser = new QComboBox(this);
|
||||
m_chooser->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
|
||||
m_manageButton = new QPushButton(tr("Manage..."), this);
|
||||
m_manageButton = new QPushButton(Tr::tr("Manage..."), this);
|
||||
m_manageButton->setEnabled(useManageButton);
|
||||
m_manageButton->setVisible(useManageButton);
|
||||
|
||||
@@ -83,7 +83,7 @@ void DebugServerProviderChooser::populate()
|
||||
{
|
||||
const QSignalBlocker blocker(m_chooser);
|
||||
m_chooser->clear();
|
||||
m_chooser->addItem(tr("None"));
|
||||
m_chooser->addItem(Tr::tr("None"));
|
||||
|
||||
for (const IDebugServerProvider *p : DebugServerProviderManager::providers()) {
|
||||
if (!providerMatches(p))
|
||||
@@ -92,5 +92,4 @@ void DebugServerProviderChooser::populate()
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -10,13 +10,10 @@ class QComboBox;
|
||||
class QPushButton;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class IDebugServerProvider;
|
||||
|
||||
// DebugServerProviderChooser
|
||||
|
||||
class DebugServerProviderChooser final : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -42,5 +39,4 @@ private:
|
||||
QPushButton *m_manageButton = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -24,10 +24,7 @@
|
||||
#include <utils/persistentsettings.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QDir>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char dataKeyC[] = "DebugServerProvider.";
|
||||
const char countKeyC[] = "DebugServerProvider.Count";
|
||||
@@ -199,5 +196,4 @@ void DebugServerProviderManager::deregisterProvider(IDebugServerProvider *provid
|
||||
delete provider;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -10,8 +10,7 @@
|
||||
|
||||
namespace Utils { class PersistentSettingsWriter; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class BareMetalPlugin;
|
||||
class BareMetalPluginPrivate;
|
||||
@@ -59,5 +58,4 @@ private:
|
||||
friend class IDebugServerProvider;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -1,10 +1,11 @@
|
||||
// Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "debugserverproviderssettingspage.h"
|
||||
|
||||
#include "baremetalconstants.h"
|
||||
#include "baremetaltr.h"
|
||||
#include "debugserverprovidermanager.h"
|
||||
#include "idebugserverprovider.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
@@ -32,8 +33,7 @@
|
||||
using namespace Debugger;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// DebugServerProviderNode
|
||||
|
||||
@@ -47,11 +47,11 @@ static QString engineTypeName(DebuggerEngineType engineType)
|
||||
{
|
||||
switch (engineType) {
|
||||
case NoEngineType:
|
||||
return DebugServerProviderModel::tr("Not recognized");
|
||||
return Tr::tr("Not recognized");
|
||||
case GdbEngineType:
|
||||
return DebugServerProviderModel::tr("GDB");
|
||||
return Tr::tr("GDB");
|
||||
case UvscEngineType:
|
||||
return DebugServerProviderModel::tr("UVSC");
|
||||
return Tr::tr("UVSC");
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
@@ -61,13 +61,13 @@ static QString engineTypeDescription(DebuggerEngineType engineType)
|
||||
{
|
||||
switch (engineType) {
|
||||
case NoEngineType:
|
||||
return DebugServerProviderModel::tr("Not recognized");
|
||||
return Tr::tr("Not recognized");
|
||||
case GdbEngineType:
|
||||
return DebugServerProviderModel::tr("GDB compatible provider engine\n" \
|
||||
"(used together with the GDB debuggers).");
|
||||
return Tr::tr("GDB compatible provider engine\n" \
|
||||
"(used together with the GDB debuggers).");
|
||||
case UvscEngineType:
|
||||
return DebugServerProviderModel::tr("UVSC compatible provider engine\n" \
|
||||
"(used together with the KEIL uVision).");
|
||||
return Tr::tr("UVSC compatible provider engine\n" \
|
||||
"(used together with the KEIL uVision).");
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
|
||||
DebugServerProviderModel::DebugServerProviderModel()
|
||||
{
|
||||
setHeader({tr("Name"), tr("Type"), tr("Engine")});
|
||||
setHeader({Tr::tr("Name"), Tr::tr("Type"), Tr::tr("Engine")});
|
||||
|
||||
const DebugServerProviderManager *manager = DebugServerProviderManager::instance();
|
||||
|
||||
@@ -175,8 +175,8 @@ void DebugServerProviderModel::apply()
|
||||
|
||||
if (!skippedProviders.isEmpty()) {
|
||||
QMessageBox::warning(Core::ICore::dialogParent(),
|
||||
tr("Duplicate Providers Detected"),
|
||||
tr("The following providers were already configured:<br>"
|
||||
Tr::tr("Duplicate Providers Detected"),
|
||||
Tr::tr("The following providers were already configured:<br>"
|
||||
" %1<br>"
|
||||
"They were not configured again.")
|
||||
.arg(skippedProviders.join(",<br> ")));
|
||||
@@ -254,8 +254,6 @@ void DebugServerProviderModel::removeProvider(IDebugServerProvider *provider)
|
||||
|
||||
class DebugServerProvidersSettingsWidget final : public Core::IOptionsPageWidget
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::DebugServerProvidersSettingsPage)
|
||||
|
||||
public:
|
||||
DebugServerProvidersSettingsWidget();
|
||||
|
||||
@@ -284,9 +282,9 @@ DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget()
|
||||
m_providerView->setUniformRowHeights(true);
|
||||
m_providerView->header()->setStretchLastSection(false);
|
||||
|
||||
m_addButton = new QPushButton(tr("Add"), this);
|
||||
m_cloneButton = new QPushButton(tr("Clone"), this);
|
||||
m_delButton = new QPushButton(tr("Remove"), this);
|
||||
m_addButton = new QPushButton(Tr::tr("Add"), this);
|
||||
m_cloneButton = new QPushButton(Tr::tr("Clone"), this);
|
||||
m_delButton = new QPushButton(Tr::tr("Remove"), this);
|
||||
|
||||
m_container = new Utils::DetailsWidget(this);
|
||||
m_container->setState(Utils::DetailsWidget::NoSummary);
|
||||
@@ -310,7 +308,7 @@ DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget()
|
||||
horizontalLayout->addLayout(verticalLayout);
|
||||
horizontalLayout->addWidget(m_container);
|
||||
|
||||
const auto groupBox = new QGroupBox(tr("Debug Server Providers"), this);
|
||||
const auto groupBox = new QGroupBox(Tr::tr("Debug Server Providers"), this);
|
||||
groupBox->setLayout(horizontalLayout);
|
||||
|
||||
const auto topLayout = new QVBoxLayout(this);
|
||||
@@ -351,7 +349,7 @@ DebugServerProvidersSettingsWidget::DebugServerProvidersSettingsWidget()
|
||||
if (id.startsWith(f->id())) {
|
||||
IDebugServerProvider *p = f->create();
|
||||
p->fromMap(old->toMap());
|
||||
p->setDisplayName(tr("Clone of %1").arg(old->displayName()));
|
||||
p->setDisplayName(Tr::tr("Clone of %1").arg(old->displayName()));
|
||||
p->resetId();
|
||||
addProviderToModel(p);
|
||||
}
|
||||
@@ -432,10 +430,9 @@ QModelIndex DebugServerProvidersSettingsWidget::currentIndex() const
|
||||
DebugServerProvidersSettingsPage::DebugServerProvidersSettingsPage()
|
||||
{
|
||||
setId(Constants::DEBUG_SERVER_PROVIDERS_SETTINGS_ID);
|
||||
setDisplayName(DebugServerProvidersSettingsWidget::tr("Bare Metal"));
|
||||
setDisplayName(Tr::tr("Bare Metal"));
|
||||
setCategory(ProjectExplorer::Constants::DEVICE_SETTINGS_CATEGORY);
|
||||
setWidgetCreator([] { return new DebugServerProvidersSettingsWidget; });
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -15,8 +15,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class DetailsWidget; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class DebugServerProviderNode;
|
||||
class DebugServerProvidersSettingsWidget;
|
||||
@@ -66,5 +65,4 @@ public:
|
||||
DebugServerProvidersSettingsPage();
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "eblinkgdbserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
@@ -16,13 +17,10 @@
|
||||
#include <QFormLayout>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QSpinBox>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char executableFileKeyC[] = "ExecutableFile";
|
||||
const char verboseLevelKeyC[] = "VerboseLevel";
|
||||
@@ -44,7 +42,7 @@ EBlinkGdbServerProvider::EBlinkGdbServerProvider()
|
||||
setInitCommands(defaultInitCommands());
|
||||
setResetCommands(defaultResetCommands());
|
||||
setChannel("127.0.0.1", 2331);
|
||||
setTypeDisplayName(GdbServerProvider::tr("EBlink"));
|
||||
setTypeDisplayName(Tr::tr("EBlink"));
|
||||
setConfigurationWidgetCreator([this] { return new EBlinkGdbServerProviderConfigWidget(this); });
|
||||
}
|
||||
|
||||
@@ -208,7 +206,7 @@ bool EBlinkGdbServerProvider::operator==(const IDebugServerProvider &other) cons
|
||||
EBlinkGdbServerProviderFactory::EBlinkGdbServerProviderFactory()
|
||||
{
|
||||
setId(Constants::GDBSERVER_EBLINK_PROVIDER_ID);
|
||||
setDisplayName(GdbServerProvider::tr("EBlink"));
|
||||
setDisplayName(Tr::tr("EBlink"));
|
||||
setCreator([] { return new EBlinkGdbServerProvider; });
|
||||
}
|
||||
|
||||
@@ -221,52 +219,52 @@ EBlinkGdbServerProviderConfigWidget::EBlinkGdbServerProviderConfigWidget(
|
||||
Q_ASSERT(p);
|
||||
|
||||
m_gdbHostWidget = new HostWidget(this);
|
||||
m_mainLayout->addRow(tr("Host:"), m_gdbHostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_gdbHostWidget);
|
||||
|
||||
m_executableFileChooser = new PathChooser;
|
||||
m_executableFileChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
|
||||
m_mainLayout->addRow(tr("Executable file:"), m_executableFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Executable file:"), m_executableFileChooser);
|
||||
|
||||
m_scriptFileChooser = new Utils::PathChooser;
|
||||
m_scriptFileChooser->setExpectedKind(Utils::PathChooser::File);
|
||||
m_scriptFileChooser->setPromptDialogFilter("*.script");
|
||||
m_mainLayout->addRow(tr("Script file:"), m_scriptFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Script file:"), m_scriptFileChooser);
|
||||
|
||||
m_verboseLevelSpinBox = new QSpinBox;
|
||||
m_verboseLevelSpinBox->setRange(0, 7);
|
||||
m_verboseLevelSpinBox->setMaximumWidth(80);
|
||||
m_verboseLevelSpinBox->setToolTip(tr("Specify the verbosity level (0 to 7)."));
|
||||
m_mainLayout->addRow(tr("Verbosity level:"), m_verboseLevelSpinBox);
|
||||
m_verboseLevelSpinBox->setToolTip(Tr::tr("Specify the verbosity level (0 to 7)."));
|
||||
m_mainLayout->addRow(Tr::tr("Verbosity level:"), m_verboseLevelSpinBox);
|
||||
|
||||
m_resetOnConnectCheckBox = new QCheckBox;
|
||||
m_resetOnConnectCheckBox->setToolTip(tr("Connect under reset (hotplug)."));
|
||||
m_mainLayout->addRow(tr("Connect under reset:"), m_resetOnConnectCheckBox);
|
||||
m_resetOnConnectCheckBox->setToolTip(Tr::tr("Connect under reset (hotplug)."));
|
||||
m_mainLayout->addRow(Tr::tr("Connect under reset:"), m_resetOnConnectCheckBox);
|
||||
|
||||
m_interfaceTypeComboBox = new QComboBox;
|
||||
m_interfaceTypeComboBox->setToolTip(tr("Interface type."));
|
||||
m_mainLayout->addRow(tr("Type:"), m_interfaceTypeComboBox);
|
||||
m_interfaceTypeComboBox->setToolTip(Tr::tr("Interface type."));
|
||||
m_mainLayout->addRow(Tr::tr("Type:"), m_interfaceTypeComboBox);
|
||||
|
||||
m_interfaceSpeedSpinBox = new QSpinBox;
|
||||
m_interfaceSpeedSpinBox->setRange(120, 8000);
|
||||
m_interfaceSpeedSpinBox->setMaximumWidth(120);
|
||||
m_interfaceSpeedSpinBox->setToolTip(tr("Specify the speed of the interface (120 to 8000) in kilohertz (kHz)."));
|
||||
m_mainLayout->addRow(tr("Speed:"), m_interfaceSpeedSpinBox);
|
||||
m_interfaceSpeedSpinBox->setToolTip(Tr::tr("Specify the speed of the interface (120 to 8000) in kilohertz (kHz)."));
|
||||
m_mainLayout->addRow(Tr::tr("Speed:"), m_interfaceSpeedSpinBox);
|
||||
|
||||
m_notUseCacheCheckBox = new QCheckBox;
|
||||
m_notUseCacheCheckBox->setToolTip(tr("Do not use EBlink flash cache."));
|
||||
m_mainLayout->addRow(tr("Disable cache:"), m_notUseCacheCheckBox);
|
||||
m_notUseCacheCheckBox->setToolTip(Tr::tr("Do not use EBlink flash cache."));
|
||||
m_mainLayout->addRow(Tr::tr("Disable cache:"), m_notUseCacheCheckBox);
|
||||
|
||||
m_shutDownAfterDisconnectCheckBox = new QCheckBox;
|
||||
m_shutDownAfterDisconnectCheckBox->setEnabled(false);
|
||||
m_shutDownAfterDisconnectCheckBox->setToolTip(tr("Shut down EBlink server after disconnect."));
|
||||
m_mainLayout->addRow(tr("Auto shutdown:"), m_shutDownAfterDisconnectCheckBox);
|
||||
m_shutDownAfterDisconnectCheckBox->setToolTip(Tr::tr("Shut down EBlink server after disconnect."));
|
||||
m_mainLayout->addRow(Tr::tr("Auto shutdown:"), m_shutDownAfterDisconnectCheckBox);
|
||||
|
||||
m_initCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_initCommandsTextEdit->setToolTip(defaultInitCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_resetCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
|
||||
populateInterfaceTypes();
|
||||
addErrorLabel();
|
||||
@@ -316,9 +314,9 @@ EBlinkGdbServerProviderConfigWidget::interfaceTypeFromWidget() const
|
||||
|
||||
void EBlinkGdbServerProviderConfigWidget::populateInterfaceTypes()
|
||||
{
|
||||
m_interfaceTypeComboBox->insertItem(EBlinkGdbServerProvider::SWD, tr("SWD"),
|
||||
m_interfaceTypeComboBox->insertItem(EBlinkGdbServerProvider::SWD, Tr::tr("SWD"),
|
||||
EBlinkGdbServerProvider::SWD);
|
||||
m_interfaceTypeComboBox->insertItem(EBlinkGdbServerProvider::JTAG, tr("JTAG"),
|
||||
m_interfaceTypeComboBox->insertItem(EBlinkGdbServerProvider::JTAG, Tr::tr("JTAG"),
|
||||
EBlinkGdbServerProvider::JTAG);
|
||||
}
|
||||
|
||||
@@ -368,5 +366,4 @@ void EBlinkGdbServerProviderConfigWidget::discard()
|
||||
GdbServerProviderConfigWidget::discard();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -12,8 +12,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// EBlinkGdbServerProvider
|
||||
|
||||
@@ -71,8 +70,6 @@ public:
|
||||
class EBlinkGdbServerProviderConfigWidget final
|
||||
: public GdbServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit EBlinkGdbServerProviderConfigWidget(
|
||||
EBlinkGdbServerProvider *provider);
|
||||
@@ -101,6 +98,5 @@ private:
|
||||
QPlainTextEdit *m_resetCommandsTextEdit = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
||||
|
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <baremetal/baremetaldebugsupport.h>
|
||||
#include <baremetal/baremetaldevice.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <projectexplorer/runconfigurationaspects.h>
|
||||
@@ -22,8 +23,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char startupModeKeyC[] = "Mode";
|
||||
const char peripheralDescriptionFileKeyC[] = "PeripheralDescriptionFile";
|
||||
@@ -144,13 +144,11 @@ bool GdbServerProvider::aboutToRun(DebuggerRunTool *runTool,
|
||||
|
||||
const FilePath bin = FilePath::fromString(exeAspect->executable.path());
|
||||
if (bin.isEmpty()) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Cannot debug: Local executable is not set.");
|
||||
errorMessage = Tr::tr("Cannot debug: Local executable is not set.");
|
||||
return false;
|
||||
}
|
||||
if (!bin.exists()) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Cannot debug: Could not find executable for \"%1\".")
|
||||
errorMessage = Tr::tr("Cannot debug: Could not find executable for \"%1\".")
|
||||
.arg(bin.toString());
|
||||
return false;
|
||||
}
|
||||
@@ -201,17 +199,17 @@ GdbServerProviderConfigWidget::GdbServerProviderConfigWidget(
|
||||
: IDebugServerProviderConfigWidget(provider)
|
||||
{
|
||||
m_startupModeComboBox = new QComboBox(this);
|
||||
m_startupModeComboBox->setToolTip(tr("Choose the desired startup mode "
|
||||
"of the GDB server provider."));
|
||||
m_mainLayout->addRow(tr("Startup mode:"), m_startupModeComboBox);
|
||||
m_startupModeComboBox->setToolTip(Tr::tr("Choose the desired startup mode "
|
||||
"of the GDB server provider."));
|
||||
m_mainLayout->addRow(Tr::tr("Startup mode:"), m_startupModeComboBox);
|
||||
|
||||
m_peripheralDescriptionFileChooser = new PathChooser(this);
|
||||
m_peripheralDescriptionFileChooser->setExpectedKind(PathChooser::File);
|
||||
m_peripheralDescriptionFileChooser->setPromptDialogFilter(
|
||||
tr("Peripheral description files (*.svd)"));
|
||||
Tr::tr("Peripheral description files (*.svd)"));
|
||||
m_peripheralDescriptionFileChooser->setPromptDialogTitle(
|
||||
tr("Select Peripheral Description File"));
|
||||
m_mainLayout->addRow(tr("Peripheral description file:"),
|
||||
Tr::tr("Select Peripheral Description File"));
|
||||
m_mainLayout->addRow(Tr::tr("Peripheral description file:"),
|
||||
m_peripheralDescriptionFileChooser);
|
||||
|
||||
populateStartupModes();
|
||||
@@ -264,9 +262,9 @@ static QString startupModeName(GdbServerProvider::StartupMode m)
|
||||
{
|
||||
switch (m) {
|
||||
case GdbServerProvider::StartupOnNetwork:
|
||||
return GdbServerProviderConfigWidget::tr("Startup in TCP/IP Mode");
|
||||
return Tr::tr("Startup in TCP/IP Mode");
|
||||
case GdbServerProvider::StartupOnPipe:
|
||||
return GdbServerProviderConfigWidget::tr("Startup in Pipe Mode");
|
||||
return Tr::tr("Startup in Pipe Mode");
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
@@ -299,16 +297,14 @@ void GdbServerProviderConfigWidget::setFromProvider()
|
||||
|
||||
QString GdbServerProviderConfigWidget::defaultInitCommandsTooltip()
|
||||
{
|
||||
return QCoreApplication::translate("BareMetal",
|
||||
"Enter GDB commands to reset the board "
|
||||
"and to write the nonvolatile memory.");
|
||||
return Tr::tr("Enter GDB commands to reset the board "
|
||||
"and to write the nonvolatile memory.");
|
||||
}
|
||||
|
||||
QString GdbServerProviderConfigWidget::defaultResetCommandsTooltip()
|
||||
{
|
||||
return QCoreApplication::translate("BareMetal",
|
||||
"Enter GDB commands to reset the hardware. "
|
||||
"The MCU should be halted after these commands.");
|
||||
return Tr::tr("Enter GDB commands to reset the hardware. "
|
||||
"The MCU should be halted after these commands.");
|
||||
}
|
||||
|
||||
// GdbServerProviderRunner
|
||||
@@ -325,5 +321,4 @@ GdbServerProviderRunner::GdbServerProviderRunner(ProjectExplorer::RunControl *ru
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -7,23 +7,18 @@
|
||||
|
||||
#include <projectexplorer/runcontrol.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QComboBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// GdbServerProvider
|
||||
|
||||
class GdbServerProvider : public IDebugServerProvider
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::GdbServerProvider)
|
||||
|
||||
public:
|
||||
enum StartupMode {
|
||||
StartupOnNetwork,
|
||||
@@ -75,8 +70,6 @@ protected:
|
||||
|
||||
class GdbServerProviderConfigWidget : public IDebugServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit GdbServerProviderConfigWidget(GdbServerProvider *provider);
|
||||
void apply() override;
|
||||
@@ -107,5 +100,4 @@ public:
|
||||
const Utils::CommandLine &commandLine);
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "genericgdbserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
@@ -13,8 +14,7 @@
|
||||
#include <QFormLayout>
|
||||
#include <QPlainTextEdit>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// GenericGdbServerProvider
|
||||
|
||||
@@ -22,7 +22,7 @@ GenericGdbServerProvider::GenericGdbServerProvider()
|
||||
: GdbServerProvider(Constants::GDBSERVER_GENERIC_PROVIDER_ID)
|
||||
{
|
||||
setChannel("localhost", 3333);
|
||||
setTypeDisplayName(GdbServerProvider::tr("Generic"));
|
||||
setTypeDisplayName(Tr::tr("Generic"));
|
||||
setConfigurationWidgetCreator([this] { return new GenericGdbServerProviderConfigWidget(this); });
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ QSet<GdbServerProvider::StartupMode> GenericGdbServerProvider::supportedStartupM
|
||||
GenericGdbServerProviderFactory::GenericGdbServerProviderFactory()
|
||||
{
|
||||
setId(Constants::GDBSERVER_GENERIC_PROVIDER_ID);
|
||||
setDisplayName(GdbServerProvider::tr("Generic"));
|
||||
setDisplayName(Tr::tr("Generic"));
|
||||
setCreator([] { return new GenericGdbServerProvider; });
|
||||
}
|
||||
|
||||
@@ -49,17 +49,17 @@ GenericGdbServerProviderConfigWidget::GenericGdbServerProviderConfigWidget(
|
||||
Q_ASSERT(provider);
|
||||
|
||||
m_hostWidget = new HostWidget(this);
|
||||
m_mainLayout->addRow(tr("Host:"), m_hostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_hostWidget);
|
||||
|
||||
m_useExtendedRemoteCheckBox = new QCheckBox(this);
|
||||
m_useExtendedRemoteCheckBox->setToolTip("Use GDB target extended-remote");
|
||||
m_mainLayout->addRow(tr("Extended mode:"), m_useExtendedRemoteCheckBox);
|
||||
m_useExtendedRemoteCheckBox->setToolTip(Tr::tr("Use GDB target extended-remote"));
|
||||
m_mainLayout->addRow(Tr::tr("Extended mode:"), m_useExtendedRemoteCheckBox);
|
||||
m_initCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_initCommandsTextEdit->setToolTip(defaultInitCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_resetCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
|
||||
addErrorLabel();
|
||||
setFromProvider();
|
||||
@@ -108,5 +108,4 @@ void GenericGdbServerProviderConfigWidget::setFromProvider()
|
||||
m_resetCommandsTextEdit->setPlainText(p->resetCommands());
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace ProjectExplorer
|
||||
} // ProjectExplorer::Internal
|
||||
|
@@ -10,8 +10,7 @@ class QCheckBox;
|
||||
class QPlainTextEdit;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// GenericGdbServerProvider
|
||||
|
||||
@@ -39,8 +38,6 @@ public:
|
||||
class GenericGdbServerProviderConfigWidget final
|
||||
: public GdbServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit GenericGdbServerProviderConfigWidget(
|
||||
GenericGdbServerProvider *provider);
|
||||
@@ -57,5 +54,4 @@ private:
|
||||
QPlainTextEdit *m_resetCommandsTextEdit = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "jlinkgdbserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
@@ -21,8 +22,7 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char executableFileKeyC[] = "ExecutableFile";
|
||||
const char jlinkDeviceKeyC[] = "JLinkDevice";
|
||||
@@ -40,7 +40,7 @@ JLinkGdbServerProvider::JLinkGdbServerProvider()
|
||||
setInitCommands(defaultInitCommands());
|
||||
setResetCommands(defaultResetCommands());
|
||||
setChannel("localhost", 2331);
|
||||
setTypeDisplayName(GdbServerProvider::tr("JLink"));
|
||||
setTypeDisplayName(Tr::tr("JLink"));
|
||||
setConfigurationWidgetCreator([this] { return new JLinkGdbServerProviderConfigWidget(this); });
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ bool JLinkGdbServerProvider::operator==(const IDebugServerProvider &other) const
|
||||
JLinkGdbServerProviderFactory::JLinkGdbServerProviderFactory()
|
||||
{
|
||||
setId(Constants::GDBSERVER_JLINK_PROVIDER_ID);
|
||||
setDisplayName(GdbServerProvider::tr("JLink"));
|
||||
setDisplayName(Tr::tr("JLink"));
|
||||
setCreator([] { return new JLinkGdbServerProvider; });
|
||||
}
|
||||
|
||||
@@ -179,58 +179,58 @@ JLinkGdbServerProviderConfigWidget::JLinkGdbServerProviderConfigWidget(
|
||||
Q_ASSERT(provider);
|
||||
|
||||
m_hostWidget = new HostWidget(this);
|
||||
m_mainLayout->addRow(tr("Host:"), m_hostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_hostWidget);
|
||||
|
||||
m_executableFileChooser = new Utils::PathChooser;
|
||||
m_executableFileChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
|
||||
m_executableFileChooser->setCommandVersionArguments({"--version"});
|
||||
if (HostOsInfo::hostOs() == OsTypeWindows) {
|
||||
m_executableFileChooser->setPromptDialogFilter(tr("JLink GDB Server (JLinkGDBServerCL.exe)"));
|
||||
m_executableFileChooser->setPromptDialogFilter(Tr::tr("JLink GDB Server (JLinkGDBServerCL.exe)"));
|
||||
m_executableFileChooser->lineEdit()->setPlaceholderText("JLinkGDBServerCL.exe");
|
||||
} else {
|
||||
m_executableFileChooser->setPromptDialogFilter(tr("JLink GDB Server (JLinkGDBServer)"));
|
||||
m_executableFileChooser->setPromptDialogFilter(Tr::tr("JLink GDB Server (JLinkGDBServer)"));
|
||||
m_executableFileChooser->lineEdit()->setPlaceholderText("JLinkGDBServer");
|
||||
}
|
||||
m_mainLayout->addRow(tr("Executable file:"), m_executableFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Executable file:"), m_executableFileChooser);
|
||||
|
||||
// Host interface settings.
|
||||
m_hostInterfaceWidget = new QWidget(this);
|
||||
m_hostInterfaceComboBox = new QComboBox(m_hostInterfaceWidget);
|
||||
m_hostInterfaceAddressLabel = new QLabel(m_hostInterfaceWidget);
|
||||
m_hostInterfaceAddressLabel->setText(tr("IP Address"));
|
||||
m_hostInterfaceAddressLabel->setText(Tr::tr("IP Address"));
|
||||
m_hostInterfaceAddressLineEdit = new QLineEdit(m_hostInterfaceWidget);
|
||||
const auto hostInterfaceLayout = new QHBoxLayout(m_hostInterfaceWidget);
|
||||
hostInterfaceLayout->setContentsMargins(0, 0, 0, 0);
|
||||
hostInterfaceLayout->addWidget(m_hostInterfaceComboBox);
|
||||
hostInterfaceLayout->addWidget(m_hostInterfaceAddressLabel);
|
||||
hostInterfaceLayout->addWidget(m_hostInterfaceAddressLineEdit);
|
||||
m_mainLayout->addRow(tr("Host interface:"), m_hostInterfaceWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host interface:"), m_hostInterfaceWidget);
|
||||
|
||||
// Target interface settings.
|
||||
m_targetInterfaceWidget = new QWidget(this);
|
||||
m_targetInterfaceComboBox = new QComboBox(m_targetInterfaceWidget);
|
||||
m_targetInterfaceSpeedLabel = new QLabel(m_targetInterfaceWidget);
|
||||
m_targetInterfaceSpeedLabel->setText(tr("Speed"));
|
||||
m_targetInterfaceSpeedLabel->setText(Tr::tr("Speed"));
|
||||
m_targetInterfaceSpeedComboBox = new QComboBox(m_targetInterfaceWidget);
|
||||
const auto targetInterfaceLayout = new QHBoxLayout(m_targetInterfaceWidget);
|
||||
targetInterfaceLayout->setContentsMargins(0, 0, 0, 0);
|
||||
targetInterfaceLayout->addWidget(m_targetInterfaceComboBox);
|
||||
targetInterfaceLayout->addWidget(m_targetInterfaceSpeedLabel);
|
||||
targetInterfaceLayout->addWidget(m_targetInterfaceSpeedComboBox);
|
||||
m_mainLayout->addRow(tr("Target interface:"), m_targetInterfaceWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Target interface:"), m_targetInterfaceWidget);
|
||||
|
||||
m_jlinkDeviceLineEdit = new QLineEdit(this);
|
||||
m_mainLayout->addRow(tr("Device:"), m_jlinkDeviceLineEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Device:"), m_jlinkDeviceLineEdit);
|
||||
|
||||
m_additionalArgumentsTextEdit = new QPlainTextEdit(this);
|
||||
m_mainLayout->addRow(tr("Additional arguments:"), m_additionalArgumentsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Additional arguments:"), m_additionalArgumentsTextEdit);
|
||||
|
||||
m_initCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_initCommandsTextEdit->setToolTip(defaultInitCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_resetCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
|
||||
populateHostInterfaces();
|
||||
populateTargetInterfaces();
|
||||
@@ -297,26 +297,26 @@ void JLinkGdbServerProviderConfigWidget::discard()
|
||||
|
||||
void JLinkGdbServerProviderConfigWidget::populateHostInterfaces()
|
||||
{
|
||||
m_hostInterfaceComboBox->addItem(tr("Default"));
|
||||
m_hostInterfaceComboBox->addItem(tr("USB"), "USB");
|
||||
m_hostInterfaceComboBox->addItem(tr("TCP/IP"), "IP");
|
||||
m_hostInterfaceComboBox->addItem(Tr::tr("Default"));
|
||||
m_hostInterfaceComboBox->addItem(Tr::tr("USB"), "USB");
|
||||
m_hostInterfaceComboBox->addItem(Tr::tr("TCP/IP"), "IP");
|
||||
}
|
||||
|
||||
void JLinkGdbServerProviderConfigWidget::populateTargetInterfaces()
|
||||
{
|
||||
m_targetInterfaceComboBox->addItem(tr("Default"));
|
||||
m_targetInterfaceComboBox->addItem(tr("JTAG"), "JTAG");
|
||||
m_targetInterfaceComboBox->addItem(tr("Compact JTAG"), "cJTAG");
|
||||
m_targetInterfaceComboBox->addItem(tr("SWD"), "SWD");
|
||||
m_targetInterfaceComboBox->addItem(tr("Renesas RX FINE"), "FINE");
|
||||
m_targetInterfaceComboBox->addItem(tr("ICSP"), "ICSP");
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("Default"));
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("JTAG"), "JTAG");
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("Compact JTAG"), "cJTAG");
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("SWD"), "SWD");
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("Renesas RX FINE"), "FINE");
|
||||
m_targetInterfaceComboBox->addItem(Tr::tr("ICSP"), "ICSP");
|
||||
}
|
||||
|
||||
void JLinkGdbServerProviderConfigWidget::populateTargetSpeeds()
|
||||
{
|
||||
m_targetInterfaceSpeedComboBox->addItem(tr("Default"));
|
||||
m_targetInterfaceSpeedComboBox->addItem(tr("Auto"), "auto");
|
||||
m_targetInterfaceSpeedComboBox->addItem(tr("Adaptive"), "adaptive");
|
||||
m_targetInterfaceSpeedComboBox->addItem(Tr::tr("Default"));
|
||||
m_targetInterfaceSpeedComboBox->addItem(Tr::tr("Auto"), "auto");
|
||||
m_targetInterfaceSpeedComboBox->addItem(Tr::tr("Adaptive"), "adaptive");
|
||||
|
||||
const QStringList fixedSpeeds = {"1", "5", "10", "20", "30", "50", "100", "200", "300",
|
||||
"400", "500", "600", "750", "800", "900", "1000", "1334",
|
||||
@@ -324,7 +324,7 @@ void JLinkGdbServerProviderConfigWidget::populateTargetSpeeds()
|
||||
"6000", "8000", "9600", "12000", "15000", "20000", "25000",
|
||||
"30000", "40000", "50000"};
|
||||
for (const auto &fixedSpeed : fixedSpeeds)
|
||||
m_targetInterfaceSpeedComboBox->addItem(tr("%1 kHz").arg(fixedSpeed), fixedSpeed);
|
||||
m_targetInterfaceSpeedComboBox->addItem(Tr::tr("%1 kHz").arg(fixedSpeed), fixedSpeed);
|
||||
}
|
||||
|
||||
void JLinkGdbServerProviderConfigWidget::setHostInterface(const QString &newIface)
|
||||
@@ -388,7 +388,6 @@ void JLinkGdbServerProviderConfigWidget::setFromProvider()
|
||||
m_hostInterfaceAddressLineEdit->setText(p->m_jlinkHostAddr);
|
||||
m_hostWidget->setChannel(p->channel());
|
||||
m_initCommandsTextEdit->setPlainText(p->initCommands());
|
||||
m_jlinkDeviceLineEdit->setText( p->m_jlinkDevice);
|
||||
m_jlinkDeviceLineEdit->setText(p->m_jlinkDevice);
|
||||
m_resetCommandsTextEdit->setPlainText(p->resetCommands());
|
||||
|
||||
@@ -399,5 +398,4 @@ void JLinkGdbServerProviderConfigWidget::setFromProvider()
|
||||
updateAllowedControls();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -11,8 +11,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// JLinkGdbServerProvider
|
||||
|
||||
@@ -62,11 +61,8 @@ public:
|
||||
class JLinkGdbServerProviderConfigWidget final
|
||||
: public GdbServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit JLinkGdbServerProviderConfigWidget(
|
||||
JLinkGdbServerProvider *provider);
|
||||
explicit JLinkGdbServerProviderConfigWidget(JLinkGdbServerProvider *provider);
|
||||
|
||||
private:
|
||||
void apply() final;
|
||||
@@ -103,5 +99,4 @@ private:
|
||||
QPlainTextEdit *m_resetCommandsTextEdit = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "openocdgdbserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
@@ -19,8 +20,7 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char executableFileKeyC[] = "ExecutableFile";
|
||||
const char rootScriptsDirKeyC[] = "RootScriptsDir";
|
||||
@@ -35,7 +35,7 @@ OpenOcdGdbServerProvider::OpenOcdGdbServerProvider()
|
||||
setInitCommands(defaultInitCommands());
|
||||
setResetCommands(defaultResetCommands());
|
||||
setChannel("localhost", 3333);
|
||||
setTypeDisplayName(GdbServerProvider::tr("OpenOCD"));
|
||||
setTypeDisplayName(Tr::tr("OpenOCD"));
|
||||
setConfigurationWidgetCreator([this] { return new OpenOcdGdbServerProviderConfigWidget(this); });
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ bool OpenOcdGdbServerProvider::operator==(const IDebugServerProvider &other) con
|
||||
OpenOcdGdbServerProviderFactory::OpenOcdGdbServerProviderFactory()
|
||||
{
|
||||
setId(Constants::GDBSERVER_OPENOCD_PROVIDER_ID);
|
||||
setDisplayName(GdbServerProvider::tr("OpenOCD"));
|
||||
setDisplayName(Tr::tr("OpenOCD"));
|
||||
setCreator([] { return new OpenOcdGdbServerProvider; });
|
||||
}
|
||||
|
||||
@@ -177,31 +177,31 @@ OpenOcdGdbServerProviderConfigWidget::OpenOcdGdbServerProviderConfigWidget(
|
||||
Q_ASSERT(provider);
|
||||
|
||||
m_hostWidget = new HostWidget(this);
|
||||
m_mainLayout->addRow(tr("Host:"), m_hostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_hostWidget);
|
||||
|
||||
m_executableFileChooser = new Utils::PathChooser;
|
||||
m_executableFileChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
|
||||
m_executableFileChooser->setCommandVersionArguments({"--version"});
|
||||
m_mainLayout->addRow(tr("Executable file:"), m_executableFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Executable file:"), m_executableFileChooser);
|
||||
|
||||
m_rootScriptsDirChooser = new Utils::PathChooser;
|
||||
m_rootScriptsDirChooser->setExpectedKind(Utils::PathChooser::Directory);
|
||||
m_mainLayout->addRow(tr("Root scripts directory:"), m_rootScriptsDirChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Root scripts directory:"), m_rootScriptsDirChooser);
|
||||
|
||||
m_configurationFileChooser = new Utils::PathChooser;
|
||||
m_configurationFileChooser->setExpectedKind(Utils::PathChooser::File);
|
||||
m_configurationFileChooser->setPromptDialogFilter("*.cfg");
|
||||
m_mainLayout->addRow(tr("Configuration file:"), m_configurationFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Configuration file:"), m_configurationFileChooser);
|
||||
|
||||
m_additionalArgumentsLineEdit = new QLineEdit(this);
|
||||
m_mainLayout->addRow(tr("Additional arguments:"), m_additionalArgumentsLineEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Additional arguments:"), m_additionalArgumentsLineEdit);
|
||||
|
||||
m_initCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_initCommandsTextEdit->setToolTip(defaultInitCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_resetCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
|
||||
addErrorLabel();
|
||||
setFromProvider();
|
||||
@@ -274,5 +274,4 @@ void OpenOcdGdbServerProviderConfigWidget::setFromProvider()
|
||||
m_resetCommandsTextEdit->setPlainText(p->resetCommands());
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace ProjectExplorer
|
||||
} // BareMetal::Internal
|
||||
|
@@ -11,8 +11,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// OpenOcdGdbServerProvider
|
||||
|
||||
@@ -59,11 +58,8 @@ public:
|
||||
class OpenOcdGdbServerProviderConfigWidget final
|
||||
: public GdbServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit OpenOcdGdbServerProviderConfigWidget(
|
||||
OpenOcdGdbServerProvider *provider);
|
||||
explicit OpenOcdGdbServerProviderConfigWidget(OpenOcdGdbServerProvider *provider);
|
||||
|
||||
private:
|
||||
void apply() final;
|
||||
@@ -81,5 +77,4 @@ private:
|
||||
QPlainTextEdit *m_resetCommandsTextEdit = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -4,9 +4,10 @@
|
||||
#include "stlinkutilgdbserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/filepath.h>
|
||||
#include <utils/pathchooser.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/variablechooser.h>
|
||||
@@ -19,8 +20,7 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
const char executableFileKeyC[] = "ExecutableFile";
|
||||
const char verboseLevelKeyC[] = "VerboseLevel";
|
||||
@@ -36,7 +36,7 @@ StLinkUtilGdbServerProvider::StLinkUtilGdbServerProvider()
|
||||
setInitCommands(defaultInitCommands());
|
||||
setResetCommands(defaultResetCommands());
|
||||
setChannel("localhost", 4242);
|
||||
setTypeDisplayName(GdbServerProvider::tr("ST-LINK Utility"));
|
||||
setTypeDisplayName(Tr::tr("ST-LINK Utility"));
|
||||
setConfigurationWidgetCreator([this] { return new StLinkUtilGdbServerProviderConfigWidget(this); });
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ bool StLinkUtilGdbServerProvider::operator==(const IDebugServerProvider &other)
|
||||
StLinkUtilGdbServerProviderFactory::StLinkUtilGdbServerProviderFactory()
|
||||
{
|
||||
setId(Constants::GDBSERVER_STLINK_UTIL_PROVIDER_ID);
|
||||
setDisplayName(GdbServerProvider::tr("ST-LINK Utility"));
|
||||
setDisplayName(Tr::tr("ST-LINK Utility"));
|
||||
setCreator([] { return new StLinkUtilGdbServerProvider; });
|
||||
}
|
||||
|
||||
@@ -164,36 +164,36 @@ StLinkUtilGdbServerProviderConfigWidget::StLinkUtilGdbServerProviderConfigWidget
|
||||
Q_ASSERT(p);
|
||||
|
||||
m_hostWidget = new HostWidget(this);
|
||||
m_mainLayout->addRow(tr("Host:"), m_hostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_hostWidget);
|
||||
|
||||
m_executableFileChooser = new Utils::PathChooser;
|
||||
m_executableFileChooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
|
||||
m_mainLayout->addRow(tr("Executable file:"), m_executableFileChooser);
|
||||
m_mainLayout->addRow(Tr::tr("Executable file:"), m_executableFileChooser);
|
||||
|
||||
m_verboseLevelSpinBox = new QSpinBox;
|
||||
m_verboseLevelSpinBox->setRange(0, 99);
|
||||
m_verboseLevelSpinBox->setToolTip(tr("Specify the verbosity level (0..99)."));
|
||||
m_mainLayout->addRow(tr("Verbosity level:"), m_verboseLevelSpinBox);
|
||||
m_verboseLevelSpinBox->setToolTip(Tr::tr("Specify the verbosity level (0..99)."));
|
||||
m_mainLayout->addRow(Tr::tr("Verbosity level:"), m_verboseLevelSpinBox);
|
||||
|
||||
m_extendedModeCheckBox = new QCheckBox;
|
||||
m_extendedModeCheckBox->setToolTip(tr("Continue listening for connections "
|
||||
m_extendedModeCheckBox->setToolTip(Tr::tr("Continue listening for connections "
|
||||
"after disconnect."));
|
||||
m_mainLayout->addRow(tr("Extended mode:"), m_extendedModeCheckBox);
|
||||
m_mainLayout->addRow(Tr::tr("Extended mode:"), m_extendedModeCheckBox);
|
||||
|
||||
m_resetBoardCheckBox = new QCheckBox;
|
||||
m_resetBoardCheckBox->setToolTip(tr("Reset board on connection."));
|
||||
m_mainLayout->addRow(tr("Reset on connection:"), m_resetBoardCheckBox);
|
||||
m_resetBoardCheckBox->setToolTip(Tr::tr("Reset board on connection."));
|
||||
m_mainLayout->addRow(Tr::tr("Reset on connection:"), m_resetBoardCheckBox);
|
||||
|
||||
m_transportLayerComboBox = new QComboBox;
|
||||
m_transportLayerComboBox->setToolTip(tr("Transport layer type."));
|
||||
m_mainLayout->addRow(tr("Version:"), m_transportLayerComboBox);
|
||||
m_transportLayerComboBox->setToolTip(Tr::tr("Transport layer type."));
|
||||
m_mainLayout->addRow(Tr::tr("Version:"), m_transportLayerComboBox);
|
||||
|
||||
m_initCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_initCommandsTextEdit->setToolTip(defaultInitCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Init commands:"), m_initCommandsTextEdit);
|
||||
m_resetCommandsTextEdit = new QPlainTextEdit(this);
|
||||
m_resetCommandsTextEdit->setToolTip(defaultResetCommandsTooltip());
|
||||
m_mainLayout->addRow(tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
m_mainLayout->addRow(Tr::tr("Reset commands:"), m_resetCommandsTextEdit);
|
||||
|
||||
populateTransportLayers();
|
||||
addErrorLabel();
|
||||
@@ -273,13 +273,13 @@ void StLinkUtilGdbServerProviderConfigWidget::setTransportLayer(
|
||||
void StLinkUtilGdbServerProviderConfigWidget::populateTransportLayers()
|
||||
{
|
||||
m_transportLayerComboBox->insertItem(
|
||||
m_transportLayerComboBox->count(), tr("ST-LINK/V1"),
|
||||
m_transportLayerComboBox->count(), Tr::tr("ST-LINK/V1"),
|
||||
StLinkUtilGdbServerProvider::ScsiOverUsb);
|
||||
m_transportLayerComboBox->insertItem(
|
||||
m_transportLayerComboBox->count(), tr("ST-LINK/V2"),
|
||||
m_transportLayerComboBox->count(), Tr::tr("ST-LINK/V2"),
|
||||
StLinkUtilGdbServerProvider::RawUsb);
|
||||
m_transportLayerComboBox->insertItem(
|
||||
m_transportLayerComboBox->count(), tr("Keep unspecified"),
|
||||
m_transportLayerComboBox->count(), Tr::tr("Keep unspecified"),
|
||||
StLinkUtilGdbServerProvider::UnspecifiedTransport);
|
||||
}
|
||||
|
||||
@@ -299,5 +299,4 @@ void StLinkUtilGdbServerProviderConfigWidget::setFromProvider()
|
||||
m_resetCommandsTextEdit->setPlainText(p->resetCommands());
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace ProjectExplorer
|
||||
} // ProjectExplorer::Internal
|
||||
|
@@ -12,8 +12,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// StLinkUtilGdbServerProvider
|
||||
|
||||
@@ -63,11 +62,8 @@ public:
|
||||
class StLinkUtilGdbServerProviderConfigWidget final
|
||||
: public GdbServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StLinkUtilGdbServerProviderConfigWidget(
|
||||
StLinkUtilGdbServerProvider *provider);
|
||||
explicit StLinkUtilGdbServerProviderConfigWidget(StLinkUtilGdbServerProvider *provider);
|
||||
|
||||
private:
|
||||
void apply() final;
|
||||
@@ -90,5 +86,4 @@ private:
|
||||
QPlainTextEdit *m_resetCommandsTextEdit = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaldebugsupport.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <debugger/debuggerruncontrol.h>
|
||||
@@ -25,8 +26,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
using namespace Uv;
|
||||
|
||||
@@ -155,7 +155,7 @@ bool JLinkUvscAdapterOptions::operator==(const JLinkUvscAdapterOptions &other) c
|
||||
JLinkUvscServerProvider::JLinkUvscServerProvider()
|
||||
: UvscServerProvider(Constants::UVSC_JLINK_PROVIDER_ID)
|
||||
{
|
||||
setTypeDisplayName(UvscServerProvider::tr("uVision JLink"));
|
||||
setTypeDisplayName(Tr::tr("uVision JLink"));
|
||||
setConfigurationWidgetCreator([this] { return new JLinkUvscServerProviderConfigWidget(this); });
|
||||
setSupportedDrivers({"Segger\\JL2CM3.dll"});
|
||||
}
|
||||
@@ -192,8 +192,7 @@ FilePath JLinkUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
Uv::ProjectOptionsWriter writer(&ofs);
|
||||
const JLinkUvProjectOptions projectOptions(this);
|
||||
if (!writer.write(&projectOptions)) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Unable to create a uVision project options template.");
|
||||
errorMessage = Tr::tr("Unable to create a uVision project options template.");
|
||||
return {};
|
||||
}
|
||||
return optionsPath;
|
||||
@@ -204,7 +203,7 @@ FilePath JLinkUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
JLinkUvscServerProviderFactory::JLinkUvscServerProviderFactory()
|
||||
{
|
||||
setId(Constants::UVSC_JLINK_PROVIDER_ID);
|
||||
setDisplayName(UvscServerProvider::tr("uVision JLink"));
|
||||
setDisplayName(Tr::tr("uVision JLink"));
|
||||
setCreator([] { return new JLinkUvscServerProvider; });
|
||||
}
|
||||
|
||||
@@ -217,7 +216,7 @@ JLinkUvscServerProviderConfigWidget::JLinkUvscServerProviderConfigWidget(
|
||||
Q_ASSERT(p);
|
||||
|
||||
m_adapterOptionsWidget = new JLinkUvscAdapterOptionsWidget;
|
||||
m_mainLayout->addRow(tr("Adapter options:"), m_adapterOptionsWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Adapter options:"), m_adapterOptionsWidget);
|
||||
|
||||
setFromProvider();
|
||||
|
||||
@@ -265,10 +264,10 @@ JLinkUvscAdapterOptionsWidget::JLinkUvscAdapterOptionsWidget(QWidget *parent)
|
||||
{
|
||||
const auto layout = new QHBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->addWidget(new QLabel(tr("Port:")));
|
||||
layout->addWidget(new QLabel(Tr::tr("Port:")));
|
||||
m_portBox = new QComboBox;
|
||||
layout->addWidget(m_portBox);
|
||||
layout->addWidget(new QLabel(tr("Speed:")));
|
||||
layout->addWidget(new QLabel(Tr::tr("Speed:")));
|
||||
m_speedBox = new QComboBox;
|
||||
layout->addWidget(m_speedBox);
|
||||
setLayout(layout);
|
||||
@@ -324,26 +323,25 @@ JLinkUvscAdapterOptions::Speed JLinkUvscAdapterOptionsWidget::speedAt(int index)
|
||||
|
||||
void JLinkUvscAdapterOptionsWidget::populatePorts()
|
||||
{
|
||||
m_portBox->addItem(tr("JTAG"), JLinkUvscAdapterOptions::JTAG);
|
||||
m_portBox->addItem(tr("SWD"), JLinkUvscAdapterOptions::SWD);
|
||||
m_portBox->addItem(Tr::tr("JTAG"), JLinkUvscAdapterOptions::JTAG);
|
||||
m_portBox->addItem(Tr::tr("SWD"), JLinkUvscAdapterOptions::SWD);
|
||||
}
|
||||
|
||||
void JLinkUvscAdapterOptionsWidget::populateSpeeds()
|
||||
{
|
||||
m_speedBox->clear();
|
||||
m_speedBox->addItem(tr("50MHz"), JLinkUvscAdapterOptions::Speed_50MHz);
|
||||
m_speedBox->addItem(tr("33MHz"), JLinkUvscAdapterOptions::Speed_33MHz);
|
||||
m_speedBox->addItem(tr("25MHz"), JLinkUvscAdapterOptions::Speed_25MHz);
|
||||
m_speedBox->addItem(tr("20MHz"), JLinkUvscAdapterOptions::Speed_20MHz);
|
||||
m_speedBox->addItem(tr("10MHz"), JLinkUvscAdapterOptions::Speed_10MHz);
|
||||
m_speedBox->addItem(tr("5MHz"), JLinkUvscAdapterOptions::Speed_5MHz);
|
||||
m_speedBox->addItem(tr("3MHz"), JLinkUvscAdapterOptions::Speed_3MHz);
|
||||
m_speedBox->addItem(tr("2MHz"), JLinkUvscAdapterOptions::Speed_2MHz);
|
||||
m_speedBox->addItem(tr("1MHz"), JLinkUvscAdapterOptions::Speed_1MHz);
|
||||
m_speedBox->addItem(tr("500kHz"), JLinkUvscAdapterOptions::Speed_500kHz);
|
||||
m_speedBox->addItem(tr("200kHz"), JLinkUvscAdapterOptions::Speed_200kHz);
|
||||
m_speedBox->addItem(tr("100kHz"), JLinkUvscAdapterOptions::Speed_100kHz);
|
||||
m_speedBox->addItem(Tr::tr("50MHz"), JLinkUvscAdapterOptions::Speed_50MHz);
|
||||
m_speedBox->addItem(Tr::tr("33MHz"), JLinkUvscAdapterOptions::Speed_33MHz);
|
||||
m_speedBox->addItem(Tr::tr("25MHz"), JLinkUvscAdapterOptions::Speed_25MHz);
|
||||
m_speedBox->addItem(Tr::tr("20MHz"), JLinkUvscAdapterOptions::Speed_20MHz);
|
||||
m_speedBox->addItem(Tr::tr("10MHz"), JLinkUvscAdapterOptions::Speed_10MHz);
|
||||
m_speedBox->addItem(Tr::tr("5MHz"), JLinkUvscAdapterOptions::Speed_5MHz);
|
||||
m_speedBox->addItem(Tr::tr("3MHz"), JLinkUvscAdapterOptions::Speed_3MHz);
|
||||
m_speedBox->addItem(Tr::tr("2MHz"), JLinkUvscAdapterOptions::Speed_2MHz);
|
||||
m_speedBox->addItem(Tr::tr("1MHz"), JLinkUvscAdapterOptions::Speed_1MHz);
|
||||
m_speedBox->addItem(Tr::tr("500kHz"), JLinkUvscAdapterOptions::Speed_500kHz);
|
||||
m_speedBox->addItem(Tr::tr("200kHz"), JLinkUvscAdapterOptions::Speed_200kHz);
|
||||
m_speedBox->addItem(Tr::tr("100kHz"), JLinkUvscAdapterOptions::Speed_100kHz);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -9,8 +9,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QComboBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// JLinkUvscAdapterOptions
|
||||
|
||||
@@ -66,8 +65,6 @@ public:
|
||||
class JLinkUvscAdapterOptionsWidget;
|
||||
class JLinkUvscServerProviderConfigWidget final : public UvscServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit JLinkUvscServerProviderConfigWidget(JLinkUvscServerProvider *provider);
|
||||
|
||||
@@ -107,5 +104,4 @@ private:
|
||||
QComboBox *m_speedBox = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaldebugsupport.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <debugger/debuggerruncontrol.h>
|
||||
@@ -23,8 +24,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
using namespace Uv;
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
SimulatorUvscServerProvider::SimulatorUvscServerProvider()
|
||||
: UvscServerProvider(Constants::UVSC_SIMULATOR_PROVIDER_ID)
|
||||
{
|
||||
setTypeDisplayName(UvscServerProvider::tr("uVision Simulator"));
|
||||
setTypeDisplayName(Tr::tr("uVision Simulator"));
|
||||
setConfigurationWidgetCreator([this] { return new SimulatorUvscServerProviderConfigWidget(this); });
|
||||
setDriverSelection(defaultSimulatorDriverSelection());
|
||||
}
|
||||
@@ -96,8 +96,7 @@ FilePath SimulatorUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
Uv::ProjectOptionsWriter writer(&ofs);
|
||||
const SimulatorUvProjectOptions projectOptions(this);
|
||||
if (!writer.write(&projectOptions)) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Unable to create a uVision project options template.");
|
||||
errorMessage = Tr::tr("Unable to create a uVision project options template.");
|
||||
return {};
|
||||
}
|
||||
return optionsPath;
|
||||
@@ -108,7 +107,7 @@ FilePath SimulatorUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
SimulatorUvscServerProviderFactory::SimulatorUvscServerProviderFactory()
|
||||
{
|
||||
setId(Constants::UVSC_SIMULATOR_PROVIDER_ID);
|
||||
setDisplayName(UvscServerProvider::tr("uVision Simulator"));
|
||||
setDisplayName(Tr::tr("uVision Simulator"));
|
||||
setCreator([] { return new SimulatorUvscServerProvider; });
|
||||
}
|
||||
|
||||
@@ -121,8 +120,8 @@ SimulatorUvscServerProviderConfigWidget::SimulatorUvscServerProviderConfigWidget
|
||||
Q_ASSERT(p);
|
||||
|
||||
m_limitSpeedCheckBox = new QCheckBox;
|
||||
m_limitSpeedCheckBox->setToolTip(tr("Limit speed to real-time."));
|
||||
m_mainLayout->addRow(tr("Limit speed to real-time:"), m_limitSpeedCheckBox);
|
||||
m_limitSpeedCheckBox->setToolTip(Tr::tr("Limit speed to real-time."));
|
||||
m_mainLayout->addRow(Tr::tr("Limit speed to real-time:"), m_limitSpeedCheckBox);
|
||||
|
||||
setFromProvider();
|
||||
|
||||
@@ -152,5 +151,4 @@ void SimulatorUvscServerProviderConfigWidget::setFromProvider()
|
||||
m_limitSpeedCheckBox->setChecked(p->m_limitSpeed);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -9,8 +9,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QCheckBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// SimulatorUvscServerProvider
|
||||
|
||||
@@ -48,8 +47,6 @@ public:
|
||||
|
||||
class SimulatorUvscServerProviderConfigWidget final : public UvscServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SimulatorUvscServerProviderConfigWidget(SimulatorUvscServerProvider *provider);
|
||||
|
||||
@@ -62,5 +59,4 @@ private:
|
||||
QCheckBox *m_limitSpeedCheckBox = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include "uvprojectwriter.h"
|
||||
|
||||
#include <baremetal/baremetalconstants.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/baremetaldebugsupport.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
@@ -25,8 +26,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
using namespace Uv;
|
||||
|
||||
@@ -111,7 +111,7 @@ bool StLinkUvscAdapterOptions::operator==(const StLinkUvscAdapterOptions &other)
|
||||
StLinkUvscServerProvider::StLinkUvscServerProvider()
|
||||
: UvscServerProvider(Constants::UVSC_STLINK_PROVIDER_ID)
|
||||
{
|
||||
setTypeDisplayName(UvscServerProvider::tr("uVision St-Link"));
|
||||
setTypeDisplayName(Tr::tr("uVision St-Link"));
|
||||
setConfigurationWidgetCreator([this] { return new StLinkUvscServerProviderConfigWidget(this); });
|
||||
setSupportedDrivers({"STLink\\ST-LINKIII-KEIL_SWO.dll"});
|
||||
}
|
||||
@@ -148,8 +148,7 @@ FilePath StLinkUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
Uv::ProjectOptionsWriter writer(&ofs);
|
||||
const StLinkUvProjectOptions projectOptions(this);
|
||||
if (!writer.write(&projectOptions)) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Unable to create a uVision project options template.");
|
||||
errorMessage = Tr::tr("Unable to create a uVision project options template.");
|
||||
return {};
|
||||
}
|
||||
return optionsPath;
|
||||
@@ -160,7 +159,7 @@ FilePath StLinkUvscServerProvider::optionsFilePath(DebuggerRunTool *runTool,
|
||||
StLinkUvscServerProviderFactory::StLinkUvscServerProviderFactory()
|
||||
{
|
||||
setId(Constants::UVSC_STLINK_PROVIDER_ID);
|
||||
setDisplayName(UvscServerProvider::tr("uVision St-Link"));
|
||||
setDisplayName(Tr::tr("uVision St-Link"));
|
||||
setCreator([] { return new StLinkUvscServerProvider; });
|
||||
}
|
||||
|
||||
@@ -173,7 +172,7 @@ StLinkUvscServerProviderConfigWidget::StLinkUvscServerProviderConfigWidget(
|
||||
Q_ASSERT(p);
|
||||
|
||||
m_adapterOptionsWidget = new StLinkUvscAdapterOptionsWidget;
|
||||
m_mainLayout->addRow(tr("Adapter options:"), m_adapterOptionsWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Adapter options:"), m_adapterOptionsWidget);
|
||||
|
||||
setFromProvider();
|
||||
|
||||
@@ -221,10 +220,10 @@ StLinkUvscAdapterOptionsWidget::StLinkUvscAdapterOptionsWidget(QWidget *parent)
|
||||
{
|
||||
const auto layout = new QHBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->addWidget(new QLabel(tr("Port:")));
|
||||
layout->addWidget(new QLabel(Tr::tr("Port:")));
|
||||
m_portBox = new QComboBox;
|
||||
layout->addWidget(m_portBox);
|
||||
layout->addWidget(new QLabel(tr("Speed:")));
|
||||
layout->addWidget(new QLabel(Tr::tr("Speed:")));
|
||||
m_speedBox = new QComboBox;
|
||||
layout->addWidget(m_speedBox);
|
||||
setLayout(layout);
|
||||
@@ -280,8 +279,8 @@ StLinkUvscAdapterOptions::Speed StLinkUvscAdapterOptionsWidget::speedAt(int inde
|
||||
|
||||
void StLinkUvscAdapterOptionsWidget::populatePorts()
|
||||
{
|
||||
m_portBox->addItem(tr("JTAG"), StLinkUvscAdapterOptions::JTAG);
|
||||
m_portBox->addItem(tr("SWD"), StLinkUvscAdapterOptions::SWD);
|
||||
m_portBox->addItem(Tr::tr("JTAG"), StLinkUvscAdapterOptions::JTAG);
|
||||
m_portBox->addItem(Tr::tr("SWD"), StLinkUvscAdapterOptions::SWD);
|
||||
}
|
||||
|
||||
void StLinkUvscAdapterOptionsWidget::populateSpeeds()
|
||||
@@ -290,27 +289,26 @@ void StLinkUvscAdapterOptionsWidget::populateSpeeds()
|
||||
|
||||
const auto port = portAt(m_portBox->currentIndex());
|
||||
if (port == StLinkUvscAdapterOptions::JTAG) {
|
||||
m_speedBox->addItem(tr("9MHz"), StLinkUvscAdapterOptions::Speed_9MHz);
|
||||
m_speedBox->addItem(tr("4.5MHz"), StLinkUvscAdapterOptions::Speed_4_5MHz);
|
||||
m_speedBox->addItem(tr("2.25MHz"), StLinkUvscAdapterOptions::Speed_2_25MHz);
|
||||
m_speedBox->addItem(tr("1.12MHz"), StLinkUvscAdapterOptions::Speed_1_12MHz);
|
||||
m_speedBox->addItem(tr("560kHz"), StLinkUvscAdapterOptions::Speed_560kHz);
|
||||
m_speedBox->addItem(tr("280kHz"), StLinkUvscAdapterOptions::Speed_280kHz);
|
||||
m_speedBox->addItem(tr("140kHz"), StLinkUvscAdapterOptions::Speed_140kHz);
|
||||
m_speedBox->addItem(Tr::tr("9MHz"), StLinkUvscAdapterOptions::Speed_9MHz);
|
||||
m_speedBox->addItem(Tr::tr("4.5MHz"), StLinkUvscAdapterOptions::Speed_4_5MHz);
|
||||
m_speedBox->addItem(Tr::tr("2.25MHz"), StLinkUvscAdapterOptions::Speed_2_25MHz);
|
||||
m_speedBox->addItem(Tr::tr("1.12MHz"), StLinkUvscAdapterOptions::Speed_1_12MHz);
|
||||
m_speedBox->addItem(Tr::tr("560kHz"), StLinkUvscAdapterOptions::Speed_560kHz);
|
||||
m_speedBox->addItem(Tr::tr("280kHz"), StLinkUvscAdapterOptions::Speed_280kHz);
|
||||
m_speedBox->addItem(Tr::tr("140kHz"), StLinkUvscAdapterOptions::Speed_140kHz);
|
||||
} else if (port == StLinkUvscAdapterOptions::SWD) {
|
||||
m_speedBox->addItem(tr("4MHz"), StLinkUvscAdapterOptions::Speed_4MHz);
|
||||
m_speedBox->addItem(tr("1.8MHz"), StLinkUvscAdapterOptions::Speed_1_8MHz);
|
||||
m_speedBox->addItem(tr("950kHz"), StLinkUvscAdapterOptions::Speed_950kHz);
|
||||
m_speedBox->addItem(tr("480kHz"), StLinkUvscAdapterOptions::Speed_480kHz);
|
||||
m_speedBox->addItem(tr("240kHz"), StLinkUvscAdapterOptions::Speed_240kHz);
|
||||
m_speedBox->addItem(tr("125kHz"), StLinkUvscAdapterOptions::Speed_125kHz);
|
||||
m_speedBox->addItem(tr("100kHz"), StLinkUvscAdapterOptions::Speed_100kHz);
|
||||
m_speedBox->addItem(tr("50kHz"), StLinkUvscAdapterOptions::Speed_50kHz);
|
||||
m_speedBox->addItem(tr("25kHz"), StLinkUvscAdapterOptions::Speed_25kHz);
|
||||
m_speedBox->addItem(tr("15kHz"), StLinkUvscAdapterOptions::Speed_15kHz);
|
||||
m_speedBox->addItem(tr("5kHz"), StLinkUvscAdapterOptions::Speed_5kHz);
|
||||
m_speedBox->addItem(Tr::tr("4MHz"), StLinkUvscAdapterOptions::Speed_4MHz);
|
||||
m_speedBox->addItem(Tr::tr("1.8MHz"), StLinkUvscAdapterOptions::Speed_1_8MHz);
|
||||
m_speedBox->addItem(Tr::tr("950kHz"), StLinkUvscAdapterOptions::Speed_950kHz);
|
||||
m_speedBox->addItem(Tr::tr("480kHz"), StLinkUvscAdapterOptions::Speed_480kHz);
|
||||
m_speedBox->addItem(Tr::tr("240kHz"), StLinkUvscAdapterOptions::Speed_240kHz);
|
||||
m_speedBox->addItem(Tr::tr("125kHz"), StLinkUvscAdapterOptions::Speed_125kHz);
|
||||
m_speedBox->addItem(Tr::tr("100kHz"), StLinkUvscAdapterOptions::Speed_100kHz);
|
||||
m_speedBox->addItem(Tr::tr("50kHz"), StLinkUvscAdapterOptions::Speed_50kHz);
|
||||
m_speedBox->addItem(Tr::tr("25kHz"), StLinkUvscAdapterOptions::Speed_25kHz);
|
||||
m_speedBox->addItem(Tr::tr("15kHz"), StLinkUvscAdapterOptions::Speed_15kHz);
|
||||
m_speedBox->addItem(Tr::tr("5kHz"), StLinkUvscAdapterOptions::Speed_5kHz);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -9,8 +9,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QComboBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
// StLinkUvscAdapterOptions
|
||||
|
||||
@@ -69,8 +68,6 @@ public:
|
||||
class StLinkUvscAdapterOptionsWidget;
|
||||
class StLinkUvscServerProviderConfigWidget final : public UvscServerProviderConfigWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StLinkUvscServerProviderConfigWidget(StLinkUvscServerProvider *provider);
|
||||
|
||||
@@ -110,5 +107,4 @@ private:
|
||||
QComboBox *m_speedBox = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -21,9 +21,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
const char kProjectSchema[] = "2.1";
|
||||
|
||||
@@ -238,6 +236,4 @@ ProjectOptions::ProjectOptions(const UvscServerProvider *provider)
|
||||
m_debugOpt->appendProperty("uTrg", int(!useSimulator));
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // namespace BareMetal::Internal::Uv
|
||||
|
@@ -10,8 +10,7 @@
|
||||
|
||||
namespace Debugger { class DebuggerRunTool; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
class UvscServerProvider;
|
||||
|
||||
@@ -49,6 +48,6 @@ protected:
|
||||
Gen::Xml::PropertyGroup *m_debugOpt = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // Uv
|
||||
|
||||
} // BareMetal::Internal
|
||||
|
@@ -3,9 +3,7 @@
|
||||
|
||||
#include "uvprojectwriter.h"
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// ProjectWriter
|
||||
|
||||
@@ -51,6 +49,4 @@ void ProjectOptionsWriter::visitProjectOptionsEnd(
|
||||
writer()->writeEndElement();
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -5,9 +5,7 @@
|
||||
|
||||
#include "xmlprojectwriter.h"
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// ProjectWriter
|
||||
|
||||
@@ -35,6 +33,4 @@ private:
|
||||
void visitProjectOptionsEnd(const Gen::Xml::ProjectOptions *projectOptions) final;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -1,15 +1,16 @@
|
||||
// Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "uvscserverprovider.h"
|
||||
|
||||
#include "uvproject.h"
|
||||
#include "uvprojectwriter.h"
|
||||
#include "uvtargetdeviceviewer.h"
|
||||
#include "uvtargetdriverviewer.h"
|
||||
|
||||
#include "uvscserverprovider.h"
|
||||
|
||||
#include <baremetal/baremetaldebugsupport.h>
|
||||
#include <baremetal/baremetaldevice.h>
|
||||
#include <baremetal/baremetaltr.h>
|
||||
#include <baremetal/debugserverprovidermanager.h>
|
||||
|
||||
#include <debugger/debuggerkitinformation.h>
|
||||
@@ -30,8 +31,7 @@ using namespace Debugger;
|
||||
using namespace ProjectExplorer;
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace BareMetal::Internal {
|
||||
|
||||
using namespace Uv;
|
||||
|
||||
@@ -174,10 +174,10 @@ bool UvscServerProvider::aboutToRun(DebuggerRunTool *runTool, QString &errorMess
|
||||
|
||||
const FilePath bin = exeAspect->executable;
|
||||
if (bin.isEmpty()) {
|
||||
errorMessage = BareMetalDebugSupport::tr("Cannot debug: Local executable is not set.");
|
||||
errorMessage = Tr::tr("Cannot debug: Local executable is not set.");
|
||||
return false;
|
||||
} else if (!bin.exists()) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
errorMessage = Tr::tr(
|
||||
"Cannot debug: Could not find executable for \"%1\".").arg(bin.toString());
|
||||
return false;
|
||||
}
|
||||
@@ -236,8 +236,7 @@ FilePath UvscServerProvider::projectFilePath(DebuggerRunTool *runTool, QString &
|
||||
Uv::ProjectWriter writer(&ofs);
|
||||
const Uv::Project project(this, runTool);
|
||||
if (!writer.write(&project)) {
|
||||
errorMessage = BareMetalDebugSupport::tr(
|
||||
"Unable to create a uVision project template.");
|
||||
errorMessage = Tr::tr("Unable to create a uVision project template.");
|
||||
return {};
|
||||
}
|
||||
return projectPath;
|
||||
@@ -262,16 +261,16 @@ UvscServerProviderConfigWidget::UvscServerProviderConfigWidget(UvscServerProvide
|
||||
: IDebugServerProviderConfigWidget(provider)
|
||||
{
|
||||
m_hostWidget = new HostWidget;
|
||||
m_mainLayout->addRow(tr("Host:"), m_hostWidget);
|
||||
m_mainLayout->addRow(Tr::tr("Host:"), m_hostWidget);
|
||||
m_toolsIniChooser = new PathChooser;
|
||||
m_toolsIniChooser->setExpectedKind(PathChooser::File);
|
||||
m_toolsIniChooser->setPromptDialogFilter("tools.ini");
|
||||
m_toolsIniChooser->setPromptDialogTitle(tr("Choose Keil Toolset Configuration File"));
|
||||
m_mainLayout->addRow(tr("Tools file path:"), m_toolsIniChooser);
|
||||
m_toolsIniChooser->setPromptDialogTitle(Tr::tr("Choose Keil Toolset Configuration File"));
|
||||
m_mainLayout->addRow(Tr::tr("Tools file path:"), m_toolsIniChooser);
|
||||
m_deviceSelector = new DeviceSelector;
|
||||
m_mainLayout->addRow(tr("Target device:"), m_deviceSelector);
|
||||
m_mainLayout->addRow(Tr::tr("Target device:"), m_deviceSelector);
|
||||
m_driverSelector = new DriverSelector(provider->supportedDrivers());
|
||||
m_mainLayout->addRow(tr("Target driver:"), m_driverSelector);
|
||||
m_mainLayout->addRow(Tr::tr("Target driver:"), m_driverSelector);
|
||||
|
||||
setFromProvider();
|
||||
|
||||
@@ -371,7 +370,8 @@ UvscServerProviderRunner::UvscServerProviderRunner(ProjectExplorer::RunControl *
|
||||
|
||||
void UvscServerProviderRunner::start()
|
||||
{
|
||||
const QString msg = RunControl::tr("Starting %1 ...").arg(m_process.commandLine().displayName());
|
||||
const QString msg = Tr::tr("Starting %1 ...")
|
||||
.arg(m_process.commandLine().displayName());
|
||||
appendMessage(msg, NormalMessageFormat);
|
||||
|
||||
m_process.start();
|
||||
@@ -382,5 +382,4 @@ void UvscServerProviderRunner::stop()
|
||||
m_process.terminate();
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal
|
||||
|
@@ -28,8 +28,6 @@ class DriverSelector;
|
||||
|
||||
class UvscServerProvider : public IDebugServerProvider
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(BareMetal::Internal::UvscServerProvider)
|
||||
|
||||
public:
|
||||
enum ToolsetNumber {
|
||||
UnknownToolsetNumber = -1,
|
||||
|
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "uvtargetdevicemodel.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
|
||||
#include <QDirIterator>
|
||||
@@ -12,9 +14,7 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
static QString extractPacksPath(const FilePath &toolsIniFile)
|
||||
{
|
||||
@@ -188,7 +188,7 @@ public:
|
||||
DeviceSelectionModel::DeviceSelectionModel(QObject *parent)
|
||||
: TreeModel<DeviceSelectionItem>(parent)
|
||||
{
|
||||
setHeader({tr("Name"), tr("Version"), tr("Vendor")});
|
||||
setHeader({Tr::tr("Name"), Tr::tr("Version"), Tr::tr("Vendor")});
|
||||
}
|
||||
|
||||
void DeviceSelectionModel::fillAllPacks(const FilePath &toolsIniFile)
|
||||
@@ -478,6 +478,4 @@ DeviceSelection DeviceSelectionView::buildSelection(const DeviceSelectionItem *i
|
||||
return selection;
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -13,9 +13,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QXmlStreamReader;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DeviceSelectionModel
|
||||
|
||||
@@ -56,6 +54,4 @@ private:
|
||||
DeviceSelection buildSelection(const DeviceSelectionItem *item) const;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "uvtargetdeviceselection.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QDataWidgetMapper>
|
||||
#include <QGridLayout>
|
||||
@@ -11,9 +13,7 @@
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// Software package data keys.
|
||||
constexpr char packageDescrKeyC[] = "PackageDescription";
|
||||
@@ -243,7 +243,7 @@ private:
|
||||
DeviceSelectionMemoryModel::DeviceSelectionMemoryModel(DeviceSelection &selection, QObject *parent)
|
||||
: TreeModel<TreeItem, DeviceSelectionMemoryItem>(parent), m_selection(selection)
|
||||
{
|
||||
setHeader({tr("ID"), tr("Start"), tr("Size")});
|
||||
setHeader({Tr::tr("ID"), Tr::tr("Start"), Tr::tr("Size")});
|
||||
refresh();
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ DeviceSelectionAlgorithmModel::DeviceSelectionAlgorithmModel(DeviceSelection &se
|
||||
QObject *parent)
|
||||
: TreeModel<TreeItem, DeviceSelectionAlgorithmItem>(parent), m_selection(selection)
|
||||
{
|
||||
setHeader({tr("Name"), tr("FLASH Start"), tr("FLASH Size"), tr("RAM Start"), tr("RAM Size")});
|
||||
setHeader({Tr::tr("Name"), Tr::tr("FLASH Start"), Tr::tr("FLASH Size"), Tr::tr("RAM Start"), Tr::tr("RAM Size")});
|
||||
refresh();
|
||||
}
|
||||
|
||||
@@ -373,27 +373,27 @@ DeviceSelectionAlgorithmView::DeviceSelectionAlgorithmView(DeviceSelection &sele
|
||||
const auto layout = new QGridLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
m_comboBox = new QComboBox;
|
||||
m_comboBox->setToolTip(tr("Algorithm path."));
|
||||
m_comboBox->setToolTip(Tr::tr("Algorithm path."));
|
||||
m_comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
m_comboBox->setModel(model);
|
||||
layout->addWidget(m_comboBox, 0, 0, 1, 0);
|
||||
// Add FLASH area settings.
|
||||
const auto flashLabel = new QLabel(tr("FLASH:"));
|
||||
const auto flashLabel = new QLabel(Tr::tr("FLASH:"));
|
||||
layout->addWidget(flashLabel, 1, 0);
|
||||
const auto flashStartEdit = new QLineEdit;
|
||||
flashStartEdit->setToolTip(tr("Start address."));
|
||||
flashStartEdit->setToolTip(Tr::tr("Start address."));
|
||||
layout->addWidget(flashStartEdit, 1, 1);
|
||||
const auto flashSizeEdit = new QLineEdit;
|
||||
flashSizeEdit->setToolTip(tr("Size."));
|
||||
flashSizeEdit->setToolTip(Tr::tr("Size."));
|
||||
layout->addWidget(flashSizeEdit, 1, 2);
|
||||
// Add RAM area settings.
|
||||
const auto ramLabel = new QLabel(tr("RAM:"));
|
||||
const auto ramLabel = new QLabel(Tr::tr("RAM:"));
|
||||
layout->addWidget(ramLabel, 2, 0);
|
||||
const auto ramStartEdit = new QLineEdit;
|
||||
ramStartEdit->setToolTip(tr("Start address."));
|
||||
ramStartEdit->setToolTip(Tr::tr("Start address."));
|
||||
layout->addWidget(ramStartEdit, 2, 1);
|
||||
const auto ramSizeEdit = new QLineEdit;
|
||||
ramSizeEdit->setToolTip(tr("Size."));
|
||||
ramSizeEdit->setToolTip(Tr::tr("Size."));
|
||||
layout->addWidget(ramSizeEdit, 2, 2);
|
||||
|
||||
setLayout(layout);
|
||||
@@ -431,6 +431,4 @@ void DeviceSelectionAlgorithmView::refresh()
|
||||
qobject_cast<DeviceSelectionAlgorithmModel *>(m_comboBox->model())->refresh();
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -10,9 +10,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QComboBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DeviceSelection
|
||||
|
||||
@@ -142,8 +140,6 @@ private:
|
||||
QComboBox *m_comboBox = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
||||
Q_DECLARE_METATYPE(BareMetal::Internal::Uv::DeviceSelection)
|
||||
|
@@ -1,9 +1,12 @@
|
||||
// Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "uvtargetdeviceviewer.h"
|
||||
|
||||
#include "uvproject.h" // for buildPackageId()
|
||||
#include "uvtargetdevicemodel.h"
|
||||
#include "uvtargetdeviceviewer.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <utils/pathchooser.h>
|
||||
|
||||
@@ -16,9 +19,7 @@
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DeviceSelectorToolPanel
|
||||
|
||||
@@ -27,7 +28,7 @@ DeviceSelectorToolPanel::DeviceSelectorToolPanel(QWidget *parent)
|
||||
{
|
||||
const auto layout = new QHBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
const auto button = new QPushButton(tr("Manage..."));
|
||||
const auto button = new QPushButton(Tr::tr("Manage..."));
|
||||
layout->addWidget(button);
|
||||
setLayout(layout);
|
||||
connect(button, &QPushButton::clicked, this, &DeviceSelectorToolPanel::clicked);
|
||||
@@ -52,24 +53,24 @@ DeviceSelectorDetailsPanel::DeviceSelectorDetailsPanel(DeviceSelection &selectio
|
||||
const auto layout = new QFormLayout;
|
||||
m_vendorEdit = new QLineEdit;
|
||||
m_vendorEdit->setReadOnly(true);
|
||||
layout->addRow(tr("Vendor:"), m_vendorEdit);
|
||||
layout->addRow(Tr::tr("Vendor:"), m_vendorEdit);
|
||||
m_packageEdit = new QLineEdit;
|
||||
m_packageEdit->setReadOnly(true);
|
||||
layout->addRow(tr("Package:"), m_packageEdit);
|
||||
layout->addRow(Tr::tr("Package:"), m_packageEdit);
|
||||
m_descEdit = new QPlainTextEdit;
|
||||
m_descEdit->setReadOnly(true);
|
||||
layout->addRow(tr("Description:"), m_descEdit);
|
||||
layout->addRow(Tr::tr("Description:"), m_descEdit);
|
||||
m_memoryView = new DeviceSelectionMemoryView(m_selection);
|
||||
layout->addRow(tr("Memory:"), m_memoryView);
|
||||
layout->addRow(Tr::tr("Memory:"), m_memoryView);
|
||||
m_algorithmView = new DeviceSelectionAlgorithmView(m_selection);
|
||||
layout->addRow(tr("Flash algorithm:"), m_algorithmView);
|
||||
layout->addRow(Tr::tr("Flash algorithm:"), m_algorithmView);
|
||||
m_peripheralDescriptionFileChooser = new Utils::PathChooser(this);
|
||||
m_peripheralDescriptionFileChooser->setExpectedKind(Utils::PathChooser::File);
|
||||
m_peripheralDescriptionFileChooser->setPromptDialogFilter(
|
||||
tr("Peripheral description files (*.svd)"));
|
||||
Tr::tr("Peripheral description files (*.svd)"));
|
||||
m_peripheralDescriptionFileChooser->setPromptDialogTitle(
|
||||
tr("Select Peripheral Description File"));
|
||||
layout->addRow(tr("Peripheral description file:"),
|
||||
Tr::tr("Select Peripheral Description File"));
|
||||
layout->addRow(Tr::tr("Peripheral description file:"),
|
||||
m_peripheralDescriptionFileChooser);
|
||||
setLayout(layout);
|
||||
|
||||
@@ -142,8 +143,8 @@ Utils::FilePath DeviceSelector::toolsIniFile() const
|
||||
void DeviceSelector::setSelection(const DeviceSelection &selection)
|
||||
{
|
||||
m_selection = selection;
|
||||
const auto summary = m_selection.name.isEmpty()
|
||||
? tr("Target device not selected.") : m_selection.name;
|
||||
const QString summary = m_selection.name.isEmpty()
|
||||
? Tr::tr("Target device not selected.") : m_selection.name;
|
||||
setSummaryText(summary);
|
||||
setExpandable(!m_selection.name.isEmpty());
|
||||
|
||||
@@ -163,7 +164,7 @@ DeviceSelection DeviceSelector::selection() const
|
||||
DeviceSelectionDialog::DeviceSelectionDialog(const Utils::FilePath &toolsIniFile, QWidget *parent)
|
||||
: QDialog(parent), m_model(new DeviceSelectionModel(this)), m_view(new DeviceSelectionView(this))
|
||||
{
|
||||
setWindowTitle(tr("Available Target Devices"));
|
||||
setWindowTitle(Tr::tr("Available Target Devices"));
|
||||
|
||||
const auto layout = new QVBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
@@ -194,6 +195,4 @@ DeviceSelection DeviceSelectionDialog::selection() const
|
||||
return m_selection;
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -18,9 +18,7 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace Utils { class PathChooser; }
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
class DeviceSelectionModel;
|
||||
class DeviceSelectionView;
|
||||
@@ -108,6 +106,4 @@ private:
|
||||
DeviceSelectionView *m_view = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -3,14 +3,14 @@
|
||||
|
||||
#include "uvtargetdrivermodel.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
constexpr char cpuDllKey[] = "CPUDLL";
|
||||
constexpr char driverKey[] = "TDRV";
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
DriverSelectionModel::DriverSelectionModel(QObject *parent)
|
||||
: TreeModel<DriverSelectionItem>(parent)
|
||||
{
|
||||
setHeader({tr("Path")});
|
||||
setHeader({Tr::tr("Path")});
|
||||
}
|
||||
|
||||
void DriverSelectionModel::fillDrivers(const FilePath &toolsIniFile,
|
||||
@@ -181,6 +181,4 @@ void DriverSelectionView::currentChanged(const QModelIndex ¤t, const QMode
|
||||
emit driverSelected(selection);
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -9,9 +9,7 @@
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/treemodel.h>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DriverSelectionModel
|
||||
|
||||
@@ -41,6 +39,4 @@ private:
|
||||
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) final;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -3,15 +3,15 @@
|
||||
|
||||
#include "uvtargetdriverselection.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLineEdit>
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// Driver data keys.
|
||||
constexpr char driverIndexKeyC[] = "DriverIndex";
|
||||
@@ -79,7 +79,7 @@ private:
|
||||
DriverSelectionCpuDllModel::DriverSelectionCpuDllModel(DriverSelection &selection, QObject *parent)
|
||||
: TreeModel<TreeItem, DriverSelectionCpuDllItem>(parent), m_selection(selection)
|
||||
{
|
||||
setHeader({tr("Name")});
|
||||
setHeader({Tr::tr("Name")});
|
||||
refresh();
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ DriverSelectionCpuDllView::DriverSelectionCpuDllView(DriverSelection &selection,
|
||||
const auto layout = new QHBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
m_comboBox = new QComboBox;
|
||||
m_comboBox->setToolTip(tr("Debugger CPU library (depends on a CPU core)."));
|
||||
m_comboBox->setToolTip(Tr::tr("Debugger CPU library (depends on a CPU core)."));
|
||||
m_comboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
m_comboBox->setModel(model);
|
||||
layout->addWidget(m_comboBox);
|
||||
@@ -125,6 +125,4 @@ void DriverSelectionCpuDllView::refresh()
|
||||
qobject_cast<DriverSelectionCpuDllModel *>(m_comboBox->model())->refresh();
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -10,9 +10,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QComboBox;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DriverSelection
|
||||
|
||||
@@ -65,8 +63,6 @@ private:
|
||||
QComboBox *m_comboBox = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
||||
Q_DECLARE_METATYPE(BareMetal::Internal::Uv::DriverSelection)
|
||||
|
@@ -1,10 +1,11 @@
|
||||
// Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com>
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include "uvproject.h" // for targetUVisionPath()
|
||||
#include "uvtargetdrivermodel.h"
|
||||
#include "uvtargetdriverviewer.h"
|
||||
|
||||
#include <baremetal/baremetaltr.h>
|
||||
|
||||
#include <QDialogButtonBox>
|
||||
#include <QFormLayout>
|
||||
#include <QHBoxLayout>
|
||||
@@ -14,9 +15,7 @@
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
// DriverSelectorToolPanel
|
||||
|
||||
@@ -25,7 +24,7 @@ DriverSelectorToolPanel::DriverSelectorToolPanel(QWidget *parent)
|
||||
{
|
||||
const auto layout = new QHBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
const auto button = new QPushButton(tr("Manage..."));
|
||||
const auto button = new QPushButton(Tr::tr("Manage..."));
|
||||
layout->addWidget(button);
|
||||
setLayout(layout);
|
||||
connect(button, &QPushButton::clicked, this, &DriverSelectorToolPanel::clicked);
|
||||
@@ -49,10 +48,10 @@ DriverSelectorDetailsPanel::DriverSelectorDetailsPanel(DriverSelection &selectio
|
||||
const auto layout = new QFormLayout;
|
||||
m_dllEdit = new QLineEdit;;
|
||||
m_dllEdit->setReadOnly(true);
|
||||
m_dllEdit->setToolTip(tr("Debugger driver library."));
|
||||
layout->addRow(tr("Driver library:"), m_dllEdit);
|
||||
m_dllEdit->setToolTip(Tr::tr("Debugger driver library."));
|
||||
layout->addRow(Tr::tr("Driver library:"), m_dllEdit);
|
||||
m_cpuDllView = new DriverSelectionCpuDllView(m_selection);
|
||||
layout->addRow(tr("CPU library:"), m_cpuDllView);
|
||||
layout->addRow(Tr::tr("CPU library:"), m_cpuDllView);
|
||||
setLayout(layout);
|
||||
|
||||
refresh();
|
||||
@@ -111,7 +110,7 @@ void DriverSelector::setSelection(const DriverSelection &selection)
|
||||
{
|
||||
m_selection = selection;
|
||||
const auto summary = m_selection.name.isEmpty()
|
||||
? tr("Target driver not selected.") : m_selection.name;
|
||||
? Tr::tr("Target driver not selected.") : m_selection.name;
|
||||
setSummaryText(summary);
|
||||
setExpandable(!m_selection.name.isEmpty());
|
||||
|
||||
@@ -134,7 +133,7 @@ DriverSelectionDialog::DriverSelectionDialog(const Utils::FilePath &toolsIniFile
|
||||
: QDialog(parent), m_model(new DriverSelectionModel(this)),
|
||||
m_view(new DriverSelectionView(this))
|
||||
{
|
||||
setWindowTitle(tr("Available Target Drivers"));
|
||||
setWindowTitle(Tr::tr("Available Target Drivers"));
|
||||
|
||||
const auto layout = new QVBoxLayout;
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
@@ -165,6 +164,4 @@ DriverSelection DriverSelectionDialog::selection() const
|
||||
return m_selection;
|
||||
}
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -15,9 +15,7 @@ QT_BEGIN_NAMESPACE
|
||||
class QLineEdit;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Internal {
|
||||
namespace Uv {
|
||||
namespace BareMetal::Internal::Uv {
|
||||
|
||||
class DriverSelectionModel;
|
||||
class DriverSelectionView;
|
||||
@@ -102,6 +100,4 @@ private:
|
||||
DriverSelectionView *m_view = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Uv
|
||||
} // namespace Internal
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Internal::Uv
|
||||
|
@@ -5,9 +5,7 @@
|
||||
|
||||
#include <QXmlStreamAttribute>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Gen {
|
||||
namespace Xml {
|
||||
namespace BareMetal::Gen::Xml {
|
||||
|
||||
class Project;
|
||||
class ProjectOptions;
|
||||
@@ -34,6 +32,4 @@ public:
|
||||
virtual void visitPropertyGroupEnd(const PropertyGroup *propertyGroup) = 0;
|
||||
};
|
||||
|
||||
} // namespace Xml
|
||||
} // namespace Gen
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Gen::Xml
|
||||
|
@@ -4,9 +4,7 @@
|
||||
#include "xmlnodevisitor.h"
|
||||
#include "xmlproject.h"
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Gen {
|
||||
namespace Xml {
|
||||
namespace BareMetal::Gen::Xml {
|
||||
|
||||
// Project
|
||||
|
||||
@@ -32,6 +30,4 @@ void ProjectOptions::accept(INodeVisitor *visitor) const
|
||||
visitor->visitProjectOptionsEnd(this);
|
||||
}
|
||||
|
||||
} // namespace Xml
|
||||
} // namespace Gen
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Gen::Xml
|
||||
|
@@ -7,9 +7,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace BareMetal {
|
||||
namespace Gen {
|
||||
namespace Xml {
|
||||
namespace BareMetal::Gen::Xml {
|
||||
|
||||
// Project
|
||||
|
||||
@@ -27,6 +25,4 @@ public:
|
||||
void accept(INodeVisitor *visitor) const final;
|
||||
};
|
||||
|
||||
} // namespace Xml
|
||||
} // namespace Gen
|
||||
} // namespace BareMetal
|
||||
} // BareMetal::Gen::Xml
|
||||
|