diff options
author | Cristian Adam <cristian.adam@qt.io> | 2024-02-05 12:16:55 +0100 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2024-02-06 18:23:51 +0000 |
commit | 86b6d852b448d40fc87e82a5c7c6990a06969283 (patch) | |
tree | c253c7bbc8081194b5192bd5b7eb3b57a9656648 /src/plugins/projectexplorer | |
parent | c06dfdb237a2eda55c5affcfba1e337c67c6f755 (diff) |
CMakePM: Allow CMake peset kits refresh without configuring first
This allows the user to reload the presets kits after editing
CMakePresets.json without configuring the project first.
Fixes: QTCREATORBUG-30238
Change-Id: Id448dd8e821591f6357ec9618f114733c13a3121
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r-- | src/plugins/projectexplorer/projectimporter.h | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/targetsettingspanel.cpp | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/targetsetuppage.cpp | 13 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/projectimporter.h b/src/plugins/projectexplorer/projectimporter.h index 1bb19fc239..3e67f09c06 100644 --- a/src/plugins/projectexplorer/projectimporter.h +++ b/src/plugins/projectexplorer/projectimporter.h @@ -47,6 +47,9 @@ public: void addProject(Kit *k) const; void removeProject(Kit *k) const; +signals: + void cmakePresetsUpdated(); + protected: class UpdateGuard { diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 77aa3d51dd..5e593a5e65 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -12,6 +12,7 @@ #include "project.h" #include "projectexplorericons.h" #include "projectexplorertr.h" +#include "projectimporter.h" #include "projectmanager.h" #include "projectwindow.h" #include "runsettingspropertiespage.h" diff --git a/src/plugins/projectexplorer/targetsetuppage.cpp b/src/plugins/projectexplorer/targetsetuppage.cpp index 406ddcb76d..5e67d29132 100644 --- a/src/plugins/projectexplorer/targetsetuppage.cpp +++ b/src/plugins/projectexplorer/targetsetuppage.cpp @@ -368,9 +368,22 @@ void TargetSetupPage::setProjectImporter(ProjectImporter *importer) if (d->m_widgetsWereSetUp) d->reset(); // Reset before changing the importer! + if (d->m_importer) { + disconnect(d->m_importer, &ProjectImporter::cmakePresetsUpdated, + this, &TargetSetupPage::initializePage); + } + + d->m_importer = importer; d->m_importWidget->setVisible(d->m_importer); + if (d->m_importer) { + // FIXME: Needed for the refresh of CMake preset kits created by + // CMakeProjectImporter + connect(d->m_importer, &ProjectImporter::cmakePresetsUpdated, + this, &TargetSetupPage::initializePage); + } + if (d->m_widgetsWereSetUp) initializePage(); } |