diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index d928291a7daa4ac5afe8016facfa7ce0732e8b7f..5c7c7e83dc7f7c48fd97799653cbc7171a7b6109 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -131,16 +131,7 @@ void QmlProject::refresh(RefreshOptions options) QmlJS::ModelManagerInterface::ProjectInfo pinfo(this); pinfo.sourceFiles = files(); pinfo.importPaths = importPaths(); - pinfo.qmlDumpPath = Qt4ProjectManager::QmlDumpTool::qmlDumpPath(this); - - if (activeTarget()) { - if (const QmlProjectRunConfiguration *runConfig = - qobject_cast<QmlProjectRunConfiguration*>(activeTarget()->activeRunConfiguration())) { - if (runConfig->qtVersion()) { - pinfo.qmlDumpEnvironment = runConfig->qtVersion()->qmlToolsEnvironment(); - } - } - } + Qt4ProjectManager::QmlDumpTool::pathAndEnvironment(this, &pinfo.qmlDumpPath, &pinfo.qmlDumpEnvironment); m_modelManager->updateProjectInfo(pinfo); } diff --git a/src/plugins/qt4projectmanager/qmldumptool.cpp b/src/plugins/qt4projectmanager/qmldumptool.cpp index 13e6486c410fed7b577d97bb102fd17b3461c386..64deddcf256ba466c8d7771f0bf46e0fb09b5ccc 100644 --- a/src/plugins/qt4projectmanager/qmldumptool.cpp +++ b/src/plugins/qt4projectmanager/qmldumptool.cpp @@ -272,7 +272,7 @@ QStringList QmlDumpTool::installDirectories(const QString &qtInstallData) return directories; } -QString QmlDumpTool::qmlDumpPath(ProjectExplorer::Project *project) +void QmlDumpTool::pathAndEnvironment(ProjectExplorer::Project *project, QString *dumperPath, Utils::Environment *env) { QString path; @@ -292,7 +292,7 @@ QString QmlDumpTool::qmlDumpPath(ProjectExplorer::Project *project) Core::ICore::instance()->progressManager()->addTask(task, taskName, QLatin1String("Qt4ProjectManager::BuildHelpers")); } - return path; + return; } if (!path.isEmpty()) { @@ -306,7 +306,10 @@ QString QmlDumpTool::qmlDumpPath(ProjectExplorer::Project *project) } } - return path; + if (!path.isEmpty() && version && dumperPath && env) { + *dumperPath = path; + *env = version->qmlToolsEnvironment(); + } } } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qmldumptool.h b/src/plugins/qt4projectmanager/qmldumptool.h index 13fbe483d3560bb75d881eb052e8d632022e6298..2716f25c7e25fd2470092c72260bed7f9745957b 100644 --- a/src/plugins/qt4projectmanager/qmldumptool.h +++ b/src/plugins/qt4projectmanager/qmldumptool.h @@ -61,7 +61,7 @@ public: // Copy the source files to a target location and return the chosen target location. static QString copy(const QString &qtInstallData, QString *errorMessage); - static QString qmlDumpPath(ProjectExplorer::Project *project); + static void pathAndEnvironment(ProjectExplorer::Project *project, QString *path, Utils::Environment *env); private: static QStringList installDirectories(const QString &qtInstallData); diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index a233fb639fc31066e725f49ad660c7ae64c7a929..5fbbc83c40eba2528a5463ac0cafec432d3ac38f 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -597,10 +597,9 @@ void Qt4Project::updateQmlJSCodeModel() const QString qtVersionImportPath = qtVersion->versionInfo().value("QT_INSTALL_IMPORTS"); if (!qtVersionImportPath.isEmpty()) projectInfo.importPaths += qtVersionImportPath; - projectInfo.qmlDumpEnvironment = qtVersion->qmlToolsEnvironment(); - projectInfo.qmlDumpPath = QmlDumpTool::qmlDumpPath(this); } } + QmlDumpTool::pathAndEnvironment(this, &projectInfo.qmlDumpPath, &projectInfo.qmlDumpEnvironment); projectInfo.importPaths.removeDuplicates(); modelManager->updateProjectInfo(projectInfo);