forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
#include "cmakeprocess.h"
|
#include "cmakeprocess.h"
|
||||||
#include "cmakeproject.h"
|
#include "cmakeproject.h"
|
||||||
#include "cmakeprojectconstants.h"
|
#include "cmakeprojectconstants.h"
|
||||||
|
#include "cmakeprojectimporter.h"
|
||||||
#include "cmakeprojectmanagertr.h"
|
#include "cmakeprojectmanagertr.h"
|
||||||
#include "cmakeprojectnodes.h"
|
#include "cmakeprojectnodes.h"
|
||||||
#include "cmakespecificsettings.h"
|
#include "cmakespecificsettings.h"
|
||||||
@@ -362,6 +363,8 @@ void CMakeManager::reloadCMakePresets()
|
|||||||
|
|
||||||
project->setOldPresetKits(oldKits);
|
project->setOldPresetKits(oldKits);
|
||||||
|
|
||||||
|
emit project->projectImporter()->cmakePresetsUpdated();
|
||||||
|
|
||||||
Core::ModeManager::activateMode(ProjectExplorer::Constants::MODE_SESSION);
|
Core::ModeManager::activateMode(ProjectExplorer::Constants::MODE_SESSION);
|
||||||
Core::ModeManager::setFocusToCurrentMode();
|
Core::ModeManager::setFocusToCurrentMode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ public:
|
|||||||
void addProject(Kit *k) const;
|
void addProject(Kit *k) const;
|
||||||
void removeProject(Kit *k) const;
|
void removeProject(Kit *k) const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void cmakePresetsUpdated();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
class UpdateGuard
|
class UpdateGuard
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "project.h"
|
#include "project.h"
|
||||||
#include "projectexplorericons.h"
|
#include "projectexplorericons.h"
|
||||||
#include "projectexplorertr.h"
|
#include "projectexplorertr.h"
|
||||||
|
#include "projectimporter.h"
|
||||||
#include "projectmanager.h"
|
#include "projectmanager.h"
|
||||||
#include "projectwindow.h"
|
#include "projectwindow.h"
|
||||||
#include "runsettingspropertiespage.h"
|
#include "runsettingspropertiespage.h"
|
||||||
|
|||||||
@@ -368,9 +368,22 @@ void TargetSetupPage::setProjectImporter(ProjectImporter *importer)
|
|||||||
if (d->m_widgetsWereSetUp)
|
if (d->m_widgetsWereSetUp)
|
||||||
d->reset(); // Reset before changing the importer!
|
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_importer = importer;
|
||||||
d->m_importWidget->setVisible(d->m_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)
|
if (d->m_widgetsWereSetUp)
|
||||||
initializePage();
|
initializePage();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user