aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2024-02-05 12:16:55 +0100
committerCristian Adam <cristian.adam@qt.io>2024-02-06 18:23:51 +0000
commit86b6d852b448d40fc87e82a5c7c6990a06969283 (patch)
treec253c7bbc8081194b5192bd5b7eb3b57a9656648 /src/plugins/projectexplorer
parentc06dfdb237a2eda55c5affcfba1e337c67c6f755 (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.h3
-rw-r--r--src/plugins/projectexplorer/targetsettingspanel.cpp1
-rw-r--r--src/plugins/projectexplorer/targetsetuppage.cpp13
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();
}