diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 9b4ba73449de8bdd1ebf4a65f2ca2a6aa7fe1f61..5670cc939d8e0b0e7cf161d20665cb2e34ec6bb3 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -1308,6 +1308,20 @@ QStringList Qt4ProFileNode::variableValue(const Qt4Variable var) const return m_varValues.value(var); } +void Qt4ProFileNode::emitProFileUpdated() +{ + foreach (NodesWatcher *watcher, watchers()) + if (Qt4NodesWatcher *qt4Watcher = qobject_cast<Qt4NodesWatcher*>(watcher)) + emit qt4Watcher->proFileUpdated(this, m_validParse); + + foreach (ProjectNode *subNode, subProjectNodes()) { + if (Qt4ProFileNode *node = qobject_cast<Qt4ProFileNode *>(subNode)) { + node->emitProFileUpdated(); + } + } +} + + void Qt4ProFileNode::emitProFileInvalidated() { foreach (NodesWatcher *watcher, watchers()) diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h index 222d18dfcc169a0cfe6d72a469aaa7079e2d3c6c..b31adea4bb5775e546a3e88bf56e4284772bdf4c 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.h +++ b/src/plugins/qt4projectmanager/qt4nodes.h @@ -299,6 +299,7 @@ public: void scheduleUpdate(); void emitProFileInvalidated(); + void emitProFileUpdated(); bool validParse() const; diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 1e0555e596baf84d9e2f13f87c374dc29dc51c0d..7daee0592f754b491731660f0701e4ee21aabead 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -331,12 +331,6 @@ bool Qt4Project::fromMap(const QVariantMap &map) setSupportedTargetIds(QtVersionManager::instance()->supportedTargetIds()); - // Setup Qt versions supported (== possible targets). - connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), - this, SLOT(onAddedTarget(ProjectExplorer::Target*))); - - connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), - this, SLOT(qtVersionsChanged())); connect(m_nodesWatcher, SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode*,bool)), this, SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode *,bool))); @@ -344,6 +338,17 @@ bool Qt4Project::fromMap(const QVariantMap &map) connect(m_nodesWatcher, SIGNAL(proFileInvalidated(Qt4ProjectManager::Internal::Qt4ProFileNode*)), this, SIGNAL(proFileInvalidated(Qt4ProjectManager::Internal::Qt4ProFileNode*))); + // Now we emit update once :) + m_rootProjectNode->emitProFileUpdated(); + + + // Setup Qt versions supported (== possible targets). + connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), + this, SLOT(onAddedTarget(ProjectExplorer::Target*))); + + connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + this, SLOT(qtVersionsChanged())); + connect(this, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), this, SLOT(activeTargetWasChanged()));