diff options
author | Daniel Teske <daniel.teske@digia.com> | 2012-10-17 17:27:17 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@digia.com> | 2012-10-19 11:47:16 +0200 |
commit | aedc4d6e3d579b515dac9ac2ca250f25ab548fea (patch) | |
tree | 44368f0579871ed710e6526dc1fe1a2a8347a114 /src | |
parent | 22327b0fa1e1e081d320aaa55867a998e5a3a2f8 (diff) | |
download | qt-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.cpp | 18 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitinformation.h | 4 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanager.cpp | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/kitmanager.h | 4 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtkitinformation.cpp | 13 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtkitinformation.h | 4 |
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 |