summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@digia.com>2014-04-08 11:36:03 +0200
committerFawzi Mohamed <fawzi.mohamed@digia.com>2014-04-30 15:12:54 +0200
commitde594fdee0974f6566ed1afec757abf8ff2b0873 (patch)
treee7580de31a617f7cb85895f3463d25154176355f /src/libs/qmljs/qmljsmodelmanagerinterface.cpp
parent0e43633183ad9bbf90424faef51dc7af952687d8 (diff)
downloadqt-creator-de594fdee0974f6566ed1afec757abf8ff2b0873.tar.gz
qmljs: split scan function
allows to more easily scan the various qml dialects Change-Id: I9f8c44459e05e4658d3814c624e0f07762c83279 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
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 c7acf47495..84ad6ad0ce 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("QML import scan"), 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("QML import scan"), Constants::TASK_IMPORT_SCAN);
- }
+ maybeScan(allImportPaths, Language::Qml);
}
ModelManagerInterface::ProjectInfo ModelManagerInterface::defaultProjectInfo() const