diff --git a/src/plugins/cmakeprojectmanager/cmakekitconfigwidget.cpp b/src/plugins/cmakeprojectmanager/cmakekitconfigwidget.cpp
index e83f71fcdee..5810dc7b16b 100644
--- a/src/plugins/cmakeprojectmanager/cmakekitconfigwidget.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakekitconfigwidget.cpp
@@ -344,13 +344,20 @@ void CMakeConfigurationKitConfigWidget::editConfigurationChanges()
"separated from the variable value by \"=\".
"
"You may provide a type hint by adding \":TYPE\" before the \"=\"."));
- QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Apply|QDialogButtonBox::Cancel);
+ auto buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Apply
+ |QDialogButtonBox::Reset|QDialogButtonBox::Cancel);
layout->addWidget(m_editor);
layout->addWidget(buttons);
connect(buttons, &QDialogButtonBox::accepted, m_dialog, &QDialog::accept);
connect(buttons, &QDialogButtonBox::rejected, m_dialog, &QDialog::reject);
+ connect(buttons, &QDialogButtonBox::clicked, m_dialog, [buttons, this](QAbstractButton *button) {
+ if (button != buttons->button(QDialogButtonBox::Reset))
+ return;
+ CMakeConfigurationKitInformation::setConfiguration(kit(),
+ CMakeConfigurationKitInformation::defaultConfiguration(kit()));
+ });
connect(m_dialog, &QDialog::accepted, this, &CMakeConfigurationKitConfigWidget::acceptChangesDialog);
connect(m_dialog, &QDialog::rejected, this, &CMakeConfigurationKitConfigWidget::closeChangesDialog);
connect(buttons->button(QDialogButtonBox::Apply), &QAbstractButton::clicked,
diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
index 5a8440a1b8b..d165c837300 100644
--- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp
@@ -314,15 +314,22 @@ void CMakeConfigurationKitInformation::fromStringList(Kit *k, const QStringList
setConfiguration(k, result);
}
+CMakeConfig CMakeConfigurationKitInformation::defaultConfiguration(const Kit *k)
+{
+ Q_UNUSED(k);
+ CMakeConfig config;
+ config << CMakeConfigItem(CMAKE_QMAKE_KEY, "%{Qt:qmakeExecutable}");
+ config << CMakeConfigItem(CMAKE_TOOLCHAIN_KEY, "%{Compiler:Executable}");
+
+ return config;
+}
+
QVariant CMakeConfigurationKitInformation::defaultValue(const Kit *k) const
{
Q_UNUSED(k);
// FIXME: Convert preload scripts
- CMakeConfig config;
- config << CMakeConfigItem(CMAKE_QMAKE_KEY, "%{Qt:qmakeExecutable}");
- config << CMakeConfigItem(CMAKE_TOOLCHAIN_KEY, "%{Compiler:Executable}");
-
+ CMakeConfig config = defaultConfiguration(k);
const QStringList tmp
= Utils::transform(config, [](const CMakeConfigItem &i) { return i.toString(); });
return tmp;
diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.h b/src/plugins/cmakeprojectmanager/cmakekitinformation.h
index 9a008d134f5..ede702dc6fd 100644
--- a/src/plugins/cmakeprojectmanager/cmakekitinformation.h
+++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.h
@@ -84,6 +84,8 @@ public:
static QStringList toStringList(const ProjectExplorer::Kit *k);
static void fromStringList(ProjectExplorer::Kit *k, const QStringList &in);
+ static CMakeConfig defaultConfiguration(const ProjectExplorer::Kit *k);
+
// KitInformation interface
QVariant defaultValue(const ProjectExplorer::Kit *k) const override;
QList validate(const ProjectExplorer::Kit *k) const override;