From c09c5ec988c00b4596c1d921abb9b658571a025e Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Tue, 2 Nov 2010 16:39:45 +0100 Subject: [PATCH] Qt4ProjectManager: Emit correct state once on restoring --- src/plugins/qt4projectmanager/qt4nodes.cpp | 14 ++++++++++++++ src/plugins/qt4projectmanager/qt4nodes.h | 1 + src/plugins/qt4projectmanager/qt4project.cpp | 17 +++++++++++------ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 9b4ba73449d..5670cc939d8 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 222d18dfcc1..b31adea4bb5 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 1e0555e596b..7daee0592f7 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())); -- GitLab