summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-07-25 13:18:31 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-07-25 13:18:31 +0200
commit6896546ba5a6ae59416fe4f527294ba731235218 (patch)
treeb5b5c8b554f6dcdf391459d996100dbb265e55d1 /src/plugins/cpptools/cppmodelmanager.cpp
parente2ce17ef00218af3db35118b036ebf19834b86e8 (diff)
parent1dd9a54ab63d267268b6262b11c7b0189370f174 (diff)
downloadqt-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.cpp13
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