diff options
author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-07-25 13:18:31 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-07-25 13:18:31 +0200 |
commit | 6896546ba5a6ae59416fe4f527294ba731235218 (patch) | |
tree | b5b5c8b554f6dcdf391459d996100dbb265e55d1 /src/plugins/cpptools/cppmodelmanager.cpp | |
parent | e2ce17ef00218af3db35118b036ebf19834b86e8 (diff) | |
parent | 1dd9a54ab63d267268b6262b11c7b0189370f174 (diff) | |
download | qt-creator-6896546ba5a6ae59416fe4f527294ba731235218.tar.gz |
Merge remote-tracking branch 'origin/2.8'
Conflicts:
src/plugins/cpptools/cppmodelmanager.cpp
Change-Id: I0e69dfad951eb81d8008f5ca05e8fb6999ae2c8a
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index a88ce01cc3..82616e7be4 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -547,17 +547,24 @@ CppModelManager::ProjectInfo CppModelManager::projectInfo(ProjectExplorer::Proje return m_projects.value(project, ProjectInfo(project)); } -void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo) +QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo &pinfo) { { // only hold the mutex for a limited scope, so the dumping afterwards can aquire it without deadlocking. QMutexLocker locker(&m_projectMutex); if (!pinfo.isValid()) - return; + return QFuture<void>(); ProjectExplorer::Project *project = pinfo.project().data(); ProjectInfo oldProjectInfo = m_projects.value(project); if (oldProjectInfo.isValid()) { + if (pinfo.defines() == oldProjectInfo.defines() + && pinfo.includePaths() == oldProjectInfo.includePaths() + && pinfo.frameworkPaths() == oldProjectInfo.frameworkPaths() + && pinfo.sourceFiles() == oldProjectInfo.sourceFiles()) { + return QFuture<void>(); + } + foreach (const ProjectPart::Ptr &projectPart, oldProjectInfo.projectParts()) { foreach (const ProjectFile &cxxFile, projectPart->files) { foreach (const QString &fileName, @@ -587,6 +594,8 @@ void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo) dumpModelManagerConfiguration(); emit projectPartsUpdated(pinfo.project().data()); + + return updateSourceFiles(pinfo.sourceFiles(), ForcedProgressNotification); } QList<ProjectPart::Ptr> CppModelManager::projectPart(const QString &fileName) const |