diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index dff840d5def..2c7469d1f4f 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -232,6 +232,7 @@ QStringList QmlJSTools::qmlAndJsGlobPatterns() ModelManager::ModelManager(QObject *parent): ModelManagerInterface(parent), + m_shouldScanImports(false), m_pluginDumper(new PluginDumper(this)) { m_synchronizer.setCancelOnWait(true); @@ -380,6 +381,20 @@ QFuture ModelManager::refreshSourceFiles(const QStringList &sourceFiles, if (sourceFiles.count() > 1) ProgressManager::addTask(result, tr("Indexing"), Constants::TASK_INDEX); + if (sourceFiles.count() > 1 && !m_shouldScanImports) { + bool scan = false; + { + QMutexLocker l(&m_mutex); + if (!m_shouldScanImports) { + m_shouldScanImports = true; + scan = true; + } + } + if (scan) + updateImportPaths(); + } + + return result; } @@ -1113,6 +1128,8 @@ void ModelManager::updateImportPaths() updateSourceFiles(importedFiles, true); + if (!m_shouldScanImports) + return; QStringList pathToScan; { QMutexLocker l(&m_mutex); diff --git a/src/plugins/qmljstools/qmljsmodelmanager.h b/src/plugins/qmljstools/qmljsmodelmanager.h index 6d30d536e24..13c291e77fc 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.h +++ b/src/plugins/qmljstools/qmljsmodelmanager.h @@ -179,6 +179,7 @@ private: QmlJS::QmlLanguageBundles m_activeBundles; QmlJS::QmlLanguageBundles m_extendedBundles; QmlJS::ViewerContext m_vContext; + bool m_shouldScanImports; QSet m_scannedPaths; QTimer *m_updateCppQmlTypesTimer;