diff options
-rw-r--r-- | src/plugins/projectexplorer/kitmanagerconfigwidget.cpp | 7 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanagerconfigwidget.h | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmodel.cpp | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 9839367fe71..46cba9ab1c6 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -160,10 +160,13 @@ QIcon KitManagerConfigWidget::icon() const void KitManagerConfigWidget::apply() { const auto copyIntoKit = [this](Kit *k) { k->copyFrom(m_modifiedKit.get()); }; - if (m_kit) + if (m_kit) { copyIntoKit(m_kit); - else + } else { + m_isRegistering = true; m_kit = KitManager::registerKit(copyIntoKit); + m_isRegistering = false; + } if (m_isDefaultKit) KitManager::setDefaultKit(m_kit); emit dirty(); diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h index 8617a118cf5..9eda98582d9 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h @@ -65,6 +65,7 @@ public: Kit *workingCopy() const; bool configures(Kit *k) const; + bool isRegistering() const { return m_isRegistering; } void setIsDefaultKit(bool d); bool isDefaultKit() const; void removeKit(); @@ -104,6 +105,7 @@ private: bool m_isDefaultKit = false; bool m_fixingKit = false; bool m_hasUniqueName = true; + bool m_isRegistering = false; QList<QAction *> m_actions; mutable QString m_cachedDisplayName; }; diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp index 7795f3f02cf..5e9f1ad561c 100644 --- a/src/plugins/projectexplorer/kitmodel.cpp +++ b/src/plugins/projectexplorer/kitmodel.cpp @@ -309,7 +309,7 @@ void KitModel::addKit(Kit *k) { for (TreeItem *n : *m_manualRoot) { // Was added by us - if (static_cast<KitNode *>(n)->widget->configures(k)) + if (static_cast<KitNode *>(n)->widget->isRegistering()) return; } |