forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/9.0'
Conflicts: src/plugins/cppeditor/cppeditorplugin.cpp src/plugins/docker/dockerdevice.cpp Change-Id: I41747ff9490e4ab20340d4d4acb4655100aaa3d2
This commit is contained in:
@@ -682,6 +682,20 @@
|
|||||||
\li An import statement has been added twice. For more information,
|
\li An import statement has been added twice. For more information,
|
||||||
see \l{Import Statements}.
|
see \l{Import Statements}.
|
||||||
|
|
||||||
|
\row
|
||||||
|
\li M401
|
||||||
|
\li Error
|
||||||
|
\li Do not reference the root item as alias
|
||||||
|
\li The alias property cannot reference the root component directly.
|
||||||
|
Create an instance of the component instead.
|
||||||
|
|
||||||
|
\row
|
||||||
|
\li M402
|
||||||
|
\li Warning
|
||||||
|
\li Avoid referencing the root item in a hierarchy
|
||||||
|
\li The alias property cannot reference the root component in a
|
||||||
|
hierarchy. Create an instance of the component instead.
|
||||||
|
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
\section1 Resetting the Code Model
|
\section1 Resetting the Code Model
|
||||||
|
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
\title Using Squish
|
\title Using Squish
|
||||||
|
|
||||||
\l{https://doc.froglogic.com/squish/latest/}{Squish} is an automated GUI
|
\l{https://www.qt.io/product/quality-assurance/squish}{Squish} is an automated GUI
|
||||||
testing framework for testing Android, iOS, Java, Qt, Tk, Windows, and
|
testing framework for testing Android, iOS, Java, \macos, Qt, Tk, Windows, and
|
||||||
XView applications, as well as HTML-based web applications running in
|
XView applications, as well as HTML-based web applications running in
|
||||||
browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and
|
browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and
|
||||||
Microsoft Internet Explorer and Edge.
|
Microsoft Internet Explorer and Edge.
|
||||||
|
@@ -175,19 +175,24 @@
|
|||||||
|
|
||||||
\section1 Supported Qt for MCUs SDKs
|
\section1 Supported Qt for MCUs SDKs
|
||||||
|
|
||||||
Since version 7.0.0, \QC supports version 2.0 and later of the Qt for MCUs SDK.
|
\note The Qt for MCUs SDK 2.3 requires \QC 9.0.0, or later.
|
||||||
For older versions, refer to the following table.
|
|
||||||
|
The following table lists the \QC versions you can use to develop
|
||||||
|
applications with particular Qt for MCUs SDK versions.
|
||||||
|
|
||||||
\table
|
\table
|
||||||
\header
|
\header
|
||||||
\li \QC version
|
\li \QC version
|
||||||
\li Qt for MCUs SDK version
|
\li Qt for MCUs SDK version
|
||||||
\row
|
\row
|
||||||
\li 7.0.0 or later
|
\li 9.0.0 or later
|
||||||
\li 2.0 or later
|
\li 2.0 or later
|
||||||
|
\row
|
||||||
|
\li 7.0.0 up to 8.0.2
|
||||||
|
\li 2.0 up to 2.2
|
||||||
\row
|
\row
|
||||||
\li 6.0.x
|
\li 6.0.x
|
||||||
\li 1.3 or later, including 2.0 or later
|
\li 1.3 up to 2.2
|
||||||
\row
|
\row
|
||||||
\li 4.12.4 up to 5.0.3
|
\li 4.12.4 up to 5.0.3
|
||||||
\li 1.3 up to 1.9
|
\li 1.3 up to 1.9
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
\li {3,1} Development Platform
|
\li {3,1} Development Platform
|
||||||
\header
|
\header
|
||||||
\li \l Linux
|
\li \l Linux
|
||||||
\li \l macOS
|
\li \l \macos
|
||||||
\li \l Windows
|
\li \l Windows
|
||||||
\row
|
\row
|
||||||
\li \l Android
|
\li \l Android
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
\li
|
\li
|
||||||
\row
|
\row
|
||||||
\li \l{Microcontroller Units (MCU)}{MCUs}
|
\li \l{Microcontroller Units (MCU)}{MCUs}
|
||||||
\li
|
\li \image ok.png
|
||||||
\li
|
\li
|
||||||
\li \image ok.png
|
\li \image ok.png
|
||||||
\row
|
\row
|
||||||
|
@@ -165,8 +165,15 @@ def qdump__std____1__stack(d, value):
|
|||||||
|
|
||||||
def std_1_string_dumper(d, value):
|
def std_1_string_dumper(d, value):
|
||||||
charType = value['__l']['__data_'].dereference().type
|
charType = value['__l']['__data_'].dereference().type
|
||||||
|
D = None
|
||||||
|
|
||||||
D = value[0][0][0][0]
|
try: # LLDB
|
||||||
|
D = value[0][0][0][0]
|
||||||
|
except: # GDB
|
||||||
|
try: # std::string
|
||||||
|
D = value[0].members(True)[0][0][0]
|
||||||
|
except: # std::u16string, std::u32string
|
||||||
|
D = value[2].members(True)[0][0][0]
|
||||||
|
|
||||||
layoutDecider = D[0][0]
|
layoutDecider = D[0][0]
|
||||||
if not layoutDecider:
|
if not layoutDecider:
|
||||||
@@ -218,13 +225,14 @@ def std_1_string_dumper(d, value):
|
|||||||
|
|
||||||
if short_mode and location_sp:
|
if short_mode and location_sp:
|
||||||
d.putCharArrayHelper(d.extractPointer(location_sp), size,
|
d.putCharArrayHelper(d.extractPointer(location_sp), size,
|
||||||
charType, d.currentItemFormat())
|
charType, d.currentItemFormat())
|
||||||
else:
|
else:
|
||||||
d.putCharArrayHelper(location_sp.integer(),
|
d.putCharArrayHelper(location_sp.integer(),
|
||||||
size, charType, d.currentItemFormat())
|
size, charType, d.currentItemFormat())
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def qdump__std____1__string(d, value):
|
def qdump__std____1__string(d, value):
|
||||||
std_1_string_dumper(d, value)
|
std_1_string_dumper(d, value)
|
||||||
|
|
||||||
|
@@ -124,19 +124,19 @@
|
|||||||
<name>CMakeProjectManager</name>
|
<name>CMakeProjectManager</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Initial Configuration</source>
|
<source>Initial Configuration</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Initiale Konfiguration</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Current Configuration</source>
|
<source>Current Configuration</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aktuelle Konfiguration</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Kit Configuration</source>
|
<source>Kit Configuration</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kit-Konfiguration</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Edit the current kit's CMake configuration.</source>
|
<source>Edit the current kit's CMake configuration.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die CMake-Konfiguration des aktuellen Kits bearbeiten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Filter</source>
|
<source>Filter</source>
|
||||||
@@ -176,11 +176,11 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Set</source>
|
<source>&Set</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>&Setzen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Set a value in the CMake configuration.</source>
|
<source>Set a value in the CMake configuration.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Einen Wert in der CMake-Konfiguration setzen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Unset</source>
|
<source>&Unset</source>
|
||||||
@@ -200,11 +200,11 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Batch Edit...</source>
|
<source>Batch Edit...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Als Text bearbeiten...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Set or reset multiple values in the CMake configuration.</source>
|
<source>Set or reset multiple values in the CMake configuration.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mehrere Variablen in der CMake-Konfiguration setzen oder zurücksetzen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Advanced</source>
|
<source>Advanced</source>
|
||||||
@@ -212,63 +212,63 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear system environment</source>
|
<source>Clear system environment</source>
|
||||||
<translation type="unfinished">Systemumgebung löschen</translation>
|
<translation>Systemumgebung löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation type="unfinished">Hilfe</translation>
|
<translation>Hilfe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Apply Kit Value</source>
|
<source>Apply Kit Value</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Wert des Kits anwenden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Apply Initial Configuration Value</source>
|
<source>Apply Initial Configuration Value</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Wert der initialen Konfiguration anwenden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation type="unfinished">Kopieren</translation>
|
<translation>Kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Change the build directory to "%1" and start with a basic CMake configuration?</source>
|
<source>Change the build directory to "%1" and start with a basic CMake configuration?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Wollen Sie das Build-Verzeichnis auf "%1" ändern und mit einer grundlegenden CMake-Konfiguration beginnen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The CMake flag for the development team</source>
|
<source>The CMake flag for the development team</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das CMake-Flag für das Entwicklerteam</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The CMake flag for the provisioning profile</source>
|
<source>The CMake flag for the provisioning profile</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das CMake-Flag für das Provisioning-Profil</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The CMake flag for the architecture on macOS</source>
|
<source>The CMake flag for the architecture on macOS</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das CMake-Flag für die macOS-Architektur</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The CMake flag for QML debugging, if enabled</source>
|
<source>The CMake flag for QML debugging, if enabled</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das CMake-Flag für QML-Debuggen, falls aktiviert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Profile</source>
|
<source>Profile</source>
|
||||||
<translation type="unfinished">Profile</translation>
|
<translation>Profile</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clean Environment</source>
|
<source>Clean Environment</source>
|
||||||
<translation type="unfinished">Saubere Umgebung</translation>
|
<translation>Saubere Umgebung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>System Environment</source>
|
<source>System Environment</source>
|
||||||
<translation type="unfinished">Systemumgebung</translation>
|
<translation>Systemumgebung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Additional CMake <a href="options">options</a>:</source>
|
<source>Additional CMake <a href="options">options</a>:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Weitere CMake-<a href="options">Optionen</a>:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Build type:</source>
|
<source>Build type:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Build-Typ:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><UNSET></source>
|
<source><UNSET></source>
|
||||||
@@ -276,31 +276,31 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter one CMake <a href="variable">variable</a> per line.<br/>To set or change a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>To unset a variable, use -U&lt;variable&gt;.<br/></source>
|
<source>Enter one CMake <a href="variable">variable</a> per line.<br/>To set or change a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>To unset a variable, use -U&lt;variable&gt;.<br/></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen oder zu ändern, benutzen Sie -D&lt;Variable&gt;:&lt;Typ&gt;=&lt;Wert&gt;.<br/>&lt;Typ&gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.<br/>Um eine Variable zurückzusetzen, benutzen Sie -U&lt;Variable&gt;.<br/></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Re-configure with Initial Parameters</source>
|
<source>Re-configure with Initial Parameters</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mit initialen Parametern neu konfigurieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear CMake configuration and configure with initial parameters?</source>
|
<source>Clear CMake configuration and configure with initial parameters?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die CMake-Konfiguration löschen und mit initialen Parametern konfigurieren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Do not ask again</source>
|
<source>Do not ask again</source>
|
||||||
<translation type="unfinished">Nicht noch einmal nachfragen</translation>
|
<translation>Nicht noch einmal nachfragen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Kit CMake Configuration</source>
|
<source>Kit CMake Configuration</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake-Konfiguration des Kits</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Configure</source>
|
<source>Configure</source>
|
||||||
<translation type="unfinished">Konfigurieren</translation>
|
<translation>Konfigurieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Stop CMake</source>
|
<source>Stop CMake</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake abbrechen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>bool</source>
|
<source>bool</source>
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Clear CMake Configuration</source>
|
<source>Clear CMake Configuration</source>
|
||||||
<translation>CMake-Konfiguration bereinigen</translation>
|
<translation>CMake-Konfiguration löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Rescan Project</source>
|
<source>Rescan Project</source>
|
||||||
@@ -372,15 +372,15 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMakeUserPresets.json cannot re-define the %1 preset: %2</source>
|
<source>CMakeUserPresets.json cannot re-define the %1 preset: %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMakeUserPresets.json kann das Preset %1 nicht erneut definieren: %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Build preset %1 is missing a corresponding configure preset.</source>
|
<source>Build preset %1 is missing a corresponding configure preset.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Im Build-Preset %1 fehlt ein entsprechendes Configure-Preset.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to load %1: %2</source>
|
<source>Failed to load %1: %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 konnte nicht geladen werden: %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>yes</source>
|
<source>yes</source>
|
||||||
@@ -416,35 +416,35 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Version: %1</source>
|
<source>Version: %1</source>
|
||||||
<translation type="unfinished">Version: %1</translation>
|
<translation>Version: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Supports fileApi: %1</source>
|
<source>Supports fileApi: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Unterstützt fileApi: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Detection source: "%1"</source>
|
<source>Detection source: "%1"</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Quelle: "%1"</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake executable path does not exist.</source>
|
<source>CMake executable path does not exist.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pfad für das CMake-Werkzeug existiert nicht.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake executable path is not a file.</source>
|
<source>CMake executable path is not a file.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pfad für das CMake-Werkzeug ist keine Datei.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake executable path is not executable.</source>
|
<source>CMake executable path is not executable.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Pfad für das CMake-Werkzeug ist nicht ausführbar.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake executable does not provide required IDE integration features.</source>
|
<source>CMake executable does not provide required IDE integration features.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ausführbare CMake-Datei unterstützt die benötigten Funktionen für die IDE-Integration nicht.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path</source>
|
<source>Path</source>
|
||||||
<translation type="unfinished">Pfad</translation>
|
<translation>Pfad</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Name:</source>
|
<source>Name:</source>
|
||||||
@@ -456,7 +456,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Version:</source>
|
<source>Version:</source>
|
||||||
<translation type="unfinished">Version:</translation>
|
<translation>Version:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Help file:</source>
|
<source>Help file:</source>
|
||||||
@@ -496,27 +496,27 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Current executable</source>
|
<source>Current executable</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aktuelle ausführbare Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Build the executable used in the active run configuration. Currently: %1</source>
|
<source>Build the executable used in the active run configuration. Currently: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die ausführbare Datei der aktiven Ausführungskonfiguration erstellen. Aktuell: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Target: %1</source>
|
<source>Target: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ziel: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable automatic provisioning updates:</source>
|
<source>Enable automatic provisioning updates:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Automatische Provisionierungsaktualisierungen aktivieren:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tells xcodebuild to create and download a provisioning profile if a valid one does not exist.</source>
|
<source>Tells xcodebuild to create and download a provisioning profile if a valid one does not exist.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Veranlasst xcodebuild, ein Provisionierungsprofil zu erstellen und herunterzuladen, wenn kein gültiges vorhanden ist.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Target</source>
|
<source>Target</source>
|
||||||
<translation type="unfinished">Ziel</translation>
|
<translation>Ziel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The build configuration is currently disabled.</source>
|
<source>The build configuration is currently disabled.</source>
|
||||||
@@ -524,7 +524,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>A CMake tool must be set up for building. Configure a CMake tool in the kit options.</source>
|
<source>A CMake tool must be set up for building. Configure a CMake tool in the kit options.</source>
|
||||||
<translation>Zum Erstellen muss ein CMake Tool eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen.</translation>
|
<translation>Zum Erstellen muss ein CMake-Werkzeug eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is a CMakeCache.txt file in "%1", which suggest an in-source build was done before. You are now building in "%2", and the CMakeCache.txt file might confuse CMake.</source>
|
<source>There is a CMakeCache.txt file in "%1", which suggest an in-source build was done before. You are now building in "%2", and the CMakeCache.txt file might confuse CMake.</source>
|
||||||
@@ -545,7 +545,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<source>CMake Build</source>
|
<source>CMake Build</source>
|
||||||
<comment>Display name for CMakeProjectManager::CMakeBuildStep id.</comment>
|
<comment>Display name for CMakeProjectManager::CMakeBuildStep id.</comment>
|
||||||
<translation type="unfinished">Erstellen mit CMake</translation>
|
<translation>Erstellen mit CMake</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake arguments:</source>
|
<source>CMake arguments:</source>
|
||||||
@@ -558,7 +558,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<source>Build</source>
|
<source>Build</source>
|
||||||
<comment>ConfigWidget display name.</comment>
|
<comment>ConfigWidget display name.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Erstellen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Targets:</source>
|
<source>Targets:</source>
|
||||||
@@ -570,19 +570,19 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Kit:</source>
|
<source>Kit:</source>
|
||||||
<translation type="unfinished">Kit:</translation>
|
<translation>Kit:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Initial Configuration:</source>
|
<source>Initial Configuration:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Initiale Konfiguration:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Current Configuration:</source>
|
<source>Current Configuration:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aktuelle Konfiguration:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Type:</source>
|
<source>Type:</source>
|
||||||
<translation type="unfinished">Typ:</translation>
|
<translation>Typ:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Value</source>
|
<source>Value</source>
|
||||||
@@ -631,23 +631,23 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Package manager auto setup</source>
|
<source>Package manager auto setup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Automatisches Aufsetzen von Paketmanagern</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Add the CMAKE_PROJECT_INCLUDE_BEFORE variable pointing to a CMake script that will install dependencies from the conanfile.txt, conanfile.py, or vcpkg.json file from the project source directory.</source>
|
<source>Add the CMAKE_PROJECT_INCLUDE_BEFORE variable pointing to a CMake script that will install dependencies from the conanfile.txt, conanfile.py, or vcpkg.json file from the project source directory.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Setzt die Variable CMAKE_PROJECT_INCLUDE_BEFORE auf ein CMake-Script, das Abhängigkeiten von einer conanfile.txt, conanfile.py oder vcpkg.json-Datei im Quellverzeichnis des Projekts installiert.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Ask before re-configuring with initial parameters</source>
|
<source>Ask before re-configuring with initial parameters</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Vor dem Neukonfigurieren mit initialen Parametern nachfragen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Show subfolders inside source group folders</source>
|
<source>Show subfolders inside source group folders</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Unterverzeichnisse in Sourcegruppen anzeigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>General</source>
|
<source>General</source>
|
||||||
<translation type="unfinished">Allgemein</translation>
|
<translation>Allgemein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Adding Files</source>
|
<source>Adding Files</source>
|
||||||
@@ -675,12 +675,12 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Copy to Clipboard?</source>
|
<source>Copy to Clipboard?</source>
|
||||||
<translation type="unfinished">In die Zwischenablage kopieren?</translation>
|
<translation>In die Zwischenablage kopieren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Files are not automatically added to the CMakeLists.txt file of the CMake project.
|
<source>Files are not automatically added to the CMakeLists.txt file of the CMake project.
|
||||||
Copy the path to the source files to the clipboard?</source>
|
Copy the path to the source files to the clipboard?</source>
|
||||||
<translation type="unfinished">Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt.
|
<translation>Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt.
|
||||||
Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</translation>
|
Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
@@ -689,15 +689,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Run CMake with configuration changes?</source>
|
<source>Run CMake with configuration changes?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake mit Änderungen der Konfiguration ausführen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><b>CMake configuration failed<b><p>The backup of the previous configuration has been restored.</p><p>Issues and "Projects > Build" settings show more information about the failure.</p</source>
|
<source><b>CMake configuration failed<b><p>The backup of the previous configuration has been restored.</p><p>Issues and "Projects > Build" settings show more information about the failure.</p</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><b>CMake-Konfiguration ist fehlgeschlagen<b/><p>Das Backup der vorherigen Konfiguration wurde wiederhergestellt.</p><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><b>Failed to load project<b><p>Issues and "Projects > Build" settings show more information about the failure.</p</source>
|
<source><b>Failed to load project<b><p>Issues and "Projects > Build" settings show more information about the failure.</p</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><b>Laden des Projekts fehlgeschlagen</b><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to create build directory "%1".</source>
|
<source>Failed to create build directory "%1".</source>
|
||||||
@@ -705,11 +705,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No CMake tool set up in kit.</source>
|
<source>No CMake tool set up in kit.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Im Kit ist kein CMake-Werkzeug eingerichtet.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The remote CMake executable cannot write to the local build directory.</source>
|
<source>The remote CMake executable cannot write to the local build directory.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das entfernte CMake-Werkzeug kann nicht in das lokale Build-Verzeichnis schreiben.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><No CMake Tool available></source>
|
<source><No CMake Tool available></source>
|
||||||
@@ -729,11 +729,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Path to the cmake executable</source>
|
<source>Path to the cmake executable</source>
|
||||||
<translation>Pfad zur ausführbaren Datei von cmake</translation>
|
<translation>Pfad zum CMake-Werkzeug</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake version %1 is unsupported. Update to version 3.14 (with file-api) or later.</source>
|
<source>CMake version %1 is unsupported. Update to version 3.14 (with file-api) or later.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die CMake-Version %1 wird nicht unterstützt. Aktualisieren Sie auf Version 3.14 (mit file-api) oder neuer.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Change...</source>
|
<source>Change...</source>
|
||||||
@@ -749,11 +749,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Platform</source>
|
<source>Platform</source>
|
||||||
<translation type="unfinished">Plattform</translation>
|
<translation>Plattform</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Toolset</source>
|
<source>Toolset</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Toolset</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Generator:</source>
|
<source>Generator:</source>
|
||||||
@@ -777,11 +777,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake Tool is unconfigured, CMake generator will be ignored.</source>
|
<source>CMake Tool is unconfigured, CMake generator will be ignored.</source>
|
||||||
<translation>Das CMake-Tool ist nicht konfiguriert. Der CMake-Generator wird ignoriert.</translation>
|
<translation>Das CMake-Werkzeug ist nicht konfiguriert. Der CMake-Generator wird ignoriert.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake Tool does not support the configured generator.</source>
|
<source>CMake Tool does not support the configured generator.</source>
|
||||||
<translation>Das CMake-Tool unterstützt den konfigurierten Generator nicht.</translation>
|
<translation>Das CMake-Werkzeug unterstützt den konfigurierten Generator nicht.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Platform is not supported by the selected CMake generator.</source>
|
<source>Platform is not supported by the selected CMake generator.</source>
|
||||||
@@ -813,15 +813,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake <a href="generator">generator</a></source>
|
<source>CMake <a href="generator">generator</a></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake-<a href="generator">Generator</a></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects.</source>
|
<source>The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das gewählte CMake-Werkzeug unterstützt file-api nicht. %1 wird nicht in der Lage sein, CMake-Projekte auszuwerten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter one CMake <a href="variable">variable</a> per line.<br/>To set a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.</source>
|
<source>Enter one CMake <a href="variable">variable</a> per line.<br/>To set a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen, benutzen Sie -D&lt;Variable&gt;:&lt;Typ&gt;=&lt;Wert&gt;.<br/>&lt;Typ&gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake Configuration</source>
|
<source>CMake Configuration</source>
|
||||||
@@ -877,7 +877,7 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Builds a target of any open CMake project.</source>
|
<source>Builds a target of any open CMake project.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Erstellt ein Ziel eines geöffneten CMake-Projekts.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open CMake target</source>
|
<source>Open CMake target</source>
|
||||||
@@ -885,23 +885,23 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Jumps to the definition of a target of any open CMake project.</source>
|
<source>Jumps to the definition of a target of any open CMake project.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Springt zur Definition eines Ziels eines geöffneten CMake-Projekts.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The source directory %1 is not reachable by the CMake executable %2.</source>
|
<source>The source directory %1 is not reachable by the CMake executable %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Quellverzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The build directory %1 is not reachable by the CMake executable %2.</source>
|
<source>The build directory %1 is not reachable by the CMake executable %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Build-Verzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The build directory "%1" does not exist</source>
|
<source>The build directory "%1" does not exist</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Build-Verzeichnis "%1" existiert nicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake executable "%1" and build directory "%2" must be on the same device.</source>
|
<source>CMake executable "%1" and build directory "%2" must be on the same device.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das CMake-Werkzeug "%1" und das Build-Verzeichnis "%2" müssen auf demselben Gerät liegen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Running %1 in %2.</source>
|
<source>Running %1 in %2.</source>
|
||||||
@@ -913,19 +913,19 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake process failed to start.</source>
|
<source>CMake process failed to start.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Der CMake-Prozess konnte nicht gestartet werden.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake process was canceled by the user.</source>
|
<source>CMake process was canceled by the user.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Der CMake-Prozess wurde vom Benutzer abgebrochen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake process crashed.</source>
|
<source>CMake process crashed.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Der CMake-Prozess ist abgestürzt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake process exited with exit code %1.</source>
|
<source>CMake process exited with exit code %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Der CMake-Prozess wurde mit dem Rückgabewert %1 beendet.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><Build Directory></source>
|
<source><Build Directory></source>
|
||||||
@@ -937,165 +937,167 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unexpected source directory "%1", expected "%2". This can be correct in some situations, for example when importing a standalone Qt test, but usually this is an error. Import the build anyway?</source>
|
<source>Unexpected source directory "%1", expected "%2". This can be correct in some situations, for example when importing a standalone Qt test, but usually this is an error. Import the build anyway?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Unerwartetes Quellverzeichnis "%1", erwartet wurde "%2". Dies kann in einigen Situationen korrekt sein, zum Beispiel beim Importieren eines eigenständigen Qt-Tests, aber normalerweise ist es ein Fehler. Soll der Build trotzdem importiert werden?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake Modules</source>
|
<source>CMake Modules</source>
|
||||||
<translation type="unfinished">CMake-Module</translation>
|
<translation>CMake-Module</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Target type: </source>
|
<source>Target type: </source>
|
||||||
<translation type="unfinished">Zieltyp: </translation>
|
<translation>Zieltyp: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No build artifacts</source>
|
<source>No build artifacts</source>
|
||||||
<translation type="unfinished">Keine Build-Artefakte</translation>
|
<translation>Keine Build-Artefakte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Build artifacts:</source>
|
<source>Build artifacts:</source>
|
||||||
<translation type="unfinished">Build-Artefakte:</translation>
|
<translation>Build-Artefakte:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Version not parseable</source>
|
<source>Version not parseable</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Version kann nicht ausgewertet werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Searching CMake binaries...</source>
|
<source>Searching CMake binaries...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Suche CMake-Werkzeuge...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Found "%1"</source>
|
<source>Found "%1"</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>"%1" gefunden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Removing CMake entries...</source>
|
<source>Removing CMake entries...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Entferne CMake-Einträge...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Removed "%1"</source>
|
<source>Removed "%1"</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>"%1" entfernt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake:</source>
|
<source>CMake:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to set up CMake file API support. %1 cannot extract project information.</source>
|
<source>Failed to set up CMake file API support. %1 cannot extract project information.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake file-api-Unterstützung konnte nicht aufgesetzt werden. %1 kann keine Projektinformationen auswerten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid reply file created by CMake.</source>
|
<source>Invalid reply file created by CMake.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Antwortdatei erstellt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid cache file generated by CMake.</source>
|
<source>Invalid cache file generated by CMake.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Cache-Datei erstellt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid cmakeFiles file generated by CMake.</source>
|
<source>Invalid cmakeFiles file generated by CMake.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat ungültige "cmakeFiles" erstellt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: No directories.</source>
|
<source>Invalid codemodel file generated by CMake: No directories.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Keine Verzeichnisse.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Empty directory object.</source>
|
<source>Invalid codemodel file generated by CMake: Empty directory object.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Verzeichnisobjekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: No projects.</source>
|
<source>Invalid codemodel file generated by CMake: No projects.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Keine Projekte.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Empty project object.</source>
|
<source>Invalid codemodel file generated by CMake: Empty project object.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Projektobjekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Broken project data.</source>
|
<source>Invalid codemodel file generated by CMake: Broken project data.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Projektdaten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Empty target object.</source>
|
<source>Invalid codemodel file generated by CMake: Empty target object.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Zielobjekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Broken target data.</source>
|
<source>Invalid codemodel file generated by CMake: Broken target data.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Zieldaten.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: No configurations.</source>
|
<source>Invalid codemodel file generated by CMake: No configurations.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Keine Konfigurationen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Empty configuration object.</source>
|
<source>Invalid codemodel file generated by CMake: Empty configuration object.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Konfigurationsobjekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake: Broken indexes in directories, projects, or targets.</source>
|
<source>Invalid codemodel file generated by CMake: Broken indexes in directories, projects, or targets.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Indizes in Verzeichnissen, Projekten oder Zielen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid codemodel file generated by CMake.</source>
|
<source>Invalid codemodel file generated by CMake.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Codemodell-Datei erstellt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid target file: Information is missing.</source>
|
<source>Invalid target file: Information is missing.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ungültige Zieldatei: Information fehlt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid target file generated by CMake: Broken indexes in target details.</source>
|
<source>Invalid target file generated by CMake: Broken indexes in target details.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat eine ungültige Zieldatei erstellt: Fehlerhafte Indizes in den Zieldetails.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake parsing was canceled.</source>
|
<source>CMake parsing was canceled.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake-Auswertung wurde abgebrochen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No "%1" CMake configuration found. Available configurations: "%2".
|
<source>No "%1" CMake configuration found. Available configurations: "%2".
|
||||||
Make sure that CMAKE_CONFIGURATION_TYPES variable contains the "Build type" field.</source>
|
Make sure that CMAKE_CONFIGURATION_TYPES variable contains the "Build type" field.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2".
|
||||||
|
Stellen Sie sicher, dass der Wert des "Build-Typ"-Felds in der CMAKE_CONFIGURATION_TYPES-Variable enthalten ist.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No "%1" CMake configuration found. Available configuration: "%2".
|
<source>No "%1" CMake configuration found. Available configuration: "%2".
|
||||||
Make sure that CMAKE_BUILD_TYPE variable matches the "Build type" field.</source>
|
Make sure that CMAKE_BUILD_TYPE variable matches the "Build type" field.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2".
|
||||||
|
Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der des "Build-Typ"-Felds ist.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>CMake returned error code: %1</source>
|
<source>CMake returned error code: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>CMake hat einen Fehlerwert zurückgegeben: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to rename %1 to %2.</source>
|
<source>Failed to rename %1 to %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Umbenennen von %1 nach %2 ist fehlgeschlagen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to copy %1 to %2.</source>
|
<source>Failed to copy %1 to %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kopieren von %1 nach %2 ist fehlgeschlagen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed to read %1 file</source>
|
<source>Failed to read %1 file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die Datei %1 konnte nicht gelesen werden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid %1 file</source>
|
<source>Invalid %1 file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ungültige Datei %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid "version" in %1 file</source>
|
<source>Invalid "version" in %1 file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ungültige "version" in Datei %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid "configurePresets" section in %1 file</source>
|
<source>Invalid "configurePresets" section in %1 file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ungültiger Abschnitt "configurePresets" in Datei %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Invalid "buildPresets" section in %1 file</source>
|
<source>Invalid "buildPresets" section in %1 file</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ungültiger Abschnitt "buildPresets" in Datei %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><File System></source>
|
<source><File System></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation><Dateisystem></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -52708,7 +52710,7 @@ in "%2" aus.
|
|||||||
<name>CMakeProjectManager::Tr::Tr</name>
|
<name>CMakeProjectManager::Tr::Tr</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Tools</source>
|
<source>Tools</source>
|
||||||
<translation type="unfinished">Werkzeuge</translation>
|
<translation>Werkzeuge</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@@ -494,6 +494,11 @@ int main(int argc, char **argv)
|
|||||||
qputenv("QT_ENABLE_REGEXP_JIT", "0");
|
qputenv("QT_ENABLE_REGEXP_JIT", "0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("GTK_THEME"))
|
||||||
|
// Work around QTCREATORBUG-28497:
|
||||||
|
// Prevent Qt's GTK3 platform theme plugin from enforcing a dark palette
|
||||||
|
qputenv("GTK_THEME", ":light");
|
||||||
|
|
||||||
#if defined(QTC_FORCE_XCB)
|
#if defined(QTC_FORCE_XCB)
|
||||||
if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
|
if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
|
||||||
// Enforce XCB on Linux/Gnome, if the user didn't override via QT_QPA_PLATFORM
|
// Enforce XCB on Linux/Gnome, if the user didn't override via QT_QPA_PLATFORM
|
||||||
|
@@ -374,8 +374,10 @@ void InfoBarDisplay::update()
|
|||||||
if (infoWidgetCloseButton)
|
if (infoWidgetCloseButton)
|
||||||
hbox->addWidget(infoWidgetCloseButton);
|
hbox->addWidget(infoWidgetCloseButton);
|
||||||
} else {
|
} else {
|
||||||
infoWidgetCloseButton->setText(info.m_cancelButtonText);
|
if (infoWidgetCloseButton) {
|
||||||
hbox->addWidget(infoWidgetCloseButton);
|
infoWidgetCloseButton->setText(info.m_cancelButtonText);
|
||||||
|
hbox->addWidget(infoWidgetCloseButton);
|
||||||
|
}
|
||||||
if (infoWidgetSuppressButton)
|
if (infoWidgetSuppressButton)
|
||||||
hbox->addWidget(infoWidgetSuppressButton);
|
hbox->addWidget(infoWidgetSuppressButton);
|
||||||
}
|
}
|
||||||
|
@@ -93,7 +93,7 @@ FilterDialog::FilterDialog(const Checks &checks, QWidget *parent)
|
|||||||
buttonBox,
|
buttonBox,
|
||||||
}.attachTo(this);
|
}.attachTo(this);
|
||||||
|
|
||||||
connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [&] {
|
connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [=] {
|
||||||
const bool hasSelection = !m_view->selectionModel()->selectedRows().isEmpty();
|
const bool hasSelection = !m_view->selectionModel()->selectedRows().isEmpty();
|
||||||
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(hasSelection);
|
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(hasSelection);
|
||||||
});
|
});
|
||||||
|
@@ -1623,10 +1623,24 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
|
|||||||
m_buildSystem->setInitialCMakeArguments(cmd.splitArguments());
|
m_buildSystem->setInitialCMakeArguments(cmd.splitArguments());
|
||||||
}
|
}
|
||||||
|
|
||||||
d->m_clearSystemConfigureEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
// Upgrading from Qt Creator version <9 to 9, if the build environment is set
|
||||||
.toBool();
|
// apply the specific values to the configure environment
|
||||||
|
auto settingsKey = [map](const QLatin1String &configureKey, const QLatin1String &buildKey) {
|
||||||
|
if (!map.contains(configureKey) && map.contains(buildKey))
|
||||||
|
return buildKey;
|
||||||
|
return configureKey;
|
||||||
|
};
|
||||||
|
|
||||||
|
const QLatin1String clearSystemEnvironmentKey
|
||||||
|
= settingsKey(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY),
|
||||||
|
QLatin1String(ProjectExplorer::Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY));
|
||||||
|
const QLatin1String userEnvironmentChangesKey
|
||||||
|
= settingsKey(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY),
|
||||||
|
QLatin1String(ProjectExplorer::Constants::USER_ENVIRONMENT_CHANGES_KEY));
|
||||||
|
|
||||||
|
d->m_clearSystemConfigureEnvironment = map.value(clearSystemEnvironmentKey).toBool();
|
||||||
d->m_userConfigureEnvironmentChanges = EnvironmentItem::fromStringList(
|
d->m_userConfigureEnvironmentChanges = EnvironmentItem::fromStringList(
|
||||||
map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
map.value(userEnvironmentChangesKey).toStringList());
|
||||||
|
|
||||||
updateAndEmitConfigureEnvironmentChanged();
|
updateAndEmitConfigureEnvironmentChanged();
|
||||||
|
|
||||||
|
@@ -96,14 +96,24 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP
|
|||||||
for (const auto &p : presets)
|
for (const auto &p : presets)
|
||||||
presetsHash.insert(p.name, p);
|
presetsHash.insert(p.name, p);
|
||||||
|
|
||||||
auto resolveInherits = [](const auto &presetsHash, auto &presetsList) {
|
auto resolveInherits = [](auto &presetsHash, auto &presetsList) {
|
||||||
|
Utils::sort(presetsList, [](const auto &left, const auto &right) {
|
||||||
|
if (left.inherits) {
|
||||||
|
if (left.inherits.value().contains(right.name))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
for (auto &p : presetsList) {
|
for (auto &p : presetsList) {
|
||||||
if (!p.inherits)
|
if (!p.inherits)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (const QString &inheritFromName : p.inherits.value())
|
for (const QString &inheritFromName : p.inherits.value()) {
|
||||||
if (presetsHash.contains(inheritFromName))
|
if (presetsHash.contains(inheritFromName)) {
|
||||||
p.inheritFrom(presetsHash[inheritFromName]);
|
p.inheritFrom(presetsHash[inheritFromName]);
|
||||||
|
presetsHash[p.name] = p;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -164,8 +164,8 @@ void CompilationDatabaseTests::testFilterArguments()
|
|||||||
{"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""},
|
{"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""},
|
||||||
{"QT_CREATOR", "1"}}));
|
{"QT_CREATOR", "1"}}));
|
||||||
QCOMPARE(testData.fileKind, CppEditor::ProjectFile::Kind::CXXSource);
|
QCOMPARE(testData.fileKind, CppEditor::ProjectFile::Kind::CXXSource);
|
||||||
QCOMPARE(testData.sysRoot.toString(), HostOsInfo::isWindowsHost() ? QString("C:\\sysroot\\embedded")
|
QCOMPARE(testData.sysRoot.toUserOutput(), HostOsInfo::isWindowsHost()
|
||||||
: QString("/opt/sysroot/embedded"));
|
? QString("C:\\sysroot\\embedded") : QString("/opt/sysroot/embedded"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString kCmakeCommand
|
static QString kCmakeCommand
|
||||||
|
@@ -752,7 +752,7 @@ void ExternalToolConfig::showInfoForItem(const QModelIndex &index)
|
|||||||
static FilePath getUserFilePath(const QString &proposalFileName)
|
static FilePath getUserFilePath(const QString &proposalFileName)
|
||||||
{
|
{
|
||||||
const FilePath resourceDir(ICore::userResourcePath());
|
const FilePath resourceDir(ICore::userResourcePath());
|
||||||
const FilePath externalToolsDir = resourceDir / "externalTools";
|
const FilePath externalToolsDir = resourceDir / "externaltools";
|
||||||
if (!externalToolsDir.isDir())
|
if (!externalToolsDir.isDir())
|
||||||
externalToolsDir.createDir();
|
externalToolsDir.createDir();
|
||||||
|
|
||||||
|
@@ -79,7 +79,7 @@ int DocumentModelPrivate::rowCount(const QModelIndex &parent) const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
DocumentModel::Entry *DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
||||||
{
|
{
|
||||||
const Utils::FilePath filePath = entry->filePath();
|
const Utils::FilePath filePath = entry->filePath();
|
||||||
|
|
||||||
@@ -95,9 +95,8 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
|||||||
this, [this, document = previousEntry->document] { itemChanged(document); });
|
this, [this, document = previousEntry->document] { itemChanged(document); });
|
||||||
}
|
}
|
||||||
delete entry;
|
delete entry;
|
||||||
entry = nullptr;
|
|
||||||
disambiguateDisplayNames(previousEntry);
|
disambiguateDisplayNames(previousEntry);
|
||||||
return;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto positions = positionEntry(m_entries, entry);
|
auto positions = positionEntry(m_entries, entry);
|
||||||
@@ -115,6 +114,7 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
|||||||
itemChanged(document);
|
itemChanged(document);
|
||||||
});
|
});
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DocumentModelPrivate::disambiguateDisplayNames(DocumentModel::Entry *entry)
|
bool DocumentModelPrivate::disambiguateDisplayNames(DocumentModel::Entry *entry)
|
||||||
@@ -411,8 +411,7 @@ DocumentModel::Entry *DocumentModelPrivate::addSuspendedDocument(const FilePath
|
|||||||
entry->document->setPreferredDisplayName(displayName);
|
entry->document->setPreferredDisplayName(displayName);
|
||||||
entry->document->setId(id);
|
entry->document->setId(id);
|
||||||
entry->isSuspended = true;
|
entry->isSuspended = true;
|
||||||
d->addEntry(entry);
|
return d->addEntry(entry);
|
||||||
return entry;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DocumentModel::Entry *DocumentModelPrivate::firstSuspendedEntry()
|
DocumentModel::Entry *DocumentModelPrivate::firstSuspendedEntry()
|
||||||
|
@@ -33,7 +33,7 @@ public:
|
|||||||
Qt::DropActions supportedDragActions() const override;
|
Qt::DropActions supportedDragActions() const override;
|
||||||
QStringList mimeTypes() const override;
|
QStringList mimeTypes() const override;
|
||||||
|
|
||||||
void addEntry(DocumentModel::Entry *entry);
|
DocumentModel::Entry *addEntry(DocumentModel::Entry *entry);
|
||||||
void removeDocument(int idx);
|
void removeDocument(int idx);
|
||||||
|
|
||||||
std::optional<int> indexOfFilePath(const Utils::FilePath &filePath) const;
|
std::optional<int> indexOfFilePath(const Utils::FilePath &filePath) const;
|
||||||
|
@@ -720,7 +720,9 @@ void ICore::raiseWindow(QWidget *widget)
|
|||||||
if (!widget)
|
if (!widget)
|
||||||
return;
|
return;
|
||||||
QWidget *window = widget->window();
|
QWidget *window = widget->window();
|
||||||
if (window && window == m_mainwindow) {
|
if (!window)
|
||||||
|
return;
|
||||||
|
if (window == m_mainwindow) {
|
||||||
m_mainwindow->raiseWindow();
|
m_mainwindow->raiseWindow();
|
||||||
} else {
|
} else {
|
||||||
window->raise();
|
window->raise();
|
||||||
|
@@ -356,8 +356,8 @@ void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeSt
|
|||||||
slotCurrentPreferencesChanged(currentPreferences);
|
slotCurrentPreferencesChanged(currentPreferences);
|
||||||
});
|
});
|
||||||
|
|
||||||
setTabSettings(m_preferences->tabSettings());
|
setTabSettings(m_preferences->currentTabSettings());
|
||||||
setCodeStyleSettings(m_preferences->codeStyleSettings(), false);
|
setCodeStyleSettings(m_preferences->currentCodeStyleSettings(), false);
|
||||||
slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false);
|
slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false);
|
||||||
|
|
||||||
updatePreview();
|
updatePreview();
|
||||||
|
@@ -12,7 +12,6 @@
|
|||||||
#include "cppeditordocument.h"
|
#include "cppeditordocument.h"
|
||||||
#include "cppeditorwidget.h"
|
#include "cppeditorwidget.h"
|
||||||
#include "cppfilesettingspage.h"
|
#include "cppfilesettingspage.h"
|
||||||
#include "cpphighlighter.h"
|
|
||||||
#include "cppincludehierarchy.h"
|
#include "cppincludehierarchy.h"
|
||||||
#include "cppmodelmanager.h"
|
#include "cppmodelmanager.h"
|
||||||
#include "cppoutline.h"
|
#include "cppoutline.h"
|
||||||
@@ -260,42 +259,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
|||||||
connect(openInNextSplitAction, &QAction::triggered,
|
connect(openInNextSplitAction, &QAction::triggered,
|
||||||
this, [] { CppModelManager::switchHeaderSource(true); });
|
this, [] { CppModelManager::switchHeaderSource(true); });
|
||||||
|
|
||||||
QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this);
|
|
||||||
command = ActionManager::registerAction(showPreprocessedAction,
|
|
||||||
Constants::SHOW_PREPROCESSED_FILE, context);
|
|
||||||
mcpptools->addAction(command);
|
|
||||||
connect(showPreprocessedAction, &QAction::triggered,
|
|
||||||
this, [] { CppModelManager::showPreprocessedFile(false); });
|
|
||||||
|
|
||||||
QAction * const showPreprocessedInSplitAction = new QAction
|
|
||||||
(tr("Show Preprocessed Source in Next Split"), this);
|
|
||||||
command = ActionManager::registerAction(showPreprocessedInSplitAction,
|
|
||||||
Constants::SHOW_PREPROCESSED_FILE_SPLIT, context);
|
|
||||||
mcpptools->addAction(command);
|
|
||||||
connect(showPreprocessedInSplitAction, &QAction::triggered,
|
|
||||||
this, [] { CppModelManager::showPreprocessedFile(true); });
|
|
||||||
|
|
||||||
QAction * const findUnusedFunctionsAction = new QAction(tr("Find Unused Functions"), this);
|
|
||||||
command = ActionManager::registerAction(findUnusedFunctionsAction,
|
|
||||||
"CppTools.FindUnusedFunctions");
|
|
||||||
mcpptools->addAction(command);
|
|
||||||
connect(findUnusedFunctionsAction, &QAction::triggered,
|
|
||||||
this, [] { CppModelManager::findUnusedFunctions({}); });
|
|
||||||
QAction * const findUnusedFunctionsInSubProjectAction
|
|
||||||
= new QAction(tr("Find Unused C/C++ Functions"), this);
|
|
||||||
command = ActionManager::registerAction(findUnusedFunctionsInSubProjectAction,
|
|
||||||
"CppTools.FindUnusedFunctionsInSubProject");
|
|
||||||
for (ActionContainer * const projectContextMenu : {
|
|
||||||
ActionManager::actionContainer(ProjectExplorer::Constants::M_SUBPROJECTCONTEXT),
|
|
||||||
ActionManager::actionContainer(ProjectExplorer::Constants::M_PROJECTCONTEXT)}) {
|
|
||||||
projectContextMenu->addSeparator(ProjectExplorer::Constants::G_PROJECT_TREE);
|
|
||||||
projectContextMenu->addAction(command, ProjectExplorer::Constants::G_PROJECT_TREE);
|
|
||||||
}
|
|
||||||
connect(findUnusedFunctionsInSubProjectAction, &QAction::triggered, this, [] {
|
|
||||||
if (const Node * const node = ProjectTree::currentNode(); node && node->asFolderNode())
|
|
||||||
CppModelManager::findUnusedFunctions(node->directory());
|
|
||||||
});
|
|
||||||
|
|
||||||
MacroExpander *expander = globalMacroExpander();
|
MacroExpander *expander = globalMacroExpander();
|
||||||
expander->registerVariable("Cpp:LicenseTemplate",
|
expander->registerVariable("Cpp:LicenseTemplate",
|
||||||
tr("The license template."),
|
tr("The license template."),
|
||||||
@@ -336,9 +299,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
|||||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||||
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
|
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
|
||||||
|
|
||||||
cmd = ActionManager::command(Constants::SHOW_PREPROCESSED_FILE);
|
|
||||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
|
||||||
|
|
||||||
cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR);
|
cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR);
|
||||||
cmd->setTouchBarText(tr("Follow", "text on macOS touch bar"));
|
cmd->setTouchBarText(tr("Follow", "text on macOS touch bar"));
|
||||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||||
@@ -418,6 +378,44 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
|||||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||||
cppToolsMenu->addAction(cmd);
|
cppToolsMenu->addAction(cmd);
|
||||||
|
|
||||||
|
QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this);
|
||||||
|
command = ActionManager::registerAction(showPreprocessedAction,
|
||||||
|
Constants::SHOW_PREPROCESSED_FILE, context);
|
||||||
|
mcpptools->addAction(command);
|
||||||
|
contextMenu->addAction(command, Constants::G_CONTEXT_FIRST);
|
||||||
|
connect(showPreprocessedAction, &QAction::triggered,
|
||||||
|
this, [] { CppModelManager::showPreprocessedFile(false); });
|
||||||
|
|
||||||
|
QAction * const showPreprocessedInSplitAction = new QAction
|
||||||
|
(tr("Show Preprocessed Source in Next Split"), this);
|
||||||
|
command = ActionManager::registerAction(showPreprocessedInSplitAction,
|
||||||
|
Constants::SHOW_PREPROCESSED_FILE_SPLIT, context);
|
||||||
|
mcpptools->addAction(command);
|
||||||
|
connect(showPreprocessedInSplitAction, &QAction::triggered,
|
||||||
|
this, [] { CppModelManager::showPreprocessedFile(true); });
|
||||||
|
|
||||||
|
QAction *const findUnusedFunctionsAction = new QAction(tr("Find Unused Functions"), this);
|
||||||
|
command = ActionManager::registerAction(findUnusedFunctionsAction,
|
||||||
|
"CppTools.FindUnusedFunctions");
|
||||||
|
mcpptools->addAction(command);
|
||||||
|
connect(findUnusedFunctionsAction, &QAction::triggered, this, [] {
|
||||||
|
CppModelManager::findUnusedFunctions({});
|
||||||
|
});
|
||||||
|
QAction *const findUnusedFunctionsInSubProjectAction
|
||||||
|
= new QAction(tr("Find Unused C/C++ Functions"), this);
|
||||||
|
command = ActionManager::registerAction(findUnusedFunctionsInSubProjectAction,
|
||||||
|
"CppTools.FindUnusedFunctionsInSubProject");
|
||||||
|
for (ActionContainer *const projectContextMenu :
|
||||||
|
{ActionManager::actionContainer(ProjectExplorer::Constants::M_SUBPROJECTCONTEXT),
|
||||||
|
ActionManager::actionContainer(ProjectExplorer::Constants::M_PROJECTCONTEXT)}) {
|
||||||
|
projectContextMenu->addSeparator(ProjectExplorer::Constants::G_PROJECT_TREE);
|
||||||
|
projectContextMenu->addAction(command, ProjectExplorer::Constants::G_PROJECT_TREE);
|
||||||
|
}
|
||||||
|
connect(findUnusedFunctionsInSubProjectAction, &QAction::triggered, this, [] {
|
||||||
|
if (const Node *const node = ProjectTree::currentNode(); node && node->asFolderNode())
|
||||||
|
CppModelManager::findUnusedFunctions(node->directory());
|
||||||
|
});
|
||||||
|
|
||||||
d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this);
|
d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this);
|
||||||
cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context);
|
cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context);
|
||||||
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T")));
|
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T")));
|
||||||
|
@@ -2871,6 +2871,56 @@ static void formatCdbBreakPointResponse(int modelId, const QString &responseId,
|
|||||||
str << '\n';
|
str << '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Helper to retrieve an int child from GDBMI
|
||||||
|
static inline std::optional<int> gdbmiChildToInt(const GdbMi &parent, const char *childName)
|
||||||
|
{
|
||||||
|
const GdbMi childBA = parent[childName];
|
||||||
|
if (childBA.isValid()) {
|
||||||
|
bool ok;
|
||||||
|
const int v = childBA.data().toInt(&ok);
|
||||||
|
if (ok)
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
return std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper to retrieve an bool child from GDBMI
|
||||||
|
static inline std::optional<bool> gdbmiChildToBool(const GdbMi &parent, const char *childName)
|
||||||
|
{
|
||||||
|
const GdbMi childBA = parent[childName];
|
||||||
|
return childBA.isValid() ? std::make_optional(childBA.data() == "true") : std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse extension command listing breakpoints.
|
||||||
|
// Note that not all fields are returned, since file, line, function are encoded
|
||||||
|
// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
|
||||||
|
BreakpointParameters CdbEngine::parseBreakPoint(const GdbMi &gdbmi)
|
||||||
|
{
|
||||||
|
BreakpointParameters result;
|
||||||
|
result.enabled = gdbmiChildToBool(gdbmi, "enabled").value_or(result.enabled);
|
||||||
|
result.pending = gdbmiChildToBool(gdbmi, "deferred").value_or(result.pending);
|
||||||
|
const GdbMi moduleG = gdbmi["module"];
|
||||||
|
if (moduleG.isValid())
|
||||||
|
result.module = moduleG.data();
|
||||||
|
const GdbMi sourceFileName = gdbmi["srcfile"];
|
||||||
|
if (sourceFileName.isValid()) {
|
||||||
|
NormalizedSourceFileName mappedFile = sourceMapNormalizeFileNameFromDebugger(
|
||||||
|
sourceFileName.data());
|
||||||
|
result.fileName = Utils::FilePath::fromUserInput(mappedFile.fileName);
|
||||||
|
const GdbMi lineNumber = gdbmi["srcline"];
|
||||||
|
if (lineNumber.isValid())
|
||||||
|
result.lineNumber = lineNumber.data().toULongLong(nullptr, 0);
|
||||||
|
}
|
||||||
|
const GdbMi addressG = gdbmi["address"];
|
||||||
|
if (addressG.isValid())
|
||||||
|
result.address = addressG.data().toULongLong(nullptr, 0);
|
||||||
|
if (const std::optional<int> ignoreCount = gdbmiChildToInt(gdbmi, "passcount"))
|
||||||
|
result.ignoreCount = *ignoreCount - 1;
|
||||||
|
result.threadSpec = gdbmiChildToInt(gdbmi, "thread").value_or(result.threadSpec);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
|
void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
|
||||||
{
|
{
|
||||||
if (debugBreakpoints) {
|
if (debugBreakpoints) {
|
||||||
@@ -2896,8 +2946,7 @@ void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
|
|||||||
for (const GdbMi &breakPointG : response.data) {
|
for (const GdbMi &breakPointG : response.data) {
|
||||||
// Might not be valid if there is not id
|
// Might not be valid if there is not id
|
||||||
const QString responseId = breakPointG["id"].data();
|
const QString responseId = breakPointG["id"].data();
|
||||||
BreakpointParameters reportedResponse;
|
BreakpointParameters reportedResponse = parseBreakPoint(breakPointG);
|
||||||
parseBreakPoint(breakPointG, &reportedResponse);
|
|
||||||
if (debugBreakpoints)
|
if (debugBreakpoints)
|
||||||
qDebug(" Parsed %s: pending=%d %s\n", qPrintable(responseId),
|
qDebug(" Parsed %s: pending=%d %s\n", qPrintable(responseId),
|
||||||
reportedResponse.pending,
|
reportedResponse.pending,
|
||||||
|
@@ -168,6 +168,7 @@ private:
|
|||||||
unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto);
|
unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto);
|
||||||
void mergeStartParametersSourcePathMap();
|
void mergeStartParametersSourcePathMap();
|
||||||
void checkQtSdkPdbFiles(const QString &module);
|
void checkQtSdkPdbFiles(const QString &module);
|
||||||
|
BreakpointParameters parseBreakPoint(const GdbMi &gdbmi);
|
||||||
|
|
||||||
const QString m_tokenPrefix;
|
const QString m_tokenPrefix;
|
||||||
void handleSetupFailure(const QString &errorMessage);
|
void handleSetupFailure(const QString &errorMessage);
|
||||||
|
@@ -189,64 +189,6 @@ QString cdbClearBreakpointCommand(const Breakpoint &bp)
|
|||||||
return "bc " + QString::number(firstBreakPoint) + '-' + QString::number(lastBreakPoint);
|
return "bc " + QString::number(firstBreakPoint) + '-' + QString::number(lastBreakPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper to retrieve an int child from GDBMI
|
|
||||||
static inline bool gdbmiChildToInt(const GdbMi &parent, const char *childName, int *target)
|
|
||||||
{
|
|
||||||
const GdbMi childBA = parent[childName];
|
|
||||||
if (childBA.isValid()) {
|
|
||||||
bool ok;
|
|
||||||
const int v = childBA.data().toInt(&ok);
|
|
||||||
if (ok) {
|
|
||||||
*target = v;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper to retrieve an bool child from GDBMI
|
|
||||||
static inline bool gdbmiChildToBool(const GdbMi &parent, const char *childName, bool *target)
|
|
||||||
{
|
|
||||||
const GdbMi childBA = parent[childName];
|
|
||||||
if (childBA.isValid()) {
|
|
||||||
*target = childBA.data() == "true";
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parse extension command listing breakpoints.
|
|
||||||
// Note that not all fields are returned, since file, line, function are encoded
|
|
||||||
// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
|
|
||||||
void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r,
|
|
||||||
QString *expression /* = 0 */)
|
|
||||||
{
|
|
||||||
gdbmiChildToBool(gdbmi, "enabled", &(r->enabled));
|
|
||||||
gdbmiChildToBool(gdbmi, "deferred", &(r->pending));
|
|
||||||
const GdbMi moduleG = gdbmi["module"];
|
|
||||||
if (moduleG.isValid())
|
|
||||||
r->module = moduleG.data();
|
|
||||||
const GdbMi sourceFileName = gdbmi["srcfile"];
|
|
||||||
if (sourceFileName.isValid()) {
|
|
||||||
r->fileName = Utils::FilePath::fromUserInput(
|
|
||||||
Utils::FileUtils::normalizedPathName(sourceFileName.data()));
|
|
||||||
const GdbMi lineNumber = gdbmi["srcline"];
|
|
||||||
if (lineNumber.isValid())
|
|
||||||
r->lineNumber = lineNumber.data().toULongLong(nullptr, 0);
|
|
||||||
}
|
|
||||||
if (expression) {
|
|
||||||
const GdbMi expressionG = gdbmi["expression"];
|
|
||||||
if (expressionG.isValid())
|
|
||||||
*expression = expressionG.data();
|
|
||||||
}
|
|
||||||
const GdbMi addressG = gdbmi["address"];
|
|
||||||
if (addressG.isValid())
|
|
||||||
r->address = addressG.data().toULongLong(nullptr, 0);
|
|
||||||
if (gdbmiChildToInt(gdbmi, "passcount", &(r->ignoreCount)))
|
|
||||||
r->ignoreCount--;
|
|
||||||
gdbmiChildToInt(gdbmi, "thread", &(r->threadSpec));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data)
|
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data)
|
||||||
{
|
{
|
||||||
QString cmd;
|
QString cmd;
|
||||||
|
@@ -38,10 +38,6 @@ QString cdbAddBreakpointCommand(const BreakpointParameters &d,
|
|||||||
const QList<QPair<QString, QString> > &sourcePathMapping,
|
const QList<QPair<QString, QString> > &sourcePathMapping,
|
||||||
const QString &responseId = QString());
|
const QString &responseId = QString());
|
||||||
QString cdbClearBreakpointCommand(const Breakpoint &bp);
|
QString cdbClearBreakpointCommand(const Breakpoint &bp);
|
||||||
// Parse extension command listing breakpoints.
|
|
||||||
// Note that not all fields are returned, since file, line, function are encoded
|
|
||||||
// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
|
|
||||||
void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r, QString *expression = nullptr);
|
|
||||||
|
|
||||||
// Write memory (f ...).
|
// Write memory (f ...).
|
||||||
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data);
|
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data);
|
||||||
|
@@ -249,8 +249,18 @@ void DebuggerKitAspect::fix(Kit *k)
|
|||||||
setup(k);
|
setup(k);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const Abi tcAbi = ToolChainKitAspect::targetAbi(k);
|
|
||||||
if (item->matchTarget(tcAbi) != DebuggerItem::DoesNotMatch)
|
Abi kitAbi;
|
||||||
|
if (ToolChainKitAspect::toolChains(k).isEmpty()) {
|
||||||
|
if (DeviceTypeKitAspect::deviceTypeId(k)
|
||||||
|
!= ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
kitAbi = Abi(Abi::UnknownArchitecture, Abi::hostAbi().os());
|
||||||
|
} else {
|
||||||
|
kitAbi = ToolChainKitAspect::targetAbi(k);
|
||||||
|
}
|
||||||
|
if (item->matchTarget(kitAbi) != DebuggerItem::DoesNotMatch)
|
||||||
return;
|
return;
|
||||||
k->setValue(DebuggerKitAspect::id(), QVariant());
|
k->setValue(DebuggerKitAspect::id(), QVariant());
|
||||||
setup(k);
|
setup(k);
|
||||||
|
@@ -419,7 +419,7 @@ void LanguageClientManager::openDocumentWithClient(TextEditor::TextDocument *doc
|
|||||||
client->openDocument(document);
|
client->openDocument(document);
|
||||||
else
|
else
|
||||||
client->activateDocument(document);
|
client->activateDocument(document);
|
||||||
} else if (Core::EditorManager::currentEditor()->document() == document) {
|
} else if (Core::EditorManager::currentDocument() == document) {
|
||||||
TextEditor::IOutlineWidgetFactory::updateOutline();
|
TextEditor::IOutlineWidgetFactory::updateOutline();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"(
|
|||||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"(
|
|||||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"(
|
|||||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"(
|
|||||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"(
|
|||||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"optional": false
|
"optional": false
|
||||||
}
|
}
|
||||||
|
@@ -14,6 +14,7 @@ namespace PerfProfiler {
|
|||||||
class PERFPROFILER_EXPORT PerfRunConfigurationAspect :
|
class PERFPROFILER_EXPORT PerfRunConfigurationAspect :
|
||||||
public ProjectExplorer::GlobalOrProjectAspect
|
public ProjectExplorer::GlobalOrProjectAspect
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
PerfRunConfigurationAspect(ProjectExplorer::Target *target);
|
PerfRunConfigurationAspect(ProjectExplorer::Target *target);
|
||||||
};
|
};
|
||||||
|
@@ -46,8 +46,6 @@ using namespace Utils;
|
|||||||
|
|
||||||
const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount";
|
const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount";
|
||||||
const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList.";
|
const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList.";
|
||||||
const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment";
|
|
||||||
const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges";
|
|
||||||
const char CUSTOM_PARSERS_KEY[] = "ProjectExplorer.BuildConfiguration.CustomParsers";
|
const char CUSTOM_PARSERS_KEY[] = "ProjectExplorer.BuildConfiguration.CustomParsers";
|
||||||
const char PARSE_STD_OUT_KEY[] = "ProjectExplorer.BuildConfiguration.ParseStandardOutput";
|
const char PARSE_STD_OUT_KEY[] = "ProjectExplorer.BuildConfiguration.ParseStandardOutput";
|
||||||
|
|
||||||
@@ -378,8 +376,9 @@ QVariantMap BuildConfiguration::toMap() const
|
|||||||
{
|
{
|
||||||
QVariantMap map = ProjectConfiguration::toMap();
|
QVariantMap map = ProjectConfiguration::toMap();
|
||||||
|
|
||||||
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
|
map.insert(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
|
||||||
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
|
map.insert(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY),
|
||||||
|
EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
|
||||||
|
|
||||||
map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2);
|
map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2);
|
||||||
map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap());
|
map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap());
|
||||||
@@ -393,8 +392,10 @@ QVariantMap BuildConfiguration::toMap() const
|
|||||||
|
|
||||||
bool BuildConfiguration::fromMap(const QVariantMap &map)
|
bool BuildConfiguration::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
|
d->m_clearSystemEnvironment = map.value(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
||||||
d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
.toBool();
|
||||||
|
d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(
|
||||||
|
map.value(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
||||||
|
|
||||||
updateCacheAndEmitEnvironmentChanged();
|
updateCacheAndEmitEnvironmentChanged();
|
||||||
|
|
||||||
|
@@ -220,6 +220,8 @@ const char SETTINGS_MENU_HIDE_BUILD[] = "Menu/HideBuild";
|
|||||||
const char SETTINGS_MENU_HIDE_DEBUG[] = "Menu/HideDebug";
|
const char SETTINGS_MENU_HIDE_DEBUG[] = "Menu/HideDebug";
|
||||||
const char SETTINGS_MENU_HIDE_ANALYZE[] = "Menu/HideAnalyze";
|
const char SETTINGS_MENU_HIDE_ANALYZE[] = "Menu/HideAnalyze";
|
||||||
const char SESSION_TASKFILE_KEY[] = "TaskList.File";
|
const char SESSION_TASKFILE_KEY[] = "TaskList.File";
|
||||||
|
const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment";
|
||||||
|
const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges";
|
||||||
|
|
||||||
// UI texts
|
// UI texts
|
||||||
PROJECTEXPLORER_EXPORT QString msgAutoDetected();
|
PROJECTEXPLORER_EXPORT QString msgAutoDetected();
|
||||||
|
@@ -92,7 +92,7 @@ void SquishXmlOutputHandler::mergeResultFiles(const Utils::FilePaths &reportFile
|
|||||||
// and finally write test tag (case name) - the prolog tag (for test case)
|
// and finally write test tag (case name) - the prolog tag (for test case)
|
||||||
// will be written outside the if
|
// will be written outside the if
|
||||||
const QXmlStreamAttributes testAttributes = reader.attributes();
|
const QXmlStreamAttributes testAttributes = reader.attributes();
|
||||||
QXmlStreamReader::TokenType token;
|
QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken;
|
||||||
while (!reader.atEnd()) {
|
while (!reader.atEnd()) {
|
||||||
token = reader.readNext();
|
token = reader.readNext();
|
||||||
if (token != QXmlStreamReader::Characters)
|
if (token != QXmlStreamReader::Characters)
|
||||||
|
@@ -5889,7 +5889,7 @@ void TextEditorWidget::extraAreaMouseEvent(QMouseEvent *e)
|
|||||||
{
|
{
|
||||||
QTextCursor cursor = cursorForPosition(QPoint(0, e->pos().y()));
|
QTextCursor cursor = cursorForPosition(QPoint(0, e->pos().y()));
|
||||||
|
|
||||||
int markWidth;
|
int markWidth = 0;
|
||||||
extraAreaWidth(&markWidth);
|
extraAreaWidth(&markWidth);
|
||||||
const bool inMarkArea = e->pos().x() <= markWidth && e->pos().x() >= 0;
|
const bool inMarkArea = e->pos().x() <= markWidth && e->pos().x() >= 0;
|
||||||
|
|
||||||
|
@@ -4061,15 +4061,15 @@ void tst_Dumpers::dumper_data()
|
|||||||
+ Check("list.0", "[0]", "1", "int")
|
+ Check("list.0", "[0]", "1", "int")
|
||||||
+ Check("list.1", "[1]", "2", "int")
|
+ Check("list.1", "[1]", "2", "int")
|
||||||
+ Check("list.2", "[2]", "3", "int")
|
+ Check("list.2", "[2]", "3", "int")
|
||||||
+ Check("v3", "", "@QVariant (@QList<int>)") % Qt5
|
+ Check("v3", "", "@QVariant (@QList<int>)") % NeedsInferiorCall % Qt5
|
||||||
+ Check("v3.data", "<3 items>", TypePattern(".*QList<int>")) % NeedsInferiorCall % Qt5
|
+ Check("v3.data", "<3 items>", TypePattern(".*QList<int>")) % NeedsInferiorCall % Qt5
|
||||||
+ Check("v3.data.0", "[0]", "1", "int") % NeedsInferiorCall % Qt5
|
+ Check("v3.data.0", "[0]", "1", "int") % NeedsInferiorCall % Qt5
|
||||||
+ Check("v3.data.1", "[1]", "2", "int") % NeedsInferiorCall % Qt5
|
+ Check("v3.data.1", "[1]", "2", "int") % NeedsInferiorCall % Qt5
|
||||||
+ Check("v3.data.2", "[2]", "3", "int") % NeedsInferiorCall % Qt5
|
+ Check("v3.data.2", "[2]", "3", "int") % NeedsInferiorCall % Qt5
|
||||||
+ Check("v3", "<3 items>", "@QVariant (@QList<int>)") % Qt6
|
+ Check("v3", "<3 items>", "@QVariant (@QList<int>)") % Qt6
|
||||||
+ Check("v3.0", "[0]", "1", "int") % NeedsInferiorCall % Qt6
|
+ Check("v3.0", "[0]", "1", "int") % Qt6
|
||||||
+ Check("v3.1", "[1]", "2", "int") % NeedsInferiorCall % Qt6
|
+ Check("v3.1", "[1]", "2", "int") % Qt6
|
||||||
+ Check("v3.2", "[2]", "3", "int") % NeedsInferiorCall % Qt6;
|
+ Check("v3.2", "[2]", "3", "int") % Qt6;
|
||||||
|
|
||||||
|
|
||||||
QTest::newRow("QVariant2")
|
QTest::newRow("QVariant2")
|
||||||
|
@@ -115,6 +115,14 @@ void tst_gdb::version_data()
|
|||||||
QTest::newRow("Debian 7.12 git")
|
QTest::newRow("Debian 7.12 git")
|
||||||
<< "GNU gdb (Debian 7.12-6) 7.12.0.20161007-git"
|
<< "GNU gdb (Debian 7.12-6) 7.12.0.20161007-git"
|
||||||
<< 71200 << 6 << false << false;
|
<< 71200 << 6 << false << false;
|
||||||
|
|
||||||
|
QTest::newRow("Debian 10.1 git")
|
||||||
|
<< "GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git"
|
||||||
|
<< 100100 << 1 << false << false;
|
||||||
|
|
||||||
|
QTest::newRow("Ubuntu 22.04")
|
||||||
|
<< "GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1"
|
||||||
|
<< 120100 << 0 << false << false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString chopConst(QString type)
|
static QString chopConst(QString type)
|
||||||
|
Reference in New Issue
Block a user