diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 9ef22349f1460c5f4f2e73bd95edb7228fea81c6..53b8d047b05cd3cb31b8e1efb953a4eb4c368233 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 8c60de1a38b2415e2f2f4ffd782fda15341c2149..d949424c5c9bc0a515f17caf4ad641ee67864c7d 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 f43f7c6129157db22a4b95a83c3a99f22ad4f797..4377731d4eb94e9062157471d48f06363ded2994 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 706e574f87470cda426e60c8a0e1de449816d40c..0f502227dc973a3c657d60df89c5710e211e9e2e 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 548c4026886ff6d14092c6b678a15dbd1f755e4b..0b2afe68ac096c57ae8f2fb69fdb748a197abee2 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(); }