forked from qt-creator/qt-creator
Merge "Merge remote-tracking branch 'origin/9.0'"
This commit is contained in:
@@ -682,6 +682,20 @@
|
||||
\li An import statement has been added twice. For more information,
|
||||
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
|
||||
|
||||
\section1 Resetting the Code Model
|
||||
|
@@ -8,8 +8,8 @@
|
||||
|
||||
\title Using Squish
|
||||
|
||||
\l{https://doc.froglogic.com/squish/latest/}{Squish} is an automated GUI
|
||||
testing framework for testing Android, iOS, Java, Qt, Tk, Windows, and
|
||||
\l{https://www.qt.io/product/quality-assurance/squish}{Squish} is an automated GUI
|
||||
testing framework for testing Android, iOS, Java, \macos, Qt, Tk, Windows, and
|
||||
XView applications, as well as HTML-based web applications running in
|
||||
browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and
|
||||
Microsoft Internet Explorer and Edge.
|
||||
|
@@ -175,19 +175,24 @@
|
||||
|
||||
\section1 Supported Qt for MCUs SDKs
|
||||
|
||||
Since version 7.0.0, \QC supports version 2.0 and later of the Qt for MCUs SDK.
|
||||
For older versions, refer to the following table.
|
||||
\note The Qt for MCUs SDK 2.3 requires \QC 9.0.0, or later.
|
||||
|
||||
The following table lists the \QC versions you can use to develop
|
||||
applications with particular Qt for MCUs SDK versions.
|
||||
|
||||
\table
|
||||
\header
|
||||
\li \QC version
|
||||
\li Qt for MCUs SDK version
|
||||
\row
|
||||
\li 7.0.0 or later
|
||||
\li 9.0.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
|
||||
\li 6.0.x
|
||||
\li 1.3 or later, including 2.0 or later
|
||||
\li 1.3 up to 2.2
|
||||
\row
|
||||
\li 4.12.4 up to 5.0.3
|
||||
\li 1.3 up to 1.9
|
||||
|
@@ -21,7 +21,7 @@
|
||||
\li {3,1} Development Platform
|
||||
\header
|
||||
\li \l Linux
|
||||
\li \l macOS
|
||||
\li \l \macos
|
||||
\li \l Windows
|
||||
\row
|
||||
\li \l Android
|
||||
@@ -50,7 +50,7 @@
|
||||
\li
|
||||
\row
|
||||
\li \l{Microcontroller Units (MCU)}{MCUs}
|
||||
\li
|
||||
\li \image ok.png
|
||||
\li
|
||||
\li \image ok.png
|
||||
\row
|
||||
|
@@ -165,8 +165,15 @@ def qdump__std____1__stack(d, value):
|
||||
|
||||
def std_1_string_dumper(d, value):
|
||||
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]
|
||||
if not layoutDecider:
|
||||
@@ -218,13 +225,14 @@ def std_1_string_dumper(d, value):
|
||||
|
||||
if short_mode and location_sp:
|
||||
d.putCharArrayHelper(d.extractPointer(location_sp), size,
|
||||
charType, d.currentItemFormat())
|
||||
charType, d.currentItemFormat())
|
||||
else:
|
||||
d.putCharArrayHelper(location_sp.integer(),
|
||||
size, charType, d.currentItemFormat())
|
||||
size, charType, d.currentItemFormat())
|
||||
|
||||
return
|
||||
|
||||
|
||||
def qdump__std____1__string(d, value):
|
||||
std_1_string_dumper(d, value)
|
||||
|
||||
|
@@ -124,19 +124,19 @@
|
||||
<name>CMakeProjectManager</name>
|
||||
<message>
|
||||
<source>Initial Configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Initiale Konfiguration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Aktuelle Konfiguration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Kit Configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Kit-Konfiguration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit the current kit's CMake configuration.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Die CMake-Konfiguration des aktuellen Kits bearbeiten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Filter</source>
|
||||
@@ -176,11 +176,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>&Set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>&Setzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set a value in the CMake configuration.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Einen Wert in der CMake-Konfiguration setzen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Unset</source>
|
||||
@@ -200,11 +200,11 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Batch Edit...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Als Text bearbeiten...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Advanced</source>
|
||||
@@ -212,63 +212,63 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear system environment</source>
|
||||
<translation type="unfinished">Systemumgebung löschen</translation>
|
||||
<translation>Systemumgebung löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help</source>
|
||||
<translation type="unfinished">Hilfe</translation>
|
||||
<translation>Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply Kit Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Wert des Kits anwenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Apply Initial Configuration Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Wert der initialen Konfiguration anwenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy</source>
|
||||
<translation type="unfinished">Kopieren</translation>
|
||||
<translation>Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>The CMake flag for the development team</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Das CMake-Flag für das Entwicklerteam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>Profile</source>
|
||||
<translation type="unfinished">Profile</translation>
|
||||
<translation>Profile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clean Environment</source>
|
||||
<translation type="unfinished">Saubere Umgebung</translation>
|
||||
<translation>Saubere Umgebung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>System Environment</source>
|
||||
<translation type="unfinished">Systemumgebung</translation>
|
||||
<translation>Systemumgebung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Additional CMake <a href="options">options</a>:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Weitere CMake-<a href="options">Optionen</a>:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Build type:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Build-Typ:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><UNSET></source>
|
||||
@@ -276,31 +276,31 @@
|
||||
</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>
|
||||
<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>
|
||||
<source>Re-configure with Initial Parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Mit initialen Parametern neu konfigurieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Do not ask again</source>
|
||||
<translation type="unfinished">Nicht noch einmal nachfragen</translation>
|
||||
<translation>Nicht noch einmal nachfragen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Kit CMake Configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake-Konfiguration des Kits</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Configure</source>
|
||||
<translation type="unfinished">Konfigurieren</translation>
|
||||
<translation>Konfigurieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop CMake</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake abbrechen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>bool</source>
|
||||
@@ -336,7 +336,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear CMake Configuration</source>
|
||||
<translation>CMake-Konfiguration bereinigen</translation>
|
||||
<translation>CMake-Konfiguration löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rescan Project</source>
|
||||
@@ -372,15 +372,15 @@
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<source>Failed to load %1: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>%1 konnte nicht geladen werden: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>yes</source>
|
||||
@@ -416,35 +416,35 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Version: %1</source>
|
||||
<translation type="unfinished">Version: %1</translation>
|
||||
<translation>Version: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Supports fileApi: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Unterstützt fileApi: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Detection source: "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Quelle: "%1"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CMake executable path does not exist.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Pfad für das CMake-Werkzeug existiert nicht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>Path</source>
|
||||
<translation type="unfinished">Pfad</translation>
|
||||
<translation>Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name:</source>
|
||||
@@ -456,7 +456,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Version:</source>
|
||||
<translation type="unfinished">Version:</translation>
|
||||
<translation>Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Help file:</source>
|
||||
@@ -496,27 +496,27 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Current executable</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Aktuelle ausführbare Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Target: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ziel: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable automatic provisioning updates:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Automatische Provisionierungsaktualisierungen aktivieren:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Target</source>
|
||||
<translation type="unfinished">Ziel</translation>
|
||||
<translation>Ziel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The build configuration is currently disabled.</source>
|
||||
@@ -524,7 +524,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<source>CMake Build</source>
|
||||
<comment>Display name for CMakeProjectManager::CMakeBuildStep id.</comment>
|
||||
<translation type="unfinished">Erstellen mit CMake</translation>
|
||||
<translation>Erstellen mit CMake</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CMake arguments:</source>
|
||||
@@ -558,7 +558,7 @@
|
||||
<message>
|
||||
<source>Build</source>
|
||||
<comment>ConfigWidget display name.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Targets:</source>
|
||||
@@ -570,19 +570,19 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Kit:</source>
|
||||
<translation type="unfinished">Kit:</translation>
|
||||
<translation>Kit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Initial Configuration:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Initiale Konfiguration:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current Configuration:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Aktuelle Konfiguration:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Type:</source>
|
||||
<translation type="unfinished">Typ:</translation>
|
||||
<translation>Typ:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Value</source>
|
||||
@@ -631,23 +631,23 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Package manager auto setup</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Automatisches Aufsetzen von Paketmanagern</translation>
|
||||
</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>
|
||||
<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>
|
||||
<source>Ask before re-configuring with initial parameters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vor dem Neukonfigurieren mit initialen Parametern nachfragen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show subfolders inside source group folders</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Unterverzeichnisse in Sourcegruppen anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation type="unfinished">Allgemein</translation>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Adding Files</source>
|
||||
@@ -675,12 +675,12 @@
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy to Clipboard?</source>
|
||||
<translation type="unfinished">In die Zwischenablage kopieren?</translation>
|
||||
<translation>In die Zwischenablage kopieren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
</message>
|
||||
<message>
|
||||
@@ -689,15 +689,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</message>
|
||||
<message>
|
||||
<source>Run CMake with configuration changes?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake mit Änderungen der Konfiguration ausführen?</translation>
|
||||
</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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>No CMake tool set up in kit.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Im Kit ist kein CMake-Werkzeug eingerichtet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<source>Path to the cmake executable</source>
|
||||
<translation>Pfad zur ausführbaren Datei von cmake</translation>
|
||||
<translation>Pfad zum CMake-Werkzeug</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Change...</source>
|
||||
@@ -749,11 +749,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</message>
|
||||
<message>
|
||||
<source>Platform</source>
|
||||
<translation type="unfinished">Plattform</translation>
|
||||
<translation>Plattform</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toolset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Toolset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generator:</source>
|
||||
@@ -777,11 +777,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>CMake <a href="generator">generator</a></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake-<a href="generator">Generator</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<source>CMake Configuration</source>
|
||||
@@ -877,7 +877,7 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Open CMake target</source>
|
||||
@@ -885,23 +885,23 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>The build directory "%1" does not exist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Das Build-Verzeichnis "%1" existiert nicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<source>CMake process failed to start.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Der CMake-Prozess konnte nicht gestartet werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CMake process was canceled by the user.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Der CMake-Prozess wurde vom Benutzer abgebrochen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CMake process crashed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Der CMake-Prozess ist abgestürzt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source><Build Directory></source>
|
||||
@@ -937,165 +937,167 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?</trans
|
||||
</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>
|
||||
<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>
|
||||
<source>CMake Modules</source>
|
||||
<translation type="unfinished">CMake-Module</translation>
|
||||
<translation>CMake-Module</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Target type: </source>
|
||||
<translation type="unfinished">Zieltyp: </translation>
|
||||
<translation>Zieltyp: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No build artifacts</source>
|
||||
<translation type="unfinished">Keine Build-Artefakte</translation>
|
||||
<translation>Keine Build-Artefakte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Build artifacts:</source>
|
||||
<translation type="unfinished">Build-Artefakte:</translation>
|
||||
<translation>Build-Artefakte:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version not parseable</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Version kann nicht ausgewertet werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Searching CMake binaries...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Suche CMake-Werkzeuge...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>"%1" gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Removing CMake entries...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Entferne CMake-Einträge...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Removed "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>"%1" entfernt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CMake:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>Invalid reply file created by CMake.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake hat eine ungültige Antwortdatei erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid cache file generated by CMake.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake hat eine ungültige Cache-Datei erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid cmakeFiles file generated by CMake.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake hat ungültige "cmakeFiles" erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<source>Invalid codemodel file generated by CMake.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake hat eine ungültige Codemodell-Datei erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid target file: Information is missing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ungültige Zieldatei: Information fehlt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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>
|
||||
<source>CMake parsing was canceled.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake-Auswertung wurde abgebrochen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No "%1" CMake configuration found. Available configurations: "%2".
|
||||
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>
|
||||
<source>No "%1" CMake configuration found. Available configuration: "%2".
|
||||
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>
|
||||
<source>CMake returned error code: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>CMake hat einen Fehlerwert zurückgegeben: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to rename %1 to %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Umbenennen von %1 nach %2 ist fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to copy %1 to %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Kopieren von %1 nach %2 ist fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Failed to read %1 file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Die Datei %1 konnte nicht gelesen werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid %1 file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ungültige Datei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid "version" in %1 file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ungültige "version" in Datei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid "configurePresets" section in %1 file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ungültiger Abschnitt "configurePresets" in Datei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid "buildPresets" section in %1 file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ungültiger Abschnitt "buildPresets" in Datei %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><File System></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><Dateisystem></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -52708,7 +52710,7 @@ in "%2" aus.
|
||||
<name>CMakeProjectManager::Tr::Tr</name>
|
||||
<message>
|
||||
<source>Tools</source>
|
||||
<translation type="unfinished">Werkzeuge</translation>
|
||||
<translation>Werkzeuge</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@@ -494,6 +494,11 @@ int main(int argc, char **argv)
|
||||
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 (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("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)
|
||||
hbox->addWidget(infoWidgetCloseButton);
|
||||
} else {
|
||||
infoWidgetCloseButton->setText(info.m_cancelButtonText);
|
||||
hbox->addWidget(infoWidgetCloseButton);
|
||||
if (infoWidgetCloseButton) {
|
||||
infoWidgetCloseButton->setText(info.m_cancelButtonText);
|
||||
hbox->addWidget(infoWidgetCloseButton);
|
||||
}
|
||||
if (infoWidgetSuppressButton)
|
||||
hbox->addWidget(infoWidgetSuppressButton);
|
||||
}
|
||||
|
@@ -93,7 +93,7 @@ FilterDialog::FilterDialog(const Checks &checks, QWidget *parent)
|
||||
buttonBox,
|
||||
}.attachTo(this);
|
||||
|
||||
connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [&] {
|
||||
connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [=] {
|
||||
const bool hasSelection = !m_view->selectionModel()->selectedRows().isEmpty();
|
||||
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(hasSelection);
|
||||
});
|
||||
|
@@ -1623,10 +1623,24 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
|
||||
m_buildSystem->setInitialCMakeArguments(cmd.splitArguments());
|
||||
}
|
||||
|
||||
d->m_clearSystemConfigureEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
||||
.toBool();
|
||||
// Upgrading from Qt Creator version <9 to 9, if the build environment is set
|
||||
// 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(
|
||||
map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
||||
map.value(userEnvironmentChangesKey).toStringList());
|
||||
|
||||
updateAndEmitConfigureEnvironmentChanged();
|
||||
|
||||
|
@@ -96,14 +96,24 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP
|
||||
for (const auto &p : presets)
|
||||
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) {
|
||||
if (!p.inherits)
|
||||
continue;
|
||||
|
||||
for (const QString &inheritFromName : p.inherits.value())
|
||||
if (presetsHash.contains(inheritFromName))
|
||||
for (const QString &inheritFromName : p.inherits.value()) {
|
||||
if (presetsHash.contains(inheritFromName)) {
|
||||
p.inheritFrom(presetsHash[inheritFromName]);
|
||||
presetsHash[p.name] = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -164,8 +164,8 @@ void CompilationDatabaseTests::testFilterArguments()
|
||||
{"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""},
|
||||
{"QT_CREATOR", "1"}}));
|
||||
QCOMPARE(testData.fileKind, CppEditor::ProjectFile::Kind::CXXSource);
|
||||
QCOMPARE(testData.sysRoot.toString(), HostOsInfo::isWindowsHost() ? QString("C:\\sysroot\\embedded")
|
||||
: QString("/opt/sysroot/embedded"));
|
||||
QCOMPARE(testData.sysRoot.toUserOutput(), HostOsInfo::isWindowsHost()
|
||||
? QString("C:\\sysroot\\embedded") : QString("/opt/sysroot/embedded"));
|
||||
}
|
||||
|
||||
static QString kCmakeCommand
|
||||
|
@@ -752,7 +752,7 @@ void ExternalToolConfig::showInfoForItem(const QModelIndex &index)
|
||||
static FilePath getUserFilePath(const QString &proposalFileName)
|
||||
{
|
||||
const FilePath resourceDir(ICore::userResourcePath());
|
||||
const FilePath externalToolsDir = resourceDir / "externalTools";
|
||||
const FilePath externalToolsDir = resourceDir / "externaltools";
|
||||
if (!externalToolsDir.isDir())
|
||||
externalToolsDir.createDir();
|
||||
|
||||
|
@@ -79,7 +79,7 @@ int DocumentModelPrivate::rowCount(const QModelIndex &parent) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
||||
DocumentModel::Entry *DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
||||
{
|
||||
const Utils::FilePath filePath = entry->filePath();
|
||||
|
||||
@@ -95,9 +95,8 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
||||
this, [this, document = previousEntry->document] { itemChanged(document); });
|
||||
}
|
||||
delete entry;
|
||||
entry = nullptr;
|
||||
disambiguateDisplayNames(previousEntry);
|
||||
return;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto positions = positionEntry(m_entries, entry);
|
||||
@@ -115,6 +114,7 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
|
||||
itemChanged(document);
|
||||
});
|
||||
endInsertRows();
|
||||
return entry;
|
||||
}
|
||||
|
||||
bool DocumentModelPrivate::disambiguateDisplayNames(DocumentModel::Entry *entry)
|
||||
@@ -411,8 +411,7 @@ DocumentModel::Entry *DocumentModelPrivate::addSuspendedDocument(const FilePath
|
||||
entry->document->setPreferredDisplayName(displayName);
|
||||
entry->document->setId(id);
|
||||
entry->isSuspended = true;
|
||||
d->addEntry(entry);
|
||||
return entry;
|
||||
return d->addEntry(entry);
|
||||
}
|
||||
|
||||
DocumentModel::Entry *DocumentModelPrivate::firstSuspendedEntry()
|
||||
|
@@ -33,7 +33,7 @@ public:
|
||||
Qt::DropActions supportedDragActions() const override;
|
||||
QStringList mimeTypes() const override;
|
||||
|
||||
void addEntry(DocumentModel::Entry *entry);
|
||||
DocumentModel::Entry *addEntry(DocumentModel::Entry *entry);
|
||||
void removeDocument(int idx);
|
||||
|
||||
std::optional<int> indexOfFilePath(const Utils::FilePath &filePath) const;
|
||||
|
@@ -720,7 +720,9 @@ void ICore::raiseWindow(QWidget *widget)
|
||||
if (!widget)
|
||||
return;
|
||||
QWidget *window = widget->window();
|
||||
if (window && window == m_mainwindow) {
|
||||
if (!window)
|
||||
return;
|
||||
if (window == m_mainwindow) {
|
||||
m_mainwindow->raiseWindow();
|
||||
} else {
|
||||
window->raise();
|
||||
|
@@ -356,8 +356,8 @@ void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeSt
|
||||
slotCurrentPreferencesChanged(currentPreferences);
|
||||
});
|
||||
|
||||
setTabSettings(m_preferences->tabSettings());
|
||||
setCodeStyleSettings(m_preferences->codeStyleSettings(), false);
|
||||
setTabSettings(m_preferences->currentTabSettings());
|
||||
setCodeStyleSettings(m_preferences->currentCodeStyleSettings(), false);
|
||||
slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false);
|
||||
|
||||
updatePreview();
|
||||
|
@@ -12,7 +12,6 @@
|
||||
#include "cppeditordocument.h"
|
||||
#include "cppeditorwidget.h"
|
||||
#include "cppfilesettingspage.h"
|
||||
#include "cpphighlighter.h"
|
||||
#include "cppincludehierarchy.h"
|
||||
#include "cppmodelmanager.h"
|
||||
#include "cppoutline.h"
|
||||
@@ -260,42 +259,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
connect(openInNextSplitAction, &QAction::triggered,
|
||||
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();
|
||||
expander->registerVariable("Cpp:LicenseTemplate",
|
||||
tr("The license template."),
|
||||
@@ -336,9 +299,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
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->setTouchBarText(tr("Follow", "text on macOS touch bar"));
|
||||
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);
|
||||
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);
|
||||
cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context);
|
||||
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';
|
||||
}
|
||||
|
||||
|
||||
// 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)
|
||||
{
|
||||
if (debugBreakpoints) {
|
||||
@@ -2896,8 +2946,7 @@ void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
|
||||
for (const GdbMi &breakPointG : response.data) {
|
||||
// Might not be valid if there is not id
|
||||
const QString responseId = breakPointG["id"].data();
|
||||
BreakpointParameters reportedResponse;
|
||||
parseBreakPoint(breakPointG, &reportedResponse);
|
||||
BreakpointParameters reportedResponse = parseBreakPoint(breakPointG);
|
||||
if (debugBreakpoints)
|
||||
qDebug(" Parsed %s: pending=%d %s\n", qPrintable(responseId),
|
||||
reportedResponse.pending,
|
||||
|
@@ -168,6 +168,7 @@ private:
|
||||
unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto);
|
||||
void mergeStartParametersSourcePathMap();
|
||||
void checkQtSdkPdbFiles(const QString &module);
|
||||
BreakpointParameters parseBreakPoint(const GdbMi &gdbmi);
|
||||
|
||||
const QString m_tokenPrefix;
|
||||
void handleSetupFailure(const QString &errorMessage);
|
||||
|
@@ -189,64 +189,6 @@ QString cdbClearBreakpointCommand(const Breakpoint &bp)
|
||||
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 cmd;
|
||||
|
@@ -38,10 +38,6 @@ QString cdbAddBreakpointCommand(const BreakpointParameters &d,
|
||||
const QList<QPair<QString, QString> > &sourcePathMapping,
|
||||
const QString &responseId = QString());
|
||||
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 ...).
|
||||
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data);
|
||||
|
@@ -249,8 +249,18 @@ void DebuggerKitAspect::fix(Kit *k)
|
||||
setup(k);
|
||||
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;
|
||||
k->setValue(DebuggerKitAspect::id(), QVariant());
|
||||
setup(k);
|
||||
|
@@ -419,7 +419,7 @@ void LanguageClientManager::openDocumentWithClient(TextEditor::TextDocument *doc
|
||||
client->openDocument(document);
|
||||
else
|
||||
client->activateDocument(document);
|
||||
} else if (Core::EditorManager::currentEditor()->document() == document) {
|
||||
} else if (Core::EditorManager::currentDocument() == document) {
|
||||
TextEditor::IOutlineWidgetFactory::updateOutline();
|
||||
}
|
||||
}
|
||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"(
|
||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||
"type": "file",
|
||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"visible": false,
|
||||
"optional": false
|
||||
}
|
||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"(
|
||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||
"type": "file",
|
||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"visible": false,
|
||||
"optional": false
|
||||
}
|
||||
|
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"(
|
||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||
"type": "file",
|
||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"visible": false,
|
||||
"optional": false
|
||||
}
|
||||
|
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"(
|
||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||
"type": "file",
|
||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"visible": false,
|
||||
"optional": false
|
||||
}
|
||||
|
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"(
|
||||
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
|
||||
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
|
||||
"type": "file",
|
||||
"defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
|
||||
"visible": false,
|
||||
"optional": false
|
||||
}
|
||||
|
@@ -14,6 +14,7 @@ namespace PerfProfiler {
|
||||
class PERFPROFILER_EXPORT PerfRunConfigurationAspect :
|
||||
public ProjectExplorer::GlobalOrProjectAspect
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
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_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 PARSE_STD_OUT_KEY[] = "ProjectExplorer.BuildConfiguration.ParseStandardOutput";
|
||||
|
||||
@@ -378,8 +376,9 @@ QVariantMap BuildConfiguration::toMap() const
|
||||
{
|
||||
QVariantMap map = ProjectConfiguration::toMap();
|
||||
|
||||
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
|
||||
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
|
||||
map.insert(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
|
||||
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_PREFIX) + QString::number(0), d->m_buildSteps.toMap());
|
||||
@@ -393,8 +392,10 @@ QVariantMap BuildConfiguration::toMap() const
|
||||
|
||||
bool BuildConfiguration::fromMap(const QVariantMap &map)
|
||||
{
|
||||
d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
|
||||
d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
||||
d->m_clearSystemEnvironment = map.value(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY))
|
||||
.toBool();
|
||||
d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(
|
||||
map.value(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
|
||||
|
||||
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_ANALYZE[] = "Menu/HideAnalyze";
|
||||
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
|
||||
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)
|
||||
// will be written outside the if
|
||||
const QXmlStreamAttributes testAttributes = reader.attributes();
|
||||
QXmlStreamReader::TokenType token;
|
||||
QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken;
|
||||
while (!reader.atEnd()) {
|
||||
token = reader.readNext();
|
||||
if (token != QXmlStreamReader::Characters)
|
||||
|
@@ -5889,7 +5889,7 @@ void TextEditorWidget::extraAreaMouseEvent(QMouseEvent *e)
|
||||
{
|
||||
QTextCursor cursor = cursorForPosition(QPoint(0, e->pos().y()));
|
||||
|
||||
int markWidth;
|
||||
int markWidth = 0;
|
||||
extraAreaWidth(&markWidth);
|
||||
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.1", "[1]", "2", "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.0", "[0]", "1", "int") % NeedsInferiorCall % Qt5
|
||||
+ Check("v3.data.1", "[1]", "2", "int") % NeedsInferiorCall % Qt5
|
||||
+ Check("v3.data.2", "[2]", "3", "int") % NeedsInferiorCall % Qt5
|
||||
+ Check("v3", "<3 items>", "@QVariant (@QList<int>)") % Qt6
|
||||
+ Check("v3.0", "[0]", "1", "int") % NeedsInferiorCall % Qt6
|
||||
+ Check("v3.1", "[1]", "2", "int") % NeedsInferiorCall % Qt6
|
||||
+ Check("v3.2", "[2]", "3", "int") % NeedsInferiorCall % Qt6;
|
||||
+ Check("v3.0", "[0]", "1", "int") % Qt6
|
||||
+ Check("v3.1", "[1]", "2", "int") % Qt6
|
||||
+ Check("v3.2", "[2]", "3", "int") % Qt6;
|
||||
|
||||
|
||||
QTest::newRow("QVariant2")
|
||||
|
@@ -115,6 +115,14 @@ void tst_gdb::version_data()
|
||||
QTest::newRow("Debian 7.12 git")
|
||||
<< "GNU gdb (Debian 7.12-6) 7.12.0.20161007-git"
|
||||
<< 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)
|
||||
|
Reference in New Issue
Block a user