summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2012-10-17 17:27:17 +0200
committerTobias Hunger <tobias.hunger@digia.com>2012-10-19 11:47:16 +0200
commitaedc4d6e3d579b515dac9ac2ca250f25ab548fea (patch)
tree44368f0579871ed710e6526dc1fe1a2a8347a114 /src
parent22327b0fa1e1e081d320aaa55867a998e5a3a2f8 (diff)
downloadqt-creator-aedc4d6e3d579b515dac9ac2ca250f25ab548fea.tar.gz
Kit: emit kitUpdated signals on changes to devices/toolchains/qt
That is even if the id did not change, but the actual objects for those ids changed. Change-Id: Ib176f18cf66b11436d046bf08a81db27fce458f9 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/kitinformation.cpp18
-rw-r--r--src/plugins/projectexplorer/kitinformation.h4
-rw-r--r--src/plugins/projectexplorer/kitmanager.cpp5
-rw-r--r--src/plugins/projectexplorer/kitmanager.h4
-rw-r--r--src/plugins/qtsupport/qtkitinformation.cpp13
-rw-r--r--src/plugins/qtsupport/qtkitinformation.h4
6 files changed, 48 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp
index 50c721c2e6..6d0b3a6406 100644
--- a/src/plugins/projectexplorer/kitinformation.cpp
+++ b/src/plugins/projectexplorer/kitinformation.cpp
@@ -130,6 +130,8 @@ ToolChainKitInformation::ToolChainKitInformation()
this, SIGNAL(validationNeeded()));
connect(ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)),
this, SIGNAL(validationNeeded()));
+ connect(ToolChainManager::instance(), SIGNAL(toolChainUpdated(ProjectExplorer::ToolChain*)),
+ this, SLOT(toolChainUpdated(ProjectExplorer::ToolChain*)));
}
Core::Id ToolChainKitInformation::dataId() const
@@ -235,6 +237,13 @@ QString ToolChainKitInformation::msgNoToolChainInTarget()
return tr("No compiler set in kit.");
}
+void ToolChainKitInformation::toolChainUpdated(ToolChain *tc)
+{
+ foreach (Kit *k, KitManager::instance()->kits())
+ if (toolChain(k) == tc)
+ notifyAboutUpdate(k);
+}
+
// --------------------------------------------------------------------------
// DeviceTypeInformation:
// --------------------------------------------------------------------------
@@ -317,6 +326,8 @@ DeviceKitInformation::DeviceKitInformation()
this, SIGNAL(validationNeeded()));
connect(DeviceManager::instance(), SIGNAL(deviceUpdated(Core::Id)),
this, SIGNAL(validationNeeded()));
+ connect(DeviceManager::instance(), SIGNAL(deviceUpdated(Core::Id)),
+ this, SLOT(deviceUpdated(Core::Id)));
}
Core::Id DeviceKitInformation::dataId() const
@@ -403,4 +414,11 @@ void DeviceKitInformation::setDeviceId(Kit *k, const Core::Id id)
k->setValue(Core::Id(DEVICE_INFORMATION), id.toString());
}
+void DeviceKitInformation::deviceUpdated(const Core::Id &id)
+{
+ foreach (Kit *k, KitManager::instance()->kits())
+ if (deviceId(k) == id)
+ notifyAboutUpdate(k);
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/kitinformation.h b/src/plugins/projectexplorer/kitinformation.h
index 6198a13347..3abb091eab 100644
--- a/src/plugins/projectexplorer/kitinformation.h
+++ b/src/plugins/projectexplorer/kitinformation.h
@@ -117,6 +117,8 @@ public:
static void setToolChain(Kit *k, ToolChain *tc);
static QString msgNoToolChainInTarget();
+private slots:
+ void toolChainUpdated(ProjectExplorer::ToolChain *tc);
};
class PROJECTEXPLORER_EXPORT ToolChainMatcher : public KitMatcher
@@ -207,6 +209,8 @@ public:
static Core::Id deviceId(const Kit *k);
static void setDevice(Kit *k, IDevice::ConstPtr dev);
static void setDeviceId(Kit *k, const Core::Id id);
+private slots:
+ void deviceUpdated(const Core::Id &id);
};
class PROJECTEXPLORER_EXPORT DeviceMatcher : public KitMatcher
diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp
index 8dbf709d0c..a9540c239c 100644
--- a/src/plugins/projectexplorer/kitmanager.cpp
+++ b/src/plugins/projectexplorer/kitmanager.cpp
@@ -459,4 +459,9 @@ QString KitInformation::displayNamePostfix(const Kit *k) const
return QString();
}
+void KitInformation::notifyAboutUpdate(Kit *k)
+{
+ KitManager::instance()->notifyAboutUpdate(k);
+}
+
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h
index ebad70b0fa..88bbcbd6a5 100644
--- a/src/plugins/projectexplorer/kitmanager.h
+++ b/src/plugins/projectexplorer/kitmanager.h
@@ -85,6 +85,9 @@ public:
virtual QString displayNamePostfix(const Kit *k) const;
+protected:
+ void notifyAboutUpdate(Kit *k);
+
signals:
void validationNeeded();
};
@@ -165,6 +168,7 @@ private:
friend class ProjectExplorerPlugin; // for constructor
friend class Kit;
friend class Internal::KitModel;
+ friend class KitInformation; // for notifyAbutUpdate
};
} // namespace ProjectExplorer
diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp
index 7b1e2326d8..40fef3c0aa 100644
--- a/src/plugins/qtsupport/qtkitinformation.cpp
+++ b/src/plugins/qtsupport/qtkitinformation.cpp
@@ -45,6 +45,8 @@ QtKitInformation::QtKitInformation()
setObjectName(QLatin1String("QtKitInformation"));
connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
this, SIGNAL(validationNeeded()));
+ connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
+ this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>)));
}
Core::Id QtKitInformation::dataId() const
@@ -166,6 +168,17 @@ void QtKitInformation::setQtVersion(ProjectExplorer::Kit *k, const BaseQtVersion
setQtVersionId(k, v->uniqueId());
}
+void QtKitInformation::qtVersionsChanged(const QList<int> &addedIds,
+ const QList<int> &removedIds,
+ const QList<int> &changedIds)
+{
+ Q_UNUSED(addedIds);
+ Q_UNUSED(removedIds);
+ foreach (ProjectExplorer::Kit *k, ProjectExplorer::KitManager::instance()->kits())
+ if (changedIds.contains(qtVersionId(k)))
+ notifyAboutUpdate(k);
+}
+
QtPlatformKitMatcher::QtPlatformKitMatcher(const QString &platform) :
m_platform(platform)
{ }
diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h
index c10457f92e..ac788e4745 100644
--- a/src/plugins/qtsupport/qtkitinformation.h
+++ b/src/plugins/qtsupport/qtkitinformation.h
@@ -66,6 +66,10 @@ public:
static void setQtVersionId(ProjectExplorer::Kit *k, const int id);
static BaseQtVersion *qtVersion(const ProjectExplorer::Kit *k);
static void setQtVersion(ProjectExplorer::Kit *k, const BaseQtVersion *v);
+private slots:
+ void qtVersionsChanged(const QList<int> &addedIds,
+ const QList<int> &removedIds,
+ const QList<int> &changedIds);
};
class QTSUPPORT_EXPORT QtPlatformKitMatcher : public ProjectExplorer::KitMatcher