summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp20
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())