From 5e1debe9f4ddddec2b651e3fdad5ae68d667f9ed Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 28 Sep 2016 17:49:50 +0200 Subject: [PATCH] QmlDesigner: Adding support for QML_DESIGNER_IMPORT_PATH in .pro file The user can set QML_DESIGNER_IMPORT_PATH to define a qml import path just for qml2puppet. Change-Id: Ic9dac4cf478c9d0f8d6e066d6a9a481500cc5497 Reviewed-by: Tim Jenssen --- .../qmakeprojectmanager/qmakenodes.cpp | 2 ++ src/plugins/qmakeprojectmanager/qmakenodes.h | 1 + .../designercore/instances/puppetcreator.cpp | 25 +++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 5dc8800f1aa..616f14a0026 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -2010,6 +2010,8 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input) result->newVarValues[ConfigVar] = input.readerExact->values(QLatin1String("CONFIG")); result->newVarValues[QmlImportPathVar] = input.readerExact->absolutePathValues( QLatin1String("QML_IMPORT_PATH"), input.projectDir); + result->newVarValues[QmlDesignerImportPathVar] = input.readerExact->absolutePathValues( + QLatin1String("QML_DESIGNER_IMPORT_PATH"), input.projectDir); result->newVarValues[Makefile] = input.readerExact->values(QLatin1String("MAKEFILE")); result->newVarValues[QtVar] = input.readerExact->values(QLatin1String("QT")); result->newVarValues[ObjectExt] = input.readerExact->values(QLatin1String("QMAKE_EXT_OBJ")); diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h index 376c718cb27..8d8d651c3fe 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.h +++ b/src/plugins/qmakeprojectmanager/qmakenodes.h @@ -94,6 +94,7 @@ enum QmakeVariable { ConfigVar, QtVar, QmlImportPathVar, + QmlDesignerImportPathVar, Makefile, ObjectExt, ObjectsDir, diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp index e927c49f054..d9642abbed5 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include #include #include @@ -388,6 +390,21 @@ QProcessEnvironment PuppetCreator::processEnvironment() const } QStringList importPaths = m_model->importPaths(); + + + if (m_currentProject) { + for (const QString &fileName : m_currentProject->files(ProjectExplorer::Project::SourceFiles)) { + QFileInfo fileInfo(fileName); + if (fileInfo.fileName() == "qtquickcontrols2.conf") + environment.appendOrSet("QT_QUICK_CONTROLS_CONF", fileName); + } + QmakeProjectManager::QmakeProject *qmakeProject = qobject_cast(m_currentProject); + if (qmakeProject) { + QStringList designerImports = qmakeProject->rootProjectNode()->variableValue(QmakeProjectManager::QmlDesignerImportPathVar); + importPaths.append(designerImports); + } + } + if (m_availablePuppetType == FallbackPuppet) importPaths.append(QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath)); if (m_availablePuppetType != FallbackPuppet) @@ -398,14 +415,6 @@ QProcessEnvironment PuppetCreator::processEnvironment() const qCInfo(puppetStart) << "Puppet import paths:" << importPaths; qCInfo(puppetStart) << "Puppet environment:" << environment.toStringList(); - if (m_currentProject) { - for (const QString &fileName : m_currentProject->files(ProjectExplorer::Project::SourceFiles)) { - QFileInfo fileInfo(fileName); - if (fileInfo.fileName() == "qtquickcontrols2.conf") - environment.appendOrSet("QT_QUICK_CONTROLS_CONF", fileName); - } - } - return environment.toProcessEnvironment(); }