From 3a5c22c3ce6edf6f39f4069a1a760f8bda11b220 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 6 Nov 2023 09:24:39 +0100 Subject: [PATCH 01/34] Utils: Disable workaround for 6.6.1 Task-number: QTBUG-118241 Change-Id: I419ec43db8f8a86e74262b36afc9a67e8eb324eb Reviewed-by: Eike Ziller --- src/libs/utils/checkablemessagebox.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/checkablemessagebox.cpp b/src/libs/utils/checkablemessagebox.cpp index 8e43debc4f7..be72e4a145b 100644 --- a/src/libs/utils/checkablemessagebox.cpp +++ b/src/libs/utils/checkablemessagebox.cpp @@ -60,10 +60,12 @@ static QMessageBox::StandardButton exec( if (text.contains(" Date: Thu, 19 Oct 2023 10:14:36 +0200 Subject: [PATCH 02/34] German translation: Docker Change-Id: Iada073d89dfb305674138d024558870b1c7c0070 Reviewed-by: Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 46 ++++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 420a51f1abc..0f28f360aa6 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -28336,11 +28336,11 @@ Versuchen Sie, das Projekt neu zu erstellen. Docker executable not found - + Ausführbare Datei für Docker nicht gefunden Failed to retrieve docker networks. Exit code: %1. Error: %2 - + Docker-Netzwerke konnten nicht abgerufen werden. Rückgabewert: %1. Fehler: %2 Path "%1" is not a directory or does not exist. @@ -28356,39 +28356,39 @@ Versuchen Sie, das Projekt neu zu erstellen. Run as outside user: - + Als Benutzer von außerhalb ausführen: Do not modify entry point: - + Einstiegspunkt nicht ändern: Enable flags needed for LLDB: - + Aktiviert Optionen, die für LLDB benötigt werden: Extra arguments: - Zusätzliche Argumente: + Zusätzliche Argumente: Extra arguments to pass to docker create. - + Zusätzliche Argumente für docker create. Network: - + Netzwerk: Error - Fehler + Fehler The path "%1" does not exist. - Der Pfad "%1" existiert nicht. + Der Pfad "%1" existiert nicht. stopped - + angehalten Error starting remote shell. No container. @@ -28400,15 +28400,15 @@ Versuchen Sie, das Projekt neu zu erstellen. Image "%1" is not available. - + Image "%1" ist nicht verfügbar. Failed creating Docker container. Exit code: %1, output: %2 - + Docker-Container konnte nicht erstellt werden. Rückgabewert: %1, Ausgabe: %2 Failed creating Docker container. No container ID received. - + Docker-Container konnte nicht erstellt werden. Keine Container-ID erhalten. Docker daemon appears to be not running. Verify daemon is up and running and reset the Docker daemon in Docker device preferences or restart %1. @@ -28417,23 +28417,23 @@ Versuchen Sie, das Projekt neu zu erstellen. Failed to create container shell (Out of memory). - + Container-Shell konnte nicht erstellt werden (nicht genügend Speicherplatz). Cannot start docker device from non-main thread - + Docker-Gerät kann nur vom Haupt-Thread gestartet werden Device is shut down - + Das Gerät ist heruntergefahren Docker system is not reachable - + Docker-System ist nicht erreichbar Running - Läuft + Läuft Docker Image Selection @@ -28505,7 +28505,7 @@ Versuchen Sie, das Projekt neu zu erstellen. Host directories to mount into the container. - Host-Verzeichnisse die in den Container eingehängt werden sollen. + Host-Verzeichnisse, die in den Container eingehängt werden sollen. Maps paths in this list one-to-one to the docker container. @@ -28545,7 +28545,7 @@ Versuchen Sie, das Projekt neu zu erstellen. Failed to start container. - + Container konnte nicht gestartet werden. Docker daemon appears to be stopped. @@ -28569,11 +28569,11 @@ Versuchen Sie, das Projekt neu zu erstellen. Container state: - + Container-Status: Command line: - Kommandozeile: + Kommandozeile: Daemon state not evaluated. From 70c71ce82c43ad8ca6108f111fc8b57420b48999 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 30 Oct 2023 10:29:54 +0100 Subject: [PATCH 03/34] German translation: QmakeProjectManager, RemoteLinux, Valgrind Change-Id: I687bb66bbf20847fdda477b8c00db4e2c20f3f34 Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 34 ++++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 0f28f360aa6..b6de1091c91 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -43998,11 +43998,11 @@ Die betroffenen Dateien sind: File does not exist. - Datei existiert nicht. + Datei existiert nicht. File does not match filter. - + Datei entspricht nicht dem Filter. Library Type @@ -44132,7 +44132,7 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D Could not load kits in a reasonable amount of time. - + Kits konnten nicht in angemessener Zeit geladen werden. The application "%1" could not be found. @@ -48453,7 +48453,7 @@ Der Kontrollprozess konnte nicht gestartet werden. Error - Fehler + Fehler Failed: %1 @@ -48587,27 +48587,27 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e Flags for rsync: - + Optionen für rsync: Transfer method: - + Übertragungsmethode: Use rsync if available. Otherwise use default transfer. - + Benutze rsync, sofern verfügbar. Sonst Standardmethode verwenden. Use sftp if available. Otherwise use default transfer. - + Benutze SFTP, sofern verfügbar. Sonst Standardmethode verwenden. Use default transfer. This might be slow. - + Benutze Standardmethode. Dies könnte langsam sein. Unknown error occurred while trying to create remote directories - + Beim Erstellen von entfernten Verzeichnissen ist ein unbekannter Fehler aufgetreten rsync failed to start: %1 @@ -48623,7 +48623,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e Deploy files - + Datei-Deployment Ignore missing files: @@ -55633,19 +55633,19 @@ in "%2" aus. Parsing canceled. - + Die Auswertung wurde abgebrochen. Premature end of XML document. - + Vorzeitiges Ende des XML-Dokuments. Could not parse hex number from "%1" (%2). - + "%1" konnte nicht als Hexadezimalzahl ausgewertet werden (%2). Trying to read element text although current position is not start of element. - + Es wurde versucht, Elementtext zu lesen, obwohl die aktuelle Position nicht am Beginn eines Elements ist. Unexpected child element while reading element text @@ -55669,7 +55669,7 @@ in "%2" aus. Unknown %1 kind "%2" - + Kein "%2" in Enum %1 gefunden Could not parse error kind, tool not yet set. @@ -55805,7 +55805,7 @@ in "%2" aus. Valgrind arguments: - Valgrind-Argumente + Valgrind-Argumente: Enable cache simulation From 0b5cb1eb51323670e9cacf30e134e9d8c2699b07 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 18 Oct 2023 15:30:02 +0200 Subject: [PATCH 04/34] German translation: Core Change-Id: I919c0dc40a4b17b0d715f0d2249daa547f7175ea Reviewed-by: Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 61 ++++++++++---------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index b6de1091c91..e7bc03dd59d 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -17857,27 +17857,27 @@ Trotzdem fortfahren? Round Up for .5 and Above - + Ab 0,5 aufrunden Always Round Up - + Immer aufrunden Always Round Down - + Immer abrunden Round Up for .75 and Above - + Ab 0,75 aufrunden Don't Round - + Nicht runden DPI rounding policy: - + DPI-Rundungsstrategie: Text codec for tools: @@ -17897,7 +17897,7 @@ Trotzdem fortfahren? The DPI rounding policy change will take effect after restart. - + Die Änderung der DPI-Rundungsstrategie wird nach einem Neustart wirksam. Interface @@ -18071,19 +18071,19 @@ Trotzdem fortfahren? Show Menu Bar - + Menüleiste anzeigen Ctrl+Alt+M - + Ctrl+Alt+M Hide Menu Bar - + Menüleiste verbergen This will hide the menu bar completely. You can show it again by typing %1. - + Dies verbirgt die Menüleiste. Sie können Sie durch Eingeben von %1 wieder anzeigen. Version: @@ -18313,7 +18313,7 @@ Trotzdem fortfahren? Reset to Default - Auf Vorgabe zurücksetzen + Auf Vorgabe zurücksetzen Error Details @@ -18394,7 +18394,7 @@ Trotzdem fortfahren? Sort categories - + Kategorien sortieren Preferences @@ -18735,11 +18735,11 @@ Trotzdem fortfahren? Remove the following files from the version control system (%1)? - + Möchten Sie die folgenden Dateien aus der Versionskontrolle (%1) entfernen? Note: This might remove the local file. - + Hinweis: Unter Umständen werden die lokalen Dateien gelöscht. Add to Version Control @@ -20549,7 +20549,7 @@ provided they were unmodified before the refactoring. Sort results - + Ergebnisse sortieren Case sensitive: @@ -21046,15 +21046,15 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Entry is missing a logging category name. - + Der Name der Log-Kategorie fehlt im Eintrag. Entry is missing data. - + Im Eintrag fehlen Daten. Invalid level: %1 - + Ungültige Stufe: %1 Category @@ -21062,23 +21062,23 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Debug - Debug + Debug Warning - Warnung + Warnung Critical - + Kritisch Fatal - + Fatal Info - Info + Info Type @@ -21090,15 +21090,15 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Filter Qt Internal Log Categories - + Qt-interne Log-Kategorien ausschließen Filter categories by regular expression - + Kategorien mit regulärem Ausdruck filtern Invalid regular expression: %1 - Ungültiger regulärer Ausdruck: %1 + Ungültiger regulärer Ausdruck: %1 Start Logging @@ -21114,15 +21114,16 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Uncheck All %1 - + Alle vom Typ %1 abwählen Check All %1 - + Alle vom Typ %1 auswählen Reset All %1 - + %1 is "Info", "Debug", etc + Alle vom Typ %1 zurücksetzen Save Enabled as Preset... From 624a6a0e60f696fa0664e89a80560be27c67090c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 19 Oct 2023 11:45:30 +0200 Subject: [PATCH 05/34] German translation: LanguageClient, LanguageServerProtocol, Python Change-Id: Id5d5999825f0d8ae79249b0660f136fd5b262534 Reviewed-by: Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 37 ++++++++++---------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index e7bc03dd59d..529f7d9a175 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -34168,27 +34168,27 @@ Ablaufdatum: %3 Symbols in Workspace - Symbole im Arbeitsbereich + Symbole im Workspace Locates symbols in the language server workspace. - Findet Symbole im Arbeitsbereich des Language Servers. + Findet Symbole im Workspace des Language Servers. Classes and Structs in Workspace - Klassen und Strukturen im Arbeitsbereich + Klassen und Strukturen im Workspace Locates classes and structs in the language server workspace. - Findet Klassen und Strukturen im Arbeitsbereich des Language Servers. + Findet Klassen und Strukturen im Workspace des Language Servers. Functions and Methods in Workspace - Funktionen und Methoden im Arbeitsbereich + Funktionen und Methoden im Workspace Locates functions and methods in the language server workspace. - Findet Funktionen und Methoden im Arbeitsbereich des Language Servers. + Findet Funktionen und Methoden im Workspace des Language Servers. Unexpectedly finished. Restarting in %1 seconds. @@ -34266,12 +34266,13 @@ Beispiel: *.cpp%1*.h Workspace Configuration - + Workspace-Konfiguration Additional JSON configuration sent to all running language servers for this project. See the documentation of the specific language server for valid settings. - + Zusätzliche JSON-Konfiguration, die an alle laufenden Language Server für dieses Projekt gesendet wird. +Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Language Servers. &Add @@ -34311,7 +34312,7 @@ See the documentation of the specific language server for valid settings. failed to initialize language client state - + Initialisierung fehlgeschlagen initialized @@ -34381,7 +34382,7 @@ See the documentation of the specific language server for valid settings. Language Server - Language Server + Language Server Generic StdIO Language Server @@ -34537,15 +34538,15 @@ See the documentation of the specific language server for valid settings. Create %1 - + Erstelle %1 Rename %1 to %2 - + %1 in %2 umbenennen Delete %1 - + %1 löschen @@ -43037,19 +43038,19 @@ fails because Clang does not understand the target architecture. Select PySide Version - + PySide-Version auswählen Select which PySide version to install: - + Wählen Sie die zu installierende PySide-Version aus: Latest PySide from the Python Package Index - + Letzte PySide-Version aus dem Python-Paketindex PySide %1 Wheel (%2) - + PySide %1 Wheel (%2) %1 installation missing for %2 (%3) @@ -43181,7 +43182,7 @@ fails because Clang does not understand the target architecture. Issues parsed from Python runtime output. - + Probleme, die in der Laufzeitausgabe von Python gefunden wurden. From 66ea8b8989ebf20eff070bda3a524add0ec4bfd1 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 18 Oct 2023 15:57:06 +0200 Subject: [PATCH 06/34] German translation: CppEditor Change-Id: Ib15f20e77f820a131897c35c03c7ac5f39f4b0dc Reviewed-by: Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 34 ++++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 529f7d9a175..0f9b15ff734 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -21458,19 +21458,19 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Convert Comment to C-Style - + Kommentar in C-Stil umwandeln Convert Comment to C++-Style - + Kommentar in C++-Stil umwandeln Move Function Documentation to Declaration - + Funktionsdokumentation zur Deklaration verschieben Move Function Documentation to Definition - + Funktionsdokumentation zur Definition verschieben Insert Virtual Functions of Base Classes @@ -21514,15 +21514,15 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Fold All Comment Blocks - + Alle Kommentarblöcke einklappen Unfold All Comment Blocks - + Alle Kommentarblöcke ausklappen C++ File Naming - + Namenskonvention für C++-Dateien The license template. @@ -22485,9 +22485,9 @@ z.B. name = "m_test_foo_": Checked %1 of %n function(s) - - - + + %1 von einer Funktion geprüft + %1 von %n Funktionen geprüft @@ -22536,11 +22536,11 @@ z.B. name = "m_test_foo_": Decision Forest - + Decision Forest Heuristics - + Heuristik Interpret ambiguous headers as C headers @@ -22584,15 +22584,15 @@ z.B. name = "m_test_foo_": <p>If background indexing is enabled, global symbol searches will yield more accurate results, at the cost of additional CPU load when the project is first opened. The indexing result is persisted in the project's build directory. If you disable background indexing, a faster, but less accurate, built-in indexer is used instead. The thread priority for building the background index can be adjusted since clangd 15.</p><p>Background Priority: Minimum priority, runs on idle CPUs. May leave 'performance' cores unused.</p><p>Normal Priority: Reduced priority compared to interactive work.</p><p>Low Priority: Same priority as other clangd work.</p> - + <p>Wenn sie das globale Indizieren aktivieren, liefert die globale Symbolsuche genauere Resultate, es erhöht aber die CPU-Last beim ersten Öffnen von Projekten. Das Resultat der Indizierung wird im Build-Verzeichnis des Projekts gespeichert. Wenn sie das globale Indizieren deaktivieren, wird stattdessen ein schnellerer, aber weniger genauer, integrierter Indexer benutzt. Seit Clangd 15 können Sie die Priorität für die Indizierungs-Threads anpassen.</p><p>Hintergrund-Priorität: Niedrigste Priorität, läuft nur auf leerlaufenden CPUs. Kann "Performance"-Kerne ungenutzt lassen.</p><p>Normale Priorität: Geringere Priorität im Vergleich zu interaktiven Aktivitäten.</p><p>Niedrige Priorität: Dieselbe Priorität wie andere Clangd-Aktivitäten.</p> <p>The C/C++ backend to use for switching between header and source files.</p><p>While the clangd implementation has more capabilities than the built-in code model, it tends to find false positives.</p><p>When "Try Both" is selected, clangd is used only if the built-in variant does not find anything.</p> - + <p>Bestimmt, welches C/C++-Backend zum Wechseln zwischen Header- und Quelldatei benutzt wird.</p><p>Die Clangd-Implementation hat mehr Fähigkeiten, aber auch einige Fehler, die nicht in der integrierten Variante vorhanden sind.</p><p>Wenn "Beide versuchen" ausgewählt ist, wird Clangd nur benutzt, wenn die integrierte Variant nichts findet.</p> <p>Which model clangd should use to rank possible completions.</p><p>This determines the order of candidates in the combo box when doing code completion.</p><p>The "%1" model used by default results from (pre-trained) machine learning and provides superior results on average.</p><p>If you feel that its suggestions stray too much from your expectations for your code base, you can try switching to the hand-crafted "%2" model.</p> - + <p>Das Modell, das Clangd für die Rangfolge der möglichen Vervollständigungen benutzen soll.</p><p>Dies bestimmt die Reihenfolge der Kandidaten im Drop-Down-Menü der Code-Vervollständigung.</p><p>Das voreingestellte Modell "%1" wurde durch maschinelles Lernen trainiert und bietet im Schnitt die besten Ergebnisse.</p><p>Falls dies für Ihren Code zu sehr von Ihren Erwartungen abweicht, können Sie auf das manuell erstellte Modell "%2" umstellen.<p> Number of worker threads used by clangd. Background indexing also uses this many worker threads. @@ -22656,7 +22656,7 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun Completion ranking model: - + Rangfolge-Modell für die Code-Vervollständigung: Document update threshold: @@ -23008,7 +23008,7 @@ Flags: %3 collecting overrides... - + Suche überschriebene Methoden... From 566754014bb2c0ad2667b05ad9a2965d7a173d9d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 3 Nov 2023 13:08:59 +0100 Subject: [PATCH 07/34] AutoTest: Fix handling of gtest settings Fixes the initial value of the group mode as well as storing and retrieving the values. Also correctly updates the enabled state of the filter. Change-Id: I083b783a60729cae795f0aaf1638da499737f545 Reviewed-by: Marcus Tillmanns --- src/plugins/autotest/gtest/gtestframework.cpp | 10 ++++++++-- src/plugins/autotest/gtest/gtestframework.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/autotest/gtest/gtestframework.cpp b/src/plugins/autotest/gtest/gtestframework.cpp index 8e54e1d7255..191ffc82c29 100644 --- a/src/plugins/autotest/gtest/gtestframework.cpp +++ b/src/plugins/autotest/gtest/gtestframework.cpp @@ -95,14 +95,14 @@ GTestFramework::GTestFramework() // avoid problems if user messes around with the settings file bool ok = false; const int tmp = savedValue.toInt(&ok); - return ok ? groupMode.indexForItemValue(tmp) : GTest::Constants::Directory; + return groupMode.indexForItemValue(ok ? tmp : GTest::Constants::Directory); }); groupMode.setToSettingsTransformation([this](const QVariant &value) { return groupMode.itemValueForIndex(value.toInt()); }); groupMode.addOption({Tr::tr("Directory"), {}, GTest::Constants::Directory}); groupMode.addOption({Tr::tr("GTest Filter"), {}, GTest::Constants::GTestFilter}); - groupMode.setDefaultValue(GTest::Constants::Directory); + groupMode.setDefaultValue(groupMode.indexForItemValue(GTest::Constants::Directory)); groupMode.setLabelText(Tr::tr("Group mode:")); groupMode.setToolTip(Tr::tr("Select on what grouping the tests should be based.")); @@ -144,6 +144,12 @@ ITestTreeItem *GTestFramework::createRootNode() return new GTestTreeItem(this, displayName(), {}, ITestTreeItem::Root); } +void GTestFramework::readSettings() +{ + Utils::AspectContainer::readSettings(); + gtestFilter.setEnabled(groupMode.itemValue() == GTest::Constants::GTestFilter); +} + QString GTestFramework::currentGTestFilter() { return theGTestFramework().gtestFilter(); diff --git a/src/plugins/autotest/gtest/gtestframework.h b/src/plugins/autotest/gtest/gtestframework.h index ff9e2766b58..80052980b1d 100644 --- a/src/plugins/autotest/gtest/gtestframework.h +++ b/src/plugins/autotest/gtest/gtestframework.h @@ -32,6 +32,8 @@ public: QString groupingToolTip() const override; ITestParser *createTestParser() override; ITestTreeItem *createRootNode() override; + + void readSettings() final; }; GTestFramework &theGTestFramework(); From aee3b6116494946b7dfd719af7ef9fe728c46b4b Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 6 Nov 2023 12:21:13 +0100 Subject: [PATCH 08/34] Utils: Fix compilation Amends: 3a5c22c3ce6edf6f39f4069a1a760f8bda11b220 Change-Id: I3914e43f9535673a0d7a82e7955565ce5a763c06 Reviewed-by: Marcus Tillmanns --- src/libs/utils/checkablemessagebox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/utils/checkablemessagebox.cpp b/src/libs/utils/checkablemessagebox.cpp index be72e4a145b..91f3c1855c0 100644 --- a/src/libs/utils/checkablemessagebox.cpp +++ b/src/libs/utils/checkablemessagebox.cpp @@ -64,8 +64,8 @@ static QMessageBox::StandardButton exec( #if QT_VERSION < QT_VERSION_CHECK(6, 6, 1) if (!buttonTextOverrides.isEmpty()) msgBox.setOptions(QMessageBox::Option::DontUseNativeDialog); +#endif // QT_VERSION < QT_VERSION_CHECK(6, 6, 1) } -#endif #endif if (decider.shouldAskAgain) { From 5b8f7c315ace6827450fadcf2bb7f66f6ad7646c Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 3 Nov 2023 10:16:07 +0100 Subject: [PATCH 09/34] Doc: Describe the "Throw on failure" check box ...in Preferences > Testing > Google Test. Updated the screenshot. Task-number: QTCREATORBUG-29392 Change-Id: I35faf25fe39cab7569bcefbfd0fa072f55684c2c Reviewed-by: Christian Stenger --- ...reator-preferences-testing-googletest.webp | Bin 3942 -> 4108 bytes .../howto/creator-only/creator-autotest.qdoc | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/qtcreator/images/qtcreator-preferences-testing-googletest.webp b/doc/qtcreator/images/qtcreator-preferences-testing-googletest.webp index 1a60a66ae905ad067a02073327781f28eb77b513..4d75ee1c448f5a469f87d96182c37db433c157eb 100644 GIT binary patch literal 4108 zcmWIYbaP`7U|c$!am$Kc>ljy7@jstt^!)#S`56}`?e)vc3VX% zR6Hjw@tE{?p~Ewi>*rR;ENlI492|Im+IGd~+?kVdZin4|A>(^+$(K7yfri(A%;f!V zU)t^cYoJjCWL?=7w(h#M>4_Ej2OUbU zr=Od2`LEP5i&$avR1PV#!>a?=-(M4+F(Gheyo>0PcV2&WX7Z|THZ2TpTaakHM{4Th z!VQIcL{_|eywLT=6vd1iJ?oDdA9!=wjyG9k-o5mU>l>JupKrZ*UE6cMZS?6227)qk zzVlT4QFwYH?fd?DvWX9t?J7Ci*%kA!*6jT5^Z!@w?84ULTI!u#mfdRy;Q% z?9`%S_Vi!prnoP0((q~wH9LG@XZ3kMqmJ8d^5GT6rfYxnO}r(3FpRnLs`IJ7&owgk zhE+$GGG0o0;wMuczQfFENx){N+H3cA$@H&&EXe0#diU@8^y4~LCuQX>cG{Kp*kbQ? zdqFPNDCRY7b0Q)?mEJhb%>1_L&y^#4{7(Fjl=Kg9U4L2iuR>tlmxo*uk2#q%k{{|m zKjysc(Vc_7VNKV~B9@f(=rD#kEAN>s>}p(;{&nyBO@(=#0v}mcZ@FBW=h|Dn|I3HC zyYHXvmV6#&;8C&f-JQMZMYdcOE|2OAWF-tvCC#rby=#BrlB({Hqz7#u-=F0VQfn}Z zvssw@(44*I){gIQTD+NZ7p%|qDza{S-x#`JLiX0x@9*Buzjh}`#>Z6T$SEV&tl#Go zdMf2io?m)(MzQpB&z*xx(*k&>WH?57HyvjcvD?2WnX%012kZLvk0*6?Hb?(CzUjY& zYJ*YE-&)z(m;Lrw6~DjPXF z=$`i7qVa1zjws$e_uedv+jGH(l3dTO+Dqy#Uv5rqZ~OnCto?=c;)@lvHhMdjB*pWK zGk?7xw6RCthyD7Ku9G*^53#=IUf{a>`@FdUo(p)d+;aPQ(Csbbx|UlT8AF}hBLa% zaxjsps&0Z%(21+M!bZDz^_qM3YPHy(?O@1NxNjCUZ^Hw*35pA{UI=K{@Sga{zf@pi zNA>ScW^r>Z7LC+`qMN2B5-)}kG zy5r;&&ILV{&;R^0v6PQ-SgzueoQ;Y^U7};%Poia z+f$bO3uvuw&}I?c-0@)5LY;3FH~yJD7q!{KKjmC1%fXE|@5P;!xO8)wz{Tvhy50qU zOsY+eUY>tv;r#0fk25p_?z%g7Z_sqUut74u_x8hLp`1B-tgC*PBA?!?vmc-rJMC=ZBL)$9$}}Gx>2>-MTef*8NRhY-(jS6pUr5}otC4#UdJ98 zdwj9jAo~2yje?0w4_-5xu)Hz$xL2W);tG{UvByi_yt%QxP0%*|)MM_8j8im1a%PyE z(tED>_124*u18Hz39pgZ(dp697<-&6Pw9zMOn+&+e4YC8=J)HqOTNBVI=x`Wnw=6I zk4;wX(^=7aT1NVbQA1qvotO<`!MY2Qa~DT#5`H`}&?2+3!p3Y>oV4zLNx>4u^vf(= zhq+g@o^BE1V%s?*RW*sHbj{qa9b!U8(f&0-Y=jL$o7TT~lZGtPg+h zYcR83>k3;SrXYNG$y^ELZEv?;^pf0hl4UDHdvM9*DU3CDA8tLW{X7EsvP)oF7=61dd~d7%InFu>fd~}{dIJ9AN%$>8EUBywq9g%xIOQs z-hsZWev7?+?Jg2Mb#BMPIS;anKjz3v9GQ4Kd(+uJ5?o6K@;|m%M(ViqLzqlrqMqZ zioCgJcHfNik45Lw4v)gNo(p+#zGuYiYGNL$$`&T<-Wt)xk)WtvG(%#?f8k9hr)K{D z`{?rAUq{VfO`Y+(VDCT4eM()|e?BwoD2O;JovOZe!UaWr*_XXJW-r%2@c)phy57d3 zT5Xz=$Lbw(^h|qF3X2kbTCV@R=5=$Xp84slrJI7Y_c!uu_(pA*a(VWq#&GV&$fKI; zElU#%9^HDdLQh!nnq!=`Os4jNNe){RS~p(tcp?{B!EkRyjklOvK*8MiJ8y8!xtGw+ zlVYtZJtuU|hgr(fR!a?hUBa*X3Rk=>(2@64n(~nAaQ0g_<=bD=H%<7zfW5eZ-y_GO1JY~p1SaI-ume)qUNZ^hiH9!<#(4a?Oc+pVb=Drl@hDot&NK^ z{9JCEb?VNdlp4ou!B^tvSKV2Y(vzgC_4m=uX|tys-?5Lw%PZ^R8}ajfdwxim#kaUD zi;p?}$7h3H$fSVYId0qB);u}OKTUe;ZP~-ekMx(3P zdCyOM%2vDlr$$r8zR%}2TvNKK|8DC=p^ELgsWR-7nFD9ld+xaL;G4XBzTBR++Fx2{ zzj_^;aBa~I{kRQb5AKRd9-kXJtG;u>yv>cT91lF=w-)~*(_O^uu>aHUB?%i3UfJA1iFQ z^v8RNLbc?J7>S9WWxi|2cGz9^7x{fuI(1@sbcW1!uh04un_i`EC_c&bYpR>ed?O{H zzmI}G8!PU;&Ggt}ensb{Ki(?gt2pakIxkn5xRde8o|rF%^X-@vPR-%?+I@Q85`Gh@ z*M_egGg!;@3WNjm7+!=+y}bJLY4u0JkB>!We6MJkw{fb<=X0qqnzDC?%N?7(yWrkq z!C&jzRc^k@xxDq%;;na{?7h2sYS-;AYI`Hj&RHAw ze6?1&wqW_g-d&R0!+Gu|Z&|x3;m%hx7(|lSxf2^7DW(L>f#VJR1!d9FJ z-ISE2vTTy*Nh?iHJBx?LE_w66|J1#0WEsqE*3uMfdtJ%%4 zdESG+O$R(SC9TTfQ1stN0P5F!UiX<;xd2=#!Qr27ynMkB|ey!bxhi-e(xKZe)(Ld zCh44;VtVNlZSVChtDKpe&&}3YP%!&sr^OzgmtS8UKe4Z}Qsvp}t#t(-e;us)TebU- zBBP6fqzA9ifvKzl&QiHwBFY~~ggi_Qs6G6*G;dy%*l*>%T#v1G|0y`L{?mdK1=AM3 zbw1vA*4ekZw;rE(Sn$P*9oAA1wwLoi9<^Y>m9mTy*>EA>xKrELYBB8Fweex> z;Zrx}&uzSzKV81>^Y@`Yjw%OkSKjw^k$ew3+v7sUcp>2lEbpJMS4<7)J@$UL+M{=7hH{dE z%0Idi#Dc!ua9#U&fLR%zg1Yv& zUgee5Y+32|EKE|;3iozq^DB`GjhMZ74; z&R;BkO1^X35zfiUh0SRmI(GB5&NltB+4SdN6x*8vchZ=Wns2lJ|97)M>w!=9-769| zO687fTU-)e_`y?u!hcf+zCD#+9(+wj4g@3S`F z;`oF#k-e-RGMRM@-*Nr15v*~tfATX-7k00;n zJ%4w>3-K9}|HSH>b<0j9M*O&-eOAcUg8P=%tm?2T4&!~C|1)wHiQd3B`A#mz$xNl}@%yJZ5>RCeB8r*iA@OCLwWlGVB^ zr-tjYnt5*9y1e(xw*(8*RhcT@M{n${OEXHnc8Bq**cX+X+tzNoXgRCN^W{$0MM>*E z8cYAHebRcm|3j%gQTn0g$~(6`TJ`QpM%63Dx7W{f|5-W3Kb1|z?DXo1 zGO_VHedPnpm1EmGXYabavinKR{b z-8<{c&F-x{yut??EA<_Y@;iOY-}d+QQ9;JEMc&c=TTX_(@2Vuyf4Yl^o*6S1O4tmyOX>fV^)%M_nU7HS0njx5QM)~Iw=K0dkZ@fBtWJ?h5;;Uls z!k9ZtJ2qLIGfw>R=fySd*d?kb<{G@w)5>k}2;0p2Yt7nHOR4p4u4xCZmfYSSC$l+B z?d{WJd{3WR@SN`dqVA-)`0CND7oAtt<{$cd$236tiMm?aoR&ZFQwpbPRkiB9WN$n* z$3;`1XERHH+uz(|x5Y_EXE4vs;SP;1znCQv8?&aZcE>W+F0m))F8#irntaAa@lj>i zQ@`soT&rz9Ep0#ls?PkbujJ+q$3vf28uq75m6MKeNvSiCW#Kp#Gru<1RWAGGq*p;a zcMN{*{pomuCE(b@NOdtI*$;CcPpmnl+9+c&efFfd!z;uhn7F21t9bd>{nyz|Gx_hX zY~$T{%V)x^Pq97*=NoFy>HEq~F;_kztCJ)bdQeQ)BYR$Ds>4I$Za*Cd?dJFo$GG%X zN=WW--8bv$>M0DTIxh3ixe@cO#XGqF$>gf<4yuhZH%|BRs(CEnS;hKfe`Ub#PQ9(E z!aGBFc{hF&cbInT_}N8MPIp>p+&S_0*gYpw13kQwU^*;+GxJ}LUz2Q%(ACZ#fb&i zzwo_tG-h*l|gOHZEjNrmM0O)Iub@l9aTlvktdwicYf18x%xUJ8ct+B$hr0?X6? zE}q72b}kEBW_+B$xu8cf`3aw?oxIOMu@yN}t3re-gf~o=UVG$GxbBY^>`@Hs19pV- z@@|weh`OjQoYg8c(f_PVxLV&0l^n^^C!B}ZMXEF$O6_IYx%kTl3&B-4SlyFn-q)Go zc=zNa2fjI{eLY|EhuvWEQd|+yQ?OoYR#K+X+w~=(hnss7Uax7Bo-^;=+tL{eN*-x8 zzu3BMnyN($Ta8TDbf=y1`&Ya>wsO+yUH+*$Ia-4sW(+;!P%I0buEpQ6(?3wn!`{)tn`%;cy zQoc@fn#16gBFgS7B|7uqFuN-XZk67Mm9vUYe6PEA*6|D!&S=cxC-sQd#m z9k;)n{~&tt<0R{}WL@qJw=x(POzwB{-?z=lseNC`lI!~;7w>PfKbSss%T}Lw4q4`1 zy>H$-R_%Ht=p&Z?TKQ1bN!g`IO#0;~gSPI9JpR!9gW^(6@ubY(LM|MC9v(35^Ev%M zVY-&Rgvrds%tbDl%70R(6nF|to;Y^9=ge~txoNCAFCy4q`n%uaa`9~0E$jW&U2fX1 z#~;$ZMhD$*?V0{3WyPC`C%EN~Z%}2QG*`%Op5OchzRyIP%QV^CDk8hKD0JPPXf)q@ z=afT5M{b&*7W}e2`KO1_LY{DmS(devdVd+Od~Uz8zGZph-jJ6^zi>KN9^9CHC#lma zErw%aZH%or)7+;#OA0a)=x>J| z_t&bwdTWFfsx7{ro{+ugo8LjU0BQEmh0A|jbGQ|uTJ`Hz)G3GSkuKegr<8UI2#NBG zh1jcq{nh{Atk(VodmfxHjWayk5wTOiDBu={xRs)eTXe4Xq8W^*l)@&+%l^E)u%=h^ z-GSG$Lw>dX0~}YUYcRvVQl?)|y4FP~o-Rd2qVI(Y{}|nWrvU zsILA?>*Iv~6>8F}!bA0iej9GTr}g0S-k9})XLopf(-O5V*__vsa6Tr~d{XtQ5T4NT zko9X>s)cIbg&BRzc*I%uU*S-!*Rebwn}hG6>@cm`v~3sXjw7yYjU6t#)g97!RJaaT zJ}B(VIefP0V)UDTZ#B}^d=FqLy;>GMJ>xsWik^cmFPVy-u-s|cz31q=`zs2rRbTrq ze|wk9ZuK=+l>UVIl}}LGtvO-(!tw_9ubB*ifhjxh#=jPNx8&=*kAGKZZ?3+odP`bc z@f2Is!A>Urhr2WzWGo%m>*?4u`FHmeC%n^_OZ`4w-)q11>O^VPSAvyX{bdL5#P50d zW$pjqwPBHYfui@XnQ3J1R+;xf)kA@iP09V|yjN+ej}v{1rsP-W2Wh>#YW+2f_uHE7 zyJEIhdURF@yuYw@$3~$KbKRx2iaY=Ai2Bt2=e>z>WZ-hi1X)(`56{{cYs`K*ukM2$ zH|tEp+S~2xOJ*_ZJ)QXOkmB3U0&CC3NqdekIH#TQ?c+B1z23eeWx3=F>y!igT=bjI z%pW8pucWulAwl`H=!p{EfCk*p`ef0VBf7RzLaj_8<68o1K^;J47pShsm(aRkS#wEYqR$o3d zaedHPImWqZMN=)2PtANL;--*NfW^F#7Cblq$9l;RVnm(}X^{b17G zzWV%8uWL*`A?wa)I9ZC9-rQ^7rOq-#eD=q0=i>FP7e8{Jec?e_^hVc{Gll)P?>@Xo zVcYiB24?H1vp-yBDDu3_)k?m;&vKXcx$T)%2_Lr|G}(JruRef5(1R_gnMEUYo|N;f zwO=C27i_d}mI!&-x&P|f?$b%}KI;$exTt;TT?do*9x)6E$dWes)U7%3^P;46&2|fdgM$z6cAK)%-ja3keLZ^_ zbxmc{rj7PD-ye&be(X(mhwd?%8!0Q;?AFha@6%Rg)zW^(zoF*uk166u_x=j5l=7cr zQENB*?Y|TJ_stTX*&nFz?U!b76AZW#^8BoZ-h7^mD>TpSSrMUg?BBhW@@L!`n{Gd} zU_9`x_I|%Thvku{npd9He&n+7)71X=y;-xr>+|xf_AX}n1=G3n_V5-k!t+#Pm(uV!h8(5~iEubI1&OV@W*f3W`KckTO$3Dym|Rcoxvb_y8HF4x%8 znfI#j2ye{)1RD;CUh#tCj~#?+=EXRlnjp2lJ7?SP#QyA|n{VPX zSJ$;VlgrnxD-3=WrI31%{pwnluS;E>7cHnW%2*@Lr_noGT=eMe5Z4Qhjc-Gm?Hd-& zohUi)sPO)KpXY6s%G(mQDK;-~ez$o|V{X;vUomseb$)2Qyq*80@2ld8-TVzZ2G8rE?(l~E zNuwigJ7(}qXA4N2z$T~CJy&S6l6`E{(w4%-VjnZkn0O0YK5*W!MDnO%MDCRXbB{i@ mOlg!(@az=r)f3rvvh!S)kC=;J3g79@m<{cJo=?58hZg|G!FXQ) diff --git a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc index 8d72d3ba896..544c3274aa0 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc @@ -482,6 +482,12 @@ To run disabled tests, select the \uicontrol {Run disabled tests} check box. + To turn assertion failures into C++ exceptions, select the + \uicontrol {Throw on failure} check box. + + To turn failures into debugger breakpoints, select the + \uicontrol {Break on failure while debugging} check box. + To run several iterations of the tests, select the \uicontrol {Repeat tests} check box and enter the number of times to run the tests in the \uicontrol Iterations field. To make sure that the tests are independent and @@ -490,8 +496,6 @@ randomizer in the \uicontrol Seed field. The value 0 generates a seed based on the current timestamp. - To turn failures into debugger breakpoints, select the - \uicontrol {Break on failure while debugging} check box. To group Google tests by using a GTest filter, select \uicontrol {GTest Filter} in the \uicontrol {Group mode} field, From 1058ece953b4fc4b4766934f835ff66bb1cb71bb Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 6 Nov 2023 15:51:31 +0100 Subject: [PATCH 10/34] QmlJsEditor: Fix crash when updating outline view If the outline view is set to not show all bindings, it can crash after writing code that temporarily produces an element after the cursor that is interpreted as the child of a NonElementBindingType. In the bug report that is a temporary structure of * Window (element) * ... * Rectangle (element) * ... * y (non-element binding) * y (element binding) * Text (element) <- this gets selected in the global outline When an element is selected in the global outline, the outline view searches for the first element in the parent hierarchy for which the source index is successfully mapped to its filtermodel. (QmlJSOutlineWidget::updateSelectionInTree) Since filterAcceptsRow only explicitly filters out items that are non- element bindings, the "Text" element in the above example is "not filtered out", and is set as the selection in the outline view, even though it is not visible because one of its parents is filtered out. That leads to a crash later on. Make sure that filterAcceptsRow explicitly filters out any item that has a NonElementBindingType in its parent hierarchy. Fixes: QTCREATORBUG-28862 Change-Id: I1091daae140f13ea7fea7bb637953f51348c3b63 Reviewed-by: Ulf Hermann --- src/plugins/qmljseditor/qmljsoutline.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index 89d2dd68320..73a9b2b0b33 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -44,9 +44,13 @@ bool QmlJSOutlineFilterModel::filterAcceptsRow(int sourceRow, { if (m_filterBindings) { QModelIndex sourceIndex = sourceModel()->index(sourceRow, 0, sourceParent); - QVariant itemType = sourceIndex.data(QmlOutlineModel::ItemTypeRole); - if (itemType == QmlOutlineModel::NonElementBindingType) - return false; + while (sourceIndex.isValid()) { + if (sourceIndex.data(QmlOutlineModel::ItemTypeRole) + == QmlOutlineModel::NonElementBindingType) { + return false; + } + sourceIndex = sourceIndex.parent(); + } } return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent); } From 6cd196511db5a3ac65d0852177ae612084239e4f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 6 Nov 2023 13:48:12 +0100 Subject: [PATCH 11/34] Utils: Fix Terminal.app script for macOS 14 The "where its tab 1 = newTab" fails on macOS 14.0. I've also added some logging to make investigating future potential problems quicker. I've filed feedback to apple here: https://feedbackassistant.apple.com/feedback/13341074 Fixes: QTCREATORBUG-29246 Change-Id: I79c6f75daa34a3c346934ee2c21a5dfc9daf3cff Reviewed-by: Eike Ziller Reviewed-by: --- .../utils/externalterminalprocessimpl.cpp | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/externalterminalprocessimpl.cpp b/src/libs/utils/externalterminalprocessimpl.cpp index 5cff874eb76..380dd633f54 100644 --- a/src/libs/utils/externalterminalprocessimpl.cpp +++ b/src/libs/utils/externalterminalprocessimpl.cpp @@ -8,7 +8,11 @@ #include "terminalcommand.h" #include "utilstr.h" +#include #include +#include + +Q_LOGGING_CATEGORY(log, "terminal.externalprocess", QtWarningMsg) namespace Utils { @@ -33,6 +37,16 @@ static const QLatin1String TerminalAppScriptAttached{R"( end tell )"}; +static const QLatin1String TerminalAppScriptAttachedWithoutWindowClose{R"( + tell application "Terminal" + activate + set newTab to do script "%1 && exit" + repeat until ((count of processes of newTab) = 0) + delay 0.1 + end repeat + end tell +)"}; + static const QLatin1String TerminalAppScriptDetached{R"( tell application "Terminal" activate @@ -52,8 +66,17 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData bool detached = setupData.m_terminalMode == TerminalMode::Detached; if (HostOsInfo::isMacHost()) { + // There is a bug in macOS 14.0 where the script fails if it tries to find + // the window id. We will have to check in future versions of macOS if they fixed + // the issue. + static const QVersionNumber osVersionNumber = QVersionNumber::fromString( + QSysInfo::productVersion()); + static const QMap terminalMap = { - {"Terminal.app", {TerminalAppScriptAttached, TerminalAppScriptDetached}}, + {"Terminal.app", + {osVersionNumber.majorVersion() >= 14 ? TerminalAppScriptAttachedWithoutWindowClose + : TerminalAppScriptAttached, + TerminalAppScriptDetached}}, }; if (terminalMap.contains(terminal.command.toString())) { @@ -101,6 +124,17 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData Tr::tr("Failed to start terminal process: \"%1\".").arg(process->errorString())); } + QObject::connect(process, &Process::readyReadStandardOutput, process, [process] { + const QString output = process->readAllStandardOutput(); + if (!output.isEmpty()) + qCWarning(log).noquote() << output; + }); + QObject::connect(process, &Process::readyReadStandardError, process, [process] { + const QString output = process->readAllStandardError(); + if (!output.isEmpty()) + qCCritical(log).noquote() << output; + }); + QObject::connect(process, &Process::done, m_interface, &TerminalInterface::onStubExited); return 0; From c617d97c29b8eb783db8f5c4914cb710fe629359 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 6 Nov 2023 11:50:36 +0100 Subject: [PATCH 12/34] TaskTree: Preserve the right order of the 0 TimeoutTask Like it's done for all other TimeoutTasks. Before it was flaky on mac. Change-Id: I2999b1264d313dda5d614d9dbd7ae03b2bf00fb0 Reviewed-by: Marcus Tillmanns --- src/libs/solutions/tasking/tasktree.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libs/solutions/tasking/tasktree.cpp b/src/libs/solutions/tasking/tasktree.cpp index 5dc743f1324..f3fc0ccd9bc 100644 --- a/src/libs/solutions/tasking/tasktree.cpp +++ b/src/libs/solutions/tasking/tasktree.cpp @@ -2728,10 +2728,7 @@ TimeoutTaskAdapter::~TimeoutTaskAdapter() void TimeoutTaskAdapter::start() { - if (*task() == milliseconds::zero()) - QTimer::singleShot(0, this, [this] { emit done(true); }); - else - m_timerId = scheduleTimeout(*task(), this, [this] { m_timerId = {}; emit done(true); }); + m_timerId = scheduleTimeout(*task(), this, [this] { m_timerId = {}; emit done(true); }); } } // namespace Tasking From 05ce5ea14df56c0394ba78679a581b9a40bec5cf Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 6 Nov 2023 14:13:11 +0100 Subject: [PATCH 13/34] CppEditor: Fix crash when calling CppModelManager::projectPart find and end of QMap potentially detach the container, so we have to use constFind and constEnd Fixes: QTCREATORBUG-29716 Change-Id: I2fef46580ff5b58a70201841423e5ca0a7b4d107 Reviewed-by: Cristian Adam Reviewed-by: --- src/plugins/cppeditor/cppmodelmanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index e72c630cbf7..52f0ea89845 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -1647,8 +1647,8 @@ QList CppModelManager::projectPart(const FilePath &fileNa { { QReadLocker locker(&d->m_projectLock); - auto it = d->m_fileToProjectParts.find(fileName); - if (it != d->m_fileToProjectParts.end()) + auto it = d->m_fileToProjectParts.constFind(fileName); + if (it != d->m_fileToProjectParts.constEnd()) return it.value(); } const FilePath canonicalPath = fileName.canonicalPath(); From dce08c5b9e304c44d040190a4d8f9bfa17287c44 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 6 Nov 2023 13:49:21 +0100 Subject: [PATCH 14/34] Utils: Fix crash if stub fails to start If the inferior did not start the TerminalInterface did not send an error up the chain, which meant that the runcontrol does not exit. This would lead to a crash. Change-Id: Icf9f8f913d84a9ed6414e15ce3a3587b1580425e Reviewed-by: Christian Stenger --- src/libs/utils/terminalinterface.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp index 9fb226ece54..3cd1e5bb21d 100644 --- a/src/libs/utils/terminalinterface.cpp +++ b/src/libs/utils/terminalinterface.cpp @@ -92,6 +92,7 @@ public: StubCreator *stubCreator{nullptr}; const bool waitOnExit; + bool didInferiorRun{false}; }; TerminalInterface::TerminalInterface(bool waitOnExit) @@ -156,6 +157,11 @@ void TerminalInterface::onStubExited() if (d->inferiorProcessId) emitFinished(-1, QProcess::CrashExit); + else if (!d->didInferiorRun) { + emitError(QProcess::FailedToStart, + Tr::tr("Failed to start terminal process. The stub exited before the inferior " + "was started.")); + } } void TerminalInterface::onStubReadyRead() @@ -176,6 +182,7 @@ void TerminalInterface::onStubReadyRead() d->envListFile = nullptr; } else if (out.startsWith("pid ")) { d->inferiorProcessId = out.mid(4).toInt(); + d->didInferiorRun = true; emit started(d->inferiorProcessId, d->inferiorThreadId); } else if (out.startsWith("thread ")) { // Windows only d->inferiorThreadId = out.mid(7).toLongLong(); From 824fee183c5653a4077775c072759601fa8086f8 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 3 Nov 2023 15:44:38 +0100 Subject: [PATCH 15/34] Fix setEnabler / readSettings order BaseAspect::setEnabler requires the settings to be read already. This is because readSettings() does not emit "valueChanged", and so the connections from the enabler to the target are not triggered. Change-Id: I0c95e2b516cd03c1dbad653288b44510ec7ea800 Reviewed-by: Christian Stenger --- src/plugins/autotest/autotestplugin.cpp | 1 - src/plugins/autotest/boost/boosttestframework.cpp | 5 ++++- src/plugins/autotest/catch/catchtestframework.cpp | 13 ++++++++----- src/plugins/autotest/ctest/ctesttool.cpp | 3 +++ src/plugins/autotest/gtest/gtestframework.cpp | 7 +++++-- src/plugins/autotest/qtest/qttestframework.cpp | 5 ++++- src/plugins/autotest/quick/quicktestframework.cpp | 2 ++ src/plugins/autotest/testframeworkmanager.cpp | 10 ---------- src/plugins/autotest/testframeworkmanager.h | 1 - src/plugins/autotest/testsettings.cpp | 7 +++++-- src/plugins/coreplugin/systemsettings.cpp | 8 +++++--- src/plugins/fakevim/fakevimactions.cpp | 4 ++-- src/plugins/qmlprofiler/qmlprofilersettings.cpp | 3 ++- .../screenrecorder/screenrecordersettings.cpp | 5 +++-- 14 files changed, 43 insertions(+), 31 deletions(-) diff --git a/src/plugins/autotest/autotestplugin.cpp b/src/plugins/autotest/autotestplugin.cpp index 0f93fb7dc75..67b264dcd00 100644 --- a/src/plugins/autotest/autotestplugin.cpp +++ b/src/plugins/autotest/autotestplugin.cpp @@ -136,7 +136,6 @@ AutotestPluginPrivate::AutotestPluginPrivate() TestFrameworkManager::registerTestFramework(&theCatchFramework()); TestFrameworkManager::registerTestTool(&theCTestTool()); - TestFrameworkManager::synchronizeSettings(); m_resultsPane = TestResultsPane::instance(); diff --git a/src/plugins/autotest/boost/boosttestframework.cpp b/src/plugins/autotest/boost/boosttestframework.cpp index 38f800357b4..9addde077b0 100644 --- a/src/plugins/autotest/boost/boosttestframework.cpp +++ b/src/plugins/autotest/boost/boosttestframework.cpp @@ -74,7 +74,6 @@ BoostTestFramework::BoostTestFramework() seed.setLabelText(Tr::tr("Seed:")); seed.setToolTip(Tr::tr("A seed of 0 means no randomization. A value of 1 uses the current " "time, any other value is used as random seed generator.")); - seed.setEnabler(&randomize); randomize.setSettingsKey("Randomize"); randomize.setLabelPlacement(BoolAspect::LabelPlacement::Compact); @@ -96,6 +95,10 @@ BoostTestFramework::BoostTestFramework() memLeaks.setDefaultValue(true); memLeaks.setLabelText(Tr::tr("Detect memory leaks")); memLeaks.setToolTip(Tr::tr("Enable memory leak detection.")); + + readSettings(); + + seed.setEnabler(&randomize); } QString BoostTestFramework::logLevelToOption(const LogLevel logLevel) diff --git a/src/plugins/autotest/catch/catchtestframework.cpp b/src/plugins/autotest/catch/catchtestframework.cpp index 8c312f65d15..a8ac1e9faab 100644 --- a/src/plugins/autotest/catch/catchtestframework.cpp +++ b/src/plugins/autotest/catch/catchtestframework.cpp @@ -49,29 +49,24 @@ CatchFramework::CatchFramework() abortAfter.setSettingsKey("AbortAfter"); abortAfter.setRange(1, 9999); - abortAfter.setEnabler(&abortAfterChecked); benchmarkSamples.setSettingsKey("BenchSamples"); benchmarkSamples.setRange(1, 999999); benchmarkSamples.setDefaultValue(100); - benchmarkSamples.setEnabler(&samplesChecked); benchmarkResamples.setSettingsKey("BenchResamples"); benchmarkResamples.setRange(1, 9999999); benchmarkResamples.setDefaultValue(100000); benchmarkResamples.setToolTip(Tr::tr("Number of resamples for bootstrapping.")); - benchmarkResamples.setEnabler(&resamplesChecked); confidenceInterval.setSettingsKey("BenchConfInt"); confidenceInterval.setRange(0., 1.); confidenceInterval.setSingleStep(0.05); confidenceInterval.setDefaultValue(0.95); - confidenceInterval.setEnabler(&confidenceIntervalChecked); benchmarkWarmupTime.setSettingsKey("BenchWarmup"); benchmarkWarmupTime.setSuffix(Tr::tr(" ms")); benchmarkWarmupTime.setRange(0, 10000); - benchmarkWarmupTime.setEnabler(&warmupChecked); abortAfterChecked.setSettingsKey("AbortChecked"); abortAfterChecked.setLabelText(Tr::tr("Abort after")); @@ -117,6 +112,14 @@ CatchFramework::CatchFramework() warnOnEmpty.setSettingsKey("WarnEmpty"); warnOnEmpty.setLabelText(Tr::tr("Warn on empty tests")); warnOnEmpty.setToolTip(Tr::tr("Warns if a test section does not check any assertion.")); + + readSettings(); + + benchmarkWarmupTime.setEnabler(&warmupChecked); + confidenceInterval.setEnabler(&confidenceIntervalChecked); + benchmarkResamples.setEnabler(&resamplesChecked); + benchmarkSamples.setEnabler(&samplesChecked); + abortAfter.setEnabler(&abortAfterChecked); } ITestParser *CatchFramework::createTestParser() diff --git a/src/plugins/autotest/ctest/ctesttool.cpp b/src/plugins/autotest/ctest/ctesttool.cpp index 2dee957194f..8b82953e2c4 100644 --- a/src/plugins/autotest/ctest/ctesttool.cpp +++ b/src/plugins/autotest/ctest/ctesttool.cpp @@ -108,6 +108,9 @@ CTestTool::CTestTool() threshold.setLabelText(Tr::tr("Threshold")); threshold.setDefaultValue(1); threshold.setRange(1, 128); + + readSettings(); + threshold.setEnabler(&testLoad); } diff --git a/src/plugins/autotest/gtest/gtestframework.cpp b/src/plugins/autotest/gtest/gtestframework.cpp index 191ffc82c29..f07de8ed52a 100644 --- a/src/plugins/autotest/gtest/gtestframework.cpp +++ b/src/plugins/autotest/gtest/gtestframework.cpp @@ -52,7 +52,6 @@ GTestFramework::GTestFramework() iterations.setDefaultValue(1); iterations.setEnabled(false); iterations.setLabelText(Tr::tr("Iterations:")); - iterations.setEnabler(&repeat); seed.setSettingsKey("Seed"); seed.setSpecialValueText({}); @@ -60,7 +59,6 @@ GTestFramework::GTestFramework() seed.setEnabled(false); seed.setLabelText(Tr::tr("Seed:")); seed.setToolTip(Tr::tr("A seed of 0 generates a seed based on the current timestamp.")); - seed.setEnabler(&shuffle); runDisabled.setSettingsKey("RunDisabled"); runDisabled.setLabelText(Tr::tr("Run disabled tests")); @@ -132,6 +130,11 @@ GTestFramework::GTestFramework() connect(this, &AspectContainer::applied, this, [] { TestTreeModel::instance()->rebuild({GTest::Constants::FRAMEWORK_ID}); }); + + readSettings(); + + seed.setEnabler(&shuffle); + iterations.setEnabler(&repeat); } ITestParser *GTestFramework::createTestParser() diff --git a/src/plugins/autotest/qtest/qttestframework.cpp b/src/plugins/autotest/qtest/qttestframework.cpp index a406506a675..0f854ab6f59 100644 --- a/src/plugins/autotest/qtest/qttestframework.cpp +++ b/src/plugins/autotest/qtest/qttestframework.cpp @@ -92,7 +92,6 @@ QtTestFramework::QtTestFramework() maxWarnings.setRange(0, 10000); maxWarnings.setDefaultValue(2000); maxWarnings.setSpecialValueText(Tr::tr("Unlimited")); - maxWarnings.setEnabler(&limitWarnings); quickCheckForDerivedTests.setSettingsKey("QuickCheckForDerivedTests"); quickCheckForDerivedTests.setDefaultValue(false); @@ -100,6 +99,10 @@ QtTestFramework::QtTestFramework() quickCheckForDerivedTests.setToolTip( Tr::tr("Search for Qt Quick tests that are derived from TestCase.\nWarning: Enabling this " "feature significantly increases scan time.")); + + readSettings(); + + maxWarnings.setEnabler(&limitWarnings); } QString QtTestFramework::metricsTypeToOption(const MetricsType type) diff --git a/src/plugins/autotest/quick/quicktestframework.cpp b/src/plugins/autotest/quick/quicktestframework.cpp index 875520a5e70..724e6690d01 100644 --- a/src/plugins/autotest/quick/quicktestframework.cpp +++ b/src/plugins/autotest/quick/quicktestframework.cpp @@ -21,6 +21,8 @@ QuickTestFramework::QuickTestFramework() setId(QuickTest::Constants::FRAMEWORK_ID); setDisplayName(Tr::tr("Quick Test")); setPriority(5); + + readSettings(); } ITestParser *QuickTestFramework::createTestParser() diff --git a/src/plugins/autotest/testframeworkmanager.cpp b/src/plugins/autotest/testframeworkmanager.cpp index d44dc3d1e7c..7d19e746c8b 100644 --- a/src/plugins/autotest/testframeworkmanager.cpp +++ b/src/plugins/autotest/testframeworkmanager.cpp @@ -86,14 +86,4 @@ ITestTool *testToolForBuildSystemId(Id buildSystemId) }); } -void synchronizeSettings() -{ - Internal::testSettings().fromSettings(); - for (ITestFramework *framework : std::as_const(testFrameworks())) - framework->readSettings(); - - for (ITestTool *testTool : std::as_const(testTools())) - testTool->readSettings(); -} - } // Autotest::TestframeworkManager diff --git a/src/plugins/autotest/testframeworkmanager.h b/src/plugins/autotest/testframeworkmanager.h index 9ced25d8fb9..48f521c863d 100644 --- a/src/plugins/autotest/testframeworkmanager.h +++ b/src/plugins/autotest/testframeworkmanager.h @@ -9,7 +9,6 @@ namespace Autotest::TestFrameworkManager { void registerTestFramework(ITestFramework *framework); void registerTestTool(ITestTool *testTool); -void synchronizeSettings(); ITestFramework *frameworkForId(Utils::Id frameworkId); ITestTool *testToolForId(Utils::Id testToolId); diff --git a/src/plugins/autotest/testsettings.cpp b/src/plugins/autotest/testsettings.cpp index 1d5230d711d..174773b757c 100644 --- a/src/plugins/autotest/testsettings.cpp +++ b/src/plugins/autotest/testsettings.cpp @@ -64,7 +64,6 @@ TestSettings::TestSettings() resultDescriptionMaxSize.setSettingsKey("ResultDescriptionMaxSize"); resultDescriptionMaxSize.setDefaultValue(10); resultDescriptionMaxSize.setRange(1, 100000); - resultDescriptionMaxSize.setEnabler(&limitResultDescription); autoScroll.setSettingsKey("AutoScrollResults"); autoScroll.setDefaultValue(true); @@ -95,7 +94,6 @@ TestSettings::TestSettings() popupOnFail.setSettingsKey("PopupOnFail"); popupOnFail.setLabelText(Tr::tr("Only for unsuccessful test runs")); - popupOnFail.setEnabler(&popupOnFinish); popupOnFail.setToolTip(Tr::tr("Displays test results only if the test run contains " "failed, fatal or unexpectedly passed tests.")); @@ -105,6 +103,11 @@ TestSettings::TestSettings() runAfterBuild.addOption(Tr::tr("None")); runAfterBuild.addOption(Tr::tr("All")); runAfterBuild.addOption(Tr::tr("Selected")); + + fromSettings(); + + resultDescriptionMaxSize.setEnabler(&limitResultDescription); + popupOnFail.setEnabler(&popupOnFinish); } void TestSettings::toSettings() const diff --git a/src/plugins/coreplugin/systemsettings.cpp b/src/plugins/coreplugin/systemsettings.cpp index 1477fcf747d..af4aef29113 100644 --- a/src/plugins/coreplugin/systemsettings.cpp +++ b/src/plugins/coreplugin/systemsettings.cpp @@ -85,7 +85,6 @@ SystemSettings::SystemSettings() autoSaveInterval.setSuffix(Tr::tr("min")); autoSaveInterval.setRange(1, 1000000); autoSaveInterval.setDefaultValue(5); - autoSaveInterval.setEnabler(&autoSaveModifiedFiles); autoSaveInterval.setLabelText(Tr::tr("Interval:")); autoSaveAfterRefactoring.setSettingsKey("EditorManager/AutoSaveAfterRefactoring"); @@ -107,7 +106,6 @@ SystemSettings::SystemSettings() autoSuspendMinDocumentCount.setSettingsKey("EditorManager/AutoSuspendMinDocuments"); autoSuspendMinDocumentCount.setRange(1, 500); autoSuspendMinDocumentCount.setDefaultValue(30); - autoSuspendMinDocumentCount.setEnabler(&autoSuspendEnabled); autoSuspendMinDocumentCount.setLabelText(Tr::tr("Files to keep open:")); autoSuspendMinDocumentCount.setToolTip( Tr::tr("Minimum number of open documents that should be kept in memory. Increasing this " @@ -122,7 +120,6 @@ SystemSettings::SystemSettings() bigFileSizeLimitInMB.setSuffix(Tr::tr("MB")); bigFileSizeLimitInMB.setRange(1, 500); bigFileSizeLimitInMB.setDefaultValue(5); - bigFileSizeLimitInMB.setEnabler(&warnBeforeOpeningBigFiles); maxRecentFiles.setSettingsKey("EditorManager/MaxRecentFiles"); maxRecentFiles.setRange(1, 99); @@ -151,6 +148,11 @@ SystemSettings::SystemSettings() showCrashButton.setSettingsKey("ShowCrashButton"); #endif readSettings(); + + autoSaveInterval.setEnabler(&autoSaveModifiedFiles); + autoSuspendMinDocumentCount.setEnabler(&autoSuspendEnabled); + bigFileSizeLimitInMB.setEnabler(&warnBeforeOpeningBigFiles); + connect(&autoSaveModifiedFiles, &BaseAspect::changed, this, &EditorManagerPrivate::updateAutoSave); connect(&autoSaveInterval, &BaseAspect::changed, this, &EditorManagerPrivate::updateAutoSave); diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp index b4d568c7f07..a7c0eee43a2 100644 --- a/src/plugins/fakevim/fakevimactions.cpp +++ b/src/plugins/fakevim/fakevimactions.cpp @@ -156,8 +156,6 @@ FakeVimSettings::FakeVimSettings() Row ints { shiftWidth, tabStop, scrollOff, st }; - vimRcPath.setEnabler(&readVimRc); - Column strings { backspace, isKeyword, @@ -239,6 +237,8 @@ FakeVimSettings::FakeVimSettings() readSettings(); + vimRcPath.setEnabler(&readVimRc); + #endif } diff --git a/src/plugins/qmlprofiler/qmlprofilersettings.cpp b/src/plugins/qmlprofiler/qmlprofilersettings.cpp index 9bbac157414..32063ec947b 100644 --- a/src/plugins/qmlprofiler/qmlprofilersettings.cpp +++ b/src/plugins/qmlprofiler/qmlprofilersettings.cpp @@ -40,7 +40,6 @@ QmlProfilerSettings::QmlProfilerSettings() flushInterval.setRange(1, 10000000); flushInterval.setDefaultValue(1000); flushInterval.setLabelText(Tr::tr("Flush interval (ms):")); - flushInterval.setEnabler(&flushEnabled); lastTraceFile.setSettingsKey("Analyzer.QmlProfiler.LastTraceFile"); @@ -63,6 +62,8 @@ QmlProfilerSettings::QmlProfilerSettings() }); readSettings(); + + flushInterval.setEnabler(&flushEnabled); } // QmlProfilerSettingsPage diff --git a/src/plugins/screenrecorder/screenrecordersettings.cpp b/src/plugins/screenrecorder/screenrecordersettings.cpp index cc00f6da065..0a94638f855 100644 --- a/src/plugins/screenrecorder/screenrecordersettings.cpp +++ b/src/plugins/screenrecorder/screenrecordersettings.cpp @@ -113,7 +113,6 @@ ScreenRecorderSettings::ScreenRecorderSettings() fileSizeLimit.setDefaultValue(1024); fileSizeLimit.setRange(100, 1024 * 1024 * 2); // Up to 2GB fileSizeLimit.setSuffix("MB"); - fileSizeLimit.setEnabler(&enableFileSizeLimit); enableRtBuffer.setSettingsKey("EnableRealTimeBuffer"); enableRtBuffer.setDefaultValue(true); @@ -124,7 +123,6 @@ ScreenRecorderSettings::ScreenRecorderSettings() rtBufferSize.setDefaultValue(1024); rtBufferSize.setRange(100, 1024 * 1024 * 2); // Up to 2GB rtBufferSize.setSuffix("MB"); - rtBufferSize.setEnabler(&enableRtBuffer); logFfmpegCommandline.setSettingsKey("LogFFMpegCommandLine"); logFfmpegCommandline.setDefaultValue(false); @@ -206,6 +204,9 @@ ScreenRecorderSettings::ScreenRecorderSettings() readSettings(); + rtBufferSize.setEnabler(&enableRtBuffer); + fileSizeLimit.setEnabler(&enableFileSizeLimit); + setCaptureMouseClicksVisible(); connect(&screenCaptureType, &SelectionAspect::volatileValueChanged, this, setCaptureMouseClicksVisible); From d62309bbb22f86d6ad30e0103cc235e93ffc78b0 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 6 Nov 2023 16:46:26 +0100 Subject: [PATCH 16/34] Fix various mis-uses of Environment::forEachEntry() Most of them introduced with 08bacd3f19b817a7ffbd606a92eff5000eaaca2c. Fixes: QTCREATORBUG-29857 Change-Id: Ia897958865f00cb5f8f141659a652aee05aa1355 Reviewed-by: hjk --- src/libs/utils/terminalinterface.cpp | 5 +++-- src/plugins/cmakeprojectmanager/presetsmacros.cpp | 14 ++++++++++---- src/plugins/docker/dockerdevice.cpp | 8 +++++--- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 5 +++-- src/plugins/remotelinux/linuxdevice.cpp | 5 +++-- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp index 3cd1e5bb21d..de3f57145cc 100644 --- a/src/libs/utils/terminalinterface.cpp +++ b/src/libs/utils/terminalinterface.cpp @@ -356,8 +356,9 @@ void TerminalInterface::start() return; } QTextStream stream(d->envListFile.get()); - finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool) { - stream << key << '=' << value << '\0'; + finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool enabled) { + if (enabled) + stream << key << '=' << value << '\0'; }); if (d->envListFile->error() != QFile::NoError) { diff --git a/src/plugins/cmakeprojectmanager/presetsmacros.cpp b/src/plugins/cmakeprojectmanager/presetsmacros.cpp index 220d6d6575d..7681d2f7e13 100644 --- a/src/plugins/cmakeprojectmanager/presetsmacros.cpp +++ b/src/plugins/cmakeprojectmanager/presetsmacros.cpp @@ -116,8 +116,10 @@ static Environment getEnvCombined(const std::optional &optPresetEnv Environment result = env; if (optPresetEnv) { - optPresetEnv->forEachEntry([&result](const QString &key, const QString &value, bool) { - result.set(key, value); + optPresetEnv->forEachEntry([&result](const QString &key, const QString &value, + bool enabled) { + if (enabled) + result.set(key, value); }); } @@ -128,7 +130,9 @@ template void expand(const PresetType &preset, Environment &env, const FilePath &sourceDirectory) { const Environment presetEnv = getEnvCombined(preset.environment, env); - presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { + presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) { + if (!enabled) + return; QString value = value_; expandAllButEnv(preset, sourceDirectory, value); value = expandMacroEnv("env", value, [presetEnv](const QString ¯oName) { @@ -163,7 +167,9 @@ template void expand(const PresetType &preset, EnvironmentItems &envItems, const FilePath &sourceDirectory) { const Environment presetEnv = preset.environment ? *preset.environment : Environment(); - presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { + presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) { + if (!enabled) + return; QString value = value_; expandAllButEnv(preset, sourceDirectory, value); value = expandMacroEnv("env", value, [presetEnv](const QString ¯oName) { diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 7dc014eadaf..03e6c0f00e8 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -662,9 +662,11 @@ CommandLine DockerDevicePrivate::withDockerExecCmd(const CommandLine &cmd, dockerCmd.addArg("-t"); if (env) { - env->forEachEntry([&](const QString &key, const QString &value, bool) { - dockerCmd.addArg("-e"); - dockerCmd.addArg(key + "=" + env->expandVariables(value)); + env->forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) { + dockerCmd.addArg("-e"); + dockerCmd.addArg(key + "=" + env->expandVariables(value)); + } }); } diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 53639778950..027aa5d2101 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -867,8 +867,9 @@ QtSupport::ProFileReader *QmakeBuildSystem::createProFileReader(const QmakeProFi rootProFileName, deviceRoot()); - env.forEachEntry([&](const QString &key, const QString &value, bool) { - m_qmakeGlobals->environment.insert(key, env.expandVariables(value)); + env.forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) + m_qmakeGlobals->environment.insert(key, env.expandVariables(value)); }); m_qmakeGlobals->setCommandLineArguments(rootProFileName, qmakeArgs); diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 565b0675503..3f875f1ef4b 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -768,8 +768,9 @@ CommandLine SshProcessInterfacePrivate::fullLocalCommandLine() const inner.addArgs(QString("echo ") + s_pidMarker + "$$" + s_pidMarker + " && ", CommandLine::Raw); const Environment &env = q->m_setup.m_environment; - env.forEachEntry([&](const QString &key, const QString &value, bool) { - inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw); + env.forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) + inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw); }); if (!useTerminal && !commandLine.isEmpty()) From 43f99cb53b0943926753f8d7c7f695a07a1fb8a6 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 2 Nov 2023 14:54:22 +0100 Subject: [PATCH 17/34] DAP: Fix auto copy Coverity-Id: 1568078 Change-Id: I915f947dee43b78248dcb29fe375954b43344920 Reviewed-by: Artem Sokolovskii --- src/plugins/debugger/dap/dapengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index b39e664f211..62ce2bef359 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -812,7 +812,7 @@ void DapEngine::refreshLocals(const QJsonArray &variables) if (currentItem && currentItem->iname.startsWith("watch")) currentItem->removeChildren(); - for (auto variable : variables) { + for (const QJsonValueConstRef &variable : variables) { WatchItem *item = new WatchItem; const QString name = variable.toObject().value("name").toString(); From a04cb938cb67e2a2d20de8b4124d145fcc15bb51 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 11:03:55 +0100 Subject: [PATCH 18/34] CMakePM: Fix crash if no run device is set Change-Id: I8b13afcc466f92b93a8ad09ffa1ccc1ced2fcae7 Reviewed-by: Cristian Adam --- src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 370799fe260..be64e7d6656 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -777,6 +777,9 @@ void CMakeBuildStep::updateDeploymentData() IDeviceConstPtr runDevice = DeviceKitAspect::device(buildSystem()->kit()); + if (!runDevice) + return; + const auto appFileNames = transform>(buildSystem()->applicationTargets(), [](const BuildTargetInfo &appTarget) { return appTarget.targetFilePath.fileName(); }); From 1998ef19b311b3ab0d8c5e5febfd3be119e4696b Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 08:49:49 +0100 Subject: [PATCH 19/34] Terminal: Add fallback code to close terminal.app Fixes: QTCREATORBUG-29246 Change-Id: I67b43a25bcb4ea75d0cfa9a5c88860564af1467a Reviewed-by: Eike Ziller --- .../utils/externalterminalprocessimpl.cpp | 78 +++++++++++++------ src/libs/utils/externalterminalprocessimpl.h | 2 + 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/src/libs/utils/externalterminalprocessimpl.cpp b/src/libs/utils/externalterminalprocessimpl.cpp index 380dd633f54..5182c2c4373 100644 --- a/src/libs/utils/externalterminalprocessimpl.cpp +++ b/src/libs/utils/externalterminalprocessimpl.cpp @@ -21,32 +21,62 @@ ExternalTerminalProcessImpl::ExternalTerminalProcessImpl() setStubCreator(new ProcessStubCreator(this)); } +QString ExternalTerminalProcessImpl::openTerminalScriptAttached() +{ + static const QLatin1String script{R"( +tell application "Terminal" + activate + set windowId to 0 + set newTab to do script "%1 && exit" + + -- Try to get window id + try + -- We have seen this work on macOS 13, and 12.5.1, but not on 14.0 or 14.1 + set windowId to (the id of window 1 where its tab 1 = newTab) as text + on error eMsg number eNum + -- If we get an error we try to generate a known error that will contain the window id in its message + try + set windowId to window of newTab + on error eMsg number eNum + if eNum = -1728 then + try + -- Search for "window id " in the error message, examples of error messages are: + -- „Terminal“ hat einen Fehler erhalten: „window of tab 1 of window id 4018“ kann nicht gelesen werden. + -- Terminal got an error: Can't get window of tab 1 of window id 4707. + set windowIdPrefix to "window id " + set theOffset to (offset of windowIdPrefix in eMsg) + if theOffset = 0 then + log "Failed to parse window id from error message: " & eMsg + else + set windowIdPosition to theOffset + (length of windowIdPrefix) + set windowId to (first word of (text windowIdPosition thru -1 of eMsg)) as integer + end if + on error eMsg2 number eNum2 + log "Failed to parse window id from error message: " & eMsg2 & " (" & eMsg & ") " & theOffset + end try + end if + end try + end try + + repeat until ((count of processes of newTab) = 0) + delay 0.1 + end repeat + + if windowId is not equal to 0 then + close window id windowId + else + log "Cannot close window, sorry." + end if +end tell + )"}; + + return script; +} + ProcessStubCreator::ProcessStubCreator(TerminalInterface *interface) : m_interface(interface) {} -static const QLatin1String TerminalAppScriptAttached{R"( - tell application "Terminal" - activate - set newTab to do script "%1 && exit" - set win to (the id of window 1 where its tab 1 = newTab) as text - repeat until ((count of processes of newTab) = 0) - delay 0.1 - end repeat - close window id win - end tell -)"}; - -static const QLatin1String TerminalAppScriptAttachedWithoutWindowClose{R"( - tell application "Terminal" - activate - set newTab to do script "%1 && exit" - repeat until ((count of processes of newTab) = 0) - delay 0.1 - end repeat - end tell -)"}; - static const QLatin1String TerminalAppScriptDetached{R"( tell application "Terminal" activate @@ -74,9 +104,7 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData static const QMap terminalMap = { {"Terminal.app", - {osVersionNumber.majorVersion() >= 14 ? TerminalAppScriptAttachedWithoutWindowClose - : TerminalAppScriptAttached, - TerminalAppScriptDetached}}, + {ExternalTerminalProcessImpl::openTerminalScriptAttached(), TerminalAppScriptDetached}}, }; if (terminalMap.contains(terminal.command.toString())) { diff --git a/src/libs/utils/externalterminalprocessimpl.h b/src/libs/utils/externalterminalprocessimpl.h index cbb3370071b..66d337f963d 100644 --- a/src/libs/utils/externalterminalprocessimpl.h +++ b/src/libs/utils/externalterminalprocessimpl.h @@ -13,6 +13,8 @@ class QTCREATOR_UTILS_EXPORT ExternalTerminalProcessImpl final : public Terminal { public: ExternalTerminalProcessImpl(); + + static QString openTerminalScriptAttached(); }; class QTCREATOR_UTILS_EXPORT ProcessStubCreator : public StubCreator From e108726314855411816b3378c272de442a9768b9 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 08:50:16 +0100 Subject: [PATCH 20/34] Terminal: Add auto test Auto test macOS terminal script. Change-Id: Iaab9c31fa94cf16afc02e4e34978d5d10edf5c2d Reviewed-by: Cristian Adam --- tests/manual/CMakeLists.txt | 1 + tests/manual/manual.qbs | 1 + tests/manual/terminal/CMakeLists.txt | 4 ++ tests/manual/terminal/terminal.qbs | 7 ++++ tests/manual/terminal/tst_terminal.cpp | 54 ++++++++++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 tests/manual/terminal/CMakeLists.txt create mode 100644 tests/manual/terminal/terminal.qbs create mode 100644 tests/manual/terminal/tst_terminal.cpp diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt index de324714a2b..1d145e1e8bb 100644 --- a/tests/manual/CMakeLists.txt +++ b/tests/manual/CMakeLists.txt @@ -12,6 +12,7 @@ add_subdirectory(fakevim) # add_subdirectory(genericproject) add_subdirectory(pluginview) add_subdirectory(proparser) +add_subdirectory(terminal) # add_subdirectory(qml) # add_subdirectory(qt4projectmanager) # add_subdirectory(search) diff --git a/tests/manual/manual.qbs b/tests/manual/manual.qbs index ba774823c12..25ed3b9e183 100644 --- a/tests/manual/manual.qbs +++ b/tests/manual/manual.qbs @@ -15,6 +15,7 @@ Project { "subdirfilecontainer/subdirfilecontainer.qbs", "tasking/demo/demo.qbs", "tasking/imagescaling/imagescaling.qbs", + "terminal/terminal.qbs", "widgets/widgets.qbs", ] } diff --git a/tests/manual/terminal/CMakeLists.txt b/tests/manual/terminal/CMakeLists.txt new file mode 100644 index 00000000000..f4fff9d2c43 --- /dev/null +++ b/tests/manual/terminal/CMakeLists.txt @@ -0,0 +1,4 @@ +add_qtc_test(tst_terminal + DEPENDS Utils + SOURCES tst_terminal.cpp +) diff --git a/tests/manual/terminal/terminal.qbs b/tests/manual/terminal/terminal.qbs new file mode 100644 index 00000000000..4b7a408a1e4 --- /dev/null +++ b/tests/manual/terminal/terminal.qbs @@ -0,0 +1,7 @@ +import qbs + +QtcAutotest { + name: "Terminal autotest" + Depends { name: "Utils" } + files: "tst_terminal.cpp" +} diff --git a/tests/manual/terminal/tst_terminal.cpp b/tests/manual/terminal/tst_terminal.cpp new file mode 100644 index 00000000000..921fdbc577a --- /dev/null +++ b/tests/manual/terminal/tst_terminal.cpp @@ -0,0 +1,54 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include + +#include +#include + +//TESTED_COMPONENT=src/utils/changeset + +class tst_Terminal : public QObject +{ + Q_OBJECT + +private slots: + void terminalApp() + { + if (!Utils::HostOsInfo::isMacHost()) + QSKIP("This test is only for macOS"); + + int rnd = QRandomGenerator::global()->generate(); + QString testCode = R"( +set theFile to POSIX file "/tmp/testoutput.txt" +set theFile to theFile as string +set theOpenedFile to open for access file theFile with write permission +set eof of theOpenedFile to 0 +write "%1" to theOpenedFile starting at eof +close access theOpenedFile + )"; + QString terminalScript = Utils::ExternalTerminalProcessImpl::openTerminalScriptAttached(); + terminalScript = terminalScript.arg("sleep 1") + "\n" + testCode.arg(rnd); + + QProcess process; + process.setProcessChannelMode(QProcess::ProcessChannelMode::MergedChannels); + process.setProgram("osascript"); + process.setArguments({"-e", terminalScript}); + + process.start(); + + QTRY_VERIFY(process.state() == QProcess::NotRunning); + const auto output = process.readAll(); + if (!output.isEmpty()) + qDebug() << "Output:" << output; + QVERIFY(process.exitCode() == 0); + + QFile testOutputFile("/tmp/testoutput.txt"); + QVERIFY(testOutputFile.open(QIODevice::ReadOnly)); + QVERIFY(testOutputFile.readAll() == QByteArray::number(rnd)); + } +}; + +QTEST_GUILESS_MAIN(tst_Terminal) + +#include "tst_terminal.moc" From 845676f8148c923023c66573c097efe1da9c3d64 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 31 Oct 2023 12:44:15 +0100 Subject: [PATCH 21/34] Utils: Fix incorrect checks There is no reason to force m_buffer = m_internal afaik. Change-Id: I6cab375c9d416d4fbe167c4cfb884e7cc6025381 Reviewed-by: Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index b14a429ed92..8d34c3df87b 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1794,8 +1794,6 @@ LayoutItem BoolAspect::adoptButton(QAbstractButton *button) */ void BoolAspect::addToLayout(Layouting::LayoutItem &parent) { - QTC_ASSERT(m_buffer == m_internal, m_buffer = m_internal); - QCheckBox *checkBox = createSubWidget(); addToLayoutHelper(parent, checkBox); bufferToGui(); @@ -1903,7 +1901,6 @@ void SelectionAspect::addToLayout(Layouting::LayoutItem &parent) QTC_CHECK(d->m_buttonGroup == nullptr); QTC_CHECK(!d->m_comboBox); QTC_ASSERT(d->m_buttons.isEmpty(), d->m_buttons.clear()); - QTC_ASSERT(m_buffer == m_internal, m_buffer = m_internal); switch (d->m_displayStyle) { case DisplayStyle::RadioButtons: From 437797d1c488d65c950219fe4b85aca9685c2d0a Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 12:25:29 +0100 Subject: [PATCH 22/34] Utils: Fix endless loop when ls iterating subdirs findUsingLs did try to enter "." and "..", with especially "." leading to an endless loop. findUsingLs also did not correctly concatenate the parent folder for sub directories. Change-Id: Ieafad4d4ef38d2fb550ddef1d2edf8183ce8032e Reviewed-by: hjk --- src/libs/utils/devicefileaccess.cpp | 12 +++++---- src/libs/utils/devicefileaccess.h | 15 +++++------ .../tst_unixdevicefileaccess.cpp | 26 +++++++++++++++++++ 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp index a38a3617a7e..82e6a24a71d 100644 --- a/src/libs/utils/devicefileaccess.cpp +++ b/src/libs/utils/devicefileaccess.cpp @@ -1256,7 +1256,8 @@ bool UnixDeviceFileAccess::iterateWithFind(const FilePath &filePath, void UnixDeviceFileAccess::findUsingLs(const QString ¤t, const FileFilter &filter, - QStringList *found) const + QStringList *found, + const QString &start) const { const RunResult result = runInShell( {"ls", {"-1", "-a", "-p", "--", current}, OsType::OsTypeLinux}); @@ -1265,10 +1266,11 @@ void UnixDeviceFileAccess::findUsingLs(const QString ¤t, const QChar last = entry.back(); if (last == '/') { entry.chop(1); - if (filter.iteratorFlags.testFlag(QDirIterator::Subdirectories)) - findUsingLs(current + '/' + entry, filter, found); + if (filter.iteratorFlags.testFlag(QDirIterator::Subdirectories) && entry != "." + && entry != "..") + findUsingLs(current + '/' + entry, filter, found, start + entry + "/"); } - found->append(entry); + found->append(start + entry); } } @@ -1327,7 +1329,7 @@ void UnixDeviceFileAccess::iterateDirectory(const FilePath &filePath, // if we do not have find - use ls as fallback QStringList entries; - findUsingLs(filePath.path(), filter, &entries); + findUsingLs(filePath.path(), filter, &entries, {}); iterateLsOutput(filePath, entries, filter, callBack); } diff --git a/src/libs/utils/devicefileaccess.h b/src/libs/utils/devicefileaccess.h index 6dddbc70045..5b7c766a8a7 100644 --- a/src/libs/utils/devicefileaccess.h +++ b/src/libs/utils/devicefileaccess.h @@ -183,16 +183,15 @@ protected: expected_str createTempFile(const FilePath &filePath) override; + void findUsingLs(const QString ¤t, + const FileFilter &filter, + QStringList *found, + const QString &start) const; private: - bool iterateWithFind( - const FilePath &filePath, - const FileFilter &filter, - const FilePath::IterateDirCallback &callBack) const; - void findUsingLs( - const QString ¤t, - const FileFilter &filter, - QStringList *found) const; + bool iterateWithFind(const FilePath &filePath, + const FileFilter &filter, + const FilePath::IterateDirCallback &callBack) const; QStringList statArgs(const FilePath &filePath, const QString &linuxFormat, diff --git a/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp b/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp index 5eba8122241..a55577ef05e 100644 --- a/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp +++ b/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp @@ -48,6 +48,11 @@ public: p.waitForFinished(); return {p.exitCode(), p.readAllStandardOutput(), p.readAllStandardError()}; } + + void findUsingLs(const QString ¤t, const FileFilter &filter, QStringList *found) + { + UnixDeviceFileAccess::findUsingLs(current, filter, found, {}); + } }; class tst_unixdevicefileaccess : public QObject @@ -69,6 +74,27 @@ private slots: QCOMPARE(size, 1024); } + void findUsingLs() + { + QStringList result; + m_dfa.findUsingLs(m_tempDir.path(), + {{}, QDir::NoFilter, QDirIterator::Subdirectories}, + &result); + + QCOMPARE(result, QStringList({".", "..", "size-test"})); + + QDir tDir(m_tempDir.path()); + tDir.mkdir("lsfindsubdir"); + + result.clear(); + m_dfa.findUsingLs(m_tempDir.path(), + {{}, QDir::NoFilter, QDirIterator::Subdirectories}, + &result); + QCOMPARE(result, + QStringList( + {".", "..", "lsfindsubdir/.", "lsfindsubdir/..", "lsfindsubdir", "size-test"})); + } + private: TestDFA m_dfa; DeviceFileAccess *m_dfaPtr = &m_dfa; From c6d1c962ee778263c8f17f9aa5b521dbef1fdbc9 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 7 Nov 2023 14:21:47 +0100 Subject: [PATCH 23/34] CMakePM: Make internal codemodel aware of Qt In case we have no Qt inside the current kit configured the code model stumbles upon Qt constructs even if CMAKE_PREFIX_PATH has been used correctly to allow cmake to pick up a Qt. Explicitly look into the found packages to see whether Qt has been found and use this if possible for the codemodel. This fixes some inline diagnostics as well as finding all test information inside Qt Test related projects instead of just the test cases when using a kit without a Qt. Change-Id: Id3b5d2e818967cd3121948b818c75c4cf463546f Reviewed-by: Cristian Adam --- .../cmakeprojectmanager/cmakebuildsystem.cpp | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index b05fbbe9174..238cf87b712 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -1004,6 +1004,30 @@ void CMakeBuildSystem::updateProjectData() QtSupport::CppKitInfo kitInfo(kit()); QTC_ASSERT(kitInfo.isValid(), return ); + struct QtMajorToPkgNames + { + QtMajorVersion major = QtMajorVersion::None; + QStringList pkgNames; + }; + + auto qtVersionFromCMake = [this](const QList &mapping) { + for (const QtMajorToPkgNames &m : mapping) { + for (const QString &pkgName : m.pkgNames) { + auto qt = m_findPackagesFilesHash.value(pkgName); + if (qt.hasValidTarget()) + return m.major; + } + } + return QtMajorVersion::None; + }; + + QtMajorVersion qtVersion = kitInfo.projectPartQtVersion; + if (qtVersion == QtMajorVersion::None) + qtVersion = qtVersionFromCMake({{QtMajorVersion::Qt6, {"Qt6", "Qt6Core"}}, + {QtMajorVersion::Qt5, {"Qt5", "Qt5Core"}}, + {QtMajorVersion::Qt4, {"Qt4", "Qt4Core"}} + }); + QString errorMessage; RawProjectParts rpps = m_reader.createRawProjectParts(errorMessage); if (!errorMessage.isEmpty()) @@ -1011,8 +1035,7 @@ void CMakeBuildSystem::updateProjectData() qCDebug(cmakeBuildSystemLog) << "Raw project parts created." << errorMessage; for (RawProjectPart &rpp : rpps) { - rpp.setQtVersion( - kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt. + rpp.setQtVersion(qtVersion); // TODO: Check if project actually uses Qt. const FilePath includeFileBaseDir = buildConfiguration()->buildDirectory(); QStringList cxxFlags = rpp.flagsForCxx.commandLineFlags; QStringList cFlags = rpp.flagsForC.commandLineFlags; From 49b773bd25c38d5f2015a8c3d7c4ab171c9865bc Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Fri, 29 Sep 2023 15:46:20 +0200 Subject: [PATCH 24/34] DAP: Fix launch of an application without run parameters Now dap gdb debugger takes into account "Command line arguments:". Change-Id: I5e7630a56a0851e7a0b8356129eb250bb29d5893 Reviewed-by: hjk Reviewed-by: --- src/plugins/debugger/dap/dapclient.cpp | 7 +++++-- src/plugins/debugger/dap/dapclient.h | 2 +- src/plugins/debugger/dap/dapengine.cpp | 2 +- src/plugins/debugger/dap/gdbdapengine.cpp | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/dap/dapclient.cpp b/src/plugins/debugger/dap/dapclient.cpp index f63d45b2bb9..b5c95c675bd 100644 --- a/src/plugins/debugger/dap/dapclient.cpp +++ b/src/plugins/debugger/dap/dapclient.cpp @@ -58,10 +58,13 @@ void DapClient::sendInitialize() postRequest("initialize", QJsonObject{{"clientID", "QtCreator"}, {"clientName", "QtCreator"}}); } -void DapClient::sendLaunch(const Utils::FilePath &executable) +void DapClient::sendLaunch(const Utils::CommandLine &command) { postRequest("launch", - QJsonObject{{"noDebug", false}, {"program", executable.path()}, {"__restart", ""}}); + QJsonObject{{"noDebug", false}, + {"program", command.executable().path()}, + {"args", command.arguments()}, + {"__restart", ""}}); } void DapClient::sendAttach() diff --git a/src/plugins/debugger/dap/dapclient.h b/src/plugins/debugger/dap/dapclient.h index d2a6f52bb22..8f0603693c2 100644 --- a/src/plugins/debugger/dap/dapclient.h +++ b/src/plugins/debugger/dap/dapclient.h @@ -80,7 +80,7 @@ public: virtual void sendInitialize(); - void sendLaunch(const Utils::FilePath &executable); + void sendLaunch(const Utils::CommandLine &command); void sendAttach(); void sendConfigurationDone(); diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index 62ce2bef359..dbb0c177a94 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -195,7 +195,7 @@ void DapEngine::handleDapInitialize() { QTC_ASSERT(state() == EngineRunRequested, qCDebug(logCategory()) << state()); - m_dapClient->sendLaunch(runParameters().inferior.command.executable()); + m_dapClient->sendLaunch(runParameters().inferior.command); qCDebug(logCategory()) << "handleDapLaunch"; } diff --git a/src/plugins/debugger/dap/gdbdapengine.cpp b/src/plugins/debugger/dap/gdbdapengine.cpp index 3934aebe9d8..d927de6bad4 100644 --- a/src/plugins/debugger/dap/gdbdapengine.cpp +++ b/src/plugins/debugger/dap/gdbdapengine.cpp @@ -55,6 +55,8 @@ public: void start() override { m_proc.setProcessMode(ProcessMode::Writer); + if (m_runParameters.debugger.workingDirectory.isDir()) + m_proc.setWorkingDirectory(m_runParameters.debugger.workingDirectory); m_proc.setEnvironment(m_runParameters.debugger.environment); m_proc.setCommand(m_cmd); m_proc.start(); From d3f5e44ba4a452715ac58d8225f88b27ab081292 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 15:15:42 +0100 Subject: [PATCH 25/34] Autotest: Remove unnecessary readSettings() call Change-Id: Ifa80b240d722c9852a57a08cb5ddc18568db5b47 Reviewed-by: Christian Stenger --- src/plugins/autotest/quick/quicktestframework.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/autotest/quick/quicktestframework.cpp b/src/plugins/autotest/quick/quicktestframework.cpp index 724e6690d01..875520a5e70 100644 --- a/src/plugins/autotest/quick/quicktestframework.cpp +++ b/src/plugins/autotest/quick/quicktestframework.cpp @@ -21,8 +21,6 @@ QuickTestFramework::QuickTestFramework() setId(QuickTest::Constants::FRAMEWORK_ID); setDisplayName(Tr::tr("Quick Test")); setPriority(5); - - readSettings(); } ITestParser *QuickTestFramework::createTestParser() From 55227ba8299050dd8c12773244164774a37c1086 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Thu, 12 Oct 2023 11:37:21 +0200 Subject: [PATCH 26/34] DAP: Make dap engine less noisy Change-Id: I97d804511b07640e87045f2007575fb6543bb5be Reviewed-by: Reviewed-by: hjk --- src/plugins/debugger/dap/dapengine.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index dbb0c177a94..33cc0d9ae37 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -523,6 +523,9 @@ QString DapEngine::errorMessage(QProcess::ProcessError error) const void DapEngine::handleDapDone() { + if (state() == DebuggerFinished) + return; + if (m_dapClient->dataProvider()->result() == ProcessResult::StartFailed) { notifyEngineSetupFailed(); showMessage("ADAPTER START FAILED"); From 772546453a8a70667018fe14ef036684fadc802f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 15:15:03 +0100 Subject: [PATCH 27/34] Utils: Warn if enabler is set before readSettings Change-Id: If3dd3fc5adbcd73a87f8e57482c7497c3cd11da2 Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 8d34c3df87b..73d37a2eace 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -83,6 +83,7 @@ public: bool m_enabled = true; bool m_readOnly = false; bool m_autoApply = true; + bool m_hasEnabler = false; int m_spanX = 1; int m_spanY = 1; BaseAspect::ConfigWidgetCreator m_configWidgetCreator; @@ -347,6 +348,8 @@ void BaseAspect::setEnabler(BoolAspect *checker) { QTC_ASSERT(checker, return); + d->m_hasEnabler = true; + auto update = [this, checker] { BaseAspect::setEnabled(checker->isEnabled() && checker->volatileValue()); }; @@ -646,6 +649,10 @@ void BaseAspect::readSettings() if (settingsKey().isEmpty()) return; QTC_ASSERT(theSettings, return); + // The enabler needs to be set up after reading the settings, otherwise + // changes from reading the settings will not update the enabled state + // because the updates are "quiet". + QTC_CHECK(!d->m_hasEnabler); const QVariant val = theSettings->value(settingsKey()); setVariantValue(val.isValid() ? fromSettingsValue(val) : defaultVariantValue(), BeQuiet); } From 4a081cb386e31ec23667faf83750c97dd9362c64 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 9 Oct 2023 14:16:30 +0200 Subject: [PATCH 28/34] TextEditor: remove texteditor_p.h There is no need to have an extra file for one struct that is only used inside texteditor.cpp Change-Id: Iee8f7ce5e0d19da7b444660d81c350eb10b501ef Reviewed-by: hjk --- src/plugins/texteditor/CMakeLists.txt | 1 - src/plugins/texteditor/texteditor.cpp | 14 ++++++++++- src/plugins/texteditor/texteditor.qbs | 1 - src/plugins/texteditor/texteditor_p.h | 36 --------------------------- 4 files changed, 13 insertions(+), 39 deletions(-) delete mode 100644 src/plugins/texteditor/texteditor_p.h diff --git a/src/plugins/texteditor/CMakeLists.txt b/src/plugins/texteditor/CMakeLists.txt index 03efc189224..7d4577413bc 100644 --- a/src/plugins/texteditor/CMakeLists.txt +++ b/src/plugins/texteditor/CMakeLists.txt @@ -103,7 +103,6 @@ add_qtc_plugin(TextEditor texteditor.qrc texteditor_global.h texteditortr.h - texteditor_p.h texteditoractionhandler.cpp texteditoractionhandler.h texteditorconstants.cpp texteditorconstants.h texteditoroverlay.cpp texteditoroverlay.h diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 4905d745f9a..66efbcfda02 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -27,7 +27,6 @@ #include "tabsettings.h" #include "textdocument.h" #include "textdocumentlayout.h" -#include "texteditor_p.h" #include "texteditoractionhandler.h" #include "texteditorconstants.h" #include "texteditoroverlay.h" @@ -563,6 +562,19 @@ struct PaintEventBlockData struct ExtraAreaPaintEventData; +struct TextEditorPrivateHighlightBlocks +{ + QList open; + QList close; + QList visualIndent; + inline int count() const { return visualIndent.size(); } + inline bool isEmpty() const { return open.isEmpty() || close.isEmpty() || visualIndent.isEmpty(); } + inline bool operator==(const TextEditorPrivateHighlightBlocks &o) const { + return (open == o.open && close == o.close && visualIndent == o.visualIndent); + } + inline bool operator!=(const TextEditorPrivateHighlightBlocks &o) const { return !(*this == o); } +}; + class TextEditorWidgetPrivate : public QObject { public: diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index a041fbcaa66..0c25f5bf5c6 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -134,7 +134,6 @@ QtcPlugin { "texteditor.h", "texteditor.qrc", "texteditor_global.h", "texteditortr.h", - "texteditor_p.h", "texteditoractionhandler.cpp", "texteditoractionhandler.h", "texteditorconstants.cpp", diff --git a/src/plugins/texteditor/texteditor_p.h b/src/plugins/texteditor/texteditor_p.h deleted file mode 100644 index fa8232a0fb0..00000000000 --- a/src/plugins/texteditor/texteditor_p.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - - -#include "texteditor_global.h" - -#include -#include - -namespace TextEditor { - -class TextDocument; - -namespace Internal { - -// -// TextEditorPrivate -// - -struct TextEditorPrivateHighlightBlocks -{ - QList open; - QList close; - QList visualIndent; - inline int count() const { return visualIndent.size(); } - inline bool isEmpty() const { return open.isEmpty() || close.isEmpty() || visualIndent.isEmpty(); } - inline bool operator==(const TextEditorPrivateHighlightBlocks &o) const { - return (open == o.open && close == o.close && visualIndent == o.visualIndent); - } - inline bool operator!=(const TextEditorPrivateHighlightBlocks &o) const { return !(*this == o); } -}; - -} // namespace Internal -} // namespace TextEditor From fe8b8fc3b2b3858675b0b4cb35dd2ed819566593 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 1 Nov 2023 16:51:10 +0100 Subject: [PATCH 29/34] Doc: Update Beautifier docs The "Enable auto format on file save" check box was removed and the group name turned into a check box. Task-number: QTCREATORBUG-29392 Change-Id: Ic9b01191e523e234431f18ffceb42b9c332bcf5c Reviewed-by: hjk --- .../qt-creator-beautifier-options-general.png | Bin 4636 -> 0 bytes ...qtcreator-preferences-beautifier-general.webp | Bin 0 -> 3668 bytes .../editors/creator-only/creator-beautifier.qdoc | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qt-creator-beautifier-options-general.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-beautifier-general.webp diff --git a/doc/qtcreator/images/qt-creator-beautifier-options-general.png b/doc/qtcreator/images/qt-creator-beautifier-options-general.png deleted file mode 100644 index 5a33d6c7abc2a32c519f48c71aee6a1d6cd48e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4636 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 X_NxC6)Za_)ogVvjuXxY*h9XG-WDo&~ literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc index 84eef9dcc0f..0f0a2d8e67f 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc @@ -1,4 +1,4 @@ -// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // ********************************************************************** @@ -57,11 +57,11 @@ \li Select \preferences > \uicontrol Beautifier to specify settings for beautifying files. - \li Select the \uicontrol {Enable auto format on file save} check box to + \li Select the \uicontrol {Automatic formatting on file save} check box to automatically beautify files when you save them using the tool you select in the \uicontrol Tool field. - \image qt-creator-beautifier-options-general.png "General Beautifier preferences" + \image qtcreator-preferences-beautifier-general.webp {General Beautifier preferences} \li In the \uicontrol {Restrict to MIME types} field, define the MIME types of the files to beautify, separated by semicolons. Leave the From 40fae907ba1342d463b8e9c01759a326cd12dcb9 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 2 Nov 2023 15:02:40 +0100 Subject: [PATCH 30/34] Doc: Update Bare Metal docs - Describe "Peripheral description file" option - Update screenshots Task-number: QTCREATORBUG-29392 Change-Id: I2d2881a13447dd2f14ac13f3b61cb3306b0e7f30 Reviewed-by: hjk Reviewed-by: --- .../images/qtcreator-baremetal-eblink.png | Bin 15875 -> 0 bytes .../images/qtcreator-baremetal-eblink.webp | Bin 0 -> 10590 bytes .../images/qtcreator-baremetal-jlink.png | Bin 17107 -> 0 bytes .../images/qtcreator-baremetal-jlink.webp | Bin 0 -> 10888 bytes .../images/qtcreator-baremetal-openocd.png | Bin 15820 -> 0 bytes .../images/qtcreator-baremetal-openocd.webp | Bin 0 -> 9416 bytes .../images/qtcreator-baremetal-stlink.png | Bin 14299 -> 0 bytes .../images/qtcreator-baremetal-stlink.webp | Bin 0 -> 9290 bytes .../src/baremetal/creator-baremetal-dev.qdoc | 19 +++++++++--------- .../creator-baremetal-settings.qdocinc | 4 +++- 10 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-eblink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-eblink.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-jlink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-jlink.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-openocd.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-openocd.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-stlink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-stlink.webp diff --git a/doc/qtcreator/images/qtcreator-baremetal-eblink.png b/doc/qtcreator/images/qtcreator-baremetal-eblink.png deleted file mode 100644 index c372292b524f41a021420d41dd88f55d2dfa4c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15875 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 diff --git a/doc/qtcreator/images/qtcreator-baremetal-eblink.webp b/doc/qtcreator/images/qtcreator-baremetal-eblink.webp new file mode 100644 index 0000000000000000000000000000000000000000..bdd75bd04f61fac2334bba49f79f148de13dc3fd GIT binary patch literal 10590 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 KXD*o}$^Zaa^@^ha literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-baremetal-jlink.png b/doc/qtcreator/images/qtcreator-baremetal-jlink.png deleted file mode 100644 index 1e221766dde93c65fb994e122b4c8496c05eddd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17107 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 FngF-?&42&^ diff --git a/doc/qtcreator/images/qtcreator-baremetal-jlink.webp b/doc/qtcreator/images/qtcreator-baremetal-jlink.webp new file mode 100644 index 0000000000000000000000000000000000000000..5d1fd1f933a001b1f5e15b9099789772c6d7f478 GIT binary patch literal 10888 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 diff --git a/doc/qtcreator/images/qtcreator-baremetal-openocd.webp b/doc/qtcreator/images/qtcreator-baremetal-openocd.webp new file mode 100644 index 0000000000000000000000000000000000000000..2f04c4f8b19e5209c66421d82cfa7db71fa8c082 GIT binary patch literal 9416 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 KaBP-;%K!jBA{~$b literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-baremetal-stlink.png b/doc/qtcreator/images/qtcreator-baremetal-stlink.png deleted file mode 100644 index f759eb355be28cb4744a428bf7f94c891e53d9cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14299 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 K&t;ucLK6V;&DIY9 diff --git a/doc/qtcreator/images/qtcreator-baremetal-stlink.webp b/doc/qtcreator/images/qtcreator-baremetal-stlink.webp new file mode 100644 index 0000000000000000000000000000000000000000..3e2502e1e78a6168f1f8d06b3c8b6faf8c6264fc GIT binary patch literal 9290 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc index 722cf8d89ba..368e313851a 100644 --- a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc +++ b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc @@ -59,8 +59,9 @@ \section1 Specifying Settings for Debug Server Providers To create connections to bare metal devices using a debug server provider, - select \preferences > \uicontrol Devices - > \uicontrol {Bare Metal} > \uicontrol Add > \uicontrol Default. + select \preferences > \uicontrol Devices > \uicontrol {Bare Metal} > + \uicontrol Add. + The available settings depend on the debug server provider. \section2 EBlink @@ -68,7 +69,7 @@ \l{https://github.com/EmBitz/EBlink}{EBlink} is an ARM Cortex-M debug tool that supports squirrel scripting, live variables, and hot-plugging. - \image qtcreator-baremetal-eblink.png "Bare metal device preferences for EBlink" + \image qtcreator-baremetal-eblink.webp {Bare metal device preferences for EBlink} To specify settings for \EBlink: @@ -105,7 +106,7 @@ \l{https://www.segger.com/products/debug-probes/j-link/}{J-Link} is a line of debug probes by Segger. - \image qtcreator-baremetal-jlink.png "Bare metal device preferences for J-Link" + \image qtcreator-baremetal-jlink.webp "Bare metal device preferences for J-Link" To specify settings for J-Link debug probes: @@ -137,7 +138,7 @@ (JTAG) facility. It enables source level debugging with the GDB compiled for the ARM architecture. - \image qtcreator-baremetal-openocd.png "Bare metal device preferences for OpenOCD" + \image qtcreator-baremetal-openocd.webp "Bare metal device preferences for OpenOCD" To specify settings for \OpenOCD: @@ -163,7 +164,7 @@ \l{https://www.st.com/en/development-tools/stm32-programmers.html#products} {ST-LINK Utility} is used for programming STM32 microcontrollers. - \image qtcreator-baremetal-stlink.png "Bare metal device preferences for St-Link" + \image qtcreator-baremetal-stlink.webp "Bare metal device preferences for St-Link" To specify settings for St-Link: @@ -202,7 +203,7 @@ \image qtcreator-baremetal-uvision-simulator.png "Bare metal device preferences for uVision Simulator" - To specify settings for uVision Simulator or uVision St-Link Debugger: + To specify settings for uVision Simulator: \list 1 @@ -215,11 +216,11 @@ \endlist - \section3 uVision St-Link Debugger + \section3 uVision St-Link or JLink Debugger \image qtcreator-baremetal-uvision-st-link.png "Bare metal device preferences for uVision St-Link" - To specify settings for uVision St-Link Debugger: + To specify settings for uVision St-Link or JLink Debugger: \list 1 diff --git a/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc b/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc index cce6b41d6d4..ea35fe9855b 100644 --- a/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc +++ b/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc @@ -1,4 +1,4 @@ -// Copyright (C) 2020 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only //! [baremetal-common] @@ -6,6 +6,8 @@ \li In the \uicontrol Name field, enter a name for the connection. \li In the \uicontrol {Startup mode} field, select the mode to start the debug server provider in. + \li In the \uicontrol {Peripheral description file} field, specify a path to + a file that describes the peripherals on the device. \li In the \uicontrol Host field, select the host name and port number to connect to the debug server provider. \li In the \uicontrol {Executable file} field, enter the path to the From 04fb088cf97b83d31f3b951b46020fb72f7f2777 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 2 Nov 2023 16:08:39 +0100 Subject: [PATCH 31/34] Doc: Update GDB Preferences screenshot "GDB" and "GDB Extended" tabs have been combined into one tab. Task-number: QTCREATORBUG-29392 Change-Id: I5f5e40399abf20d61cf0e2cd4e4c1f02dfc1404c Reviewed-by: hjk Reviewed-by: --- .../images/qtcreator-gdb-extended-options.png | Bin 5727 -> 0 bytes doc/qtcreator/images/qtcreator-gdb-options.png | Bin 7774 -> 0 bytes .../qtcreator-preferences-debugger-gdb.webp | Bin 0 -> 9864 bytes .../creator-only/creator-debugger-settings.qdoc | 4 +++- .../debugger/creator-only/creator-debugger.qdoc | 4 ++-- 5 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-gdb-extended-options.png delete mode 100644 doc/qtcreator/images/qtcreator-gdb-options.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp diff --git a/doc/qtcreator/images/qtcreator-gdb-extended-options.png b/doc/qtcreator/images/qtcreator-gdb-extended-options.png deleted file mode 100644 index 10e22f235c1021ef1122859705c97a7a4a4a0348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5727 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 aQQBkEH37X3YZw?97(8A5T-G@yGywn+3u#mU diff --git a/doc/qtcreator/images/qtcreator-gdb-options.png b/doc/qtcreator/images/qtcreator-gdb-options.png deleted file mode 100644 index e1ec43cc37bb1eb680754e0568b8e7d59b912d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7774 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 II;Vst0D$nPI{*Lx diff --git a/doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp b/doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp new file mode 100644 index 0000000000000000000000000000000000000000..9ac81bce22345a6b727006acaf2b9ae168476ec2 GIT binary patch literal 9864 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 \uicontrol Debugger > \uicontrol GDB. - \image qtcreator-gdb-options.png "GDB preferences" + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} To specify a timeout for terminating non-responsive GDB processes, set the number of seconds to wait in the \uicontrol {GDB timeout} field. The default @@ -111,6 +111,8 @@ To execute arbitrary Python scripts, use \c {python execfile('/path/to/script.py')}. + \section2 Extended GDB Settings + The settings in the \uicontrol Extended group give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience, so use diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc index fe61cd19eae..a39e561badd 100644 --- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc +++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc @@ -1368,7 +1368,7 @@ \uicontrol Debugger > \uicontrol GDB > \uicontrol {Load system GDB pretty printers}. For more information, see \l{Specifying GDB Settings}. - \image qtcreator-gdb-options.png {GDB preferences} + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} \section2 Customizing Built-In Debugging Helpers @@ -2036,7 +2036,7 @@ when loading the same binary in the future. Select \preferences > \uicontrol Debugger > \uicontrol GDB > \uicontrol {Use automatic symbol cache}. - \image qtcreator-gdb-options.png {GDB preferences} + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} \section2 Minimizing Number of Breakpoints From ae4b6f9e17e83e0580d46df9df157bcf5fd2f594 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 31 Oct 2023 12:01:17 +0100 Subject: [PATCH 32/34] Doc: Update Preferences > Environment > System screenshot Task-number: QTCREATORBUG-29392 Change-Id: Ic8ccedfbcb3f6aeb139f969bde1c439c78720941 Reviewed-by: Alessandro Portale --- .../qtcreator-options-environment-system.png | Bin 12580 -> 0 bytes ...tcreator-preferences-environment-system.webp | Bin 0 -> 7928 bytes .../src/howto/creator-only/creator-how-tos.qdoc | 2 +- .../creator-projects-settings-environment.qdoc | 2 +- .../creator-open-documents-view.qdoc | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-options-environment-system.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-environment-system.webp diff --git a/doc/qtcreator/images/qtcreator-options-environment-system.png b/doc/qtcreator/images/qtcreator-options-environment-system.png deleted file mode 100644 index 9d6cb599c1228d550a1caa08001ce998e561ecfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12580 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 k0v>q;)nT)wAN^b%7 diff --git a/doc/qtcreator/images/qtcreator-preferences-environment-system.webp b/doc/qtcreator/images/qtcreator-preferences-environment-system.webp new file mode 100644 index 0000000000000000000000000000000000000000..9b86064da52ece5d5edf0f1f70683992afbb6d84 GIT binary patch literal 7928 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 UrWZD \uicontrol Environment > \uicontrol System. - \image qtcreator-options-environment-system.png {System preferences} + \image qtcreator-preferences-environment-system.webp {System preferences} \li In \uicontrol {Maximum number of entries in "Recent Files"}, set the number of files to show. \endlist diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc index dd3534bb904..4459d0b9063 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc @@ -23,7 +23,7 @@ \uicontrol Environment > \uicontrol System, and then select \uicontrol Change in the \uicontrol Environment field. - \image qtcreator-options-environment-system.png "Environment preferences System tab" + \image qtcreator-preferences-environment-system.webp "Environment preferences System tab" In addition, you can specify custom environment variables in the \uicontrol {Project Settings} > \uicontrol Environment settings. diff --git a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc index e758c6c2b27..3eb7a3c2d4c 100644 --- a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc +++ b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc @@ -38,7 +38,7 @@ To set preferences for opening files and handling open files, select \preferences > \uicontrol Environment > \uicontrol System: - \image qtcreator-options-environment-system.png {System tab in Environment preferences} + \image qtcreator-preferences-environment-system.webp {System tab in Environment preferences} \list \li In the \uicontrol {When files are externally modified} field, From afc5395bd1e9f3b1dc0cb974d63658d2b9dc2b5c Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 26 Oct 2023 16:21:31 +0200 Subject: [PATCH 33/34] Doc: Update info about vcpkg package manager - Generating code for CMake - Add vcpkg Package dialog - Creating vcpkg.json files Task-number: QTCREATORBUG-29392 Change-Id: Iffe2aadc9f5e2cb9846c56756685d46a2cb079e1 Reviewed-by: Alessandro Portale --- dist/changelog/changes-12.0.0.md | 2 + doc/qtcreator/images/icons/cmake.png | Bin 0 -> 293 bytes doc/qtcreator/images/icons/vcpkg.png | Bin 0 -> 286 bytes .../images/qtcreator-vcpkg-cmake-config.webp | Bin 0 -> 5228 bytes .../qtcreator-vcpkg-manifest-file-editor.webp | Bin 5460 -> 5784 bytes .../qtcreator-vcpkg-package-selector.webp | Bin 10538 -> 5902 bytes .../src/howto/creator-only/creator-vcpkg.qdoc | 67 ++++++++++++++---- .../creator-only/creator-files-creating.qdoc | 5 +- 8 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 doc/qtcreator/images/icons/cmake.png create mode 100644 doc/qtcreator/images/icons/vcpkg.png create mode 100644 doc/qtcreator/images/qtcreator-vcpkg-cmake-config.webp diff --git a/dist/changelog/changes-12.0.0.md b/dist/changelog/changes-12.0.0.md index 6e96ada76bb..dd6606dccaf 100644 --- a/dist/changelog/changes-12.0.0.md +++ b/dist/changelog/changes-12.0.0.md @@ -264,6 +264,8 @@ Projects * Added parsing the dependencies from `vcpkg.json` manifest files * Improved the addition of dependencies to `vcpkg.json` +([Documentation](https://doc-snapshots.qt.io/qtcreator-12.0/creator-how-to-edit-vcpkg-manifest-files.html)) + ### Qt Safe Renderer * Added a wizard for Qt Safe Renderer 2.1 and later diff --git a/doc/qtcreator/images/icons/cmake.png b/doc/qtcreator/images/icons/cmake.png new file mode 100644 index 0000000000000000000000000000000000000000..bc68b8b467d66ca79a11673d29550470de4eea35 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+yzz8#4AD5>dcj`f2&2TY zkLTa}{Sk&C&+^`!th%^!mlK}v?jFX&v%aWoTzGxOk$l_To3hW;|6)1kXPFlib=!)8fq}u()z4*}Q$iB}4NHOd literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/icons/vcpkg.png b/doc/qtcreator/images/icons/vcpkg.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0c40aa64d05fb70ec4a2f37552a9dd070df46e GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+JoR*O4AD5h_2PQ(W=4Ty zAJ1F6inGl26__a5c5p+20L#%O5-p|&AH*kYj@|r|e}(6UZpV!p8AV4G7AYi4@Z56w zbMzU{?cG1kx~KQ;er~zX=J@{bNoIy=_gm^Z+uTnFW}Yp6`*l~gY9(hCkF`(l-rVoY z_MLg!*mIz9SMqzc-fikr*E~4e8hKShz07ClR~ggkfqs(jd`?$3MszPy)^0mfqWJvc zmfMOEQy(nRw)mWK-s#Q}Gl?&6V-#l}&V0RO*DCGG;;cX)#f4W6>S;VUeQEuI53^1_ tyzF)-owZxeckw%SmRszAZQTe9epdVXZej zr%u#bIyYon?rX(99nWpPw@+RCk$rpH&-B~dKHg~mXIymqn4szH)5=9#^m1?C-gfb# z%KozH=l;K~wXBxGbk*T)TZC^k&HTGo_(mC*+~exg?Mh4uUAHwjJd1aB z#I5K##>SMCutdY>FWZ(QEP1)R3m0E+3Q|bscWAzRwd8@kFKgV-^v*fw*)%4pcor#r zf7HA>@bc520kxhRo^fYgTN(Y!>3`((7;S)}uy^XLc7CA=bc<4>uyhsilE z{&_#;S@|@P{mwQ_?)PuToXJ-+`p+S^Rlr|YyvvNoqhWnyHhb5jou5^99{PXy^?nVxx^vq8LAui!V^00? z?7vXrnXzn3Md{|xFKxHqoi$H8_m!m ze0t{Q&Ejm^@_Fgu5!SDNy#LAY=X-=T`|jtJWo6~xEhDF_Dfy|qH&ZBd#Tx7Vx)HYz zE%!>ke6+QBukHK$m9}$zt<`mZKhJ!rWGP-=-uLpa{4Pxz$& ze5I7;(Zgq$J))b+vdh;B?OSD%bL;MBo87yMWxh{YGNq$`>g()tCmvW;uh?JneM`}A z3%gL2e0OI(8_5MHwa%T-6Fth;&XiS^xAyMmFML%i3th`6ANu-s+w$_LboY>rn`(Y9 zdHRkudiB{^@h@xsE-5V!+Vpf~>!&R~8}CmK%xyXK&VEmV=l0n#$JjUeC&(pVhZssXO#~(BH>jr|$4y+?Nt(+FG7{;Nx1W533ZW6ui5; zz4Aw;O-%v+iCxw1nqNG6%Rko?_-1aMG<$7z(5A5M6B0s{_x|^I>?%An#cbb_`U!4Z ze;E6?E%-2NJ&&94M5A~6vz3izJX{fD;P*{IM6G$_YTGp|M+$C#eP_aQ_$V%qg(69ae zLwiZbjZKDS<`x}2U9E9grVI%CPA;Rt5IbuxT>?)sPIH=mS_`L z|K_wy%Z1Ad$qQxPh`w3rx54v3Z%5+P)%Uz!c9c(-{UAAEn**QnKCu?%iAzt}?Y@7l zHT{ahnkyCa`irMY$Vk0wOq=Lgd(V`6^7ZGjSF1&hgaubHzdf@`efHW_4N47LUOm=b zni{B(cxu|U)X5(v39NV~@Tjp?u1D^Tq+ny5q(?7Mdv`JVN*Z_B&rQtpO>Ud@MZc9=;;bd!bNbyYUq*(tosOZR`_E-G zDusk*zF^hvj4^oh+IQgtljQRq9ACITiLCT_;re_gTL|O)N{bN16B#^DJuU@JJe6|9 zD``PYx{iZa^p;kIQ>9_Eb9cUSi4r$jw1|U!F>BX_hDk>bcd&o^$yDXa{KaTl%wAjB zmIb;`Ph~&O`@Z8-5{J8!w=i#zWQF0T6Ib?Sixq6Y&R6KO+`&rgk6|uj*5O4L8ZI)q zE;u}Mm7(a5j5r}y{e8M74)X*BpNcxMr;5IHyHVEoSnJD7t1qIbGK5Y|jBqfDTv#`I z^4!(_uR?t*7nd-tZqXF{vHlhB)+Uz_wmDMa$L_>v zRd`A{1Rk(s%hA~}&n?c;N@I0~xt5nZ<5ZqsJRAY(x3Z3k9-FZ!GN_M*si8Ju^0!xY z0a;1%|EKTj>bW48)%i|P`FzUyDJsmn+$6KFT(%JnSQlHS{+R2{)D$0{DcL#&l66eN zt(RUF`v=t(h6b)W5xQ-O)_jSbM_P<0pJ*&hDa>zTjBhOr%`;VUe>G8b>xm^B5W+^l0GDuN?VHGj4?Xw+Anu zC%54KxpNO2`ffEWTv5y3Ki&M^ey&a2FAU1sR;iuM>8@*R-TZB@<~R0-^7rIV)UD~? zF#D_g!v0O03tiW2E;ABe(0jvPV5i;Etn<6hd!PRH?f8q3#U0xZbFG&(6feps)N0^y z^0$+3;Y*KpGT*--NbrOK|Zn;FL-t6rITI^#=rw8BG={@ma?#(TT` zu9;o$m2B&mNwqs#cj({65A56IUptp&|KNY^Tz2f|=f!&zj<+{A8a;cgTglS6d*7aS z64!TJc>H+U@sm++%~r5qQCq-gdT*dB=iwSAnB|e|iwz(?U=K9|ZohyI$ zq-(ch?^dZhU4I(?I{#>9e|h+j>7RDTvSVEQeEfflGrwG0dQf}%zsPQ$w%d-){Sr1$ ze`QFVT0Kuj_sJ&rseheVUQeugtRlVJT6~Rl&6GQ<#N}?Sdw4D5)s_YEZaMC^=dyod z|Hl82pYM%16YqaU`#_Mve}!K$#q5=fb2y>wzxm9Qvw!8*MzG9Fw@_04D#PP`xU)my z?yd!^DijwbiZ6>1XDabXEf14*eaxlpZyEEwC3b1<-0q%jzUTJ7&Ed`pwLLr0enY*< zpT@WCzc?!XC)T#iEtou`p)UHug3YJ<)Ez_R9;JY_<^?k^ zB%gfnrYOK^SFNJgjcHrESIA}vS1fbkUhjXl_y1R?8>KHK-o1%gXFX+?f3xF1g+GUX zGvDt2l34Ly@YjU736poIuJ{-^lO-hQ%wZz z!+HvP*Vrv!uUt6yxb4AX0bM4!3*}dPsvn!Q{MsI?BD1TFMU;d@Aj1qed}gB&OEq}_fJ#NTt|&sp08@cJ3Nb+kGga@tx>z0^`qe4QistV+pLAN}O0ASP^9}FClX@1uzdVEKc$Lx@p%5>%Sle>G&?w_ESl z@404r;nF!(Mx#6T9#pT3JYd-O?Zafo3#Y!u9`I+I^i=6slFU)VS8|Jw1~TVa!xWw6{n zX^A^L<&H11pC`{cake#dUG0Ha-8{L92Pbt#Na@*XJdE@I@>zYy%Yxf}XSaP3ZdckN z`L5~m_W7#ZE=SA*I}+dip19HMY)*Hz?Zmwc0(^5e+gv^tp08_ho$Vj1-Is&UgC5Tp zNcVaCu*z3(@4_u#HyR)Q_$_Gfh98m-JNEKb`wLc8?!I|6G;zmuVaL|0=qan$&B}hf zd3)Gnt|Nz@{Mx(ggYmnM`#I8&ne?{$t=GIF?G-O?Z9J!M?~cF=vjo?@YJFqd`sGtu z@z&SJSl@kZX()BOT5NJ$qSJ6k8T+MZZHd~Yi;plIJU>H>MREdLwe!o@$`6*@@O8;G-fZBJ63-o%{FA?yX-INO;wl-AVa& zXVtdv6?O_T$(+vVS9P6UKKN36GjIB8zY1$1;itD!?{9pQBp_7BnC5Yb>4?jv^G?zB zzw>l$HQFY*nccY&w=egQpgzZ|Ouu8d4^P}~@i%1KZ4Oy$q05W5thJV(7jt1N;~Uf5 z0v{D6?%Z05*r=)m9#yV2#tH$8L(gj-4w!bg>ev06_gg&bOw4qrxv5L#D?4t@44L?P zc2h^^l9{dB>b~8LstVvywUf>}7H8C*=VUJGy>iy%huHE^^8E1oBL zhtwW0-k7-{Nlx~z9wdO0D`MBk$y9fqZ=1b!y2WYL1xZ#@r7p5o3&z>Y9$py}I9rAL z(Yh^R^E=-*Z#bg9VdC79hX0;YYD(M_!^4dwPr7IR`+U;F&g=7h^({41l4i6_>ks0Y zeC1PM*Zrd@D)Op2=N*zxxodv&%=oEs)L`<&nkmohec@vUq(!6fltLK>i?oUti)MxnRqS z4%_JhoqKDh2pv#nT(oiZ^U5Qg2jhG`N>*zbExA^7wmz=9|9o8SVP@rL@i(~*%Fg^q zIpA>IO5!4u+p`A|u8AqjriF^QJ^LJalu>B29jlXIV zM%m<`7wIS7%S$hfXfn{c;B=T-Rn=+9bD`f7Q{!6hXx)6V_Dfe*M}uln|PLGZFXx}xX5WHNpD%vE^fR06b^|m!MxU23y#c~_fMK>`&9p9az?xtew=2DnjaVF zAQ16tL0Di+otTNT~sO7EKFGX)YVDy$0J$0P@ zl%&nKWi3;uCfJ4c@2gGOGVz>cQqRn}(=XP2DfV3N!NwjTv;C{h)+hOrGHjJ63QsO} z{JDdHJ^z{W-0kL%*PS_OBJ%jtdDXp2jOrJ*tTtSJc_RB|zH=uP_$}82-F+ETUpTL% zyD)h1*PzSo`mLyF4FhIfazUPo7arvsWrROW%$# zh`gbYoVRbYeEh#%%dZK_#TLJ)r zT+3u1@MFiYc zo-NWoHPMsxv~Vz|vx8aXli+i=4;8c3EZZO>W5Xo%G;x79=iBW9K0kS1OpiYtr@g<4 hW2)`LCB@ZyZY^&4rft6W)wf??`ajG##r)|H4*;LL6A%CZ literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-vcpkg-manifest-file-editor.webp b/doc/qtcreator/images/qtcreator-vcpkg-manifest-file-editor.webp index 1d341a081f4f7fa3ad943f16b945bf64253354d0..485e0ea974e87909c1fb520ba876ac334f5ccb51 100644 GIT binary patch literal 5784 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 diff --git a/doc/qtcreator/images/qtcreator-vcpkg-package-selector.webp b/doc/qtcreator/images/qtcreator-vcpkg-package-selector.webp index 97295b6b485737492d959b6f6bcf6d562661bd5d..966bc3dbc438fef78e66cfc9ca77ea67997d1cde 100644 GIT binary patch literal 5902 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 literal 10538 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 cDgK9yKJK_?J!7MFfQ0A1f?wxeo+yz30H5ZY \uicontrol {New File} > - \uicontrol Vcpkg. - \image qtcreator-file-new-file-vcpkg-manifest-file.webp {vcpkg.json Manifest File wizard page} + \uicontrol vcpkg > \uicontrol {vcpkg.json Manifest File} > + \uicontrol Choose to open the \uicontrol Location dialog. + \li In \uicontrol {File name}, enter a name for the manifest file. + \li In \uicontrol Path, enter the path for the manifest file. + \li Select \uicontrol Next to open the + \uicontrol {vcpkg.json Manifest File} dialog. + \image qtcreator-file-new-file-vcpkg-manifest-file.webp {vcpkg.json Manifest File dialog} \li In \uicontrol Name, enter a name for the manifest file. - \li In \uicontrol Version, enter a version number for the file. + \li In \uicontrol {Version string}, enter a version number for the file. \li In \uicontrol Dependencies, enter the packages to manage. You can add packages later in a manifest editor. @@ -57,27 +72,51 @@ The wizard automatically adds the vcpkg.json file to the CMakeLists.txt file of the project. - \section1 Selecting Packages to Manage + \sa {vcpkg Package Manager}, {Edit vcpkg manifest files} +*/ + +/*! + \page creator-how-to-edit-vcpkg-manifest-files.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-build + + \title Edit vcpkg manifest files When you open a vcpkg.json file, it opens in the manifest file editor: \image qtcreator-vcpkg-manifest-file-editor.webp {vcpkg.json file in the manifest file editor} + \section1 Add packages to manage + To add a package to your project: \list 1 - \li Place the cursor on the line where you want to add a package. - \li Select the \inlineimage icons/zoom.png - (\uicontrol {Search Package}) button. - \image qtcreator-vcpkg-package-selector.webp {Package selector dialog} + \li Select the \inlineimage icons/vcpkg.png + (\uicontrol {Add vcpkg Package}) button on the manifest editor + toolbar. + \image qtcreator-vcpkg-package-selector.webp {Add vcpkg Package dialog} \li Select the package to add to your project. \li Select \uicontrol OK to return to the editor. \li Repeat to add more packages. \endlist - To set the path to the directory where you installed vcpkg, select - \inlineimage icons/settings.png - (\uicontrol Configure) on the editor toolbar. + \section1 Generate code for CMake configuration files - \sa {Enable and disable plugins} + To generate sample CMake code to copy to the CMakeLists.text file: + + \list 1 + \li Select the \inlineimage icons/cmake.png (\uicontrol {CMake Code}) + button on the manifest editor toolbar. + \image qtcreator-vcpkg-cmake-config.webp {CMake Code dialog} + \li Select the example code you need and copy-paste it to the + CMakeLists.txt file. + \endlist + + \section1 Set the path to vcpkg + + To set the path to the directory where you installed vcpkg, select + \inlineimage icons/settings.png (\uicontrol Configure) on the editor toolbar. + + \sa {vcpkg Package Manager}, {Create vcpkg manifest files} */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc index 21c189a6986..4d9b8b54b9f 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc @@ -65,8 +65,7 @@ \li Class and script files for Python projects. \row \li \uicontrol {vcpkg} (experimental) - \li \l {Managing Packages with vcpkg}{vcpkg package manager} manifest - files (vcpkg.json). + \li vcpkg package manager manifest files (vcpkg.json). \row \li \uicontrol {Nim} (experimental) \li Empty Nim source and script files. @@ -74,7 +73,7 @@ \sa {Create compiler explorer sessions}, {Create C++ classes}, {Create OpenGL fragment and vertex shaders}, {Create resource files}, - {Use project wizards} + {Create vcpkg manifest files}, {Use project wizards} */ /*! From 05ef0d9cb9422b98f51ad4ae285a33f9a4d1b94c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 7 Nov 2023 15:59:22 +0100 Subject: [PATCH 34/34] Fix crash in QmlOutline related to QmlDesigner This is a workaround for the ugly hack that QmlDesigner forces the EditorManager to send a currentEditorChanged signal with QmlDesigner's custom, internal IEditor. The currentEditorChanged signal triggered an update/re-creation of the outline widget *for that editor*. Which is not the intended result in the first place, but even aggrevated by the fact that QmlDesigner never calls currentEditorChanged with the actual EditorManager::currentEditor() again. Work around that by only ever using the EditorManager::currentEditor() for the outline widget. Fixes: QTCREATORBUG-29653 Fixes: QTCREATORBUG-29702 Change-Id: I39c5bee94141a0d86c0e92879eb8b1c2b7ba64b9 Reviewed-by: Reviewed-by: Christian Stenger Reviewed-by: David Schulz --- src/plugins/texteditor/outlinefactory.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/outlinefactory.cpp b/src/plugins/texteditor/outlinefactory.cpp index 2c462127026..8c736a45396 100644 --- a/src/plugins/texteditor/outlinefactory.cpp +++ b/src/plugins/texteditor/outlinefactory.cpp @@ -120,8 +120,10 @@ OutlineWidgetStack::OutlineWidgetStack(OutlineFactory *factory) : m_toggleSort->setToolTip(Tr::tr("Sort Alphabetically")); connect(m_toggleSort, &QAbstractButton::clicked, this, &OutlineWidgetStack::toggleSort); - connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, - this, &OutlineWidgetStack::updateEditor); + connect(Core::EditorManager::instance(), + &Core::EditorManager::currentEditorChanged, + this, + &OutlineWidgetStack::updateCurrentEditor); connect(factory, &OutlineFactory::updateOutline, this, &OutlineWidgetStack::updateCurrentEditor); updateCurrentEditor();