From 2605639144b9e74e8d8623f8ffd1a76e49085185 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 22 Nov 2022 15:21:30 +0100 Subject: [PATCH 01/40] German translation: Clang* Change-Id: I7712ea38738448d9e017fb805d7adba11ae13c04 Reviewed-by: Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 259 ++++++++++--------- 1 file changed, 131 insertions(+), 128 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 8c4a5e934e5..8bfd982e27a 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -42519,22 +42519,22 @@ Are you sure? [Source: %1] - + [Quelle: %1] ClangCodeModel Component - Komponente + Komponente Total Memory - + Gesamtspeicher Update - Aktualisieren + Aktualisieren @@ -42590,7 +42590,7 @@ Ausgabe: Documentation: - + Dokumentation: @@ -42616,11 +42616,11 @@ Ausgabe: Filter for This Diagnostic Kind - Nach dieser Art von Einträgen filtern + Nach dieser Art von Meldungen filtern Filter out This Diagnostic Kind - Diese Art von Einträgen herausfiltern + Diese Art von Meldungen herausfiltern Web Page @@ -42628,19 +42628,19 @@ Ausgabe: Suppress Selected Diagnostics - + Ausgewählte Meldungen unterdrücken Suppress This Diagnostic - Diese Art von Einträgen nicht anzeigen + Diese Art von Meldungen nicht anzeigen Disable These Checks - + Diese Checks deaktivieren Disable This Check - + Diesen Check deaktivieren @@ -43132,7 +43132,7 @@ Was soll %1 tun? ClangFormat::ClangFormatConfigWidget Clang-Format Style - + Clang-Format-Stil @@ -43150,7 +43150,7 @@ Was soll %1 tun? The ClangFormat plugin has been built against an unmodified Clang. You might experience formatting glitches in certain circumstances. See https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/README.md for more information. - + Das ClangFormat-Plugin wurde gegen ein unmodifiziertes Clang gebaut. Unter Umständen werden Sie Mängel beim Formatieren feststellen. Unter https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/README.md können Sie mehr erfahren. @@ -44729,11 +44729,11 @@ You might find further explanations in the Application Output view. Filters - Filter + Filter Reset Topic Filter - + Themenfilter zurücksetzen Checks @@ -44746,7 +44746,8 @@ You might find further explanations in the Application Output view. Could not query the supported checks from the clazy-standalone executable. Set a valid executable first. - + Konnte die von clazy-standalone unterstützten Überprüfungen nicht abfragen. +Setzen Sie erst eine gültige ausführbare Datei. Enable lower levels automatically @@ -44761,19 +44762,19 @@ Set a valid executable first. Select All - + Alle auswählen Select All with Fixits - + Alle mit Korrekturen auswählen Clear Selection - + Auswahl löschen Select the diagnostics to display. - + Wählen Sie die anzuzeigenden Meldungen. @@ -44784,11 +44785,11 @@ Set a valid executable first. Analyze open files - + Offene Dateien analysieren Run Options - + Ausführungseinstellungen Parallel jobs: @@ -44812,7 +44813,8 @@ Set a valid executable first. Could not query the supported checks from the clang-tidy executable. Set a valid executable first. - + Konnte die von clang-tidy unterstützten Überprüfungen nicht abfragen. +Setzen Sie erst eine gültige ausführbare Datei. @@ -45701,11 +45703,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. ClangTools::Internal::ClangTool Analyze Project... - + Projekt analysieren... Analyze Current File - + Aktuelle Datei analysieren Go to previous diagnostic. @@ -45717,7 +45719,7 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Load diagnostics from YAML files exported with "-export-fixes". - + Meldungen, die mit "-export-fixes" exportiert wurden, aus YAML-Datei laden. Clear @@ -45725,11 +45727,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Expand All - + Alle aufklappen Collapse All - + Alle einklappen Filter Diagnostics @@ -45773,119 +45775,119 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Cannot analyze current file: No files open. - + Kann aktuelle Datei nicht analysieren: Keine Dateien geöffnet. Cannot analyze current file: "%1" is not a known source file. - + Kann aktuelle Datei nicht analysieren: "%1" ist keine bekannte Quelldatei. Select YAML Files with Diagnostics - + Wählen Sie YAML-Datei mit Meldungen YAML Files (*.yml *.yaml);;All Files (*) - + YAML-Dateien (*.yml *.yaml);;Alle Dateien (*) Error Loading Diagnostics - + Fehler beim Laden der Meldungen Set a valid Clang-Tidy executable. - + Wählen Sie eine gültige ausführbare Datei für Clang-Tidy. Set a valid Clazy-Standalone executable. - + Wählen Sie eine gültige ausführbare Datei für Clazy-Standalone. Project "%1" is not a C/C++ project. - + Das Projekt "%1" ist kein C/C++-Projekt. Open a C/C++ project to start analyzing. - + Öffnen Sie ein C/C++-Projekt, um mit der Analyse zu beginnen. Failed to build the project. - + Das Projekt konnte nicht erstellt werden. Failed to start the analyzer. - + Das Analyse-Werkzeug konnte nicht gestartet werden. All Files - + Alle Dateien Opened Files - + Geöffnete Dateien Edited Files - + Bearbeitete Dateien Failed to analyze %n file(s). - - - + + Eine Datei konnte nicht analysiert werden. + %n Dateien konnten nicht analysiert werden. Analyzing... - + Analysiere... Analyzing... %1 of %n file(s) processed. - - - + + Analysiere... %1 von einer Datei verarbeitet. + Analysiere... %1 von %n Dateien verarbeitet. Analysis stopped by user. - + Analyse durch den Benutzer gestoppt. Finished processing %n file(s). - - - + + Verarbeitung einer Datei abgeschlossen. + Verarbeitung von %n Dateien abgeschlossen. Diagnostics imported. - + Meldungen importiert. %1 diagnostics. %2 fixits, %3 selected. - + %1 Meldung(en). %2 Korrektur(en), %3 ausgewählt. No diagnostics. - + Keine Meldungen. In general, the project should be built before starting the analysis to ensure that the code to analyze is valid.<br/><br/>Building the project might also run code generators that update the source files as necessary. - + Im Allgemeinen sollte das Projekt vor der Analyse gebaut werden, um sicherzustellen, dass der zu analysierende Code gültig ist.<br/><br/>Beim Erstellen des Projekts werden möglicherweise auch Code-Generatoren ausgeführt, die Quelldateien nach Bedarf aktualisieren. Info About Build the Project Before Analysis - + Information über das Erstellen des Projekts vor der Analyse ClangTools::Internal::ClangToolRunWorker Failed to build the project. - + Das Projekt konnte nicht erstellt werden. No code model data available for project. - + Für das Projekt sind keine Codemodell-Daten vorhanden. The project configuration changed since the start of the %1. Please re-run with current configuration. @@ -45893,11 +45895,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Failed to create temporary directory: %1. - + Das temporäre Verzeichnis konnte nicht erstellt werden: %1. Running %1 on %2 with configuration "%3". - + Führe %1 auf %2 mit der Konfiguration "%3" aus. Analyzing @@ -45905,11 +45907,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Analyzing "%1" [%2]. - + Analysiere "%1" [%2]. Failed to start runner "%1". - + Das Werkzeug "%1" konnte nicht gestartet werden. Failed to analyze "%1": %2 @@ -45917,14 +45919,14 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Error: Failed to analyze %n files. - - - + + Fehler: Eine Datei konnte nicht analysiert werden. + Fehler: %n Dateien konnten nicht analysiert werden. Note: You might need to build the project to generate or update source files. To build automatically, enable "Build the project before analysis". - + Hinweis: Möglicherweise müssen Sie das Projekt erstellen, um Quelldateien zu generieren oder aktualisieren. Aktivieren Sie "Projekt vor der Analyse erstellen", um das Projekt automatisch zu erstellen. %1 finished: Processed %2 files successfully, %3 failed. @@ -45973,11 +45975,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Clang-Tidy Checks - + Clang-Tidy Checks Clazy Checks - + Clazy Checks Edit Checks as String... @@ -52413,43 +52415,43 @@ in "%2" aus. ClangCodeModel::Internal::ClangdClient clangd - + clangd Indexing %1 with clangd - + Indiziere %1 mit clangd Indexing session with clangd - + Indiziere Sitzung mit clangd Memory Usage - Speicherverbrauch + Speicherverbrauch Location: %1 Parent folder for proposed #include completion - Pfad: %1 + Pfad: %1 collecting overrides ... - + Suche überschriebene Methoden ... <base declaration> - + <Basisdeklaration> ClangCodeModel::Internal::ClangdFindReferences C++ Usages: - + C++ Referenzen: Re&name %n files - + Eine Datei umbe&nennen %n Dateien umbe&nennen @@ -52457,7 +52459,7 @@ in "%2" aus. Files: %1 - Dateien: + Dateien: %1 @@ -52465,233 +52467,234 @@ in "%2" aus. ClangCodeModel::Internal::ClangModelManagerSupport The use of clangd for the C/C++ code model was disabled, because it is likely that its memory requirements would be higher than what your system can handle. - + Clangd wurde für das C/C++-Codemodell deaktiviert, da dessen Speicheranforderung wahrscheinlich die Leistungsfähigkeit Ihres Systems übersteigt. With clangd enabled, Qt Creator fully supports modern C++ when highlighting code, completing symbols and so on.<br>This comes at a higher cost in terms of CPU load and memory usage compared to the built-in code model, which therefore might be the better choice on older machines and/or with legacy code.<br>You can enable/disable and fine-tune clangd <a href="dummy">here</a>. - + Wenn Clangd aktiviert ist, unterstützt Qt Creator semantische Hervorhebung, Symbolvervollständigung und so weiter für Code, der modernes C++ nutzt.<br/>Das wirkt sich nachteilig auf CPU-Last und Speicherverbrauch im Vergleich zum eingebauten Codemodell aus, das deshalb eine bessere Wahl für ältere Maschinen und/oder für Legacy Code sein kann.<br/>Sie können Clangd <a href="dummy">hier</a> aktivieren/deaktivieren und anpassen. Enable Anyway - + Trotzdem aktivieren Cannot use clangd: Failed to generate compilation database: %1 - + Kann Clangd nicht nutzen: Erstellen der Kompilierungsdatenbank fehlgeschlagen: +%1 ClangdTextMark Code Model Error - Codemodell-Fehler + Codemodell-Fehler Code Model Warning - Codemodell-Warnung + Codemodell-Warnung Copy to Clipboard Clang Code Model Marks - In die Zwischenablage kopieren + In die Zwischenablage kopieren Disable Diagnostic in Current Project - + Meldung für aktuelles Projekt deaktivieren ClangUtils Could not retrieve build directory. - + Build-Verzeichnis konnte nicht abgefragt werden. Could not create "%1": %2 - + Konnte "%1" nicht erzeugen: %2 ClangFormat::ClangFormatGlobalConfigWidget Formatting mode: - + Formatierungsart: Format while typing - Bei der Eingabe formatieren + Bei der Eingabe formatieren Format edited code on file save - Bearbeiteten Quelltext beim Speichern der Datei formatieren + Bearbeiteten Quelltext beim Speichern der Datei formatieren Override Clang Format configuration file - Clang-Format-Konfigurationsdatei überschreiben + Clang-Format-Konfigurationsdatei überschreiben ClangFormat global setting: - + Globale Einstellungen für ClangFormat: Indenting only - + Nur Einrückung Full formatting - + Komplette Formatierung Disable - Deaktivieren + Deaktivieren The current project has its own .clang-format file which can be overridden by the settings below. - + Das aktuelle Projekt hat ihre eigene .clang-format-Datei, die in den untenstehenden Einstellungen überschrieben werden kann. Override Clang Format configuration file with the chosen configuration. - + Die Clang-Format-Konfigurationsdatei mit der gewählten Konfiguration überschreiben. ClangFormatStyleFactory ClangFormat - ClangFormat + ClangFormat ClangTools::Internal::ClangToolsProjectSettingsWidget Restore Global Settings - Globale Einstellungen wiederherstellen + Globale Einstellungen wiederherstellen Go to Analyzer - + Zum Analyzer wechseln Remove Selected - Ausgewählte entfernen + Ausgewählte entfernen Remove All - Alle entfernen + Alle entfernen Suppressed diagnostics - Unterdrückte Diagnosemeldungen + Unterdrückte Meldungen ClangToolsDiagnosticModel No Fixits - Keine Korrekturen + Keine Korrekturen Not Scheduled - nicht eingeplant + Nicht eingeplant Invalidated - Ungültig + Ungültig Scheduled - eingeplant + Eingeplant Failed to Apply - Konnte nicht angewendet werden + Konnte nicht angewendet werden Applied - Angewendet + Angewendet ClangTools::Internal::TidyOptionsDialog Options for %1 - + Einstellungen für %1 Option - + Einstellung Value - Wert + Wert Add Option - + Einstellung hinzufügen Remove Option - + Einstellung entfernen <new option> - + <Neue Einstellung> ClangTools::Internal::TidyChecksTreeModel Options - Einstellungen + Einstellungen Clang Tools Custom Configuration - + Benutzerdefinierte Konfiguration ClangTools::Internal::DiagnosticMark Copy to Clipboard - In die Zwischenablage kopieren + In die Zwischenablage kopieren Disable Diagnostic - + Meldung deaktivieren ClangTools::Internal::FilterChecksModel Check - + Check ClangTools::Internal::SettingsWidget Clang-Tidy Executable - + Ausführbare Datei für Clang-Tidy Clazy Executable - + Ausführbare Datei für Clazy Executables - + Ausführbare Dateien Clang-Tidy: - + Clang-Tidy: Clazy-Standalone: - + Clazy-Standalone: From a0e74ce3e0f08a9d3fd7f89ae038c51f8e37b60d Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 25 Nov 2022 10:36:10 +0100 Subject: [PATCH 02/40] UpdateInfo: Fix wrong properties for progress info It was no longer showing "No updates found." in the status bar if the progress details are off, and the progress details were no longer directly hidden if updates were found. Amends 93401c9c8181dd4a72ec29217984b9a979090fbc Change-Id: I53c441a990c9cbda1a49969f57eb76128ab020c1 Reviewed-by: Jarek Kobus --- src/plugins/updateinfo/updateinfoplugin.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp index 5aef0531dc2..f5d234dcff2 100644 --- a/src/plugins/updateinfo/updateinfoplugin.cpp +++ b/src/plugins/updateinfo/updateinfoplugin.cpp @@ -124,14 +124,13 @@ void UpdateInfoPlugin::startCheckForUpdates() return; // do not trigger while update task is already running QFutureInterface futureIf; - FutureProgress *futureProgress - = ProgressManager::addTimedTask(futureIf, - tr("Checking for Updates"), - Id("UpdateInfo.CheckingForUpdates"), - 60); - futureProgress->setKeepOnFinish(FutureProgress::KeepOnFinishTillUserInteraction); - futureProgress->setSubtitleVisibleInStatusBar(true); - connect(futureProgress, &FutureProgress::canceled, this, [this, futureIf]() mutable { + d->m_progress = ProgressManager::addTimedTask(futureIf, + tr("Checking for Updates"), + Id("UpdateInfo.CheckingForUpdates"), + 60); + d->m_progress->setKeepOnFinish(FutureProgress::KeepOnFinishTillUserInteraction); + d->m_progress->setSubtitleVisibleInStatusBar(true); + connect(d->m_progress, &FutureProgress::canceled, this, [this, futureIf]() mutable { futureIf.reportCanceled(); futureIf.reportFinished(); stopCheckForUpdates(); From 1966591c7ff51ab0720c2c554a067e398fd1245a Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 24 Nov 2022 10:12:22 +0100 Subject: [PATCH 03/40] Doc: Use fixed links to Qt 5 Graphical Effects To suppress qdoc errors. Change-Id: I48556e98c7f58d9f0b59ad47051bf166edf50387 Reviewed-by: Thomas Hartmann --- .../examples/doc/webinardemo.qdoc | 3 +- .../qtdesignstudio-visual-effects.qdoc | 65 ++++++++++++------- .../src/views/qtquick-properties.qdoc | 3 +- 3 files changed, 47 insertions(+), 24 deletions(-) diff --git a/doc/qtdesignstudio/examples/doc/webinardemo.qdoc b/doc/qtdesignstudio/examples/doc/webinardemo.qdoc index a5fa528b3da..56aedef21be 100644 --- a/doc/qtdesignstudio/examples/doc/webinardemo.qdoc +++ b/doc/qtdesignstudio/examples/doc/webinardemo.qdoc @@ -90,7 +90,8 @@ \image webinardemo-qb-fastblur.png "Settings for exporting blurEffect layer" - We want to apply the \l {FastBlur} effect to the \e smallPopup UI control. + We want to apply the \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-fastblur.html} + {Fast Blur} effect to the \e smallPopup UI control. In the artboard, we have a \e blurEffect layer that we want to export as a \e FastBlurItem component. In the \uicontrol Component field, we enter \e FastBlurItem. diff --git a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc index e8a4d65d518..9cff12750c0 100644 --- a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc +++ b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc @@ -78,7 +78,7 @@ \li Description \row \li \inlineimage icons/blend-mode-16px.png - \li \l [QML] {Blend} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-blend.html}{Blend} \li \li Merges two source components by using a blend mode. @@ -88,28 +88,34 @@ is subtracted from the source and written over it. For a list of possible \uicontrol Mode values and examples of their - use, see \l{Blend::mode}{Blend.mode}. + use, see + \l{https://doc.qt.io/qt-5/qml-qtgraphicaleffects-blend.html#mode-prop} + {Blend.mode}. \row \li \inlineimage icons/brightness-contrast-16px.png - \li \l {BrightnessContrast}{Brightness Contrast} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-brightnesscontrast.html} + {Brightness Contrast} \li \inlineimage ok.png \li Adjusts \uicontrol Brightness and \uicontrol Contrast. \row \li \inlineimage icons/colourize-16px.png - \li \l {ColorOverlay}{Color Overlay} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-coloroverlay.html} + {Color Overlay} \li \inlineimage ok.png \li Alters the colors of the source component by applying an \uicontrol {Overlay color}. You can use the color picker to \l{Picking Colors}{select the color}. \row \li \inlineimage icons/colourize-16px.png - \li \l Colorize + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-colorize.html} + {Colorize} \li \inlineimage ok.png \li Sets the color in the HSL color space by specifying \uicontrol Hue, \uicontrol Lightness, and \uicontrol Saturation values. \row \li \inlineimage icons/desaturation-16px.png - \li \l {Desaturate}{Desaturation} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-desaturate.html} + {Desaturation} \li \inlineimage ok.png \li Reduces the saturation of the colors by the value set in the \uicontrol Desaturation field. The value ranges from \c 0.0 @@ -118,7 +124,8 @@ of the source component. \row \li \inlineimage icons/directional-blur-16px.png - \li \l {DirectionalBlur}{Directional Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-directionalblur.html} + {Directional Blur} \li \inlineimage ok.png \li Applies a blur effect to the specified direction. The value of the \uicontrol Angle field defines the direction of the blur. This @@ -135,7 +142,8 @@ more samples are needed to preserve high visual quality. \row \li \inlineimage icons/displace-16px.png - \li \l Displace + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-displace.html} + {Displace} \li \inlineimage ok.png \li Moves the pixels of the source component according to the displacement map specified in the \uicontrol {Displacement source} field. @@ -148,7 +156,8 @@ maximum shift. \row \li \inlineimage icons/drop-shadow-16px.png - \li \l {DropShadow}{Drop Shadow} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-dropshadow.html} + {Drop Shadow} \li \inlineimage ok.png \li Generates a soft shadow behind the source component using a gaussian blur. This effect blurs the alpha channel of the input and @@ -170,7 +179,8 @@ FPS on high-end graphics hardware. \row \li \inlineimage icons/fast-blur-16px.png - \li \l {FastBlur}{Fast Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-fastblur.html} + {Fast Blur} \li \inlineimage ok.png \li Applies a fast blur effect to one or more source components. \uicontrol {Fast Blur} offers lower blur quality than @@ -188,7 +198,8 @@ to provide good rendering performance. \row \li \inlineimage icons/gamma-adjust-16px.png - \li \l [QML] {GammaAdjust}{Gamma Adjust} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-gammaadjust.html} + {Gamma Adjust} \li \inlineimage ok.png \li Alters the luminance of the source component. This effect is applied to each pixel according to the curve that is pre-defined as a @@ -196,7 +207,8 @@ field is used as the reciprocal scaling exponent. \row \li \inlineimage icons/gaussian-blur-16px.png - \li \l [QML] {GaussianBlur}{Gaussian Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-gaussianblur.html} + {Gaussian Blur} \li \li Applies a gaussian blur effect to one or more source components. The effect softens the image by blurring it with an algorithm that @@ -218,7 +230,7 @@ the radius. \row \li \inlineimage icons/glow-16px.png - \li \l [QML] {Glow} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-glow.html}{Glow} \li \inlineimage ok.png \li Generates a halo-like glow around the source component. This effect blurs the alpha channel of the source and colorizes it with @@ -229,7 +241,8 @@ glow can be changed using the value of the \uicontrol Spread field. \row \li \inlineimage icons/hue-saturation-16px.png - \li \l {HueSaturation}{Hue Saturation} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-huesaturation.html} + {Hue Saturation} \li \inlineimage ok.png \li Alters the source component colors in the HSL color space. This effect is similar to the \uicontrol Colorize effect, but @@ -239,7 +252,8 @@ setting them. \row \li \inlineimage icons/inner-shadow-16px.png - \li \l {InnerShadow}{Inner Shadow} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-innershadow.html} + {Inner Shadow} \li \li Generates a colorized and blurred shadow inside the source using the color that you specify in the \uicontrol {Inner shadow color} @@ -261,7 +275,8 @@ check box. \row \li \inlineimage icons/levels-16px.png - \li \l {LevelAdjust}{Level Adjust} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-leveladjust.html} + {Level Adjust} \li \inlineimage ok.png \li Adjusts color levels in the RGBA color space. This effect adjusts the source component colors separately for each color channel. Source @@ -291,7 +306,8 @@ value of the \uicontrol Minimum output field. \row \li \inlineimage icons/mask-blur-16px.png - \li \l {MaskedBlur}{Masked Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-maskedblur.html} + {Masked Blur} \li \li Softens the image by blurring it. The intensity of the blur can be controlled for each pixel by specifying a \uicontrol {Mask source}, @@ -306,7 +322,8 @@ samples produce better quality, but are slower to render. \row \li \inlineimage icons/opacity-mask-16px.png - \li \l {OpacityMask}{Opacity Mask} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-opacitymask.html} + {Opacity Mask} \li \inlineimage ok.png \li Masks the source component with another component specified in the \uicontrol {Mask source} field. The mask component gets rendered into an @@ -321,7 +338,8 @@ with the mask alpha: \c {As * Am}. \row \li \inlineimage icons/radial-blur-16px.png - \li \l {RadialBlur}{Radial Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-radialblur.html} + {Radial Blur} \li \li Applies a directional blur effect in a circular direction around the component's center point. This effect makes the source component appear @@ -336,7 +354,8 @@ samples are needed to preserve high visual quality. \row \li \inlineimage icons/recursive-blur-16px.png - \li \l {RecursiveBlur}{Recursive Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-recursiveblur.html} + {Recursive Blur} \li \li Blurs repeatedly, providing a strong blur effect. This effect softens the image by blurring it with an algorithm that uses a @@ -352,7 +371,8 @@ but the result is produced asynchronously and takes more time. \row \li \inlineimage icons/threshold-16px.png - \li \l {ThresholdMask}{Threshold Mask} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-thresholdmask.html} + {Threshold Mask} \li \inlineimage ok.png \li Masks the source component with another component specified by \uicontrol {Mask source}. The value of the \uicontrol Spread @@ -363,7 +383,8 @@ opaque mask pixels by adding interpolated values between them. \row \li \inlineimage icons/zoom-blur-16px.png - \li \l {ZoomBlur}{Zoom Blur} + \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-zoomblur.html} + {Zoom Blur} \li \li Applies a directional blur effect towards source component's center point. This effect makes the source component appear to be diff --git a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc index 0f7547c1195..8f8a1da66b8 100644 --- a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc +++ b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc @@ -392,7 +392,8 @@ Typically, this component should be a shader effect with a source texture specified. You can use the effects in \uicontrol Components > \uicontrol {Qt Quick Studio Effects} that are based on the components in the - \l {Qt Graphical Effects} module. + \l {https://doc.qt.io/qt-5/qtgraphicaleffects-index.html} + {Qt Graphical Effects} module. To enable the component to pass the layer's offscreen surface to the effect correctly, the \uicontrol {Sampler name} field is set to the source From 0f202ea72434564e42a324bef03c047061793754 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 24 Nov 2022 16:08:12 +0100 Subject: [PATCH 04/40] ClangCodeModel: Restrict opening non-project files to headers We cannot tell clangd to opt out of indexing for certain files, so we must prevent "foreign" sources from ever getting opened, or we will have strange effects in the case of non-unique symbols. Note that there are more (upstream) problems in this area, but this patch limits the damage at least. Amends 8ad7ab2d2a7fefcd3a9ef3ff2f0ef7e5fe792417. Fixes: QTCREATORBUG-28452 Change-Id: I131be699a35da8eacea6415c630e9012cc905a47 Reviewed-by: David Schulz --- .../clangmodelmanagersupport.cpp | 26 +++++++++++-------- src/plugins/cppeditor/cppprojectfile.cpp | 6 +++++ src/plugins/cppeditor/cppprojectfile.h | 3 +++ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 679e41004bf..b92f12279f3 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -517,12 +517,14 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr && currentClient->project() == docProject) { continue; } - if (!docProject || docProject == project) { - if (currentClient) - currentClient->closeDocument(doc); - LanguageClientManager::openDocumentWithClient(doc, client); - hasDocuments = true; + if (docProject != project + && (docProject || !ProjectFile::isHeader(doc->filePath()))) { + continue; } + if (currentClient) + currentClient->closeDocument(doc); + LanguageClientManager::openDocumentWithClient(doc, client); + hasDocuments = true; } for (auto it = m_queuedShadowDocuments.begin(); it != m_queuedShadowDocuments.end();) { @@ -625,11 +627,13 @@ void ClangModelManagerSupport::claimNonProjectSources(ClangdClient *client) } if (!ClangdSettings::instance().sizeIsOkay(doc->filePath())) continue; - if (!ProjectExplorer::SessionManager::projectForFile(doc->filePath())) { - if (currentClient) - currentClient->closeDocument(doc); - LanguageClientManager::openDocumentWithClient(doc, client); - } + if (ProjectExplorer::SessionManager::projectForFile(doc->filePath())) + continue; + if (client->project() && !ProjectFile::isHeader(doc->filePath())) + continue; + if (currentClient) + currentClient->closeDocument(doc); + LanguageClientManager::openDocumentWithClient(doc, client); } } @@ -717,7 +721,7 @@ void ClangModelManagerSupport::onEditorOpened(Core::IEditor *editor) return; if (sessionModeEnabled()) project = nullptr; - else if (!project) + else if (!project && ProjectFile::isHeader(document->filePath())) project = fallbackProject(); if (ClangdClient * const client = clientForProject(project)) LanguageClientManager::openDocumentWithClient(textDocument, client); diff --git a/src/plugins/cppeditor/cppprojectfile.cpp b/src/plugins/cppeditor/cppprojectfile.cpp index c28f41a2291..c5a5d57d5b8 100644 --- a/src/plugins/cppeditor/cppprojectfile.cpp +++ b/src/plugins/cppeditor/cppprojectfile.cpp @@ -6,6 +6,7 @@ #include "cppeditorconstants.h" #include +#include #include #include @@ -125,6 +126,11 @@ bool ProjectFile::isHeader(ProjectFile::Kind kind) } } +bool ProjectFile::isHeader(const Utils::FilePath &fp) +{ + return isHeader(classify(fp.toString())); +} + bool ProjectFile::isSource(ProjectFile::Kind kind) { switch (kind) { diff --git a/src/plugins/cppeditor/cppprojectfile.h b/src/plugins/cppeditor/cppprojectfile.h index 71310fec8a2..16894555cf5 100644 --- a/src/plugins/cppeditor/cppprojectfile.h +++ b/src/plugins/cppeditor/cppprojectfile.h @@ -7,6 +7,8 @@ #include +namespace Utils { class FilePath; } + namespace CppEditor { class CPPEDITOR_EXPORT ProjectFile @@ -39,6 +41,7 @@ public: static bool isSource(Kind kind); static bool isHeader(Kind kind); + static bool isHeader(const Utils::FilePath &fp); static bool isC(Kind kind); static bool isCxx(Kind kind); static bool isAmbiguousHeader(const QString &filePath); From ead1b7aa4ae591ba090779fdcd6316b21ee0fde3 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 25 Nov 2022 10:29:56 +0100 Subject: [PATCH 05/40] Editor: extend visual whitespace documentation Tell users where the color of the visual whitespace can be configured. Task-number: QTCREATORBUG-28501 Change-Id: I9c12cbe9d7be61dd96ad27c1eaa1a2daf69cf31d Reviewed-by: Leena Miettinen --- doc/qtcreator/src/editors/creator-code-indentation.qdoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/qtcreator/src/editors/creator-code-indentation.qdoc b/doc/qtcreator/src/editors/creator-code-indentation.qdoc index 11cae3c5b3f..f00ecdc4f15 100644 --- a/doc/qtcreator/src/editors/creator-code-indentation.qdoc +++ b/doc/qtcreator/src/editors/creator-code-indentation.qdoc @@ -65,7 +65,9 @@ To visualize whitespace in the editor, select \uicontrol Edit > \uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Display > \uicontrol {Visualize whitespace}. To visualize indentation, select - \uicontrol {Visualize Indent}. + \uicontrol {Visualize Indent}. To adjust the color of the visualization, + change the value of the Visual Whitespace setting of the editor color scheme + in \uicontrol {Font & Colors}. \image qtcreator-options-text-editor-display.png "Text Editor Display preferences" From 4225f475a49ad188df8786087b8281de7cc0eef4 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 23 Nov 2022 12:53:18 +0200 Subject: [PATCH 06/40] FilePath: Do not strip macros when normalizing path Fixes: QTCREATORBUG-28484 Change-Id: Id6bcd2aef048bd355c196013c54799e4944135bd Reviewed-by: Qt CI Bot Reviewed-by: hjk --- src/libs/utils/filepath.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index 75fba81867c..a5b3381acc6 100644 --- a/src/libs/utils/filepath.cpp +++ b/src/libs/utils/filepath.cpp @@ -1529,7 +1529,7 @@ static QString normalizePathSegmentHelper(const QString &name) { const int len = name.length(); - if (len == 0) + if (len == 0 || name.contains("%{")) return name; int i = len - 1; From 3cd3bba720bd5451e86c3585db5294c2948c0e65 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 22 Nov 2022 11:32:14 +0100 Subject: [PATCH 07/40] Debugger: update thread selector after setting current thread manually The issue is only reproducible when interrupting a running inferior with cdb. Change-Id: I336413d7f36aad28108623eb1bf8015b42f3dbb4 Reviewed-by: Christian Stenger --- src/plugins/debugger/threadshandler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp index cc0920fb121..286b58258f1 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -268,6 +268,7 @@ void ThreadsHandler::setCurrentThread(const Thread &thread) m_currentThread = thread; thread->update(); + threadSwitcher()->setCurrentIndex(thread->index().row()); } void ThreadsHandler::notifyGroupCreated(const QString &groupId, const QString &pid) From cb8742ccab3f17e3320bea10cf5f174839ead687 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 25 Nov 2022 10:52:24 +0100 Subject: [PATCH 08/40] Make it possible to select default session from menu when we are in the limbo state where no session has been loaded, and the default session has not been explicitly created or loaded yet. Fixes: QTCREATORBUG-28393 Change-Id: I66d69561e18b5073a477d90c1926074e3cd97cee Reviewed-by: Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/projectexplorer.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index c6ee39013b0..c7ed9c192c3 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -4173,6 +4173,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu() auto *ag = new QActionGroup(m_sessionMenu); connect(ag, &QActionGroup::triggered, this, &ProjectExplorerPluginPrivate::setSession); const QString activeSession = SessionManager::activeSession(); + const bool isDefaultVirgin = SessionManager::isDefaultVirgin(); const QStringList sessions = SessionManager::sessions(); for (int i = 0; i < sessions.size(); ++i) { @@ -4184,7 +4185,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu() QAction *act = ag->addAction(actionText); act->setData(session); act->setCheckable(true); - if (session == activeSession) + if (session == activeSession && !isDefaultVirgin) act->setChecked(true); } m_sessionMenu->addActions(ag->actions()); @@ -4193,9 +4194,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu() void ProjectExplorerPluginPrivate::setSession(QAction *action) { - QString session = action->data().toString(); - if (session != SessionManager::activeSession()) - SessionManager::loadSession(session); + SessionManager::loadSession(action->data().toString()); } void ProjectExplorerPlugin::setProjectExplorerSettings(const ProjectExplorerSettings &pes) From c210ffb2d6ea14bd8efb25c390f84dd8c9d4cb6c Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 25 Nov 2022 13:45:28 +0100 Subject: [PATCH 09/40] AutoTest: Fix debugging of gtest based tests Amends 6ae6390661df7c4776a875995680c29039fa3f07. Fixes: QTCREATORBUG-28504 Change-Id: I7617b080f4ac872c1f806a8e89fa9084a0ac948f Reviewed-by: David Schulz --- src/plugins/autotest/gtest/gtestconfiguration.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/autotest/gtest/gtestconfiguration.cpp b/src/plugins/autotest/gtest/gtestconfiguration.cpp index 2ff3b5c6b1e..231dea01ff2 100644 --- a/src/plugins/autotest/gtest/gtestconfiguration.cpp +++ b/src/plugins/autotest/gtest/gtestconfiguration.cpp @@ -60,8 +60,12 @@ QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) con } const QStringList &testSets = testCases(); - if (!testSets.isEmpty()) - arguments << "--gtest_filter=\"" + testSets.join(':') + '"'; + if (!testSets.isEmpty()) { + if (isDebugRunMode()) // debugger does its own special quoting + arguments << "--gtest_filter=" + testSets.join(':'); + else + arguments << "--gtest_filter=\"" + testSets.join(':') + '"'; + } auto gSettings = static_cast(framework()->testSettings()); if (!gSettings) From e24ad7ac55ddd22734b035916bb616069e741df0 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 25 Nov 2022 15:21:58 +0100 Subject: [PATCH 10/40] JSON wizards: Print parsing issues only with -customwizard-verbose Some wizards will miss required components when corresponding plugins are disabled. That is fine, and not an error per se. When actually developing a wizard, these kind of errors should of course be posted, but that is what -customwizard-verbose is for. Fixes: QTCREATORBUG-28502 Change-Id: I3647d37ef7ca4dace7592c5443bdd13720290016 Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index dfcc80d6c59..2a471734906 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -480,7 +480,8 @@ JsonWizardFactory *JsonWizardFactory::createWizardFactory(const QVariantMap &dat if (!factory->initialize(data, baseDir, errorMessage)) { delete factory; factory = nullptr; - Core::MessageManager::writeDisrupting(*errorMessage); + if (verbose()) + Core::MessageManager::writeDisrupting(*errorMessage); } return factory; } From 98a40b369061ad32fb63b680a878807287e3022b Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Wed, 16 Nov 2022 11:59:52 +0100 Subject: [PATCH 11/40] CMake build: Make errors of execute_process fail the build Instead of silenty failing and resulting in broken builds/packages. The property is only available since CMake 3.19, so limit the feature to that. Change-Id: I82b06e78540e81a809f7fdfe130648becfc9672e Reviewed-by: Cristian Adam Reviewed-by: Qt CI Bot --- cmake/CreatePythonXY.cmake | 2 ++ cmake/QtCreatorAPI.cmake | 4 ++-- cmake/QtCreatorAPIInternal.cmake | 4 ++++ cmake/QtCreatorDocumentation.cmake | 3 ++- cmake/Utils.cmake | 1 + src/plugins/qmldesigner/CMakeLists.txt | 4 ++-- tests/manual/android/setup/setup_android.cmake | 16 ++++++++++------ 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cmake/CreatePythonXY.cmake b/cmake/CreatePythonXY.cmake index 8aeeb156cb2..0475b259f68 100644 --- a/cmake/CreatePythonXY.cmake +++ b/cmake/CreatePythonXY.cmake @@ -64,6 +64,7 @@ function(create_python_xy PythonExe PythonZipFilePath) set(ENV{PYTHONOPTIMIZE} "2") execute_process( COMMAND "${PythonExe}" -OO -m compileall "${CMAKE_CURRENT_BINARY_DIR}/python-lib" -b + ${QTC_COMMAND_ERROR_IS_FATAL} ) file(GLOB_RECURSE python_lib_files "${CMAKE_CURRENT_BINARY_DIR}/python-lib/*.py") @@ -75,5 +76,6 @@ function(create_python_xy PythonExe PythonZipFilePath) execute_process( COMMAND ${CMAKE_COMMAND} -E tar cf "${PythonZipFilePath}" . --format=zip WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/python-lib/" + ${QTC_COMMAND_ERROR_IS_FATAL} ) endfunction() diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index 52ba2f44026..68461f8bcd6 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -778,14 +778,14 @@ function(add_qtc_executable name) set(_code "${_code} execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\" -delete_rpath \"${_rpath}\" - \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")" + \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})" ) endforeach() foreach(_rpath ${install_rpath}) set(_code "${_code} execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\" -add_rpath \"${_rpath}\" - \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")" + \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})" ) endforeach() install(CODE "${_code}") diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake index 4efb59c988d..ace1f3c8d1c 100644 --- a/cmake/QtCreatorAPIInternal.cmake +++ b/cmake/QtCreatorAPIInternal.cmake @@ -1,3 +1,7 @@ +if (CMAKE_VERSION GREATER_EQUAL 3.19) + set(QTC_COMMAND_ERROR_IS_FATAL COMMAND_ERROR_IS_FATAL ANY) +endif() + if (CMAKE_VERSION VERSION_LESS 3.18) if (CMAKE_CXX_COMPILER_ID STREQUAL GNU) set(BUILD_WITH_PCH OFF CACHE BOOL "" FORCE) diff --git a/cmake/QtCreatorDocumentation.cmake b/cmake/QtCreatorDocumentation.cmake index 49bf3d2d02d..a652d625176 100644 --- a/cmake/QtCreatorDocumentation.cmake +++ b/cmake/QtCreatorDocumentation.cmake @@ -22,7 +22,8 @@ function(qt5_query_qmake) TIMEOUT 10 RESULT_VARIABLE _qmake_result OUTPUT_VARIABLE _qmake_stdout - OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_STRIP_TRAILING_WHITESPACE + ${QTC_COMMAND_ERROR_IS_FATAL}) if (NOT "${_qmake_result}" STREQUAL "0") message(FATAL_ERROR "Qmake did not execute successfully: ${_qmake_result}.") diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake index e43674e4a35..602781ca391 100644 --- a/cmake/Utils.cmake +++ b/cmake/Utils.cmake @@ -47,6 +47,7 @@ function(setup_dependencies_component) \"\${_ide_app_target}\" \"${_qmake_binary}\" COMMAND_ECHO STDOUT + \${QTC_COMMAND_ERROR_IS_FATAL} ) " COMPONENT Dependencies diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index 78da7fa5ded..eeebb70177c 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -86,10 +86,10 @@ function(get_and_add_as_subdirectory name repository git_tag build_dir source_di ) execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" "${build_dir}/${name}" WORKING_DIRECTORY "${build_dir}/${name}" - COMMAND_ERROR_IS_FATAL ANY + ${QTC_COMMAND_ERROR_IS_FATAL} ) execute_process(COMMAND "${CMAKE_COMMAND}" --build "${build_dir}/${name}" - COMMAND_ERROR_IS_FATAL ANY + ${QTC_COMMAND_ERROR_IS_FATAL} ) add_subdirectory(${source_dir}/${name}/${source_subdir} ${name}) endfunction() diff --git a/tests/manual/android/setup/setup_android.cmake b/tests/manual/android/setup/setup_android.cmake index c6a4f8ae298..c4dfb275b35 100644 --- a/tests/manual/android/setup/setup_android.cmake +++ b/tests/manual/android/setup/setup_android.cmake @@ -43,7 +43,7 @@ function(download_jdk) message("Downloading: ${jdk_url}") file(DOWNLOAD ${jdk_url} ./jdk.zip SHOW_PROGRESS) - execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip COMMAND_ERROR_IS_FATAL ANY) endfunction() function(download_android_commandline) @@ -61,7 +61,7 @@ function(download_android_commandline) file(DOWNLOAD ${android_cmdtools_url} ./android_commandline_tools.zip SHOW_PROGRESS) file(MAKE_DIRECTORY android-sdk) file(MAKE_DIRECTORY android-cmdlinetools) - execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools COMMAND_ERROR_IS_FATAL ANY) endfunction() function(setup_android) @@ -78,9 +78,11 @@ function(setup_android) file(WRITE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n") execute_process( INPUT_FILE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt - COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk) + COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk + COMMAND_ERROR_IS_FATAL ANY) execute_process( - COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk) + COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk + COMMAND_ERROR_IS_FATAL ANY) execute_process( COMMAND ${sdkmanager} "platforms;${ANDROID_PLATFORM}" @@ -90,13 +92,15 @@ function(setup_android) "cmdline-tools;latest" "tools" "emulator" - "ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk) + "ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk + COMMAND_ERROR_IS_FATAL ANY) if (WIN32) execute_process( COMMAND ${sdkmanager} "extras;google;usb_driver" - --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk) + --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk + COMMAND_ERROR_IS_FATAL ANY) endif() endfunction() From ed06978830e45774a8a5febbc9a64b492d94fb26 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 24 Nov 2022 12:25:07 +0100 Subject: [PATCH 12/40] ClangCodeModel: Switch off clangd persistently ... after failed machine suitability check. Fixes: QTCREATORBUG-28441 Change-Id: Ic0fb956168204d8023ff96f92ae3fcd7cea8b0e9 Reviewed-by: Qt CI Bot Reviewed-by: Christian Stenger --- src/plugins/clangcodemodel/clangmodelmanagersupport.cpp | 4 ++-- src/plugins/cppeditor/cppcodemodelsettings.cpp | 6 ++++++ src/plugins/cppeditor/cppcodemodelsettings.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index b92f12279f3..0e76423e69f 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -127,7 +127,7 @@ static void checkSystemForClangdSuitability() if (ClangdSettings::hardwareFulfillsRequirements()) return; - ClangdSettings::setUseClangd(false); + ClangdSettings::setUseClangdAndSave(false); const QString warnStr = ClangModelManagerSupport::tr("The use of clangd for the C/C++ " "code model was disabled, because it is likely that its memory requirements " "would be higher than what your system can handle."); @@ -148,7 +148,7 @@ static void checkSystemForClangdSuitability() return label; }); info.addCustomButton(ClangModelManagerSupport::tr("Enable Anyway"), [clangdWarningSetting] { - ClangdSettings::setUseClangd(true); + ClangdSettings::setUseClangdAndSave(true); Core::ICore::infoBar()->removeInfo(clangdWarningSetting); }); Core::ICore::infoBar()->addInfo(info); diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index 18512cf10c4..b713583dfe4 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -218,6 +218,12 @@ bool ClangdSettings::useClangd() const void ClangdSettings::setUseClangd(bool use) { instance().m_data.useClangd = use; } +void ClangdSettings::setUseClangdAndSave(bool use) +{ + setUseClangd(use); + instance().saveSettings(); +} + bool ClangdSettings::hardwareFulfillsRequirements() { instance().m_data.haveCheckedHardwareReqirements = true; diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h index cd010eec995..93e9e550608 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.h +++ b/src/plugins/cppeditor/cppcodemodelsettings.h @@ -126,6 +126,7 @@ public: static ClangdSettings &instance(); bool useClangd() const; static void setUseClangd(bool use); + static void setUseClangdAndSave(bool use); static bool hardwareFulfillsRequirements(); static bool haveCheckedHardwareRequirements(); From d852ec53a14e64f6993929130e95b5581cfaa3a4 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Mon, 28 Nov 2022 10:36:25 +0100 Subject: [PATCH 13/40] GitHub Actions / COIN: Update Qt to 6.4.0 Amends 169f2c4af66c4703e6d708b0b10fa3b8a9062fa1 due to the task number QTBUG-108593. Change-Id: Id3ab685632e32fad953d837d2f7ab357b034d739 Reviewed-by: Eike Ziller Reviewed-by: --- .github/workflows/build_cmake.yml | 2 +- coin/instructions/common_environment.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index e1be45d67c6..d695061f95d 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -7,7 +7,7 @@ on: - 'doc/**' env: - QT_VERSION: 6.4.1 + QT_VERSION: 6.4.0 CLANG_VERSION: 15.0.0 ELFUTILS_VERSION: 0.175 CMAKE_VERSION: 3.21.1 diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 7c6bcfe14c0..5843ca790b0 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -10,7 +10,7 @@ instructions: variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_15.0.0-based - type: EnvironmentVariable variableName: QTC_QT_BASE_URL - variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.1-released/Qt" + variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.0-released/Qt" - type: EnvironmentVariable variableName: QTC_QT_MODULES variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine" From c3b05f1ef125a7c347f30cbf4f7297290049546f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 24 Nov 2022 12:54:54 +0100 Subject: [PATCH 14/40] German translation: CMake Change-Id: Ied82a653d6e1cc6336e501c79728ceb085c7d49d Reviewed-by: Christian Stenger --- share/qtcreator/translations/qtcreator_de.ts | 258 ++++++++++--------- 1 file changed, 130 insertions(+), 128 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 8bfd982e27a..790c66800c7 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -124,19 +124,19 @@ CMakeProjectManager Initial Configuration - + Initiale Konfiguration Current Configuration - + Aktuelle Konfiguration Kit Configuration - + Kit-Konfiguration Edit the current kit's CMake configuration. - + Die CMake-Konfiguration des aktuellen Kits bearbeiten. Filter @@ -176,11 +176,11 @@ &Set - + &Setzen Set a value in the CMake configuration. - + Einen Wert in der CMake-Konfiguration setzen. &Unset @@ -200,11 +200,11 @@ Batch Edit... - + Als Text bearbeiten... Set or reset multiple values in the CMake configuration. - + Mehrere Variablen in der CMake-Konfiguration setzen oder zurücksetzen. Advanced @@ -212,63 +212,63 @@ Clear system environment - Systemumgebung löschen + Systemumgebung löschen Help - Hilfe + Hilfe Apply Kit Value - + Wert des Kits anwenden Apply Initial Configuration Value - + Wert der initialen Konfiguration anwenden Copy - Kopieren + Kopieren Change the build directory to "%1" and start with a basic CMake configuration? - + Wollen Sie das Build-Verzeichnis auf "%1" ändern und mit einer grundlegenden CMake-Konfiguration beginnen? The CMake flag for the development team - + Das CMake-Flag für das Entwicklerteam The CMake flag for the provisioning profile - + Das CMake-Flag für das Provisioning-Profil The CMake flag for the architecture on macOS - + Das CMake-Flag für die macOS-Architektur The CMake flag for QML debugging, if enabled - + Das CMake-Flag für QML-Debuggen, falls aktiviert Profile - Profile + Profile Clean Environment - Saubere Umgebung + Saubere Umgebung System Environment - Systemumgebung + Systemumgebung Additional CMake <a href="options">options</a>: - + Weitere CMake-<a href="options">Optionen</a>: Build type: - + Build-Typ: <UNSET> @@ -276,31 +276,31 @@ Enter one CMake <a href="variable">variable</a> per line.<br/>To set or change a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>To unset a variable, use -U&lt;variable&gt;.<br/> - + Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen oder zu ändern, benutzen Sie -D&lt;Variable&gt;:&lt;Typ&gt;=&lt;Wert&gt;.<br/>&lt;Typ&gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.<br/>Um eine Variable zurückzusetzen, benutzen Sie -U&lt;Variable&gt;.<br/> Re-configure with Initial Parameters - + Mit initialen Parametern neu konfigurieren Clear CMake configuration and configure with initial parameters? - + Die CMake-Konfiguration löschen und mit initialen Parametern konfigurieren? Do not ask again - Nicht noch einmal nachfragen + Nicht noch einmal nachfragen Kit CMake Configuration - + CMake-Konfiguration des Kits Configure - Konfigurieren + Konfigurieren Stop CMake - + CMake abbrechen bool @@ -336,7 +336,7 @@ Clear CMake Configuration - CMake-Konfiguration bereinigen + CMake-Konfiguration löschen Rescan Project @@ -372,15 +372,15 @@ CMakeUserPresets.json cannot re-define the %1 preset: %2 - + CMakeUserPresets.json kann das Preset %1 nicht erneut definieren: %2 Build preset %1 is missing a corresponding configure preset. - + Im Build-Preset %1 fehlt ein entsprechendes Configure-Preset. Failed to load %1: %2 - + %1 konnte nicht geladen werden: %2 yes @@ -416,35 +416,35 @@ Version: %1 - Version: %1 + Version: %1 Supports fileApi: %1 - + Unterstützt fileApi: %1 Detection source: "%1" - + Quelle: "%1" CMake executable path does not exist. - + Pfad für das CMake-Werkzeug existiert nicht. CMake executable path is not a file. - + Pfad für das CMake-Werkzeug ist keine Datei. CMake executable path is not executable. - + Pfad für das CMake-Werkzeug ist nicht ausführbar. CMake executable does not provide required IDE integration features. - + Ausführbare CMake-Datei unterstützt die benötigten Funktionen für die IDE-Integration nicht. Path - Pfad + Pfad Name: @@ -456,7 +456,7 @@ Version: - Version: + Version: Help file: @@ -496,27 +496,27 @@ Current executable - + Aktuelle ausführbare Datei Build the executable used in the active run configuration. Currently: %1 - + Die ausführbare Datei der aktiven Ausführungskonfiguration erstellen. Aktuell: %1 Target: %1 - + Ziel: %1 Enable automatic provisioning updates: - + Automatische Provisionierungsaktualisierungen aktivieren: Tells xcodebuild to create and download a provisioning profile if a valid one does not exist. - + Veranlasst xcodebuild, ein Provisionierungsprofil zu erstellen und herunterzuladen, wenn kein gültiges vorhanden ist. Target - Ziel + Ziel The build configuration is currently disabled. @@ -524,7 +524,7 @@ A CMake tool must be set up for building. Configure a CMake tool in the kit options. - Zum Erstellen muss ein CMake Tool eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen. + Zum Erstellen muss ein CMake-Werkzeug eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen. There is a CMakeCache.txt file in "%1", which suggest an in-source build was done before. You are now building in "%2", and the CMakeCache.txt file might confuse CMake. @@ -545,7 +545,7 @@ CMake Build Display name for CMakeProjectManager::CMakeBuildStep id. - Erstellen mit CMake + Erstellen mit CMake CMake arguments: @@ -558,7 +558,7 @@ Build ConfigWidget display name. - + Erstellen Targets: @@ -570,19 +570,19 @@ Kit: - Kit: + Kit: Initial Configuration: - + Initiale Konfiguration: Current Configuration: - + Aktuelle Konfiguration: Type: - Typ: + Typ: Value @@ -631,23 +631,23 @@ Package manager auto setup - + Automatisches Aufsetzen von Paketmanagern Add the CMAKE_PROJECT_INCLUDE_BEFORE variable pointing to a CMake script that will install dependencies from the conanfile.txt, conanfile.py, or vcpkg.json file from the project source directory. - + Setzt die Variable CMAKE_PROJECT_INCLUDE_BEFORE auf ein CMake-Script, das Abhängigkeiten von einer conanfile.txt, conanfile.py oder vcpkg.json-Datei im Quellverzeichnis des Projekts installiert. Ask before re-configuring with initial parameters - + Vor dem Neukonfigurieren mit initialen Parametern nachfragen Show subfolders inside source group folders - + Unterverzeichnisse in Sourcegruppen anzeigen General - Allgemein + Allgemein Adding Files @@ -675,12 +675,12 @@ Copy to Clipboard? - In die Zwischenablage kopieren? + In die Zwischenablage kopieren? Files are not automatically added to the CMakeLists.txt file of the CMake project. Copy the path to the source files to the clipboard? - Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt. + Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt. Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? @@ -689,15 +689,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? Run CMake with configuration changes? - + CMake mit Änderungen der Konfiguration ausführen? <b>CMake configuration failed<b><p>The backup of the previous configuration has been restored.</p><p>Issues and "Projects > Build" settings show more information about the failure.</p - + <b>CMake-Konfiguration ist fehlgeschlagen<b/><p>Das Backup der vorherigen Konfiguration wurde wiederhergestellt.</p><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p> <b>Failed to load project<b><p>Issues and "Projects > Build" settings show more information about the failure.</p - + <b>Laden des Projekts fehlgeschlagen</b><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p> Failed to create build directory "%1". @@ -705,11 +705,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? No CMake tool set up in kit. - + Im Kit ist kein CMake-Werkzeug eingerichtet. The remote CMake executable cannot write to the local build directory. - + Das entfernte CMake-Werkzeug kann nicht in das lokale Build-Verzeichnis schreiben. <No CMake Tool available> @@ -729,11 +729,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? Path to the cmake executable - Pfad zur ausführbaren Datei von cmake + Pfad zum CMake-Werkzeug CMake version %1 is unsupported. Update to version 3.14 (with file-api) or later. - + Die CMake-Version %1 wird nicht unterstützt. Aktualisieren Sie auf Version 3.14 (mit file-api) oder neuer. Change... @@ -749,11 +749,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? Platform - Plattform + Plattform Toolset - + Toolset Generator: @@ -777,11 +777,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? CMake Tool is unconfigured, CMake generator will be ignored. - Das CMake-Tool ist nicht konfiguriert. Der CMake-Generator wird ignoriert. + Das CMake-Werkzeug ist nicht konfiguriert. Der CMake-Generator wird ignoriert. CMake Tool does not support the configured generator. - Das CMake-Tool unterstützt den konfigurierten Generator nicht. + Das CMake-Werkzeug unterstützt den konfigurierten Generator nicht. Platform is not supported by the selected CMake generator. @@ -813,15 +813,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? CMake <a href="generator">generator</a> - + CMake-<a href="generator">Generator</a> The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects. - + Das gewählte CMake-Werkzeug unterstützt file-api nicht. %1 wird nicht in der Lage sein, CMake-Projekte auszuwerten. Enter one CMake <a href="variable">variable</a> per line.<br/>To set a variable, use -D&lt;variable&gt;:&lt;type&gt;=&lt;value&gt;.<br/>&lt;type&gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING. - + Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen, benutzen Sie -D&lt;Variable&gt;:&lt;Typ&gt;=&lt;Wert&gt;.<br/>&lt;Typ&gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING. CMake Configuration @@ -877,7 +877,7 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? Builds a target of any open CMake project. - + Erstellt ein Ziel eines geöffneten CMake-Projekts. Open CMake target @@ -885,23 +885,23 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? Jumps to the definition of a target of any open CMake project. - + Springt zur Definition eines Ziels eines geöffneten CMake-Projekts. The source directory %1 is not reachable by the CMake executable %2. - + Das Quellverzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden. The build directory %1 is not reachable by the CMake executable %2. - + Das Build-Verzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden. The build directory "%1" does not exist - + Das Build-Verzeichnis "%1" existiert nicht CMake executable "%1" and build directory "%2" must be on the same device. - + Das CMake-Werkzeug "%1" und das Build-Verzeichnis "%2" müssen auf demselben Gerät liegen. Running %1 in %2. @@ -913,19 +913,19 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? CMake process failed to start. - + Der CMake-Prozess konnte nicht gestartet werden. CMake process was canceled by the user. - + Der CMake-Prozess wurde vom Benutzer abgebrochen. CMake process crashed. - + Der CMake-Prozess ist abgestürzt. CMake process exited with exit code %1. - + Der CMake-Prozess wurde mit dem Rückgabewert %1 beendet. <Build Directory> @@ -937,165 +937,167 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren? 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? - + Unerwartetes Quellverzeichnis "%1", erwartet wurde "%2". Dies kann in einigen Situationen korrekt sein, zum Beispiel beim Importieren eines eigenständigen Qt-Tests, aber normalerweise ist es ein Fehler. Soll der Build trotzdem importiert werden? CMake Modules - CMake-Module + CMake-Module Target type: - Zieltyp: + Zieltyp: No build artifacts - Keine Build-Artefakte + Keine Build-Artefakte Build artifacts: - Build-Artefakte: + Build-Artefakte: Version not parseable - + Version kann nicht ausgewertet werden Searching CMake binaries... - + Suche CMake-Werkzeuge... Found "%1" - + "%1" gefunden Removing CMake entries... - + Entferne CMake-Einträge... Removed "%1" - + "%1" entfernt CMake: - + CMake: Failed to set up CMake file API support. %1 cannot extract project information. - + CMake file-api-Unterstützung konnte nicht aufgesetzt werden. %1 kann keine Projektinformationen auswerten. Invalid reply file created by CMake. - + CMake hat eine ungültige Antwortdatei erstellt. Invalid cache file generated by CMake. - + CMake hat eine ungültige Cache-Datei erstellt. Invalid cmakeFiles file generated by CMake. - + CMake hat ungültige "cmakeFiles" erstellt. Invalid codemodel file generated by CMake: No directories. - + CMake hat eine ungültige Codemodell-Datei erstellt: Keine Verzeichnisse. Invalid codemodel file generated by CMake: Empty directory object. - + CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Verzeichnisobjekt. Invalid codemodel file generated by CMake: No projects. - + CMake hat eine ungültige Codemodell-Datei erstellt: Keine Projekte. Invalid codemodel file generated by CMake: Empty project object. - + CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Projektobjekt. Invalid codemodel file generated by CMake: Broken project data. - + CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Projektdaten. Invalid codemodel file generated by CMake: Empty target object. - + CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Zielobjekt. Invalid codemodel file generated by CMake: Broken target data. - + CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Zieldaten. Invalid codemodel file generated by CMake: No configurations. - + CMake hat eine ungültige Codemodell-Datei erstellt: Keine Konfigurationen. Invalid codemodel file generated by CMake: Empty configuration object. - + CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Konfigurationsobjekt. Invalid codemodel file generated by CMake: Broken indexes in directories, projects, or targets. - + CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Indizes in Verzeichnissen, Projekten oder Zielen. Invalid codemodel file generated by CMake. - + CMake hat eine ungültige Codemodell-Datei erstellt. Invalid target file: Information is missing. - + Ungültige Zieldatei: Information fehlt. Invalid target file generated by CMake: Broken indexes in target details. - + CMake hat eine ungültige Zieldatei erstellt: Fehlerhafte Indizes in den Zieldetails. CMake parsing was canceled. - + CMake-Auswertung wurde abgebrochen. No "%1" CMake configuration found. Available configurations: "%2". Make sure that CMAKE_CONFIGURATION_TYPES variable contains the "Build type" field. - + CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2". +Stellen Sie sicher, dass der Wert des "Build-Typ"-Felds in der CMAKE_CONFIGURATION_TYPES-Variable enthalten ist. No "%1" CMake configuration found. Available configuration: "%2". Make sure that CMAKE_BUILD_TYPE variable matches the "Build type" field. - + CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2". +Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der des "Build-Typ"-Felds ist. CMake returned error code: %1 - + CMake hat einen Fehlerwert zurückgegeben: %1 Failed to rename %1 to %2. - + Umbenennen von %1 nach %2 ist fehlgeschlagen. Failed to copy %1 to %2. - + Kopieren von %1 nach %2 ist fehlgeschlagen. Failed to read %1 file - + Die Datei %1 konnte nicht gelesen werden Invalid %1 file - + Ungültige Datei %1 Invalid "version" in %1 file - + Ungültige "version" in Datei %1 Invalid "configurePresets" section in %1 file - + Ungültiger Abschnitt "configurePresets" in Datei %1 Invalid "buildPresets" section in %1 file - + Ungültiger Abschnitt "buildPresets" in Datei %1 <File System> - + <Dateisystem> @@ -52708,7 +52710,7 @@ in "%2" aus. CMakeProjectManager::Tr::Tr Tools - Werkzeuge + Werkzeuge From 49546c4f482373cd2341516ebb98a83e183189ae Mon Sep 17 00:00:00 2001 From: Riitta-Leena Miettinen Date: Wed, 23 Nov 2022 14:19:14 +0100 Subject: [PATCH 15/40] Doc: Add M401 and M402 code syntax error and warning messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTCREATORBUG-28482 Change-Id: I3a8976c0c96c102c9f745a1643d3a02e062658ac Reviewed-by: Mats Honkamaa Reviewed-by: Henning Gründl Reviewed-by: Thomas Hartmann --- doc/qtcreator/src/editors/creator-code-syntax.qdoc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/qtcreator/src/editors/creator-code-syntax.qdoc b/doc/qtcreator/src/editors/creator-code-syntax.qdoc index ae86067e9f8..f4f57e6488e 100644 --- a/doc/qtcreator/src/editors/creator-code-syntax.qdoc +++ b/doc/qtcreator/src/editors/creator-code-syntax.qdoc @@ -682,6 +682,20 @@ \li An import statement has been added twice. For more information, see \l{Import Statements}. + \row + \li M401 + \li Error + \li Do not reference the root item as alias + \li The alias property cannot reference the root component directly. + Create an instance of the component instead. + + \row + \li M402 + \li Warning + \li Avoid referencing the root item in a hierarchy + \li The alias property cannot reference the root component in a + hierarchy. Create an instance of the component instead. + \endtable \section1 Resetting the Code Model From 452e1ca232ea13aa0c0c11eb48db68ea0303e38f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 17 Nov 2022 07:37:05 +0100 Subject: [PATCH 16/40] Docker: Ensure workdir for processes is reachable When starting a process, make sure that the working directory is reachable. Change-Id: I911239d03afd916411d7fb03da806211349ff7e4 Reviewed-by: David Schulz Reviewed-by: Qt CI Bot --- src/plugins/docker/dockerdevice.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 1ebe044a913..05f053438a3 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -222,8 +222,14 @@ CommandLine DockerProcessImpl::fullLocalCommandLine(bool interactive) QStringList args; if (!m_setup.m_workingDirectory.isEmpty()) { - QTC_CHECK(DeviceManager::deviceForPath(m_setup.m_workingDirectory) == m_device); - args.append({"cd", m_setup.m_workingDirectory.path()}); + FilePath workingDir = m_setup.m_workingDirectory; + + if (DeviceManager::deviceForPath(workingDir) != m_device) { + QTC_CHECK(m_device->ensureReachable(workingDir)); + workingDir = workingDir.onDevice(m_device->rootPath()); + } + + args.append({"cd", workingDir.path()}); args.append("&&"); } From 2f8e962f837b02fd1b3809aa82ed0ef5b07b9429 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 28 Nov 2022 16:31:31 +0100 Subject: [PATCH 17/40] Debugger: Do not force cdb when no toolchain is configured ... in the kit settings widget. Fixes: QTCREATORBUG-28458 Change-Id: I75907bfeeff56173fb9d92045345ba0ca15584b4 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/plugins/debugger/debuggerkitinformation.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggerkitinformation.cpp b/src/plugins/debugger/debuggerkitinformation.cpp index c05d96b1db2..a0f46fa86a5 100644 --- a/src/plugins/debugger/debuggerkitinformation.cpp +++ b/src/plugins/debugger/debuggerkitinformation.cpp @@ -249,8 +249,18 @@ void DebuggerKitAspect::fix(Kit *k) setup(k); return; } - const Abi tcAbi = ToolChainKitAspect::targetAbi(k); - if (item->matchTarget(tcAbi) != DebuggerItem::DoesNotMatch) + + Abi kitAbi; + if (ToolChainKitAspect::toolChains(k).isEmpty()) { + if (DeviceTypeKitAspect::deviceTypeId(k) + != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) { + return; + } + kitAbi = Abi(Abi::UnknownArchitecture, Abi::hostAbi().os()); + } else { + kitAbi = ToolChainKitAspect::targetAbi(k); + } + if (item->matchTarget(kitAbi) != DebuggerItem::DoesNotMatch) return; k->setValue(DebuggerKitAspect::id(), QVariant()); setup(k); From 72a01bd00e9d03e4c113c61e0d4c76a12fa0be4b Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 29 Nov 2022 20:22:04 +0100 Subject: [PATCH 18/40] ClangTools: FilterDialog: Capture by copy A reference to buttonBox gets vahished after c'tor of FilterDialog finished. Capture by copy the buttonBox. Amends b72ae58629ec8b274ba25fc2596e74ed937dacb3 Fixes: QTCREATORBUG-28524 Change-Id: Id6eaf826243e307f26a91c4bd6386cf836bce111 Reviewed-by: Alessandro Portale --- src/plugins/clangtools/filterdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/clangtools/filterdialog.cpp b/src/plugins/clangtools/filterdialog.cpp index c302c86c8ba..3d4e9601570 100644 --- a/src/plugins/clangtools/filterdialog.cpp +++ b/src/plugins/clangtools/filterdialog.cpp @@ -94,7 +94,7 @@ FilterDialog::FilterDialog(const Checks &checks, QWidget *parent) buttonBox, }.attachTo(this); - connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [&] { + connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [=] { const bool hasSelection = !m_view->selectionModel()->selectedRows().isEmpty(); buttonBox->button(QDialogButtonBox::Ok)->setEnabled(hasSelection); }); From 05189a676f7481e043bf23afae7561b98195f1e0 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 30 Nov 2022 00:04:36 +0100 Subject: [PATCH 19/40] Squish: Init token variable Otherwise it may be uninitialized when while loop finishes immediately. Change-Id: I7638025813d4353abc864e106ef0e09c7c218409 Reviewed-by: Christian Stenger --- src/plugins/squish/squishxmloutputhandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/squish/squishxmloutputhandler.cpp b/src/plugins/squish/squishxmloutputhandler.cpp index 4c70f6e8761..c2e06babe6e 100644 --- a/src/plugins/squish/squishxmloutputhandler.cpp +++ b/src/plugins/squish/squishxmloutputhandler.cpp @@ -92,7 +92,7 @@ void SquishXmlOutputHandler::mergeResultFiles(const Utils::FilePaths &reportFile // and finally write test tag (case name) - the prolog tag (for test case) // will be written outside the if const QXmlStreamAttributes testAttributes = reader.attributes(); - QXmlStreamReader::TokenType token; + QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken; while (!reader.atEnd()) { token = reader.readNext(); if (token != QXmlStreamReader::Characters) From f3ce23230e596c6494cba583bbeb230909e11f79 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 30 Nov 2022 00:09:37 +0100 Subject: [PATCH 20/40] TextEditor: Init markWidth variable Otherwise some overrides of extraAreaWidth() may leave passed value unmodified and we may end up with uninitialized value. Change-Id: Ica89019fc2cff93f0bc7d784624730ec9d8c0224 Reviewed-by: David Schulz --- src/plugins/texteditor/texteditor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 56627add292..3594493013b 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -5886,7 +5886,7 @@ void TextEditorWidget::extraAreaMouseEvent(QMouseEvent *e) { QTextCursor cursor = cursorForPosition(QPoint(0, e->pos().y())); - int markWidth; + int markWidth = 0; extraAreaWidth(&markWidth); const bool inMarkArea = e->pos().x() <= markWidth && e->pos().x() >= 0; From 7373193584e1e7672ebaf5b4ad821e9e974a7b44 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 29 Nov 2022 14:58:50 +0100 Subject: [PATCH 21/40] Debugger: map reported breakpoint file locations Fixes: QTCREATORBUG-28521 Change-Id: I8229483df7fb0c51750e19d4558e81f5320e7f33 Reviewed-by: Christian Stenger --- src/plugins/debugger/cdb/cdbengine.cpp | 53 +++++++++++++++++- src/plugins/debugger/cdb/cdbengine.h | 1 + src/plugins/debugger/cdb/cdbparsehelpers.cpp | 58 -------------------- src/plugins/debugger/cdb/cdbparsehelpers.h | 4 -- 4 files changed, 52 insertions(+), 64 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index ca378158897..119292c959e 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -2872,6 +2872,56 @@ static void formatCdbBreakPointResponse(int modelId, const QString &responseId, str << '\n'; } + +// Helper to retrieve an int child from GDBMI +static inline std::optional gdbmiChildToInt(const GdbMi &parent, const char *childName) +{ + const GdbMi childBA = parent[childName]; + if (childBA.isValid()) { + bool ok; + const int v = childBA.data().toInt(&ok); + if (ok) + return v; + } + return std::nullopt; +} + +// Helper to retrieve an bool child from GDBMI +static inline std::optional gdbmiChildToBool(const GdbMi &parent, const char *childName) +{ + const GdbMi childBA = parent[childName]; + return childBA.isValid() ? std::make_optional(childBA.data() == "true") : std::nullopt; +} + +// Parse extension command listing breakpoints. +// Note that not all fields are returned, since file, line, function are encoded +// in the expression (that is in addition deleted on resolving for a bp-type breakpoint). +BreakpointParameters CdbEngine::parseBreakPoint(const GdbMi &gdbmi) +{ + BreakpointParameters result; + result.enabled = gdbmiChildToBool(gdbmi, "enabled").value_or(result.enabled); + result.pending = gdbmiChildToBool(gdbmi, "deferred").value_or(result.pending); + const GdbMi moduleG = gdbmi["module"]; + if (moduleG.isValid()) + result.module = moduleG.data(); + const GdbMi sourceFileName = gdbmi["srcfile"]; + if (sourceFileName.isValid()) { + NormalizedSourceFileName mappedFile = sourceMapNormalizeFileNameFromDebugger( + sourceFileName.data()); + result.fileName = Utils::FilePath::fromUserInput(mappedFile.fileName); + const GdbMi lineNumber = gdbmi["srcline"]; + if (lineNumber.isValid()) + result.lineNumber = lineNumber.data().toULongLong(nullptr, 0); + } + const GdbMi addressG = gdbmi["address"]; + if (addressG.isValid()) + result.address = addressG.data().toULongLong(nullptr, 0); + if (const std::optional ignoreCount = gdbmiChildToInt(gdbmi, "passcount")) + result.ignoreCount = *ignoreCount - 1; + result.threadSpec = gdbmiChildToInt(gdbmi, "thread").value_or(result.threadSpec); + return result; +} + void CdbEngine::handleBreakPoints(const DebuggerResponse &response) { if (debugBreakpoints) { @@ -2897,8 +2947,7 @@ void CdbEngine::handleBreakPoints(const DebuggerResponse &response) for (const GdbMi &breakPointG : response.data) { // Might not be valid if there is not id const QString responseId = breakPointG["id"].data(); - BreakpointParameters reportedResponse; - parseBreakPoint(breakPointG, &reportedResponse); + BreakpointParameters reportedResponse = parseBreakPoint(breakPointG); if (debugBreakpoints) qDebug(" Parsed %s: pending=%d %s\n", qPrintable(responseId), reportedResponse.pending, diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h index 108cc64d160..89c2fd63ec9 100644 --- a/src/plugins/debugger/cdb/cdbengine.h +++ b/src/plugins/debugger/cdb/cdbengine.h @@ -168,6 +168,7 @@ private: unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto); void mergeStartParametersSourcePathMap(); void checkQtSdkPdbFiles(const QString &module); + BreakpointParameters parseBreakPoint(const GdbMi &gdbmi); const QString m_tokenPrefix; void handleSetupFailure(const QString &errorMessage); diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.cpp b/src/plugins/debugger/cdb/cdbparsehelpers.cpp index d8bf3996d8d..f9e2d371cba 100644 --- a/src/plugins/debugger/cdb/cdbparsehelpers.cpp +++ b/src/plugins/debugger/cdb/cdbparsehelpers.cpp @@ -189,64 +189,6 @@ QString cdbClearBreakpointCommand(const Breakpoint &bp) return "bc " + QString::number(firstBreakPoint) + '-' + QString::number(lastBreakPoint); } -// Helper to retrieve an int child from GDBMI -static inline bool gdbmiChildToInt(const GdbMi &parent, const char *childName, int *target) -{ - const GdbMi childBA = parent[childName]; - if (childBA.isValid()) { - bool ok; - const int v = childBA.data().toInt(&ok); - if (ok) { - *target = v; - return true; - } - } - return false; -} - -// Helper to retrieve an bool child from GDBMI -static inline bool gdbmiChildToBool(const GdbMi &parent, const char *childName, bool *target) -{ - const GdbMi childBA = parent[childName]; - if (childBA.isValid()) { - *target = childBA.data() == "true"; - return true; - } - return false; -} - -// Parse extension command listing breakpoints. -// Note that not all fields are returned, since file, line, function are encoded -// in the expression (that is in addition deleted on resolving for a bp-type breakpoint). -void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r, - QString *expression /* = 0 */) -{ - gdbmiChildToBool(gdbmi, "enabled", &(r->enabled)); - gdbmiChildToBool(gdbmi, "deferred", &(r->pending)); - const GdbMi moduleG = gdbmi["module"]; - if (moduleG.isValid()) - r->module = moduleG.data(); - const GdbMi sourceFileName = gdbmi["srcfile"]; - if (sourceFileName.isValid()) { - r->fileName = Utils::FilePath::fromUserInput( - Utils::FileUtils::normalizedPathName(sourceFileName.data())); - const GdbMi lineNumber = gdbmi["srcline"]; - if (lineNumber.isValid()) - r->lineNumber = lineNumber.data().toULongLong(nullptr, 0); - } - if (expression) { - const GdbMi expressionG = gdbmi["expression"]; - if (expressionG.isValid()) - *expression = expressionG.data(); - } - const GdbMi addressG = gdbmi["address"]; - if (addressG.isValid()) - r->address = addressG.data().toULongLong(nullptr, 0); - if (gdbmiChildToInt(gdbmi, "passcount", &(r->ignoreCount))) - r->ignoreCount--; - gdbmiChildToInt(gdbmi, "thread", &(r->threadSpec)); -} - QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data) { QString cmd; diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.h b/src/plugins/debugger/cdb/cdbparsehelpers.h index 75018b08714..4c6a8170c9b 100644 --- a/src/plugins/debugger/cdb/cdbparsehelpers.h +++ b/src/plugins/debugger/cdb/cdbparsehelpers.h @@ -38,10 +38,6 @@ QString cdbAddBreakpointCommand(const BreakpointParameters &d, const QList > &sourcePathMapping, const QString &responseId = QString()); QString cdbClearBreakpointCommand(const Breakpoint &bp); -// Parse extension command listing breakpoints. -// Note that not all fields are returned, since file, line, function are encoded -// in the expression (that is in addition deleted on resolving for a bp-type breakpoint). -void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r, QString *expression = nullptr); // Write memory (f ...). QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data); From 69fef7480eb81bbcf659bc7538f7a1cd1cc499cd Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 30 Nov 2022 12:42:15 +0100 Subject: [PATCH 22/40] LanguageClient: prevent nullptr access Change-Id: Id0dc46d3775d5e765d1e7d2c2eac0d7f807f34ce Reviewed-by: Christian Stenger --- src/plugins/languageclient/languageclientmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index d4f5c442642..60468ff12de 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -419,7 +419,7 @@ void LanguageClientManager::openDocumentWithClient(TextEditor::TextDocument *doc client->openDocument(document); else client->activateDocument(document); - } else if (Core::EditorManager::currentEditor()->document() == document) { + } else if (Core::EditorManager::currentDocument() == document) { TextEditor::IOutlineWidgetFactory::updateOutline(); } } From d5b585dad650d2ce052f78d2f7de46614c83b934 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 29 Nov 2022 09:56:44 +0100 Subject: [PATCH 23/40] Debugger: Fix dumper for std::string from lib++ in GDB Fixes: QTCREATORBUG-28511 Change-Id: I56ca11c9a5f9b7a885bbaa0223bd2f47ea4abb4b Reviewed-by: Qt CI Bot Reviewed-by: hjk --- share/qtcreator/debugger/mac_stdtypes.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/debugger/mac_stdtypes.py b/share/qtcreator/debugger/mac_stdtypes.py index 9484e3d14bf..3f6fcbdb93c 100644 --- a/share/qtcreator/debugger/mac_stdtypes.py +++ b/share/qtcreator/debugger/mac_stdtypes.py @@ -165,8 +165,15 @@ def qdump__std____1__stack(d, value): def std_1_string_dumper(d, value): charType = value['__l']['__data_'].dereference().type + D = None - D = value[0][0][0][0] + try: # LLDB + D = value[0][0][0][0] + except: # GDB + try: # std::string + D = value[0].members(True)[0][0][0] + except: # std::u16string, std::u32string + D = value[2].members(True)[0][0][0] layoutDecider = D[0][0] if not layoutDecider: @@ -218,13 +225,14 @@ def std_1_string_dumper(d, value): if short_mode and location_sp: d.putCharArrayHelper(d.extractPointer(location_sp), size, - charType, d.currentItemFormat()) + charType, d.currentItemFormat()) else: d.putCharArrayHelper(location_sp.integer(), - size, charType, d.currentItemFormat()) + size, charType, d.currentItemFormat()) return + def qdump__std____1__string(d, value): std_1_string_dumper(d, value) From e0a563b236d53e0c768dc5b1894b058d9e4c4b69 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 29 Nov 2022 19:53:41 +0100 Subject: [PATCH 24/40] CMakePM: Migrate build environment settings also to configure step This allows a project to be properly configured with Qt Creator 9 when the build environment had user defined changes. Qt Creator version prior to 9 had one setting for both configure and build steps. Fixes: QTCREATORBUG-28372 Change-Id: I0da8065085bd6628ba75923c17b46648eb031801 Reviewed-by: Reviewed-by: Alessandro Portale --- .../cmakebuildconfiguration.cpp | 20 ++++++++++++++++--- .../projectexplorer/buildconfiguration.cpp | 13 ++++++------ .../projectexplorerconstants.h | 2 ++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index b5adf4bc09d..4b6ab55d4df 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1621,10 +1621,24 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map) m_buildSystem->setInitialCMakeArguments(cmd.splitArguments()); } - d->m_clearSystemConfigureEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)) - .toBool(); + // Upgrading from Qt Creator version <9 to 9, if the build environment is set + // apply the specific values to the configure environment + auto settingsKey = [map](const QLatin1String &configureKey, const QLatin1String &buildKey) { + if (!map.contains(configureKey) && map.contains(buildKey)) + return buildKey; + return configureKey; + }; + + const QLatin1String clearSystemEnvironmentKey + = settingsKey(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), + QLatin1String(ProjectExplorer::Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY)); + const QLatin1String userEnvironmentChangesKey + = settingsKey(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), + QLatin1String(ProjectExplorer::Constants::USER_ENVIRONMENT_CHANGES_KEY)); + + d->m_clearSystemConfigureEnvironment = map.value(clearSystemEnvironmentKey).toBool(); d->m_userConfigureEnvironmentChanges = EnvironmentItem::fromStringList( - map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + map.value(userEnvironmentChangesKey).toStringList()); updateAndEmitConfigureEnvironmentChanged(); diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index b858fdb4d46..a812eb13b2d 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -46,8 +46,6 @@ using namespace Utils; const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount"; const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList."; -const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment"; -const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"; const char CUSTOM_PARSERS_KEY[] = "ProjectExplorer.BuildConfiguration.CustomParsers"; const char PARSE_STD_OUT_KEY[] = "ProjectExplorer.BuildConfiguration.ParseStandardOutput"; @@ -378,8 +376,9 @@ QVariantMap BuildConfiguration::toMap() const { QVariantMap map = ProjectConfiguration::toMap(); - map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment); - map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(d->m_userEnvironmentChanges)); + map.insert(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment); + map.insert(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY), + EnvironmentItem::toStringList(d->m_userEnvironmentChanges)); map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2); map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap()); @@ -393,8 +392,10 @@ QVariantMap BuildConfiguration::toMap() const bool BuildConfiguration::fromMap(const QVariantMap &map) { - d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool(); - d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + d->m_clearSystemEnvironment = map.value(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY)) + .toBool(); + d->m_userEnvironmentChanges = EnvironmentItem::fromStringList( + map.value(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); updateCacheAndEmitEnvironmentChanged(); diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index ccdb0d44d3a..2ff240b4a3f 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -219,6 +219,8 @@ const char SETTINGS_MENU_HIDE_BUILD[] = "Menu/HideBuild"; const char SETTINGS_MENU_HIDE_DEBUG[] = "Menu/HideDebug"; const char SETTINGS_MENU_HIDE_ANALYZE[] = "Menu/HideAnalyze"; const char SESSION_TASKFILE_KEY[] = "TaskList.File"; +const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment"; +const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"; // UI texts PROJECTEXPLORER_EXPORT QString msgAutoDetected(); From a89dfe41b4307f18f199ebc92cdeecb29eb887d4 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 1 Dec 2022 16:14:18 +0100 Subject: [PATCH 25/40] Debugger: Add a test for more recent Debian gdb Change-Id: I960bf51b42c46ee67a8fc685a5c940747c797944 Reviewed-by: Christian Stenger --- tests/auto/debugger/tst_gdb.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/auto/debugger/tst_gdb.cpp b/tests/auto/debugger/tst_gdb.cpp index 804c7d63394..f4d5ffa6925 100644 --- a/tests/auto/debugger/tst_gdb.cpp +++ b/tests/auto/debugger/tst_gdb.cpp @@ -115,6 +115,14 @@ void tst_gdb::version_data() QTest::newRow("Debian 7.12 git") << "GNU gdb (Debian 7.12-6) 7.12.0.20161007-git" << 71200 << 6 << false << false; + + QTest::newRow("Debian 10.1 git") + << "GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git" + << 100100 << 1 << false << false; + + QTest::newRow("Ubuntu 22.04") + << "GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1" + << 120100 << 0 << false << false; } static QString chopConst(QString type) From b43f9fd0024239ac28a1c72c16b80581ce2c70e4 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 1 Dec 2022 08:07:51 +0100 Subject: [PATCH 26/40] McuSupport: Fix tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I17f4194f2e5be319e73834aa0f10e99821874c9a Reviewed-by: Reviewed-by: Sivert Krøvel Reviewed-by: Daniele Bortolotti Reviewed-by: Yasser Grimes Reviewed-by: Christian Stenger --- .../mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h | 2 +- .../mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h | 2 +- .../mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h | 2 +- .../mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h | 2 +- .../test/armgcc_stm32h750b_discovery_baremetal_json.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h index 4a7da4ccf93..8992d3f258d 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h @@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"( "id": "ARMGCC_CMAKE_TOOLCHAIN_FILE", "cmakeVar": "CMAKE_TOOLCHAIN_FILE", "type": "file", - "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake", + "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake", "visible": false, "optional": false } diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h index 592a84228d1..b4ad4c81cd9 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h @@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"( "id": "ARMGCC_CMAKE_TOOLCHAIN_FILE", "cmakeVar": "CMAKE_TOOLCHAIN_FILE", "type": "file", - "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake", + "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake", "visible": false, "optional": false } diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h index b7eb801cd60..6afb8df076f 100644 --- a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h @@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"( "id": "ARMGCC_CMAKE_TOOLCHAIN_FILE", "cmakeVar": "CMAKE_TOOLCHAIN_FILE", "type": "file", - "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake", + "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake", "visible": false, "optional": false } diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h index d6e28c6c429..e4bb862440f 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h @@ -62,7 +62,7 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"( "id": "ARMGCC_CMAKE_TOOLCHAIN_FILE", "cmakeVar": "CMAKE_TOOLCHAIN_FILE", "type": "file", - "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake", + "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake", "visible": false, "optional": false } diff --git a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h index a2819c8cf8a..4ef64b2a200 100644 --- a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h +++ b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h @@ -62,7 +62,7 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"( "id": "ARMGCC_CMAKE_TOOLCHAIN_FILE", "cmakeVar": "CMAKE_TOOLCHAIN_FILE", "type": "file", - "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake", + "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake", "visible": false, "optional": false } From e53a03a74e8ae03cf9a8946783d1e96535d4181a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20K=C3=B6hne?= Date: Wed, 30 Nov 2022 14:55:31 +0100 Subject: [PATCH 27/40] Doc: Fix link to Squish Also mention that Squish supports macOS applications. Change-Id: I890ff387324e9a4e51ef239242e29c57781f0dbc Reviewed-by: Leena Miettinen --- doc/qtcreator/src/howto/creator-only/creator-squish.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc b/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc index d6aafd4469e..a9a94cd3df8 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc @@ -8,8 +8,8 @@ \title Using Squish - \l{https://doc.froglogic.com/squish/latest/}{Squish} is an automated GUI - testing framework for testing Android, iOS, Java, Qt, Tk, Windows, and + \l{https://www.qt.io/product/quality-assurance/squish}{Squish} is an automated GUI + testing framework for testing Android, iOS, Java, \macos, Qt, Tk, Windows, and XView applications, as well as HTML-based web applications running in browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and Microsoft Internet Explorer and Edge. From 10a306b3f4d4c4e9c70e95fe1d38785dacd4a6c6 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 29 Nov 2022 21:22:22 +0100 Subject: [PATCH 28/40] DocumentModel: Fix possible use of deallocated memory Setting entry to nullptr inside DocumentModelPrivate::addEntry() sets it only locally inside this function, so the caller of addEntry will still hold the originally passed pointer. So, if the "if (previousEntry)" condition was hold, the caller of addEntry operates on deleted pointer. In order to fix it we return the valid pointer instead. Change-Id: I3e4a5c3532ca942c43ab422a238f0a19ebd41794 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/editormanager/documentmodel.cpp | 9 ++++----- src/plugins/coreplugin/editormanager/documentmodel_p.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp index c154ebb551e..8198a2a4762 100644 --- a/src/plugins/coreplugin/editormanager/documentmodel.cpp +++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp @@ -79,7 +79,7 @@ int DocumentModelPrivate::rowCount(const QModelIndex &parent) const return 0; } -void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) +DocumentModel::Entry *DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) { const Utils::FilePath filePath = entry->fileName(); @@ -95,9 +95,8 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) this, [this, document = previousEntry->document] { itemChanged(document); }); } delete entry; - entry = nullptr; disambiguateDisplayNames(previousEntry); - return; + return nullptr; } auto positions = positionEntry(m_entries, entry); @@ -115,6 +114,7 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) itemChanged(document); }); endInsertRows(); + return entry; } bool DocumentModelPrivate::disambiguateDisplayNames(DocumentModel::Entry *entry) @@ -411,8 +411,7 @@ DocumentModel::Entry *DocumentModelPrivate::addSuspendedDocument(const FilePath entry->document->setPreferredDisplayName(displayName); entry->document->setId(id); entry->isSuspended = true; - d->addEntry(entry); - return entry; + return d->addEntry(entry); } DocumentModel::Entry *DocumentModelPrivate::firstSuspendedEntry() diff --git a/src/plugins/coreplugin/editormanager/documentmodel_p.h b/src/plugins/coreplugin/editormanager/documentmodel_p.h index 560dd0d0bd0..7d44172688c 100644 --- a/src/plugins/coreplugin/editormanager/documentmodel_p.h +++ b/src/plugins/coreplugin/editormanager/documentmodel_p.h @@ -33,7 +33,7 @@ public: Qt::DropActions supportedDragActions() const override; QStringList mimeTypes() const override; - void addEntry(DocumentModel::Entry *entry); + DocumentModel::Entry *addEntry(DocumentModel::Entry *entry); void removeDocument(int idx); std::optional indexOfFilePath(const Utils::FilePath &filePath) const; From b88611f663f6262b02ff650c77dae7e62b573ccb Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 30 Nov 2022 15:16:01 +0100 Subject: [PATCH 29/40] Core: Fix capitalization of external tools dir Amends 451d02c88d3. Change-Id: I7e00c1f6262510f71d83a2f668b3b0353df6fce2 Reviewed-by: Reviewed-by: Christian Stenger Reviewed-by: Eike Ziller --- src/plugins/coreplugin/dialogs/externaltoolconfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index d9d03501d0f..f04fd3a4a53 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -752,7 +752,7 @@ void ExternalToolConfig::showInfoForItem(const QModelIndex &index) static FilePath getUserFilePath(const QString &proposalFileName) { const FilePath resourceDir(ICore::userResourcePath()); - const FilePath externalToolsDir = resourceDir / "externalTools"; + const FilePath externalToolsDir = resourceDir / "externaltools"; if (!externalToolsDir.isDir()) externalToolsDir.createDir(); From 6fbeb55817be9d68de11261a7b612b1dc5b89259 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 1 Dec 2022 10:43:02 +0100 Subject: [PATCH 30/40] Debugger: fix dumper test for QVariant Change-Id: I5512a568b5b7c4d9793df9cd233d3a8c4af4a982 Reviewed-by: Reviewed-by: Christian Stenger --- tests/auto/debugger/tst_dumpers.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 39ec743104c..752b22c2aa6 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -4061,15 +4061,15 @@ void tst_Dumpers::dumper_data() + Check("list.0", "[0]", "1", "int") + Check("list.1", "[1]", "2", "int") + Check("list.2", "[2]", "3", "int") - + Check("v3", "", "@QVariant (@QList)") % Qt5 + + Check("v3", "", "@QVariant (@QList)") % NeedsInferiorCall % Qt5 + Check("v3.data", "<3 items>", TypePattern(".*QList")) % NeedsInferiorCall % Qt5 + Check("v3.data.0", "[0]", "1", "int") % NeedsInferiorCall % Qt5 + Check("v3.data.1", "[1]", "2", "int") % NeedsInferiorCall % Qt5 + Check("v3.data.2", "[2]", "3", "int") % NeedsInferiorCall % Qt5 + Check("v3", "<3 items>", "@QVariant (@QList)") % Qt6 - + Check("v3.0", "[0]", "1", "int") % NeedsInferiorCall % Qt6 - + Check("v3.1", "[1]", "2", "int") % NeedsInferiorCall % Qt6 - + Check("v3.2", "[2]", "3", "int") % NeedsInferiorCall % Qt6; + + Check("v3.0", "[0]", "1", "int") % Qt6 + + Check("v3.1", "[1]", "2", "int") % Qt6 + + Check("v3.2", "[2]", "3", "int") % Qt6; QTest::newRow("QVariant2") From c37ee615a66caa674183a558ea955a15f74d2ed7 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 30 Nov 2022 14:47:49 +0100 Subject: [PATCH 31/40] ICore: Fix possible crash in raiseWindow() Don't call else branch with nullptr when window is nullptr. Amends 79be19a8a024e70c572ee351493d648d5cbb50ee Change-Id: I4c1ee3783d36374cbc6ad9555328b5737f2ce348 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Eike Ziller --- src/plugins/coreplugin/icore.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index 0ed4d4cc8a5..6d8a35b62c6 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -720,7 +720,9 @@ void ICore::raiseWindow(QWidget *widget) if (!widget) return; QWidget *window = widget->window(); - if (window && window == m_mainwindow) { + if (!window) + return; + if (window == m_mainwindow) { m_mainwindow->raiseWindow(); } else { window->raise(); From 1755f208fb16ed91f420a40ab42c506cce7dd9c6 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 30 Nov 2022 14:36:14 +0100 Subject: [PATCH 32/40] InfoBar: Ensure we don't access nullptr Change-Id: I4bd7019ea424c04cc1f1e130d76033175ac3a5bf Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: Eike Ziller --- src/libs/utils/infobar.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/infobar.cpp b/src/libs/utils/infobar.cpp index 13fca918f53..59bca4de703 100644 --- a/src/libs/utils/infobar.cpp +++ b/src/libs/utils/infobar.cpp @@ -374,8 +374,10 @@ void InfoBarDisplay::update() if (infoWidgetCloseButton) hbox->addWidget(infoWidgetCloseButton); } else { - infoWidgetCloseButton->setText(info.m_cancelButtonText); - hbox->addWidget(infoWidgetCloseButton); + if (infoWidgetCloseButton) { + infoWidgetCloseButton->setText(info.m_cancelButtonText); + hbox->addWidget(infoWidgetCloseButton); + } if (infoWidgetSuppressButton) hbox->addWidget(infoWidgetSuppressButton); } From 5649fc30caf5ae32164b859d058d91802d3a0efc Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 2 Dec 2022 16:45:40 +0100 Subject: [PATCH 33/40] main: Prevent GTK3 platform theme plugin from enforcing a dark palette Fixes: QTCREATORBUG-28497 Change-Id: Ib49b57aafe044d711940db3ea0e0778206221111 Reviewed-by: Cristian Adam --- src/app/main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/main.cpp b/src/app/main.cpp index e197f17393a..bdd80ed34e2 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -494,6 +494,11 @@ int main(int argc, char **argv) qputenv("QT_ENABLE_REGEXP_JIT", "0"); } + if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("GTK_THEME")) + // Work around QTCREATORBUG-28497: + // Prevent Qt's GTK3 platform theme plugin from enforcing a dark palette + qputenv("GTK_THEME", ":light"); + #if defined(QTC_FORCE_XCB) if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) { // Enforce XCB on Linux/Gnome, if the user didn't override via QT_QPA_PLATFORM From cc190110f53547b53ed59c46d8179b96f343a2fa Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 1 Dec 2022 13:54:44 +0100 Subject: [PATCH 34/40] Doc: Add Linux as a supported platform for MCUs Fixes: QTCREATORBUG-28551 Change-Id: I179e84bef57370f6c7616236aff33a969bc3bb17 Reviewed-by: Timo Aarnipuro Reviewed-by: Alessandro Portale --- .../overview/creator-only/creator-supported-platforms.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc index 6dfdf06c8e3..e7da4b12c7e 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc @@ -21,7 +21,7 @@ \li {3,1} Development Platform \header \li \l Linux - \li \l macOS + \li \l \macos \li \l Windows \row \li \l Android @@ -50,7 +50,7 @@ \li \row \li \l{Microcontroller Units (MCU)}{MCUs} - \li + \li \image ok.png \li \li \image ok.png \row From 6eed65e92a6033afda2ee3d4778876d47b8b17e2 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 1 Dec 2022 09:30:58 +0100 Subject: [PATCH 35/40] Doc: Update table of supported Qt for MCUs SDKs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTCREATORBUG-28543 Change-Id: I9bc73d24d4077f2b7ec0fbe8e7ab0299b81833a9 Reviewed-by: Sivert Krøvel Reviewed-by: Alessandro Portale --- doc/qtcreator/src/mcu/creator-mcu-dev.qdoc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc index efa148bfe25..2719aa3e4c8 100644 --- a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc +++ b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc @@ -175,19 +175,24 @@ \section1 Supported Qt for MCUs SDKs - Since version 7.0.0, \QC supports version 2.0 and later of the Qt for MCUs SDK. - For older versions, refer to the following table. + \note The Qt for MCUs SDK 2.3 requires \QC 9.0.0, or later. + + The following table lists the \QC versions you can use to develop + applications with particular Qt for MCUs SDK versions. \table \header \li \QC version \li Qt for MCUs SDK version \row - \li 7.0.0 or later + \li 9.0.0 or later \li 2.0 or later + \row + \li 7.0.0 up to 8.0.2 + \li 2.0 up to 2.2 \row \li 6.0.x - \li 1.3 or later, including 2.0 or later + \li 1.3 up to 2.2 \row \li 4.12.4 up to 5.0.3 \li 1.3 up to 1.9 From 9deef74d9ed1ac83664c138ec2ada88a1dc4c061 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Mon, 28 Nov 2022 19:16:08 +0100 Subject: [PATCH 36/40] CMakePM: Allow presets inherits for deeper hierarchies Fixes: QTCREATORBUG-28498 Change-Id: Idea5cdec6ad6acfba289dd77632770b7dfbf64f2 Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index ad4c685d3f5..ce490d17714 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -96,14 +96,24 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP for (const auto &p : presets) presetsHash.insert(p.name, p); - auto resolveInherits = [](const auto &presetsHash, auto &presetsList) { + auto resolveInherits = [](auto &presetsHash, auto &presetsList) { + Utils::sort(presetsList, [](const auto &left, const auto &right) { + if (left.inherits) { + if (left.inherits.value().contains(right.name)) + return false; + } + return true; + }); for (auto &p : presetsList) { if (!p.inherits) continue; - for (const QString &inheritFromName : p.inherits.value()) - if (presetsHash.contains(inheritFromName)) + for (const QString &inheritFromName : p.inherits.value()) { + if (presetsHash.contains(inheritFromName)) { p.inheritFrom(presetsHash[inheritFromName]); + presetsHash[p.name] = p; + } + } } }; From 36ebb4bf225f91ae42cd72082d5c95c46f0f484b Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 5 Dec 2022 15:03:03 +0100 Subject: [PATCH 37/40] CppEditor: Move "Show Preprocessed Source" action further down ... in the menus. Fixes: QTCREATORBUG-28537 Change-Id: I51b4a258da8d654521d0e32256a7143960898227 Reviewed-by: hjk --- src/plugins/cppeditor/cppeditorplugin.cpp | 35 +++++++++++------------ 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index 867223e15c1..15ad03d1d28 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -12,7 +12,6 @@ #include "cppeditordocument.h" #include "cppeditorwidget.h" #include "cppfilesettingspage.h" -#include "cpphighlighter.h" #include "cppincludehierarchy.h" #include "cppmodelmanager.h" #include "cppoutline.h" @@ -261,21 +260,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err connect(openInNextSplitAction, &QAction::triggered, this, [] { CppModelManager::switchHeaderSource(true); }); - QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this); - command = ActionManager::registerAction(showPreprocessedAction, - Constants::SHOW_PREPROCESSED_FILE, context); - mcpptools->addAction(command); - connect(showPreprocessedAction, &QAction::triggered, - this, [] { CppModelManager::showPreprocessedFile(false); }); - - QAction * const showPreprocessedInSplitAction = new QAction - (tr("Show Preprocessed Source in Next Split"), this); - command = ActionManager::registerAction(showPreprocessedInSplitAction, - Constants::SHOW_PREPROCESSED_FILE_SPLIT, context); - mcpptools->addAction(command); - connect(showPreprocessedInSplitAction, &QAction::triggered, - this, [] { CppModelManager::showPreprocessedFile(true); }); - MacroExpander *expander = globalMacroExpander(); expander->registerVariable("Cpp:LicenseTemplate", tr("The license template."), @@ -316,9 +300,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION); - cmd = ActionManager::command(Constants::SHOW_PREPROCESSED_FILE); - contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); - cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR); cmd->setTouchBarText(tr("Follow", "text on macOS touch bar")); contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); @@ -398,6 +379,22 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); cppToolsMenu->addAction(cmd); + QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this); + command = ActionManager::registerAction(showPreprocessedAction, + Constants::SHOW_PREPROCESSED_FILE, context); + mcpptools->addAction(command); + contextMenu->addAction(command, Constants::G_CONTEXT_FIRST); + connect(showPreprocessedAction, &QAction::triggered, + this, [] { CppModelManager::showPreprocessedFile(false); }); + + QAction * const showPreprocessedInSplitAction = new QAction + (tr("Show Preprocessed Source in Next Split"), this); + command = ActionManager::registerAction(showPreprocessedInSplitAction, + Constants::SHOW_PREPROCESSED_FILE_SPLIT, context); + mcpptools->addAction(command); + connect(showPreprocessedInSplitAction, &QAction::triggered, + this, [] { CppModelManager::showPreprocessedFile(true); }); + d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this); cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context); cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T"))); From d6484109b7b284f0da2e4fdf18881722c8a93b4a Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 5 Dec 2022 09:41:04 +0100 Subject: [PATCH 38/40] Add missing Q_OBJECT to PerfRunConfigurationAspect Without this we cannot identify the aspect when trying to retrieve the settings. Therefore, we always run without any settings, and in particular with an empty command line for perf. Fixes: QTCREATORBUG-28545 Change-Id: Ia419c939d57ff65eca4992faff02c121ca20c83f Reviewed-by: Reviewed-by: hjk --- src/plugins/perfprofiler/perfrunconfigurationaspect.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/perfprofiler/perfrunconfigurationaspect.h b/src/plugins/perfprofiler/perfrunconfigurationaspect.h index b0c06fa88d2..eaa4c4b7251 100644 --- a/src/plugins/perfprofiler/perfrunconfigurationaspect.h +++ b/src/plugins/perfprofiler/perfrunconfigurationaspect.h @@ -14,6 +14,7 @@ namespace PerfProfiler { class PERFPROFILER_EXPORT PerfRunConfigurationAspect : public ProjectExplorer::GlobalOrProjectAspect { + Q_OBJECT public: PerfRunConfigurationAspect(ProjectExplorer::Target *target); }; From 538b77e3769f394200cce66ff05ed4b0ebe6098f Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 6 Dec 2022 13:07:06 +0100 Subject: [PATCH 39/40] CompilationDatabasePM: Fix test on Windows Change-Id: Id771d3fbcb111ef3b8c4177981794c3bd841cedc Reviewed-by: Christian Kandeler --- .../compilationdatabasetests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp index fccdeb9af2f..1ed68ab5139 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp @@ -164,8 +164,8 @@ void CompilationDatabaseTests::testFilterArguments() {"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""}, {"QT_CREATOR", "1"}})); QCOMPARE(testData.fileKind, CppEditor::ProjectFile::Kind::CXXSource); - QCOMPARE(testData.sysRoot.toString(), HostOsInfo::isWindowsHost() ? QString("C:\\sysroot\\embedded") - : QString("/opt/sysroot/embedded")); + QCOMPARE(testData.sysRoot.toUserOutput(), HostOsInfo::isWindowsHost() + ? QString("C:\\sysroot\\embedded") : QString("/opt/sysroot/embedded")); } static QString kCmakeCommand From f93404d405ed86a1e9b9825bc61e6b36c97783fa Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Thu, 24 Nov 2022 16:09:24 +0100 Subject: [PATCH 40/40] CodeStyle: Fix loading settings at the start in codestylesettingspage Fixes: QTCREATORBUG-28450 Change-Id: I578c6cd102e4753d3af562986dad62e10e54d06d Reviewed-by: Christian Kandeler --- src/plugins/cppeditor/cppcodestylesettingspage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/cppeditor/cppcodestylesettingspage.cpp b/src/plugins/cppeditor/cppcodestylesettingspage.cpp index 225f8fcfdb3..6493c13589f 100644 --- a/src/plugins/cppeditor/cppcodestylesettingspage.cpp +++ b/src/plugins/cppeditor/cppcodestylesettingspage.cpp @@ -161,8 +161,8 @@ void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeSt slotCurrentPreferencesChanged(currentPreferences); }); - setTabSettings(m_preferences->tabSettings()); - setCodeStyleSettings(m_preferences->codeStyleSettings(), false); + setTabSettings(m_preferences->currentTabSettings()); + setCodeStyleSettings(m_preferences->currentCodeStyleSettings(), false); slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false); updatePreview();