aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/projectexplorer/kit.cpp6
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.cpp5
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.h1
-rw-r--r--src/plugins/projectexplorer/kitmodel.cpp28
-rw-r--r--src/plugins/projectexplorer/kitmodel.h1
5 files changed, 40 insertions, 1 deletions
diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp
index 7fae069f369..b1247fd2eb4 100644
--- a/src/plugins/projectexplorer/kit.cpp
+++ b/src/plugins/projectexplorer/kit.cpp
@@ -582,16 +582,19 @@ QString Kit::toHtml(const QList<Task> &additional) const
void Kit::setAutoDetected(bool detected)
{
d->m_autodetected = detected;
+ kitUpdated();
}
void Kit::setAutoDetectionSource(const QString &autoDetectionSource)
{
d->m_autoDetectionSource = autoDetectionSource;
+ kitUpdated();
}
void Kit::setSdkProvided(bool sdkProvided)
{
d->m_sdkProvided = sdkProvided;
+ kitUpdated();
}
void Kit::makeSticky()
@@ -608,11 +611,13 @@ void Kit::setSticky(Core::Id id, bool b)
d->m_sticky.insert(id);
else
d->m_sticky.remove(id);
+ kitUpdated();
}
void Kit::makeUnSticky()
{
d->m_sticky.clear();
+ kitUpdated();
}
void Kit::setMutable(Id id, bool b)
@@ -621,6 +626,7 @@ void Kit::setMutable(Id id, bool b)
d->m_mutable.insert(id);
else
d->m_mutable.remove(id);
+ kitUpdated();
}
bool Kit::isMutable(Id id) const
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
index 408a567aa7d..375b0fb3933 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
@@ -354,8 +354,11 @@ void KitManagerConfigWidget::workingCopyWasUpdated(Kit *k)
void KitManagerConfigWidget::kitWasUpdated(Kit *k)
{
- if (m_kit == k)
+ if (m_kit == k) {
+ bool emitSignal = m_kit->isAutoDetected() != m_modifiedKit->isAutoDetected();
discard();
+ emit isAutoDetectedChanged();
+ }
updateVisibility();
}
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
index 28879d97672..750ed14eab4 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
@@ -77,6 +77,7 @@ public:
signals:
void dirty();
+ void isAutoDetectedChanged();
private slots:
void setIcon();
diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp
index f484be85589..69df6f362e8 100644
--- a/src/plugins/projectexplorer/kitmodel.cpp
+++ b/src/plugins/projectexplorer/kitmodel.cpp
@@ -279,6 +279,31 @@ void KitModel::setDirty()
}
}
+void KitModel::isAutoDetectedChanged()
+{
+ KitManagerConfigWidget *w = qobject_cast<KitManagerConfigWidget *>(sender());
+ int idx = -1;
+ idx = Utils::indexOf(m_manualRoot->childNodes, [w](KitNode *node) { return node->widget == w; });
+ KitNode *oldParent = 0;
+ KitNode *newParent = w->workingCopy()->isAutoDetected() ? m_autoRoot : m_manualRoot;
+ if (idx != -1) {
+ oldParent = m_manualRoot;
+ } else {
+ idx = Utils::indexOf(m_autoRoot->childNodes, [w](KitNode *node) { return node->widget == w; });
+ if (idx != -1) {
+ oldParent = m_autoRoot;
+ }
+ }
+
+ if (oldParent && oldParent != newParent) {
+ beginMoveRows(index(oldParent), idx, idx, index(newParent), newParent->childNodes.size());
+ KitNode *n = oldParent->childNodes.takeAt(idx);
+ n->parent = newParent;
+ newParent->childNodes.append(n);
+ endMoveRows();
+ }
+}
+
void KitModel::validateKitNames()
{
QList<KitNode *> nodes = m_manualRoot->childNodes;
@@ -395,6 +420,9 @@ KitNode *KitModel::createNode(KitNode *parent, Kit *k)
KitNode *node = new KitNode(parent, k);
m_parentLayout->addWidget(node->widget);
connect(node->widget, SIGNAL(dirty()), this, SLOT(setDirty()));
+ connect(node->widget, SIGNAL(isAutoDetectedChanged()),
+ this, SLOT(isAutoDetectedChanged()));
+
return node;
}
diff --git a/src/plugins/projectexplorer/kitmodel.h b/src/plugins/projectexplorer/kitmodel.h
index 2cde469b3f2..772a5ed3835 100644
--- a/src/plugins/projectexplorer/kitmodel.h
+++ b/src/plugins/projectexplorer/kitmodel.h
@@ -97,6 +97,7 @@ private slots:
void changeDefaultKit();
void setDirty();
void validateKitNames();
+ void isAutoDetectedChanged();
private:
QModelIndex index(KitNode *, int column = 0) const;