diff options
author | Eike Ziller <eike.ziller@digia.com> | 2014-05-02 10:00:20 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2014-05-02 10:00:20 +0200 |
commit | 0fb641c90e64054a28a39e3f48d96f953399805a (patch) | |
tree | 504f097db01334a87316f8e825f1db0cba6bfba1 /src/libs/qmljs/qmljsmodelmanagerinterface.cpp | |
parent | f4520bafaccb0832266f8d88f254e910ed7a23f4 (diff) | |
parent | 4b2cc015f867941a7ae35a38d81ec9daa5616711 (diff) | |
download | qt-creator-0fb641c90e64054a28a39e3f48d96f953399805a.tar.gz |
Merge remote-tracking branch 'origin/3.1'
Conflicts:
qtcreator.pri
qtcreator.qbs
src/libs/qmljs/qmljsmodelmanagerinterface.cpp
src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
Change-Id: Ie216b715d6f87a6d72d3b8fe3d4e777e561579f9
Diffstat (limited to 'src/libs/qmljs/qmljsmodelmanagerinterface.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 66 |
1 files changed, 36 insertions, 30 deletions
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index 079116239a..5cb7b0a163 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -963,6 +963,41 @@ QmlLanguageBundles ModelManagerInterface::extendedBundles() const return m_extendedBundles; } +void ModelManagerInterface::maybeScan(const QStringList &importPaths, + Language::Enum defaultLanguage) +{ + QStringList pathToScan; + { + QMutexLocker l(&m_mutex); + foreach (QString importPath, importPaths) + if (!m_scannedPaths.contains(importPath)) { + pathToScan.append(importPath); + } + } + + if (pathToScan.count() > 1) { + QFuture<void> result = QtConcurrent::run(&ModelManagerInterface::importScan, + workingCopyInternal(), pathToScan, + this, defaultLanguage, + true); + + if (m_synchronizer.futures().size() > 10) { + QList<QFuture<void> > futures = m_synchronizer.futures(); + + m_synchronizer.clearFutures(); + + foreach (const QFuture<void> &future, futures) { + if (! (future.isFinished() || future.isCanceled())) + m_synchronizer.addFuture(future); + } + } + + m_synchronizer.addFuture(result); + + addTaskInternal(result, tr("Scanning QML Imports"), Constants::TASK_IMPORT_SCAN); + } +} + void ModelManagerInterface::updateImportPaths() { QStringList allImportPaths; @@ -1026,36 +1061,7 @@ void ModelManagerInterface::updateImportPaths() if (!m_shouldScanImports) return; - QStringList pathToScan; - { - QMutexLocker l(&m_mutex); - foreach (QString importPath, allImportPaths) - if (!m_scannedPaths.contains(importPath)) { - pathToScan.append(importPath); - } - } - - if (pathToScan.count() > 1) { - QFuture<void> result = QtConcurrent::run(&ModelManagerInterface::importScan, - workingCopyInternal(), pathToScan, - this, Language::Qml, - true); - - if (m_synchronizer.futures().size() > 10) { - QList<QFuture<void> > futures = m_synchronizer.futures(); - - m_synchronizer.clearFutures(); - - foreach (const QFuture<void> &future, futures) { - if (! (future.isFinished() || future.isCanceled())) - m_synchronizer.addFuture(future); - } - } - - m_synchronizer.addFuture(result); - - addTaskInternal(result, tr("Scanning QML Imports"), Constants::TASK_IMPORT_SCAN); - } + maybeScan(allImportPaths, Language::Qml); } ModelManagerInterface::ProjectInfo ModelManagerInterface::defaultProjectInfo() const |