From 124bb7aad7e8aac2430a185abff35f1097efaa89 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Fri, 16 Apr 2010 13:08:59 +0200 Subject: [PATCH] Emit extra signals to have the task manager show issues on project-load. --- src/plugins/qmljseditor/qmljseditor.cpp | 2 +- src/plugins/qmljseditor/qmljsmodelmanager.cpp | 13 ++++++++----- src/plugins/qmljseditor/qmljsmodelmanager.h | 6 ++++-- .../qmljseditor/qmljsmodelmanagerinterface.h | 3 ++- src/plugins/qmlprojectmanager/qmlproject.cpp | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 9ef22349f14..53b8d047b05 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -714,7 +714,7 @@ void QmlJSTextEditor::updateDocumentNow() const QString fileName = file()->fileName(); - m_modelManager->updateSourceFiles(QStringList() << fileName); + m_modelManager->updateSourceFiles(QStringList() << fileName, false); } static void appendExtraSelectionsForMessages( diff --git a/src/plugins/qmljseditor/qmljsmodelmanager.cpp b/src/plugins/qmljseditor/qmljsmodelmanager.cpp index 8c60de1a38b..d949424c5c9 100644 --- a/src/plugins/qmljseditor/qmljsmodelmanager.cpp +++ b/src/plugins/qmljseditor/qmljsmodelmanager.cpp @@ -97,12 +97,14 @@ Snapshot ModelManager::snapshot() const return _snapshot; } -void ModelManager::updateSourceFiles(const QStringList &files) +void ModelManager::updateSourceFiles(const QStringList &files, + bool emitDocumentOnDiskChanged) { - refreshSourceFiles(files); + refreshSourceFiles(files, emitDocumentOnDiskChanged); } -QFuture<void> ModelManager::refreshSourceFiles(const QStringList &sourceFiles) +QFuture<void> ModelManager::refreshSourceFiles(const QStringList &sourceFiles, + bool emitDocumentOnDiskChanged) { if (sourceFiles.isEmpty()) { return QFuture<void>(); @@ -112,7 +114,8 @@ QFuture<void> ModelManager::refreshSourceFiles(const QStringList &sourceFiles) QFuture<void> result = QtConcurrent::run(&ModelManager::parse, workingCopy, sourceFiles, - this, false); + this, + emitDocumentOnDiskChanged); if (m_synchronizer.futures().size() > 10) { QList<QFuture<void> > futures = m_synchronizer.futures(); @@ -393,7 +396,7 @@ void ModelManager::setProjectImportPaths(const QStringList &importPaths) foreach (const Document::Ptr &doc, snapshot) findNewLibraryImports(doc, snapshot, this, &importedFiles, &scannedPaths); - updateSourceFiles(importedFiles); + updateSourceFiles(importedFiles, true); } QStringList ModelManager::importPaths() const diff --git a/src/plugins/qmljseditor/qmljsmodelmanager.h b/src/plugins/qmljseditor/qmljsmodelmanager.h index f43f7c61291..4377731d4eb 100644 --- a/src/plugins/qmljseditor/qmljsmodelmanager.h +++ b/src/plugins/qmljseditor/qmljsmodelmanager.h @@ -54,7 +54,8 @@ public: ModelManager(QObject *parent = 0); virtual QmlJS::Snapshot snapshot() const; - virtual void updateSourceFiles(const QStringList &files); + virtual void updateSourceFiles(const QStringList &files, + bool emitDocumentOnDiskChanged); virtual void fileChangedOnDisk(const QString &path); void emitDocumentUpdated(QmlJS::Document::Ptr doc); @@ -82,7 +83,8 @@ protected: QString contents; }; - QFuture<void> refreshSourceFiles(const QStringList &sourceFiles); + QFuture<void> refreshSourceFiles(const QStringList &sourceFiles, + bool emitDocumentOnDiskChanged); QMap<QString, WorkingCopy> buildWorkingCopyList(); static void parse(QFutureInterface<void> &future, diff --git a/src/plugins/qmljseditor/qmljsmodelmanagerinterface.h b/src/plugins/qmljseditor/qmljsmodelmanagerinterface.h index 706e574f874..0f502227dc9 100644 --- a/src/plugins/qmljseditor/qmljsmodelmanagerinterface.h +++ b/src/plugins/qmljseditor/qmljsmodelmanagerinterface.h @@ -53,7 +53,8 @@ public: virtual ~ModelManagerInterface(); virtual QmlJS::Snapshot snapshot() const = 0; - virtual void updateSourceFiles(const QStringList &files) = 0; + virtual void updateSourceFiles(const QStringList &files, + bool emitDocumentOnDiskChanged) = 0; virtual void fileChangedOnDisk(const QString &path) = 0; virtual void setProjectImportPaths(const QStringList &importPaths) = 0; diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 548c4026886..0b2afe68ac0 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -106,7 +106,7 @@ void QmlProject::parseProject(RefreshOptions options) } if (m_projectItem) { m_projectItem.data()->setSourceDirectory(projectDir().path()); - m_modelManager->updateSourceFiles(m_projectItem.data()->files()); + m_modelManager->updateSourceFiles(m_projectItem.data()->files(), true); } m_rootNode->refresh(); } -- GitLab