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