diff options
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index b26bb706e6..b7abbe2d2d 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -556,23 +556,31 @@ void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo) return; ProjectExplorer::Project *project = pinfo.project().data(); + ProjectInfo oldProjectInfo = m_projects.value(project); + if (oldProjectInfo.isValid()) { + foreach (const ProjectPart::Ptr &projectPart, oldProjectInfo.projectParts()) { + foreach (const ProjectFile &cxxFile, projectPart->files) { + foreach (const QString &fileName, + m_snapshot.allIncludesForDocument(cxxFile.path)) { + m_snapshot.remove(fileName); + } + m_snapshot.remove(cxxFile.path); + } + } + } + m_snapshot.remove(configurationFileName()); + m_projects.insert(project, pinfo); m_dirty = true; m_srcToProjectPart.clear(); - foreach (const ProjectInfo &projectInfo, m_projects) { foreach (const ProjectPart::Ptr &projectPart, projectInfo.projectParts()) { foreach (const ProjectFile &cxxFile, projectPart->files) { m_srcToProjectPart[cxxFile.path].append(projectPart); - foreach (const QString &fileName, m_snapshot.allIncludesForDocument(cxxFile.path)) - m_snapshot.remove(fileName); - m_snapshot.remove(cxxFile.path); } } } - - m_snapshot.remove(configurationFileName()); } if (!qgetenv("QTCREATOR_DUMP_PROJECT_INFO").isEmpty()) |