summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-05-02 10:00:20 +0200
committerEike Ziller <eike.ziller@digia.com>2014-05-02 10:00:20 +0200
commit0fb641c90e64054a28a39e3f48d96f953399805a (patch)
tree504f097db01334a87316f8e825f1db0cba6bfba1 /src/libs/qmljs/qmljsmodelmanagerinterface.cpp
parentf4520bafaccb0832266f8d88f254e910ed7a23f4 (diff)
parent4b2cc015f867941a7ae35a38d81ec9daa5616711 (diff)
downloadqt-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.cpp66
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