From 90c1c8f54d6c1cc6c05c8648f1f50b25663bd23e Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Tue, 2 Mar 2010 12:51:47 +0100 Subject: [PATCH] Cancel a previous update code model --- src/plugins/cpptools/cppmodelmanager.cpp | 4 ++-- src/plugins/cpptools/cppmodelmanager.h | 2 +- src/plugins/cpptools/cppmodelmanagerinterface.h | 3 ++- src/plugins/qt4projectmanager/qt4project.cpp | 4 ++-- src/plugins/qt4projectmanager/qt4project.h | 1 + 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 069b8e6c9dd..d374f813d75 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -781,8 +781,8 @@ CppModelManager::WorkingCopy CppModelManager::workingCopy() const return const_cast<CppModelManager *>(this)->buildWorkingCopyList(); } -void CppModelManager::updateSourceFiles(const QStringList &sourceFiles) -{ (void) refreshSourceFiles(sourceFiles); } +QFuture<void> CppModelManager::updateSourceFiles(const QStringList &sourceFiles) +{ return refreshSourceFiles(sourceFiles); } QList<CppModelManager::ProjectInfo> CppModelManager::projectInfos() const { diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index c6369f10f27..d77ba3c0a7a 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -87,7 +87,7 @@ public: CppModelManager(QObject *parent); virtual ~CppModelManager(); - virtual void updateSourceFiles(const QStringList &sourceFiles); + virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles); virtual WorkingCopy workingCopy() const; virtual QList<ProjectInfo> projectInfos() const; diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h index a08d874252a..771340dc8ed 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.h +++ b/src/plugins/cpptools/cppmodelmanagerinterface.h @@ -36,6 +36,7 @@ #include <QtCore/QHash> #include <QtCore/QPointer> #include <QtCore/QStringList> +#include <QtCore/QFuture> namespace ProjectExplorer { class Project; @@ -128,7 +129,7 @@ public: public Q_SLOTS: void updateModifiedSourceFiles(); - virtual void updateSourceFiles(const QStringList &sourceFiles) = 0; + virtual QFuture<void> updateSourceFiles(const QStringList &sourceFiles) = 0; virtual void GC() = 0; }; diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 68b7dc9b371..47ced1bdf3c 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -403,7 +403,7 @@ void Qt4Project::updateCodeModel() if (debug) qDebug()<<"Qt4Project::updateCodeModel()"; - // TODO cancel still running indexing + m_codeModelFuture.cancel(); if (!activeTarget() || !activeTarget()->activeBuildConfiguration()) return; @@ -576,7 +576,7 @@ void Qt4Project::updateCodeModel() pinfo.precompiledHeaders = allPrecompileHeaders; modelmanager->updateProjectInfo(pinfo); - modelmanager->updateSourceFiles(pinfo.sourceFiles); + m_codeModelFuture = modelmanager->updateSourceFiles(pinfo.sourceFiles); } } diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index f4d9d48cea4..7846370d3bc 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -235,6 +235,7 @@ private: QList<Internal::Qt4ProFileNode *> m_partialEvaluate; QMap<QString, Internal::CodeModelInfo> m_codeModelInfo; + QFuture<void> m_codeModelFuture; friend class Qt4ProjectFile; friend class Internal::Qt4ProjectConfigWidget; -- GitLab