diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp index 8ef89ebb4315cea6fd8462bcce5132c0b98c79c6..16d84290a715847df8ed49b97508053bbffc47b3 100644 --- a/src/libs/qmljs/qmljsplugindumper.cpp +++ b/src/libs/qmljs/qmljsplugindumper.cpp @@ -515,8 +515,12 @@ void PluginDumper::loadQmltypesFile(const QStringList &qmltypesFilePaths, void PluginDumper::runQmlDump(const QmlJS::ModelManagerInterface::ProjectInfo &info, const QStringList &arguments, const QString &importPath) { + QDir wd = QDir(importPath); + wd.cdUp(); QProcess *process = new QProcess(this); process->setEnvironment(info.qmlDumpEnvironment.toStringList()); + QString workingDir = wd.canonicalPath(); + process->setWorkingDirectory(workingDir); connect(process, static_cast<void (QProcess::*)(int)>(&QProcess::finished), this, &PluginDumper::qmlPluginTypeDumpDone); connect(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), @@ -567,7 +571,7 @@ void PluginDumper::dump(const Plugin &plugin) args << QLatin1String("-nonrelocatable"); args << plugin.importUri; args << plugin.importVersion; - args << plugin.importPath; + args << (plugin.importPath.isEmpty() ? QLatin1String(".") : plugin.importPath); runQmlDump(info, args, plugin.qmldirPath); }