diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 2d51465872c..3a1b895efbe 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -1462,6 +1462,16 @@ bool Qt4ProFileNode::validParse() const return m_validParse; } +void Qt4ProFileNode::setParseInProgressRecursive() +{ + m_parseInProgress = true; + foreach (ProjectNode *subNode, subProjectNodes()) { + if (Qt4ProFileNode *node = qobject_cast(subNode)) { + node->setParseInProgressRecursive(); + } + } +} + bool Qt4ProFileNode::parseInProgress() const { return m_parseInProgress; @@ -1469,7 +1479,7 @@ bool Qt4ProFileNode::parseInProgress() const void Qt4ProFileNode::scheduleUpdate() { - m_parseInProgress = true; + setParseInProgressRecursive(); emitProFileUpdated(); m_project->scheduleAsyncUpdate(this); } diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h index ccd659abe1f..d674a75899d 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.h +++ b/src/plugins/qt4projectmanager/qt4nodes.h @@ -353,6 +353,7 @@ public: bool hasBuildTargets(Qt4ProjectType projectType) const; + void setParseInProgressRecursive(); public slots: void asyncUpdate(); diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 2ac44e0fd6e..66bd9a68380 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -673,6 +673,7 @@ void Qt4Project::scheduleAsyncUpdate() m_cancelEvaluate = true; m_asyncUpdateState = AsyncFullUpdatePending; activeTarget()->activeBuildConfiguration()->setEnabled(false); + m_rootProjectNode->setParseInProgressRecursive(); m_rootProjectNode->emitProFileUpdated(); return; } @@ -681,6 +682,7 @@ void Qt4Project::scheduleAsyncUpdate() qDebug()<<" starting timer for full update, setting state to full update pending"; m_partialEvaluate.clear(); activeTarget()->activeBuildConfiguration()->setEnabled(false); + m_rootProjectNode->setParseInProgressRecursive(); m_rootProjectNode->emitProFileUpdated(); m_asyncUpdateState = AsyncFullUpdatePending; m_asyncUpdateTimer.start();