diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp index 62a13e42244..aa08ec044d3 100644 --- a/src/libs/qmljs/qmljsplugindumper.cpp +++ b/src/libs/qmljs/qmljsplugindumper.cpp @@ -120,14 +120,7 @@ void PluginDumper::onLoadBuiltinTypes(const QmlJS::ModelManagerInterface::Projec return; } - // run qmldump - QProcess *process = new QProcess(this); - process->setEnvironment(info.qmlDumpEnvironment.toStringList()); - connect(process, SIGNAL(finished(int)), SLOT(qmlPluginTypeDumpDone(int))); - connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError))); - QStringList args(QLatin1String("--builtins")); - process->start(info.qmlDumpPath, args); - m_runningQmldumps.insert(process, baseImportsPath); + runQmlDump(info, QStringList(QLatin1String("--builtins")), baseImportsPath); m_qtToInfo.insert(baseImportsPath, info); } @@ -416,6 +409,17 @@ void PluginDumper::loadQmltypesFile(const QStringList &qmltypesFilePaths, m_modelManager->updateLibraryInfo(libraryPath, libraryInfo); } +void PluginDumper::runQmlDump(const QmlJS::ModelManagerInterface::ProjectInfo &info, + const QStringList &arguments, const QString &importPath) +{ + QProcess *process = new QProcess(this); + process->setEnvironment(info.qmlDumpEnvironment.toStringList()); + connect(process, SIGNAL(finished(int)), SLOT(qmlPluginTypeDumpDone(int))); + connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError))); + process->start(info.qmlDumpPath, arguments); + m_runningQmldumps.insert(process, importPath); +} + void PluginDumper::dump(const Plugin &plugin) { ModelManagerInterface::ProjectInfo info = m_modelManager->defaultProjectInfo(); @@ -453,18 +457,13 @@ void PluginDumper::dump(const Plugin &plugin) return; } - QProcess *process = new QProcess(this); - process->setEnvironment(info.qmlDumpEnvironment.toStringList()); - connect(process, SIGNAL(finished(int)), SLOT(qmlPluginTypeDumpDone(int))); - connect(process, SIGNAL(error(QProcess::ProcessError)), SLOT(qmlPluginTypeDumpError(QProcess::ProcessError))); QStringList args; if (info.qmlDumpHasRelocatableFlag) args << QLatin1String("-nonrelocatable"); args << plugin.importUri; args << plugin.importVersion; args << plugin.importPath; - process->start(info.qmlDumpPath, args); - m_runningQmldumps.insert(process, plugin.qmldirPath); + runQmlDump(info, args, plugin.qmldirPath); } /*! diff --git a/src/libs/qmljs/qmljsplugindumper.h b/src/libs/qmljs/qmljsplugindumper.h index bb3e26ed36f..7a936317514 100644 --- a/src/libs/qmljs/qmljsplugindumper.h +++ b/src/libs/qmljs/qmljsplugindumper.h @@ -74,6 +74,7 @@ private: QStringList typeInfoPaths; }; + void runQmlDump(const QmlJS::ModelManagerInterface::ProjectInfo &info, const QStringList &arguments, const QString &importPath); void dump(const Plugin &plugin); void loadQmltypesFile(const QStringList &qmltypesFilePaths, const QString &libraryPath,