diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 9ba0c28a040..59e2da87b84 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -36,6 +36,7 @@ #include "qmakerunconfigurationfactory.h" #include +#include #include #include #include @@ -771,6 +772,10 @@ void QmakePriFileNode::update(const Internal::PriFileEvalResult &result) } contents.updateSubFolders(this); + if (!m_setCurrentNodeDelayed.isEmpty()) { + ProjectExplorer::ProjectExplorerPlugin::setCurrentFile(m_project, m_setCurrentNodeDelayed); + m_setCurrentNodeDelayed.clear(); + } } void QmakePriFileNode::watchFolders(const QSet &folders) @@ -1112,6 +1117,7 @@ bool QmakePriFileNode::renameFile(const QString &filePath, const QString &newFil changeFiles(mt.type(), QStringList() << newFilePath, &dummy, AddToProFile); if (!dummy.isEmpty() && !changeProFileOptional) return false; + m_setCurrentNodeDelayed = newFilePath; return true; } diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h index 64939735bcc..461446f1b7b 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.h +++ b/src/plugins/qmakeprojectmanager/qmakenodes.h @@ -240,6 +240,7 @@ private: QSet m_recursiveEnumerateFiles; QSet m_watchedFolders; bool m_includedInExactParse; + QString m_setCurrentNodeDelayed; // managed by QmakeProFileNode friend class QmakeProjectManager::QmakeProFileNode;