From 496b47cadcfc364f40faf4a4a2da9c550439c66a Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 8 Jul 2024 08:34:49 +0200 Subject: [PATCH 01/31] Parametrize year in copyright template No need to bump this all the time, just use the current year Change-Id: I3f2abf6a0a54185b7b47e68aacb3cee2f27aa675 Reviewed-by: Alessandro Portale --- dist/copyright_template.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/copyright_template.txt b/dist/copyright_template.txt index 974656016df..efdc4bcbe8d 100644 --- a/dist/copyright_template.txt +++ b/dist/copyright_template.txt @@ -1,3 +1,3 @@ -// Copyright (C) 2023 The Qt Company Ltd. +// Copyright (C) %{CurrentDate:yyyy} The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 From 62d11c46a25ca81913718ab298c548c241deac81 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 8 Jul 2024 08:46:22 +0200 Subject: [PATCH 02/31] Wizards: Add comment on closing app for Qt console application Add a comment on how to quit a Qt console application. Fixes: QTCREATORBUG-31212 Change-Id: Id5dc5b6c4eba807e41fc589d16f44d133c94c6b3 Reviewed-by: Leena Miettinen Reviewed-by: Christian Kandeler --- .../templates/wizards/projects/consoleapp/main.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/share/qtcreator/templates/wizards/projects/consoleapp/main.cpp b/share/qtcreator/templates/wizards/projects/consoleapp/main.cpp index 3609b36c4e1..356f567b8c3 100644 --- a/share/qtcreator/templates/wizards/projects/consoleapp/main.cpp +++ b/share/qtcreator/templates/wizards/projects/consoleapp/main.cpp @@ -22,5 +22,16 @@ int main(int argc, char *argv[]) } @endif + // Set up code that uses the Qt event loop here. + // Call a.quit() or a.exit() to quit the application. + // A not very useful example would be including + // #include + // near the top of the file and calling + // QTimer::singleShot(5000, &a, &QCoreApplication::quit); + // which quits the application after 5 seconds. + + // If you do not need a running Qt event loop, remove the call + // to a.exec() or use the Non-Qt Plain C++ Application template. + return a.exec(); } From e3feec0978a1bbfaf09956bb2ecae93120996d94 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 15:46:19 +0200 Subject: [PATCH 03/31] German translation: Debugger, iOS, LanguageClient Change-Id: I47b3a0d865a57af45180d4559ea8085dc0ce6df4 Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 38 ++++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 1f1d52059cb..d329c8ea9ba 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -24896,11 +24896,11 @@ Möchten Sie die Daten trotzdem anzeigen? Disable All Breakpoints - + Alle Haltepunkte deaktivieren Enable All Breakpoints - + Alle Haltepunkte aktivieren Disable Selected Locations @@ -25729,15 +25729,15 @@ markers in the source code editor. Use debug info daemon - + Debuginfo-Daemon benutzen Use system settings - + Systemeinstellungen benutzen Lets GDB attempt to automatically retrieve debug information for system packages. - + Lässt GDB versuchen, die Debuginformation für Systempakete automatisch abzurufen. <html><head/><body><p>Enables stepping backwards.</p><p><b>Note:</b> This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</p></body></html> @@ -26608,7 +26608,7 @@ markers in the source code editor. "%1" could not be started. Error message: %2 - + "%1" konnte nicht gestartet werden. Fehlermeldung: %2 Python Error @@ -27134,7 +27134,7 @@ Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie LLDB Preset - + LLDB Voreinstellung Python Preset @@ -27932,7 +27932,7 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve Behavior - Verhalten + Verhalten Extra Debugging Helpers @@ -28206,7 +28206,7 @@ Bitte wählen Sie einen 64-bit-Debugger in den Kit-Einstellungen für dieses Kit Launching %1 Debugger - + Starte Debugger %1 Loading finished. @@ -35058,7 +35058,7 @@ Möchten Sie sie überschreiben? Product type: - + Produkttyp: Device name @@ -35091,7 +35091,7 @@ Möchten Sie sie überschreiben? Product type - + Produkttyp An iOS device in user mode has been detected. @@ -35160,7 +35160,7 @@ Möchten Sie sie überschreiben? Update - + Aktualisieren iOS Simulator @@ -35256,7 +35256,7 @@ Möchten Sie sie überschreiben? Configure available simulator devices in <a href="%1">Xcode</a>. - + Konfigurieren Sie verfügbare Simulator-Geräte in <a href="%1">Xcode</a>. Devices @@ -35605,7 +35605,7 @@ Beispiel: *.cpp%1*.h File pattern: - + Suchmuster für Dateinamen: Executable: @@ -35749,11 +35749,11 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Language Server Diagnostics - + Language Server-Meldungen Issues provided by the Language Server in the current document. - + Probleme, die der Language Server im aktuellen Dokument gefunden hat. Always On @@ -35862,7 +35862,7 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Deprecated - + Veraltet Incoming @@ -35874,11 +35874,11 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Bases - Basisklassen + Basistypen Derived - Abgeleitet + Abgeleitet Call Hierarchy From 964f2f709e29f2aaaed04b0bff95e098464a6d35 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 14:48:02 +0200 Subject: [PATCH 04/31] German translation: C* Clang*, CMake, Copilot, Core Change-Id: I4c0d0e6b28c076003d1fbbe08e7bf0d3fb6dee39 Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 44 ++++++++++---------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index d329c8ea9ba..2db917e98fd 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -16270,7 +16270,7 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev You may need to add the project directory to the list of directories that are mounted by the build device. - + Sie müssen das Projektverzeichnis möglicherweise zur Liste der vom Gerät eingehängten Pfade hinzufügen. The source directory %1 is not reachable by the CMake executable %2. @@ -16310,7 +16310,7 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev CMake Preset (%1) %2 Debugger - + CMake-Preset (%1) %2 Debugger Unexpected source directory "%1", expected "%2". This can be correct in some situations, for example when importing a standalone Qt test, but usually this is an error. Import the build anyway? @@ -16435,7 +16435,7 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev CMake project configuration failed. No CMake configuration for build type "%1" found. Check General Messages for more information. General Messages refers to the output view - + Die CMake-Konfiguration des Projekts ist fehlgeschlagen. Es wurde keine CMake-Konfiguration für den Build-Typ "%1" gefunden. Überprüfen Sie "Allgemeine Ausgaben" für weitere Informationen. No "%1" CMake configuration found. Available configurations: "%2". @@ -16475,15 +16475,15 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der Invalid "configurePresets" section in file "%1". - + Ungültiger Abschnitt "configurePresets" in Datei "%1". Invalid "buildPresets" section in file "%1". - + Ungültiger Abschnitt "buildPresets" in Datei "%1". Invalid "vendor" section in file "%1". - + Ungültiger Abschnitt "vendor" in Datei "%1". <File System> @@ -16871,7 +16871,7 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der Generating Clang compilation database canceled. - + Erzeugen der Clang-Kompilierungsdatenbank wurde abgebrochen. Generate Compilation Database for "%1" @@ -16973,7 +16973,7 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der Cannot use clangd: Generating compilation database canceled. - + Kann Clangd nicht nutzen: Erstellen der Kompilierungsdatenbank wurde abgebrochen. Cannot use clangd: Failed to generate compilation database: @@ -17008,7 +17008,7 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der Could not retrieve project info. - + Projekt-Information konnte nicht abgefragt werden. Could not create "%1": %2 @@ -17194,11 +17194,11 @@ Ausgabe: Suppress Selected Diagnostics Inline - + Inline-Anzeige der ausgewählten Meldungen unterdrücken Suppress This Diagnostic Inline - + Inline-Anzeige dieser Meldung unterdrücken Disable These Checks @@ -18677,17 +18677,17 @@ Der Code wurde in die Zwischenablage kopiert. Path to %1: %1 is the filename of the copilot language server - + Pfad zu %1: %1 path %1 is the filename of the copilot language server - + Pfad zu %1 Select path to %2 in Copilot Neovim plugin. See %1 for installation instructions. %1 is the URL to copilot.vim getting started, %2 is the filename of the copilot language server - + Wählen Sie den Pfad zu %2 im Copilot-Plugin für Neovim. Siehe auch %1 für eine Installationsanleitung. Auto Request @@ -18786,7 +18786,9 @@ Der Code wurde in die Zwischenablage kopiert. Otherwise you need to specify the path to the %2 file from the Copilot neovim plugin. Markdown text for the copilot instruction label - + Das Copilot-Plugin benötigt node.js und das Copilot-Plugin für Neovim. Wenn Sie das Neovim-Plugin wie in der %1 beschrieben installieren, findet das Plugin die Datei %3 automatisch. + +Ansonsten müssen Sie den Pfad zur Datei %2 aus dem Copilot-Plugin für Neovim angeben. Note @@ -20147,11 +20149,11 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden output.txt default file name suggested for saving text from output views - + ausgabe.txt Save Contents... - + Inhalt speichern... Elided %n characters due to Application Output settings @@ -20517,7 +20519,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche Locator filters show relative paths to the active project when possible. - + Locator-Filter zeigen relative Pfade zum aktiven Projekt an, wenn möglich. Files in Directories @@ -20987,7 +20989,7 @@ Möchten Sie es beenden? The path to the running %1 itself. - + Der Pfad zum laufenden %1 selbst. The directory where %1 finds its pre-installed resources. @@ -20995,7 +20997,7 @@ Möchten Sie es beenden? The directory where %1 puts custom user data. - + Das Verzeichnis, in dem %1 Benutzerdaten speichert. The current date (QDate formatstring). @@ -21235,7 +21237,7 @@ Möchten Sie sie jetzt auschecken? Reopen Last Closed Document - + Zuletzt geschlossenes Dokument erneut öffnen Meta+E,2 From 6d53819ea7872387e775cf8eda9533a0dc09972c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 15:42:26 +0200 Subject: [PATCH 05/31] German translation: CppEditor Change-Id: Ieed4960f08f911dfa499b05357dcba69bcf2f5e4 Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 47 ++++++++++---------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 2db917e98fd..eca909bd3dc 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -22987,11 +22987,11 @@ Namensraum-Definition Macros that can be used as statements without a trailing semicolon. - + Makros, die ohne abschließendes Semikolon benutzt werden können. Statement Macros - + Anweisungs-Makros Braces @@ -23258,15 +23258,15 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Header File Variables - + Variablen für Header-Dateien Header file - + Header-Datei Use "#pragma once" instead - + Stattdessen "#pragma once" benutzen &Lower case file names @@ -23274,7 +23274,7 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Include guard template: - + Vorlage für Include-Guards: License &template: @@ -23711,11 +23711,11 @@ z.B. name = "m_test_foo_": Enable indexing - + Indizieren aktivieren Indexing should almost always be kept enabled, as disabling it will severely limit the capabilities of the code model. - + Das Indizieren sollte nahezu immer aktiviert bleiben, da das Deaktivieren die Fähigkeiten des Codemodells erheblich einschränkt. Do not index files greater than @@ -23759,11 +23759,11 @@ z.B. name = "m_test_foo_": The location of the per-project clangd index.<p>This is also where the compile_commands.json file will go. - + Der Pfad zum Clangd-Index pro Projekt.<p>Dies ist auch der Ort, an dem die compile_commands.json-Datei gespeichert wird. The location of the per-session clangd index.<p>This is also where the compile_commands.json file will go. - + Der Pfad zum Clangd-Index pro Sitzung.<p>Dies ist auch der Ort, an dem die compile_commands.json-Datei gespeichert wird. <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> @@ -23783,7 +23783,7 @@ z.B. name = "m_test_foo_": <p>Controls whether when editing a header file, clangd should re-parse all source files including that header.</p><p>Note that enabling this option can cause considerable CPU load when editing widely included headers.</p><p>If this option is disabled, the dependent source files are only re-parsed when the header file is saved.</p> - + <p>Bestimmt, ob Clangd beim Bearbeiten einer Header-Datei alle Quelldateien, die diesen Header benutzen, neu auswerten soll.</p><p>Beachten Sie, dass das Aktivieren dieser Einstellung erhebliche Prozessorauslastung beim Bearbeiten weitgenutzter Header-Dateien zur Folge haben kann.</p><p>Wenn diese Einstellung deaktiviert ist, werden abhängige Quelldateien erst erneut ausgewertet, wenn die Header-Datei gespeichert wird.</p> Defines the amount of time %1 waits before sending document changes to the server. @@ -23811,7 +23811,7 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun Update dependent sources - + Abhängige Quellen aktualisieren Automatic @@ -23839,11 +23839,11 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun Per-project index location: - + Pfad des Index pro Projekt: Per-session index location: - + Pfad des Index pro Sitzung: Header/source switch mode: @@ -24211,40 +24211,41 @@ Flags: %3 Convert Function Call to Qt Meta-Method Invocation - + Funktionsaufruf in Qt Meta-Methodenaufruf umwandeln Move Class to a Dedicated Set of Source Files - + Klasse in dedizierten Satz Quelldateien verschieben Header file only - + Nur Header-Datei Project: - Projekt: + Projekt: Header file: - Header-Datei: + Header-Datei: Implementation file: - + Implementationsdatei: Refusing to overwrite the following files: %1 - + Folgende Dateien existieren und werden nicht überschrieben: %1 + Failed to add to project file "%1": %2 - + Hinzufügen zur Projektdatei "%1" fehlgeschlagen: %2 Re-order Member Function Definitions According to Declaration Order - + Definitionen der Memberfunktionen entsprechend der Deklarationsreihenfolge anordnen From dd1f76d85ba5763dc9658a9d7a146f8373832eb5 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Sun, 7 Jul 2024 10:45:50 +0200 Subject: [PATCH 06/31] CMakePM: Do not use "edit-copy" icon for source folders This "edit-copy" icon used for source folders is very confusing. The linked bug report has screenshots comparing Qt Creator and Xcode. Xcode just uses consistently a folder icon for all nodes that are actually folders. This change will make Qt Creator also display a folder icon for the source folders. Task-number: QTCREATORBUG-30012 Change-Id: Ibfcc4f55e779ed368edd30bfbc711bd81a4aa499 Reviewed-by: Marcus Tillmanns --- src/plugins/cmakeprojectmanager/fileapidataextractor.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index 7a6de1749de..c76af32e775 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -627,7 +628,7 @@ static FolderNode *createSourceGroupNode(const QString &sourceGroupName, if (!existingNode) { auto node = createCMakeVFolder(sourceDirectory, Node::DefaultFolderPriority + 5, p); node->setListInProject(false); - node->setIcon([] { return Icon::fromTheme("edit-copy"); }); + node->setIcon([] { return FileIconProvider::icon(QFileIconProvider::Folder); }); existingNode = node.get(); From 7dfbab418f18f1803606bffdbbbffdcc5faf3362 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 5 Jul 2024 13:25:21 +0200 Subject: [PATCH 07/31] TextEditor: fix toggle visualize whitespace and text wrapping Fixes: QTCREATORBUG-31202 Change-Id: I9d601dfb9d9b00e2c92525b55874c8314051ae02 Reviewed-by: Christian Stenger --- src/plugins/texteditor/texteditor.cpp | 2 ++ src/plugins/texteditor/texteditorplugin.cpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 30657f1741b..33ec2ed7e42 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -4125,6 +4125,7 @@ void TextEditorWidgetPrivate::registerActions() .contextAction(); m_visualizeWhitespaceAction = ActionBuilder(this, VISUALIZE_WHITESPACE) .setContext(m_editorContext) + .setCheckable(true) .addOnToggled( this, [this](bool checked) { @@ -4140,6 +4141,7 @@ void TextEditorWidgetPrivate::registerActions() .contextAction(); m_textWrappingAction = ActionBuilder(this, TEXT_WRAPPING) .setContext(m_editorContext) + .setCheckable(true) .addOnToggled( this, [this](bool checked) { diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp index 5df9de54701..c774fed0438 100644 --- a/src/plugins/texteditor/texteditorplugin.cpp +++ b/src/plugins/texteditor/texteditorplugin.cpp @@ -453,7 +453,8 @@ void TextEditorPlugin::createEditorCommands() TextActionBuilder(this, VISUALIZE_WHITESPACE) .setText(Tr::tr("&Visualize Whitespace")) .setDefaultKeySequence(Tr::tr("Meta+E, Meta+V"), Tr::tr("Ctrl+E, Ctrl+V")) - .addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT); + .addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT) + .setCheckable(true); TextActionBuilder(this, CLEAN_WHITESPACE) .setText(Tr::tr("Clean Whitespace")) .addToContainer(M_EDIT_ADVANCED, G_EDIT_FORMAT); From 533f03f2487bf648537b5995042aa44e91e7093f Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 8 Jul 2024 09:12:27 +0200 Subject: [PATCH 08/31] SquishTests: Adapt to doc changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: If67606f85b45a9c787cf8cef7fc42721f0be8eaa Reviewed-by: Robert Löhning --- tests/system/suite_HELP/tst_HELP02/test.py | 4 ++-- tests/system/suite_HELP/tst_HELP06/test.py | 13 ++++++------- tests/system/suite_WELP/tst_WELP01/test.py | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/system/suite_HELP/tst_HELP02/test.py b/tests/system/suite_HELP/tst_HELP02/test.py index b6246e4f05e..66ac3c0ea7b 100644 --- a/tests/system/suite_HELP/tst_HELP02/test.py +++ b/tests/system/suite_HELP/tst_HELP02/test.py @@ -37,7 +37,7 @@ def getQtCreatorVersionFromFile(): def checkQtCreatorHelpVersion(expectedVersion): def rightStart(x): - return x.startswith('Qt Creator Manual') + return x.startswith('Qt Creator Documentation') switchViewTo(ViewConstants.HELP) try: @@ -45,7 +45,7 @@ def checkQtCreatorHelpVersion(expectedVersion): waitFor("any(map(rightStart, dumpItems(helpContentWidget.model())))", 10000) items = dumpItems(helpContentWidget.model()) test.compare(next(iter(filter(rightStart, items))), - 'Qt Creator Manual %s' % expectedVersion, + 'Qt Creator Documentation %s' % expectedVersion, 'Verifying whether manual uses expected version.') except: t, v = sys.exc_info()[:2] diff --git a/tests/system/suite_HELP/tst_HELP06/test.py b/tests/system/suite_HELP/tst_HELP06/test.py index 0cdcbb653af..1c32e467d23 100644 --- a/tests/system/suite_HELP/tst_HELP06/test.py +++ b/tests/system/suite_HELP/tst_HELP06/test.py @@ -17,7 +17,7 @@ def invokeContextMenuItemOnBookmarkFolder(view, item, menuItem): "window=':Add Bookmark_BookmarkDialog'}", menuItem)) def textForQtVersion(text): - suffix = "Qt Creator Manual" + suffix = "Qt Creator Documentation" if text != suffix: text += " | " + suffix return text @@ -28,15 +28,14 @@ def main(): return # goto help mode and click on topic switchViewTo(ViewConstants.HELP) - manualQModelIndex = getQModelIndexStr("text?='Qt Creator Manual *'", + manualQModelIndex = getQModelIndexStr("text?='Qt Creator Documentation *'", ":Qt Creator_QHelpContentWidget") manualQMIObj = waitForObject(manualQModelIndex) doubleClick(manualQMIObj, 5, 5, 0, Qt.LeftButton) if not waitFor("not manualQMIObj.collapsed", 2000): test.warning("It takes more than two seconds to expand the help content tree.") - devQModelIndex = getQModelIndexStr("text='Developing with Qt Creator'", manualQModelIndex) - doubleClick(devQModelIndex) - gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", devQModelIndex) + + gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex) doubleClick(gettingStartedQModelIndex) pageTitle = "Configuring Qt Creator" mouseClick(waitForObject(getQModelIndexStr("text='%s'" % pageTitle, @@ -80,7 +79,7 @@ def main(): configQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("%s*" % pageTitle), folder2QModelIndex) newFolderQModelIndex = getQModelIndexStr("text='New Folder'", sampleQModelIndex) - manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Manual"), + manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Documentation"), newFolderQModelIndex) test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and checkIfObjectExists(folder1QModelIndex, verboseOnFail = True) and @@ -99,7 +98,7 @@ def main(): type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") - test.verify(textForQtVersion("Qt Creator Manual") in getHelpTitle(), + test.verify(textForQtVersion("Qt Creator Documentation") in getHelpTitle(), "Verifying if second bookmark is opened") # delete previously created directory clickButton(waitForObject(":Qt Creator.Add Bookmark_QToolButton")) diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py index 8385c33fa96..89ee6dbd1e3 100644 --- a/tests/system/suite_WELP/tst_WELP01/test.py +++ b/tests/system/suite_WELP/tst_WELP01/test.py @@ -75,7 +75,7 @@ def main(): wsButton = getWelcomeScreenSideBarButton(getStarted) if test.verify(object.exists(wsButton), "Verifying: Qt Creator displays Welcome Page with '%s' button." % getStarted): - if clickItemVerifyHelpCombo(wsButton, "Getting Started | Qt Creator Manual", + if clickItemVerifyHelpCombo(wsButton, "Getting Started \| Qt Creator Documentation", "Verifying: Help with Creator Documentation is being opened."): textUrls = {'Online Community':'https://forum.qt.io', @@ -92,7 +92,7 @@ def main(): wsButton = getWelcomeScreenSideBarButton(getStarted) if object.exists(wsButton): mouseClick(wsButton) - qcManualQModelIndexStr = getQModelIndexStr("text~='Qt Creator Manual [0-9.]+'", + qcManualQModelIndexStr = getQModelIndexStr("text~='Qt Creator Documentation [0-9.]+'", ":Qt Creator_QHelpContentWidget") if str(waitForObject(":Qt Creator_HelpSelector_QComboBox").currentText) == "(Untitled)": mouseClick(qcManualQModelIndexStr) From 028f27781fdb60442d05941a72ed5acb4bdd9a7e Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 8 Jul 2024 14:06:07 +0200 Subject: [PATCH 09/31] Core: Fix saving document after showing editor context menu The editor context menu generated for the drag mark contains actions that also gets the same shortcut as the global save command, to make them visible in the menu. This leads to ambiguous shortcut events if these actions are still taken into account after closing the context menu. Avoid this by removing the actions from the context menu again when hiding it. This was previously done before the menu was shown again, so this just does it earlier. Fixes: QTCREATORBUG-31205 Change-Id: I49490c2d6cbd3b000c717f35373e7f9b6b5393e4 Reviewed-by: Christian Stenger --- src/plugins/coreplugin/editortoolbar.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 857a32b6372..5675cae0eb3 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -193,9 +193,13 @@ EditorToolBar::EditorToolBar(QWidget *parent) : menu.exec(d->m_editorList->mapToGlobal(p)); }); connect(d->m_dragHandleMenu, &QMenu::aboutToShow, this, [this] { - d->m_dragHandleMenu->clear(); fillListContextMenu(d->m_dragHandleMenu); }); + connect(d->m_dragHandleMenu, &QMenu::aboutToHide, this, [this] { + // Remove actions from context menu, to avoid any shortcuts set on them + // for the display in the menu interfering with global actions + d->m_dragHandleMenu->clear(); + }); connect(d->m_lockButton, &QAbstractButton::clicked, this, &EditorToolBar::makeEditorWritable); connect(d->m_closeEditorButton, &QAbstractButton::clicked, this, &EditorToolBar::closeEditor, Qt::QueuedConnection); From 332db8de18cdc9d62d5eae9c50190d630d8dccbf Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 8 Jul 2024 15:16:55 +0200 Subject: [PATCH 10/31] qbs build: Do not use relative paths in Export items Those will be interpreted relative to the importing product in the future. Change-Id: I57f6159053acf1e0334d3289de1f93545e2e871b Reviewed-by: Christian Stenger --- qbs/imports/QtcPlugin.qbs | 2 +- src/libs/3rdparty/libvterm/vterm.qbs | 2 +- src/libs/modelinglib/modelinglib.qbs | 4 ++-- src/libs/solutions/spinner/spinner.qbs | 2 +- src/libs/solutions/tasking/tasking.qbs | 5 ++++- src/libs/utils/utils.qbs | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/qbs/imports/QtcPlugin.qbs b/qbs/imports/QtcPlugin.qbs index d06f99385e4..f4ee221695f 100644 --- a/qbs/imports/QtcPlugin.qbs +++ b/qbs/imports/QtcPlugin.qbs @@ -46,6 +46,6 @@ QtcProduct { Export { Depends { name: "cpp" } Depends { name: "ExtensionSystem" } - cpp.includePaths: ".." + cpp.includePaths: exportingProduct.sourceDirectory + "/.." } } diff --git a/src/libs/3rdparty/libvterm/vterm.qbs b/src/libs/3rdparty/libvterm/vterm.qbs index e35658908da..4c3a08e519e 100644 --- a/src/libs/3rdparty/libvterm/vterm.qbs +++ b/src/libs/3rdparty/libvterm/vterm.qbs @@ -30,6 +30,6 @@ QtcLibrary { Export { Depends { name: "cpp" } - cpp.includePaths: "include" + cpp.includePaths: exportingProduct.sourceDirectory + "/include" } } diff --git a/src/libs/modelinglib/modelinglib.qbs b/src/libs/modelinglib/modelinglib.qbs index 9929bf33c03..54ad0cad64c 100644 --- a/src/libs/modelinglib/modelinglib.qbs +++ b/src/libs/modelinglib/modelinglib.qbs @@ -396,8 +396,8 @@ QtcLibrary { Export { cpp.includePaths: [ - ".", - "./qtserialization/inc" + exportingProduct.sourceDirectory, + exportingProduct.sourceDirectory + "/qtserialization/inc" ] } } diff --git a/src/libs/solutions/spinner/spinner.qbs b/src/libs/solutions/spinner/spinner.qbs index d02858d0484..74fefc89875 100644 --- a/src/libs/solutions/spinner/spinner.qbs +++ b/src/libs/solutions/spinner/spinner.qbs @@ -14,7 +14,7 @@ QtcLibrary { Export { Depends { name: "cpp" } - cpp.includePaths: ".." + cpp.includePaths: exportingProduct.sourceDirectory + "/.." } } diff --git a/src/libs/solutions/tasking/tasking.qbs b/src/libs/solutions/tasking/tasking.qbs index 3b69d7449ff..f0601530d1c 100644 --- a/src/libs/solutions/tasking/tasking.qbs +++ b/src/libs/solutions/tasking/tasking.qbs @@ -22,7 +22,10 @@ QtcLibrary { Export { Depends { name: "cpp" } - cpp.includePaths: ["..", "../.."] + cpp.includePaths: [ + exportingProduct.sourceDirectory + "/..", + exportingProduct.sourceDirectory + "/../.." + ] } } diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index afc0f202aa7..e73c9ef9230 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -475,6 +475,6 @@ QtcLibrary { Export { Depends { name: "Qt"; submodules: ["concurrent", "widgets" ] } Depends { name: "Tasking" } - cpp.includePaths: "mimetypes2" + cpp.includePaths: exportingProduct.sourceDirectory + "/mimetypes2" } } From fcf76f7b2bacb21e49668728bba1b3ac86ca9c96 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 8 Jul 2024 16:49:34 +0200 Subject: [PATCH 11/31] Remove empty file Change-Id: Ib27b1976f04cfa5337f772a3b35318ae89174f52 Reviewed-by: hjk --- src/plugins/coreplugin/mainwindow.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/plugins/coreplugin/mainwindow.cpp diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp deleted file mode 100644 index e69de29bb2d..00000000000 From fb96b34337ef6d3d0a2aa5eb2aa2006af785fb6d Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 9 Jul 2024 08:43:54 +0200 Subject: [PATCH 12/31] Utils: Add "amd64" arch detection Change-Id: I04930aa61714231f54bd4a2d2b644f2e43de2b61 Reviewed-by: Christian Stenger --- src/libs/utils/osspecificaspects.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/utils/osspecificaspects.h b/src/libs/utils/osspecificaspects.h index 0af8ad52102..d778d5ea574 100644 --- a/src/libs/utils/osspecificaspects.h +++ b/src/libs/utils/osspecificaspects.h @@ -49,7 +49,7 @@ inline OsType osTypeFromString(const QString &string) inline OsArch osArchFromString(const QString &architecture) { - if (architecture == QLatin1String("x86_64")) + if (architecture == QLatin1String("x86_64") || architecture == QLatin1String("amd64")) return OsArchAMD64; if (architecture == QLatin1String("x86")) return OsArchX86; From 80fcd782f576a9f57c1904851fcdafee3f04c866 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 16:12:12 +0200 Subject: [PATCH 13/31] German translation: Extension* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I4a10d877a8f679498d1f1c56cf1d5925828dd8d4 Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 64 ++++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index eca909bd3dc..a538c0e4cff 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -29969,102 +29969,102 @@ Versuchen Sie, das Projekt neu zu erstellen. QtC::ExtensionManager Extensions - + Erweiterungen More information - + Mehr Informationen Extension details - + Erweiterungsdetails Pack contains %n plugins. - - - + + Paket enthält ein Plugin. + Paket enthält %n Plugins. Load on start - + Beim Start laden Restart Now - Jetzt neu starten + Jetzt neu starten Error - Fehler + Fehler Loaded - Geladen + Geladen Not loaded - + Nicht geladen Tags - Tags + Tags Platforms - + Plattformen Dependencies - Abhängigkeiten + Abhängigkeiten Extensions in pack - + Erweiterungen im Paket Downloading... - + Lade herunter... Cancel - Abbrechen + Abbrechen Download Extension - + Erweiterung herunterladen Download Error - + Ladefehler Cannot download extension - + Erweiterung kann nicht heruntergeladen werden Code: %1. - + Code: %1. Manage Extensions - + Erweiterungen verwalten Search - Suche + Suche Install... - + Installieren... Use external repository - + Externes Repository benutzen Repository: %1 - Repository: %1 + Repository: %1 @@ -30103,7 +30103,7 @@ Versuchen Sie, das Projekt neu zu erstellen. Loadable without restart: - + Kann ohne Neustart geladen werden: Plugin Details of %1 @@ -30271,7 +30271,7 @@ Grund: %3 Cannot open file - + Datei kann nicht geöffnet werden "%1" is missing @@ -30299,11 +30299,11 @@ Grund: %3 No IID found - + Keine IID gefunden Expected IID "%1", but found "%2" - + IID "%1" erwartet, aber "%2" gefunden Resolving dependencies failed because state != Read @@ -30375,7 +30375,7 @@ Grund: %3 Load on Startup - Beim Start Laden + Beim Start laden Utilities @@ -30429,7 +30429,7 @@ Plugin durch ein Kommandozeilenargument deaktiviert. Load on startup - Beim Start Laden + Beim Start laden Enabling Plugins From 11e713eb4bbdc16cfeb172a94128d690d8ed5d0f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 5 Jul 2024 13:32:34 +0200 Subject: [PATCH 14/31] German translation: ModelEditor, qmt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I808f55ccb3efb088d243a025130f20953803be3f Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 60 ++++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index a538c0e4cff..d03d28e4221 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -37239,11 +37239,11 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Toggle View and Filter Settings - + Einstellungen für Ansicht und Filter umschalten Ctrl+Shift+L - + Ctrl+Shift+L Synchronize Browser and Diagram @@ -37388,15 +37388,15 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Add Package Link to %1 - + Paket-Link zu %1 hinzufügen Add Diagram Link to %1 - + Diagramm-Link zu %1 hinzufügen Add Document Link to %1 - + Dokument-Link zu %1 hinzufügen Add Package %1 @@ -37428,19 +37428,19 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Select File Target - + Zieldatei auswählen Linked file: - + Verlinkte Datei: Select Image File - + Bilddatei auswählen Image: - + Bild: <font color=red>Model file must be reloaded.</font> @@ -37448,11 +37448,11 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Selecting Image - + Bild auswählen Unable to read image file "%1". - + Bilddatei "%1" konnte nicht gelesen werden. Zoom: %1% @@ -37460,15 +37460,15 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Opening File - + Öffne Datei File "%1" does not exist. - Datei "%1" existiert nicht. + Datei "%1" existiert nicht. Add Related Elements... - + Zugehörige Elemente hinzufügen... Update Include Dependencies @@ -59525,31 +59525,31 @@ should a repository require SSH-authentication (see documentation on SSH and the Reset - Zurücksetzen + Zurücksetzen Relations - + Beziehungen Diagram Elements - + Diagrammelemente Clear - Löschen + Löschen View - + Ansicht Filter - Filter + Filter Type: - Typ: + Typ: Stereotypes: @@ -59821,11 +59821,11 @@ should a repository require SSH-authentication (see documentation on SSH and the Warning - Warnung + Warnung Error - Fehler + Fehler Intermediate points: @@ -59957,7 +59957,7 @@ should a repository require SSH-authentication (see documentation on SSH and the Open Linked File - + Verlinkte Datei öffnen Align Bottom @@ -60025,27 +60025,27 @@ should a repository require SSH-authentication (see documentation on SSH and the Relation Attributes - + Beziehungsattribute Type - Typ + Typ Direction - + Richtung Stereotypes - + Stereotype Other Element Attributes - + Andere Elementattribute Number of matching elements: - + Anzahl der übereinstimmenden Elemente: From 3b08077cef920cd652b31e7be53230f709c68940 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 8 Jul 2024 12:32:48 +0200 Subject: [PATCH 15/31] German translation: ProjectExplorer, Python, QMake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I9a5dd2b7aafdd3542aa231307701b30d72ead170 Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 69 ++++++++++---------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index d03d28e4221..f52fdcc4001 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -38955,7 +38955,7 @@ Außer: %2 compile-output.txt file name suggested for saving compile output - + kompilierungsausgabe.txt Show Compile &Output @@ -39315,7 +39315,7 @@ Title of a the cloned RunConfiguration window, text of the window Open Workspace... - + Workspace öffnen... Open File @@ -39641,7 +39641,7 @@ Bitte versuchen Sie es erneut. Open Workspace - + Workspace öffnen Sanitizer @@ -40299,19 +40299,19 @@ Rename %2 to %3 anyway? No build device is set for the kit "%1". - + Es ist kein Gerät (Erstellung) für das Kit "%1" eingerichtet. You can try mounting the folder in your device settings. - + Sie können in den Geräteeinstellungen versuchen, das Verzeichnis einzuhängen. The build device "%1" cannot reach the project directory. - + Das Gerät "%1" für das Erstellen kann das Projektverzeichnis nicht erreichen. The build device "%1" cannot reach the build directory. - + Das Gerät "%1" für das Erstellen kann das Build-Verzeichnis nicht erreichen. Default @@ -40604,7 +40604,7 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein application-output-%1.txt file name suggested for saving application output, %1 = run configuration display name - + anwendungsausgabe-%1.txt Application Output @@ -42960,7 +42960,8 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen. * Did not find a JSON object in "%1". - + * Konnte kein JSON-Objekt in "%1" finden. + * Version %1 not supported. @@ -43117,7 +43118,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen. %1: Full path to Project Directory. %1 is something like "Active project" - + %1: Vollständiger Pfad zum Projektverzeichnis. %1: The name of the active kit. @@ -43472,11 +43473,11 @@ Sie werden erhalten. Show All Kits - + Alle Kits anzeigen Hide Inactive Kits - + Inaktive Kits verbergen Enable Kit for Project "%1" @@ -43673,11 +43674,11 @@ Was soll %1 tun? Emulator - Emulator + Emulator Launcher: - + Startprogramm: X11 Forwarding: @@ -44133,11 +44134,11 @@ Was soll %1 tun? s Suffix for "seconds" - s + s The amount of seconds to wait between a "soft kill" and a "hard kill" of a running application. - + Die Zeit in Sekunden, die zwischen einem "soft kill" und einem "hard kill" einer laufenden Anwendung gewartet werden soll. Current directory @@ -44237,11 +44238,11 @@ Was soll %1 tun? Show all kits in "Build & Run" in "Projects" mode - + Alle Kits in "Erstellung und Ausführung" im Modus "Projekte" anzeigen Show also inactive kits in "Build & Run" in "Projects" mode. - + Zeige auch inaktive Kits in "Erstellung und Ausführung" im Modus "Projekte". Environment changes to apply to run configurations, but not build configurations. @@ -44277,7 +44278,7 @@ Was soll %1 tun? Time to wait before force-stopping applications: - + Zu wartende Zeit vor dem erzwungenen Beenden von Anwendungen: Files @@ -44377,7 +44378,7 @@ Was soll %1 tun? Template used to construct the default build directory.<br><br>The default value can be set using the environment variable <tt>%1</tt>. - + Vorlage für das Standard-Build-Verzeichnis.<br><br>Der Standardwert kann über die Umgebungsvariable <tt>%1</tt> gesetzt werden. QML debugging: @@ -44600,15 +44601,15 @@ fails because Clang does not understand the target architecture. You can edit this configuration inside the .qtcreator/project.json file. - + Sie können diese Konfiguration über die Datei ".qtcreator/project.json" bearbeiten. Exclude from Project - + Vom Projekt ausschließen Rescan Workspace - + Workspace erneut durchsuchen @@ -44771,28 +44772,28 @@ fails because Clang does not understand the target architecture. Update Requirements - + Requirements aktualisieren Install Requirements - + Requirements installieren Update %1 %1 = package name - + %1 aktualisieren Install %1 - + %1 installieren Update Packages - + Pakete aktualisieren Install Packages - + Pakete installieren Running "%1" to install %2. @@ -44897,19 +44898,19 @@ fails because Clang does not understand the target architecture. Update Python language server (PyLS) for %1 (%2). - + Python Language Server (PyLS) für %1 (%2) aktualisieren. Always Update - + Immer aktualisieren Update - + Aktualisieren Never - Niemals + Niemals Searching Python binaries... @@ -45937,7 +45938,7 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D Unable to start "%1". - + "%1" kann nicht gestartet werden. Qt Widgets Designer is not responding (%1). From 57e45131f5482add63d7578aca53c0996c771773 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 16:30:31 +0200 Subject: [PATCH 16/31] German translation: Lua MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I4e75db6547818f0d762eb661f95456dab5e83b53 Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 65 +++++++++++--------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index f52fdcc4001..e21c369fd18 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -35935,129 +35935,134 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan QtC::Lua Network Access - + Netzwerkzugriff Allow Internet Access - + Internetzugriff erlauben Allow the extension "%1" to fetch from the following URL: %2 - + Der Erweiterung "%1" erlauben, auf folgende URL zuzugreifen: +%2 Remember choice - + Auswahl speichern Allow the extension "%1" to fetch data from the internet? - + Der Erweiterung "%1" erlauben, Daten aus dem Internet zu laden? Allow the extension "%1" to fetch datafrom the following URL: - + Der Erweiterung "%1" erlauben, Daten von der folgenden URL zu laden: + + Always Allow - + Immer erlauben Allow Once - + Einmal erlauben Deny - + Verbieten Fetching is not allowed for the extension "%1". (You can edit permissions in Preferences > Lua.) - + Das Laden von Daten ist der Erweiterung "%1" nicht erlaubt. (Sie können die Rechte in Einstellungen > Lua ändern.) Package info is not an object. - + Paketinformation ist kein Objekt. Installed package info is not an object. - + Installierte Paketinformation ist kein Objekt. Cannot create app data directory. - + Das Verzeichnis für Anwendungsdaten konnte nicht angelegt werden. Cannot write to package info: %1 - + Paketinformation konnte nicht geschrieben werden: %1 Cannot write to temporary file. - + Temporäre Datei konnte nicht geschrieben werden. Unarchiving failed. - + Entpacken fehlgeschlagen. Cannot open temporary file. - + Temporäre Datei konnte nicht geöffnet werden. Installing package(s) %1 - + Installiere Paket(e) %1 Install Package - + Installiere Paket The extension "%1" wants to install the following package(s): - + Die Erweiterung "%1" möchte folgende Pakete installieren: + + Install - Installieren + Installieren * %1 - %2 (from: [%3](%3)) Markdown list item: %1 = package name, %2 = version, %3 = URL - + * %1 - %2 (von: [%3](%3)) Failed to run script %1: %2 - + Das Ausführen des Skripts %1 ist fehlgeschlagen: %2 No hook with the name "%1" found. - + Kein Einsprungpunkt mit dem Namen "%1" gefunden. Script did not return a table. - + Das Skript hat keine Tabelle zurückgeliefert. Extension info table did not contain a setup function. - + Informationstabelle der Erweiterung enthält keine Setup-Funktion. Failed to load plugin %1: %2 - + Laden des Plugins %1 ist fehlgeschlagen: %2 Cannot prepare extension setup: %1 - + Setup der Erweiterung kann nicht vorbereitet werden: %1 Extension setup function returned false. - + Die Setup-Funktion der Erweiterung hat "false" zurückgeliefert. Extension setup function returned error: %1 - + Die Setup-Funktion der Erweiterung hat einen Fehler zurückgeliefert: %1 From da797a8f21e373036fead591e8768017ba9fd73c Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 4 Jul 2024 13:38:37 +0200 Subject: [PATCH 17/31] PerfProfiler: Fix release build for qbs on macOS Change-Id: I965f7ac9947425d08878d401abb22a3daf470ce1 Reviewed-by: Christian Kandeler --- src/plugins/perfprofiler/perfprofiler.qbs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/perfprofiler/perfprofiler.qbs b/src/plugins/perfprofiler/perfprofiler.qbs index fe97d521f93..2c9ddab3616 100644 --- a/src/plugins/perfprofiler/perfprofiler.qbs +++ b/src/plugins/perfprofiler/perfprofiler.qbs @@ -62,6 +62,7 @@ QtcPlugin { "perfprofiler.qrc", ] + Qt.core.resourceFileBaseName: "PerfProfilerQml" // avoid conflicting qrc file Group { name: "Qml Files" Qt.core.resourcePrefix: "qt/qml/QtCreator/PerfProfiler/" From 6c63c42799e8deeb8877944711a2c29213b70922 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 9 Jul 2024 16:36:24 +0200 Subject: [PATCH 18/31] CMakePM: Do not open CMakeLists.txt for adding/renaming/removing files Other build systems like qmake / qbs do not do this. Change-Id: I615ea3556c694e7a18426558c5bf6f3ea142068d Reviewed-by: Alessandro Portale --- .../cmakeprojectmanager/cmakebuildsystem.cpp | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 540192d2d21..8a65c45b7f9 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -399,12 +399,10 @@ static SnippetAndLocation generateSnippetAndLocationForSources( static expected_str insertSnippetSilently(const FilePath &cmakeFile, const SnippetAndLocation &snippetLocation) { - BaseTextEditor *editor = qobject_cast( - Core::EditorManager::openEditorAt({cmakeFile, - int(snippetLocation.line), - int(snippetLocation.column)}, - Constants::CMAKE_EDITOR_ID, - Core::EditorManager::DoNotMakeVisible)); + BaseTextEditor *editor = qobject_cast(Core::EditorManager::openEditorAt( + {cmakeFile, int(snippetLocation.line), int(snippetLocation.column)}, + Constants::CMAKE_EDITOR_ID, + Core::EditorManager::DoNotMakeVisible | Core::EditorManager::DoNotChangeCurrentEditor)); if (!editor) { return make_unexpected("BaseTextEditor cannot be obtained for " + cmakeFile.toUserOutput() + ":" + QString::number(snippetLocation.line) + ":" @@ -864,12 +862,13 @@ RemovedFilesFromProject CMakeBuildSystem::removeFiles(Node *context, } BaseTextEditor *editor = qobject_cast( - Core::EditorManager::openEditorAt({filePos.value().cmakeFile, - static_cast(filePos.value().argumentPosition.Line), - static_cast(filePos.value().argumentPosition.Column - - 1)}, - Constants::CMAKE_EDITOR_ID, - Core::EditorManager::DoNotMakeVisible)); + Core::EditorManager::openEditorAt( + {filePos.value().cmakeFile, + static_cast(filePos.value().argumentPosition.Line), + static_cast(filePos.value().argumentPosition.Column - 1)}, + Constants::CMAKE_EDITOR_ID, + Core::EditorManager::DoNotMakeVisible + | Core::EditorManager::DoNotChangeCurrentEditor)); if (!editor) { badFiles << file; @@ -976,7 +975,8 @@ bool CMakeBuildSystem::renameFile(Node *context, static_cast(fileToRename->argumentPosition.Line), static_cast(fileToRename->argumentPosition.Column - 1)}, Constants::CMAKE_EDITOR_ID, - Core::EditorManager::DoNotMakeVisible)); + Core::EditorManager::DoNotMakeVisible + | Core::EditorManager::DoNotChangeCurrentEditor)); if (!editor) { qCCritical(cmakeBuildSystemLog).noquote() << "BaseTextEditor cannot be obtained for" << fileToRename->cmakeFile.path() From 3b5547214c5c6675f9fe333be7e8cf84d252b026 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 1 Jul 2024 12:13:43 +0200 Subject: [PATCH 19/31] LanguageClient: add state changed signal to client Change-Id: I13b69eb386b4e356f4f23c3b464f83a2a1d9ab14 Reviewed-by: Sami Shalayel Reviewed-by: Christian Stenger --- src/plugins/languageclient/client.cpp | 22 ++++++++++++++-------- src/plugins/languageclient/client.h | 1 + 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 412430171dc..4c2fcf101f6 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -299,6 +299,12 @@ public: bool reset(); + void setState(Client::State state) + { + m_state = state; + emit q->stateChanged(state); + } + Client::State m_state = Client::Uninitialized; QHash m_responseHandlers; @@ -569,7 +575,7 @@ void Client::initialize() // directly send content now otherwise the state check of sendContent would fail d->sendMessageNow(initRequest); - d->m_state = InitializeRequested; + d->setState(InitializeRequested); } void Client::shutdown() @@ -581,7 +587,7 @@ void Client::shutdown() d->shutDownCallback(shutdownResponse); }); sendMessage(shutdown); - d->m_state = ShutdownRequested; + d->setState(ShutdownRequested); d->m_shutdownTimer.start(); } @@ -1526,7 +1532,7 @@ void Client::projectClosed(ProjectExplorer::Project *project) if (d->m_state == Initialized) { LanguageClientManager::shutdownClient(this); } else { - d->m_state = Shutdown; // otherwise the manager would try to restart this server + d->setState(Shutdown); // otherwise the manager would try to restart this server emit finished(); } d->m_project = nullptr; @@ -1696,7 +1702,7 @@ bool ClientPrivate::reset() } m_restartCountResetTimer.start(); --m_restartsLeft; - m_state = Client::Uninitialized; + setState(Client::Uninitialized); m_responseHandlers.clear(); m_clientInterface->resetBuffer(); updateOpenedEditorToolBars(); @@ -1723,7 +1729,7 @@ bool ClientPrivate::reset() void Client::setError(const QString &message) { log(message); - d->m_state = d->m_state < Initialized ? FailedToInitialize : Error; + d->setState(d->m_state < Initialized ? FailedToInitialize : Error); } ProgressManager *Client::progressManager() @@ -2152,7 +2158,7 @@ void ClientPrivate::initializeCallback(const InitializeRequest::Response &initRe QMessageBox::Retry | QMessageBox::Cancel, QMessageBox::Retry); if (result == QMessageBox::Retry) { - m_state = Client::Uninitialized; + setState(Client::Uninitialized); q->initialize(); return; } @@ -2204,7 +2210,7 @@ void ClientPrivate::initializeCallback(const InitializeRequest::Response &initRe m_tokenSupport.setLegend(tokenProvider.legend()); qCDebug(LOGLSPCLIENT) << "language server " << m_displayName << " initialized"; - m_state = Client::Initialized; + setState(Client::Initialized); q->sendMessage(InitializeNotification(InitializedParams())); q->updateConfiguration(m_configuration); @@ -2227,7 +2233,7 @@ void ClientPrivate::shutDownCallback(const ShutdownRequest::Response &shutdownRe // directly send content now otherwise the state check of sendContent would fail sendMessageNow(ExitNotification()); qCDebug(LOGLSPCLIENT) << "language server " << m_displayName << " shutdown"; - m_state = Client::Shutdown; + setState(Client::Shutdown); m_shutdownTimer.start(); } diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index 28360c71a6f..13e908b2d50 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -215,6 +215,7 @@ signals: void documentUpdated(TextEditor::TextDocument *document); void workDone(const LanguageServerProtocol::ProgressToken &token); void shadowDocumentSwitched(const Utils::FilePath &filePath); + void stateChanged(State state); void finished(); protected: From 0cfdf2f5ae2b2417719506bc998cb8b0b227e038 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 1 Jul 2024 12:16:21 +0200 Subject: [PATCH 20/31] LanguageClient: show unreachable servers in the lsp menu Task-number: QTCREATORBUG-31125 Change-Id: I6526955fe4e3d65c6d83b88876eb47692d694955 Reviewed-by: Sami Shalayel Reviewed-by: Christian Stenger --- src/plugins/languageclient/languageclientmanager.cpp | 9 +++++---- src/plugins/languageclient/languageclientmanager.h | 3 ++- src/plugins/languageclient/languageclientutils.cpp | 6 +++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 11ce6b4618e..3022ba527d9 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -275,13 +275,14 @@ LanguageClientManager *LanguageClientManager::instance() return managerInstance; } -QList LanguageClientManager::clientsSupportingDocument(const TextEditor::TextDocument *doc) +QList LanguageClientManager::clientsSupportingDocument( + const TextEditor::TextDocument *doc, bool onlyReachable) { QTC_ASSERT(managerInstance, return {}); QTC_ASSERT(doc, return {};); - return Utils::filtered(managerInstance->reachableClients(), [doc](Client *client) { - return client->isSupportedDocument(doc); - }); + return Utils::filtered( + onlyReachable ? managerInstance->reachableClients() : managerInstance->m_clients, + [doc](Client *client) { return client->isSupportedDocument(doc); }); } void LanguageClientManager::applySettings() diff --git a/src/plugins/languageclient/languageclientmanager.h b/src/plugins/languageclient/languageclientmanager.h index 12bef4f6fe4..a970ef66d27 100644 --- a/src/plugins/languageclient/languageclientmanager.h +++ b/src/plugins/languageclient/languageclientmanager.h @@ -48,7 +48,8 @@ public: static LanguageClientManager *instance(); - static QList clientsSupportingDocument(const TextEditor::TextDocument *doc); + static QList clientsSupportingDocument( + const TextEditor::TextDocument *doc, bool onlyReachable = true); static void applySettings(); static QList currentSettings(); diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp index f7b52fdc9b8..bd950004f91 100644 --- a/src/plugins/languageclient/languageclientutils.cpp +++ b/src/plugins/languageclient/languageclientutils.cpp @@ -256,7 +256,7 @@ void updateEditorToolBar(Core::IEditor *editor) auto menu = new QMenu; auto clientsGroup = new QActionGroup(menu); clientsGroup->setExclusive(true); - for (auto client : LanguageClientManager::clientsSupportingDocument(document)) { + for (auto client : LanguageClientManager::clientsSupportingDocument(document, false)) { auto action = clientsGroup->addAction(client->name()); auto reopen = [action, client = QPointer(client), document] { if (!client) @@ -266,6 +266,10 @@ void updateEditorToolBar(Core::IEditor *editor) }; action->setCheckable(true); action->setChecked(client == LanguageClientManager::clientForDocument(document)); + action->setEnabled(client->reachable()); + QObject::connect(client, &Client::stateChanged, action, [action, client] { + action->setEnabled(client->reachable()); + }); QObject::connect(action, &QAction::triggered, reopen); } menu->addActions(clientsGroup->actions()); From 93fcd753c82d71679c334f3d7b97ed8f3ae35cff Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 5 Jul 2024 16:36:27 +0200 Subject: [PATCH 21/31] Doc: Fix navigation - Add "User Interface" and "Configuring Qt Creator" to the TOC - Fix a \previouspage link to point to the How To topic - Arrange Reference topic categories in alphabetic order Change-Id: I674db28d089f5dd13a0bd16d34682fff8887b8ee Reviewed-by: Eike Ziller --- doc/qtcreator/config/style/qt5-sidebar.html | 2 ++ doc/qtcreator/src/analyze/creator-heob.qdoc | 2 +- .../creator-only/creator-reference.qdoc | 28 +++++++++---------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/doc/qtcreator/config/style/qt5-sidebar.html b/doc/qtcreator/config/style/qt5-sidebar.html index f048c0c6c35..340da73317c 100644 --- a/doc/qtcreator/config/style/qt5-sidebar.html +++ b/doc/qtcreator/config/style/qt5-sidebar.html @@ -15,6 +15,8 @@
  • Overview
  • +
  • User Interface
  • +
  • Configuring Qt Creator
  • Creating Projects
  • Configuring Projects
  • Debugging
  • diff --git a/doc/qtcreator/src/analyze/creator-heob.qdoc b/doc/qtcreator/src/analyze/creator-heob.qdoc index 45f2b269ed6..33d9568c07b 100644 --- a/doc/qtcreator/src/analyze/creator-heob.qdoc +++ b/doc/qtcreator/src/analyze/creator-heob.qdoc @@ -9,7 +9,7 @@ /*! \page creator-how-to-use-heob.html - \previouspage creator-clang-tools.html + \previouspage creator-how-tos.html \ingroup creator-how-to-analyze diff --git a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc index 6f2ed53a14e..03e81452f75 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc @@ -19,20 +19,6 @@ \annotatedlist creator-reference-analyzer - \section1 Debuggers - - Set up and use debuggers to debug executable binary files, as well as - QML, Java, and Python source code. - - \annotatedlist creator-reference-debugger - - \section2 Debugger Views - - Inspect the state of your application while debugging in the - \uicontrol Debug mode. - - \annotatedlist creator-reference-debugger-views - \section1 Build Systems When you create projects, you can choose the build system to use for @@ -50,6 +36,20 @@ \annotatedlist creator-reference-build-configurations + \section1 Debuggers + + Set up and use debuggers to debug executable binary files, as well as + QML, Java, and Python source code. + + \annotatedlist creator-reference-debugger + + \section2 Debugger Views + + Inspect the state of your application while debugging in the + \uicontrol Debug mode. + + \annotatedlist creator-reference-debugger-views + \section1 Devices Connect devices to the computer to run, debug, and analyze applications From 112e93b1beca44ba602916c5ac8aa4ff008eac49 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 2 Jul 2024 14:34:06 +0200 Subject: [PATCH 22/31] RemoteLinux: Allow transferring directories Fixes: QTCREATORBUG-31136 Change-Id: Ic9e5d57ba5f5e85efe5db58719f38f0702ac3492 Reviewed-by: Christian Stenger --- src/plugins/remotelinux/linuxdevice.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 3fd4f0db738..c4b21a1f413 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -1337,7 +1337,7 @@ static FilePaths dirsToCreate(const FilesToTransfer &files) static QByteArray transferCommand(bool link) { - return link ? "ln -s" : "put"; + return link ? "ln -s" : "put -R"; } class SshTransferInterface : public FileTransferInterface @@ -1558,7 +1558,7 @@ private: const auto batchIt = m_batches.begin(); for (auto filesIt = batchIt->cbegin(); filesIt != batchIt->cend(); ++filesIt) { const FileToTransfer fixedFile = fixLocalFileOnWindows(*filesIt, options); - options << fixedLocalPath(fixedFile.m_source); + options << fixedFile.m_source.path(); } options << fixedRemotePath(batchIt.key(), userAtHost()); m_batches.erase(batchIt); @@ -1588,11 +1588,6 @@ private: return fixedFile; } - QString fixedLocalPath(const FilePath &file) const - { - return file.isDir() && file.path().back() != '/' ? file.path() + '/' : file.path(); - } - QString fixedRemotePath(const FilePath &file, const QString &remoteHost) const { return remoteHost + ':' + file.path(); From b8534db8dda3333f327976f9bca9639b4e375141 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 9 Jul 2024 15:01:50 +0200 Subject: [PATCH 23/31] ProjectExplorer: Fix missing model -> editor sync ... when enabling/disabling an environment variable via the buttons. This was forgotten in 8ef85e481aa3095667be33b5db34d180cd18be07. Fixes: QTCREATORBUG-31222 Change-Id: I02f2840cd0dadc628120275585245f8d1c23cec8 Reviewed-by: Eike Ziller --- src/plugins/projectexplorer/environmentwidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/projectexplorer/environmentwidget.cpp b/src/plugins/projectexplorer/environmentwidget.cpp index c62a9488594..6ef817d2797 100644 --- a/src/plugins/projectexplorer/environmentwidget.cpp +++ b/src/plugins/projectexplorer/environmentwidget.cpp @@ -237,6 +237,7 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, Type type, QWidget *additi buttonLayout->addWidget(d->m_toggleButton); connect(d->m_toggleButton, &QPushButton::clicked, this, [this] { d->m_model->toggleVariable(d->m_environmentView->currentIndex()); + d->m_editor.setEnvironmentItems(d->m_model->userChanges()); updateButtons(); }); From e451f42fc7ad20693606cb3655aa2ac9f38dcff8 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 10 Jul 2024 13:44:38 +0200 Subject: [PATCH 24/31] CMakePM: Use FilePath::path() instead of toString() Amends 412eeefafa01d450f0357b42f6886035672f558b Change-Id: I82fa1eadd61a4acc2ab25499ef16dd40ef284942 Reviewed-by: hjk --- src/plugins/cmakeprojectmanager/builddirparameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/builddirparameters.cpp b/src/plugins/cmakeprojectmanager/builddirparameters.cpp index f87157e23ff..90f5f522299 100644 --- a/src/plugins/cmakeprojectmanager/builddirparameters.cpp +++ b/src/plugins/cmakeprojectmanager/builddirparameters.cpp @@ -37,7 +37,7 @@ static void updateCMakePathsFromQMake(QStringList &initialCMakeArguments) return; // ~Qt/6.x/platform/bin/qmake -> ~Qt/6.x/platform - const QByteArray qmakePrefixPath = qmakeFilePath.parentDir().parentDir().toString().toUtf8(); + const QByteArray qmakePrefixPath = qmakeFilePath.parentDir().parentDir().path().toUtf8(); const QByteArrayList cmakePathsVariables = {"CMAKE_PREFIX_PATH", "CMAKE_FIND_ROOT_PATH"}; for (const QByteArray &var : cmakePathsVariables) { From 978042b5827db74a088d4230abb6e9d9c7d054b5 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Jul 2024 14:02:52 +0200 Subject: [PATCH 25/31] CppEditor: Use a timeout in waitForRehighlightedSemanticDocument() As in all the other wait() functions. This makes sure we never hang indefinitely in tests. Change-Id: I119cc0d6d6146f193ffde37207a94f61b3c70d87 Reviewed-by: Christian Stenger --- src/plugins/cppeditor/cppdoxygen_test.cpp | 2 +- src/plugins/cppeditor/cpptoolstestcase.cpp | 12 ++++++++++-- src/plugins/cppeditor/cpptoolstestcase.h | 2 +- src/plugins/cppeditor/cppuseselections_test.cpp | 2 +- src/plugins/cppeditor/fileandtokenactions_test.cpp | 2 +- .../followsymbol_switchmethoddecldef_test.cpp | 2 +- .../cppeditor/quickfixes/cppquickfix_test.cpp | 2 +- 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp index 2d85345303a..8ef6a6fff0f 100644 --- a/src/plugins/cppeditor/cppdoxygen_test.cpp +++ b/src/plugins/cppeditor/cppdoxygen_test.cpp @@ -488,7 +488,7 @@ void DoxygenTest::runTest(const QByteArray &original, // testDocument.m_editorWidget->unfoldAll(); testDocument.m_editor->setCursorPosition(testDocument.m_cursorPosition); - TestCase::waitForRehighlightedSemanticDocument(testDocument.m_editorWidget); + QVERIFY(TestCase::waitForRehighlightedSemanticDocument(testDocument.m_editorWidget)); // Send 'ENTER' key press QKeyEvent event(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier); diff --git a/src/plugins/cppeditor/cpptoolstestcase.cpp b/src/plugins/cppeditor/cpptoolstestcase.cpp index 70435abe9f9..3ac2feeca38 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.cpp +++ b/src/plugins/cppeditor/cpptoolstestcase.cpp @@ -295,10 +295,18 @@ bool TestCase::waitForProcessedEditorDocument(const FilePath &filePath, int time return waitForProcessedEditorDocument_internal(editorDocument, timeOutInMs); } -CPlusPlus::Document::Ptr TestCase::waitForRehighlightedSemanticDocument(CppEditorWidget *editorWidget) +CPlusPlus::Document::Ptr TestCase::waitForRehighlightedSemanticDocument( + CppEditorWidget *editorWidget, int timeoutInMs) { - while (!editorWidget->isSemanticInfoValid()) + QElapsedTimer timer; + timer.start(); + + while (!editorWidget->isSemanticInfoValid()) { + if (timer.elapsed() >= timeoutInMs) + return {}; QCoreApplication::processEvents(); + QThread::msleep(20); + } return editorWidget->semanticInfo().doc; } diff --git a/src/plugins/cppeditor/cpptoolstestcase.h b/src/plugins/cppeditor/cpptoolstestcase.h index 6e9f0133ba2..6439075efbd 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.h +++ b/src/plugins/cppeditor/cpptoolstestcase.h @@ -140,7 +140,7 @@ public: const Utils::FilePath &filePath, int timeOutInMs = 5000); static CPlusPlus::Document::Ptr waitForRehighlightedSemanticDocument( - CppEditorWidget *editorWidget); + CppEditorWidget *editorWidget, int timeoutInMs = defaultTimeOutInMs); enum { defaultTimeOutInMs = 30 * 1000 /*= 30 secs*/ }; static bool waitUntilProjectIsFullyOpened(ProjectExplorer::Project *project, diff --git a/src/plugins/cppeditor/cppuseselections_test.cpp b/src/plugins/cppeditor/cppuseselections_test.cpp index 460e502c8fe..85ed9be442e 100644 --- a/src/plugins/cppeditor/cppuseselections_test.cpp +++ b/src/plugins/cppeditor/cppuseselections_test.cpp @@ -77,7 +77,7 @@ UseSelectionsTestCase::UseSelectionsTestCase(CppTestDocument &testFile, closeEditorAtEndOfTestCase(testFile.m_editor); testFile.m_editor->setCursorPosition(testFile.m_cursorPosition); - waitForRehighlightedSemanticDocument(m_editorWidget); + QVERIFY(waitForRehighlightedSemanticDocument(m_editorWidget)); bool hasTimedOut; const SelectionList selections = waitForUseSelections(&hasTimedOut); diff --git a/src/plugins/cppeditor/fileandtokenactions_test.cpp b/src/plugins/cppeditor/fileandtokenactions_test.cpp index 7c8175fa188..9e9a7a2f29f 100644 --- a/src/plugins/cppeditor/fileandtokenactions_test.cpp +++ b/src/plugins/cppeditor/fileandtokenactions_test.cpp @@ -164,7 +164,7 @@ TestActionsTestCase::TestActionsTestCase(const Actions &tokenActions, const Acti QVERIFY(CppModelManager::workingCopy().get(filePath)); // Rehighlight - waitForRehighlightedSemanticDocument(editorWidget); + QVERIFY(waitForRehighlightedSemanticDocument(editorWidget)); // Run all file actions executeActionsOnEditorWidget(editorWidget, fileActions); diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index 41dd6b538f6..3d19a84b758 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -310,7 +310,7 @@ F2TestCase::F2TestCase(CppEditorAction action, // Rehighlight if (!useClangd) - waitForRehighlightedSemanticDocument(testFile->m_editorWidget); + QVERIFY(waitForRehighlightedSemanticDocument(testFile->m_editorWidget)); } // Activate editor of initial test file diff --git a/src/plugins/cppeditor/quickfixes/cppquickfix_test.cpp b/src/plugins/cppeditor/quickfixes/cppquickfix_test.cpp index 2bde0a10212..f487764101b 100644 --- a/src/plugins/cppeditor/quickfixes/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/quickfixes/cppquickfix_test.cpp @@ -104,7 +104,7 @@ BaseQuickFixTestCase::BaseQuickFixTestCase(const QList &testDoc } // Rehighlight - waitForRehighlightedSemanticDocument(document->m_editorWidget); + QVERIFY(waitForRehighlightedSemanticDocument(document->m_editorWidget)); } // Enforce the default cpp code style, so we are independent of config file settings. From e7e0f80d01d64a83e9d29745a556dca415f2ea20 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 10 Jul 2024 12:34:10 +0200 Subject: [PATCH 26/31] Fix tab order in find toolbar Explicitly add the options button to make sure that is at the correct position, and do not use multiple conflicting methods to specify tab order. This adds the various buttons back into the tab order. Fixes: QTCREATORBUG-30791 Change-Id: I5d1fbcd213b57bf4d7af98ba5d21b09e408e84b7 Reviewed-by: Thiago Macieira Reviewed-by: Christian Stenger --- src/plugins/coreplugin/find/findtoolbar.cpp | 37 ++++++--------------- src/plugins/coreplugin/find/findtoolbar.h | 1 - 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/plugins/coreplugin/find/findtoolbar.cpp b/src/plugins/coreplugin/find/findtoolbar.cpp index 681fa407063..0111093c27d 100644 --- a/src/plugins/coreplugin/find/findtoolbar.cpp +++ b/src/plugins/coreplugin/find/findtoolbar.cpp @@ -160,15 +160,6 @@ FindToolBar::FindToolBar(CurrentDocumentFind *currentDocumentFind) setProperty(StyleHelper::C_TOP_BORDER, true); setSingleRow(false); - QWidget::setTabOrder(m_findEdit, m_replaceEdit); - QWidget::setTabOrder(m_replaceEdit, m_findPreviousButton); - QWidget::setTabOrder(m_findPreviousButton, m_findNextButton); - QWidget::setTabOrder(m_findNextButton, m_replaceButton); - QWidget::setTabOrder(m_replaceButton, m_replaceNextButton); - QWidget::setTabOrder(m_replaceNextButton, m_replaceAllButton); - QWidget::setTabOrder(m_replaceAllButton, m_advancedButton); - QWidget::setTabOrder(m_advancedButton, m_close); - connect(m_findEdit, &Utils::FancyLineEdit::editingFinished, this, &FindToolBar::invokeResetIncrementalSearch); connect(m_findEdit, &Utils::FancyLineEdit::textChanged, @@ -447,6 +438,17 @@ FindToolBar::FindToolBar(CurrentDocumentFind *currentDocumentFind) connect(&m_findStepTimer, &QTimer::timeout, this, &FindToolBar::invokeFindStep); setLightColoredIcon(isLightColored()); + + QWidget::setTabOrder(m_findEdit->button(FancyLineEdit::Left), m_findEdit); + QWidget::setTabOrder(m_findEdit, m_replaceEdit); + QWidget::setTabOrder(m_replaceEdit, m_findPreviousButton); + QWidget::setTabOrder(m_findPreviousButton, m_findNextButton); + QWidget::setTabOrder(m_findNextButton, m_selectAllButton); + QWidget::setTabOrder(m_selectAllButton, m_replaceButton); + QWidget::setTabOrder(m_replaceButton, m_replaceNextButton); + QWidget::setTabOrder(m_replaceNextButton, m_replaceAllButton); + QWidget::setTabOrder(m_replaceAllButton, m_advancedButton); + QWidget::setTabOrder(m_advancedButton, m_close); } FindToolBar::~FindToolBar() = default; @@ -1024,23 +1026,6 @@ void FindToolBar::selectAll() } } -bool FindToolBar::focusNextPrevChild(bool next) -{ - QAbstractButton *optionsButton = m_findEdit->button(Utils::FancyLineEdit::Left); - // close tab order - if (next && m_advancedButton->hasFocus()) - optionsButton->setFocus(Qt::TabFocusReason); - else if (next && optionsButton->hasFocus()) - m_findEdit->setFocus(Qt::TabFocusReason); - else if (!next && optionsButton->hasFocus()) - m_advancedButton->setFocus(Qt::TabFocusReason); - else if (!next && m_findEdit->hasFocus()) - optionsButton->setFocus(Qt::TabFocusReason); - else - return Utils::StyledBar::focusNextPrevChild(next); - return true; -} - void FindToolBar::resizeEvent(QResizeEvent *event) { Q_UNUSED(event) diff --git a/src/plugins/coreplugin/find/findtoolbar.h b/src/plugins/coreplugin/find/findtoolbar.h index 1080407dae9..e5ddbf8c75c 100644 --- a/src/plugins/coreplugin/find/findtoolbar.h +++ b/src/plugins/coreplugin/find/findtoolbar.h @@ -64,7 +64,6 @@ public slots: void setBackward(bool backward); protected: - bool focusNextPrevChild(bool next) override; void resizeEvent(QResizeEvent *event) override; private: From e46ee312dd567d126023815292e4e61999c48133 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 10 Jul 2024 15:25:22 +0200 Subject: [PATCH 27/31] Add some key event logging for OpenEditorsWindow On some platforms/configurations the popup for switching documents does not close when releasing the modifier key. Add some debug output to try to find out what happens. Task-number: QTCREATORBUG-27378 Task-number: QTCREATORBUG-31228 Change-Id: Ia882ce6be1bd235601f9c869b79fb8c15ab72a3a Reviewed-by: David Schulz --- .../coreplugin/editormanager/openeditorswindow.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp index 172b54570e1..cf98617261d 100644 --- a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp +++ b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp @@ -20,11 +20,14 @@ #include #include -#include +#include #include +#include using namespace Utils; +Q_LOGGING_CATEGORY(openEditorsLog, "qtc.core.openeditorswindow", QtWarningMsg); + namespace Core::Internal { class OpenEditorsItem : public TreeItem @@ -196,9 +199,10 @@ bool OpenEditorsWindow::eventFilter(QObject *obj, QEvent *e) } else if (e->type() == QEvent::KeyRelease) { auto ke = static_cast(e); + qCDebug(openEditorsLog()) << ke; if (ke->modifiers() == 0 - /*HACK this is to overcome some event inconsistencies between platforms*/ - || (ke->modifiers() == Qt::AltModifier + /*HACK this is to overcome some event inconsistencies between platforms*/ + || (ke->modifiers() == Qt::AltModifier && (ke->key() == Qt::Key_Alt || ke->key() == -1))) { selectAndHide(); } From a13635ca6b474a96259fdf147da6b24e2ba0d22a Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 10 Jul 2024 14:49:14 +0200 Subject: [PATCH 28/31] Application Output: Fix name of output file If a tab is re-used for a different application, the output file name must change too. Fixes: QTCREATORBUG-31099 Change-Id: I3413fca3a99757777db8cb771f0947f655d20ea4 Reviewed-by: Alessandro Portale --- src/plugins/projectexplorer/appoutputpane.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index 3d489460247..29c84aece93 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -399,6 +399,11 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) && thisWorkingDirectory == tab.runControl->workingDirectory() && thisEnvironment == tab.runControl->environment(); }); + const auto updateOutputFileName = [this](int index, RunControl *rc) { + qobject_cast(m_tabWidget->widget(index)) + //: file name suggested for saving application output, %1 = run configuration display name + ->setOutputFileNameHint(Tr::tr("application-output-%1.txt").arg(rc->displayName())); + }; if (tab != m_runControlTabs.end()) { // Reuse this tab if (tab->runControl) @@ -414,6 +419,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) const int tabIndex = m_tabWidget->indexOf(tab->window); QTC_ASSERT(tabIndex != -1, return); m_tabWidget->setTabText(tabIndex, rc->displayName()); + updateOutputFileName(tabIndex, rc); tab->window->scrollToBottom(); qCDebug(appOutputLog) << "AppOutputPane::createNewOutputWindow: Reusing tab" @@ -429,8 +435,6 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) ow->setWindowIcon(Icons::WINDOW.icon()); ow->setWordWrapEnabled(m_settings.wrapOutput); ow->setMaxCharCount(m_settings.maxCharCount); - //: file name suggested for saving application output, %1 = run configuration display name - ow->setOutputFileNameHint(Tr::tr("application-output-%1.txt").arg(rc->displayName())); auto updateFontSettings = [ow] { ow->setBaseFont(TextEditor::TextEditorSettings::fontSettings().font()); @@ -456,6 +460,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) m_runControlTabs.push_back(RunControlTab(rc, ow)); m_tabWidget->addTab(ow, rc->displayName()); + updateOutputFileName(m_tabWidget->count() - 1, rc); qCDebug(appOutputLog) << "AppOutputPane::createNewOutputWindow: Adding tab for" << rc; updateCloseActions(); setFilteringEnabled(m_tabWidget->count() > 0); From 3557afe805a3524b058c1198f258ac13dd0f05cc Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Jul 2024 16:11:43 +0200 Subject: [PATCH 29/31] qbs build: Update types metadata Change-Id: I0e48dd91c5c625d8f3391c2fea498f55cc828266 Reviewed-by: Christian Stenger --- share/qtcreator/qml-type-descriptions/qbs-bundle.json | 1 + share/qtcreator/qml-type-descriptions/qbs.qmltypes | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml-type-descriptions/qbs-bundle.json b/share/qtcreator/qml-type-descriptions/qbs-bundle.json index 9b2f233a4c3..672c79187f2 100644 --- a/share/qtcreator/qml-type-descriptions/qbs-bundle.json +++ b/share/qtcreator/qml-type-descriptions/qbs-bundle.json @@ -24,6 +24,7 @@ "qbs.Probes", "qbs.Process", "qbs.PropertyList", + "qbs.ProviderUtils", "qbs.TemporaryDir", "qbs.TextFile", "qbs.UnixUtils", diff --git a/share/qtcreator/qml-type-descriptions/qbs.qmltypes b/share/qtcreator/qml-type-descriptions/qbs.qmltypes index 941697b02d2..00c0cbb9261 100644 --- a/share/qtcreator/qml-type-descriptions/qbs.qmltypes +++ b/share/qtcreator/qml-type-descriptions/qbs.qmltypes @@ -19,7 +19,6 @@ Module { exports: [ "qbs/Depends 1.0" ] prototype: "QQuickItem" Property { name: "condition"; type: "bool" } - Property { name: "enableFallback"; type: "bool" } Property { name: "limitToSubProject"; type: "bool" } Property { name: "multiplexConfigurationIds"; type: "string"; isList: true } Property { name: "name"; type: "string" } @@ -93,6 +92,8 @@ Module { name: "ModuleProvider" exports: [ "qbs/ModuleProvider 1.0" ] prototype: "QQuickItem" + Property { name: "isEager"; type: "bool" } + Property { name: "moduleName"; type: "string" } Property { name: "name"; type: "string" } Property { name: "outputBaseDir"; type: "string" } Property { name: "relativeSearchPaths"; type: "string"; isList: true } From 2098053095a68fdc626e0b5fa8932b77a96c2f28 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Jul 2024 14:17:40 +0200 Subject: [PATCH 30/31] German translation: Android, Autotest, Axivion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I1b3f5e768b687851430c4bf48d2b6b5a6e38b26b Reviewed-by: Robert Löhning --- share/qtcreator/translations/qtcreator_de.ts | 72 ++++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index e21c369fd18..ee4d7c78fa6 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -10765,7 +10765,7 @@ Locked components cannot be modified or selected. Verifying package integrity... - + Prüfe die Integrität des Pakets... Unarchiving error. @@ -10963,7 +10963,7 @@ Dies kann nicht rückgängig gemacht werden. Android support is not yet configured. - + Android-Unterstützung ist noch nicht konfiguriert. The device info returned from AvdDialog is invalid. @@ -11169,11 +11169,11 @@ Dies kann nicht rückgängig gemacht werden. Cannot find the package name from AndroidManifest.xml nor build.gradle files at "%1". - + Konnte den Paketnamen nicht aus den Informationen in der AndroidManifest.xml-Datei oder der build.gradle-Datei in "%1" bestimmen. Deployment failed with the following errors: - + Das Deployment ist mit den folgenden Fehlern fehlgeschlagen: Install an APK File @@ -11397,7 +11397,7 @@ Der vom Kit mindestens benötigte API-Level ist %1. Cannot open "%1". - + "%1" kann nicht geöffnet werden. Cannot parse "%1". @@ -11599,39 +11599,39 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist. Finished successfully. - + Erfolgreich abgeschlossen. Installing / Uninstalling selected packages... - + Installiere / Deinstalliere ausgewählte Pakete... Closing the preferences dialog will cancel the running and scheduled SDK operations. - + Wenn Sie den Einstellungsdialog schließen, werden die laufenden und geplanten SDK-Operationen abgebrochen. Closing the options dialog will cancel the running and scheduled SDK operations. - + Wenn Sie den Einstellungsdialog schließen, werden die laufenden und geplanten SDK-Operationen abgebrochen. Uninstalling %1... - + Deinstalliere %1... Installing %1... - + Installiere %1... Updating installed packages... - + Aktualisiere installierte Pakete... [Packages to be uninstalled:] - + [Pakete, die deinstalliert werden sollen:] [Packages to be installed:] - + [Pakete, die installiert werden sollen:] Android SDK Changes @@ -11720,7 +11720,7 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist. Failed to start AVD emulator for "%1" device. - + Das Starten des AVD-Emulators für das Gerät "%1" ist fehlgeschlagen. Clean Environment @@ -12340,11 +12340,11 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube Use a timeout while executing test cases. - + Zeitlimit für das Ausführen von Testfällen verwenden. Timeout used when executing test cases. This will apply for each test case on its own, not the whole project. Overrides test framework or build system defaults. - + Zeitlimit, das für das Ausführen von Testfällen benutzt wird. Dieses wird für jeden Testfall einzeln angewendet, nicht für das gesamte Projekt. Überschreibt die Vorgaben des Test-Frameworks und des Build-Systems. Omit run configuration warnings @@ -12494,23 +12494,23 @@ Warnung: Dies ist eine experimentelle Funktion und könnte dazu führen, dass di Apply path filters before scanning for tests. - + Pfade vor dem Suchen nach Tests filtern. Wildcard expressions for filtering: - + Ausdrücke mit Platzhaltern, die zum Filtern benutzt werden: Add - Hinzufügen + Hinzufügen Remove - + Entfernen Limit Files to Path Patterns - + Dateien auf Suchmuster beschränken Scanning for Tests @@ -13028,7 +13028,7 @@ Dies könnte Probleme während der Ausführung verursachen. Repeat Tests - + Tests wiederholen Output on failure @@ -13728,7 +13728,7 @@ Siehe auch die Einstellungen für Google Test. No Data - + Keine Daten Axivion @@ -13744,15 +13744,15 @@ Siehe auch die Einstellungen für Google Test. Open Issue in Dashboard - + Problem im Dashboard anzeigen Open Table in Dashboard - + Tabelle im Dashboard anzeigen Copy Dashboard Link to Clipboard - + Dashboard-Link in die Zwischenablage kopieren Show rule details @@ -13792,7 +13792,7 @@ Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe. Unauthenticated access failed (wrong user), using authenticated access... - + Zugriff ohne Authentifizierung ist fehlgeschlagen (falscher Benutzer), verwende authentifizierten Zugriff... Enter the password for: @@ -13830,7 +13830,7 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Search for issues inside the Axivion dashboard or request issue details for Axivion inline annotations to see them here. - + Suchen Sie nach Problemen im Axivion-Dashboard oder fordern Sie Problemdetails für Inline-Annotationen von Axivion an, um sie hier anzuzeigen. Fetch Projects @@ -13882,7 +13882,7 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Add... - Hinzufügen... + Hinzufügen... Edit... @@ -13890,27 +13890,27 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Remove - + Entfernen Default dashboard server: - + Vorgabe-Dashboardserver: unset - + nicht gesetzt Remove Server Configuration - + Server-Konfiguration löschen Remove the server configuration "%1"? - + Server-Konfiguration "%1" löschen? Add Dashboard Configuration - + Dashboard-Konfiguration hinzufügen Edit Dashboard Configuration From 02ef7186e3dc411c26c7c46ce32d4ceaf2e22a2a Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 10 Jul 2024 14:01:12 +0200 Subject: [PATCH 31/31] Doc: Add missing introductory text for Debugger preferences Change-Id: I45a7fd99a7ad262bce389243d5fc177ce75b8041 Reviewed-by: Eike Ziller --- doc/qtcreator/src/overview/creator-only/creator-reference.qdoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc index 03e81452f75..fa33afb2a41 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc @@ -114,6 +114,8 @@ \section2 Debugger + Preferences for debugging. + \annotatedlist creator-reference-preferences-debugger \section2 Kits