summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2015-01-22 17:36:53 +0200
committerBogDan Vatra <bogdan@kde.org>2015-01-23 16:28:05 +0100
commitf23a5fc41d6d961db1174ffb27c051a4c4792133 (patch)
tree0878cb8dfa1b27319b59b7acdc23eebfa3d6ea8a
parent56dab9e9313a85d5b148bdf80e2871d6a55aabee (diff)
downloadqt-creator-f23a5fc41d6d961db1174ffb27c051a4c4792133.tar.gz
Set QML[2]_IMPORT_PATH evn variable when running qml[2]puppet
qml[2]puppet can't use any QML plugin that are defined in your .pro file (using QML_IMPORT_PATH) unless we don't specify it. Change-Id: I0fffb8a5da1023565fa9fce5cd4cf38f098a0df1 Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp15
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp24
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.h10
3 files changed, 29 insertions, 20 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index 442bcc4c77..3f3eb9ae0a 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -123,32 +123,29 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV
m_runModus(runModus),
m_synchronizeId(-1)
{
- PuppetCreator puppetCreator(kit, QString());
-
QString socketToken(QUuid::createUuid().toString());
m_localServer->listen(socketToken);
m_localServer->setMaxPendingConnections(3);
PuppetCreator::QmlPuppetVersion puppetVersion = hasQtQuick1(nodeInstanceView) ? PuppetCreator::Qml1Puppet : PuppetCreator::Qml2Puppet;
+ PuppetCreator puppetCreator(kit, QString(), nodeInstanceView->model(), puppetVersion);
+
- puppetCreator.createPuppetExecutableIfMissing(puppetVersion);
+ puppetCreator.createPuppetExecutableIfMissing();
- m_qmlPuppetEditorProcess = puppetCreator.createPuppetProcess(puppetVersion,
- "editormode",
+ m_qmlPuppetEditorProcess = puppetCreator.createPuppetProcess("editormode",
socketToken,
this,
SLOT(printEditorProcessOutput()),
SLOT(processFinished(int,QProcess::ExitStatus)));
if (runModus == NormalModus) {
- m_qmlPuppetRenderProcess = puppetCreator.createPuppetProcess(puppetVersion,
- "rendermode",
+ m_qmlPuppetRenderProcess = puppetCreator.createPuppetProcess("rendermode",
socketToken,
this,
SLOT(printRenderProcessOutput()),
SLOT(processFinished(int,QProcess::ExitStatus)));
- m_qmlPuppetPreviewProcess = puppetCreator.createPuppetProcess(puppetVersion,
- "previewmode",
+ m_qmlPuppetPreviewProcess = puppetCreator.createPuppetProcess("previewmode",
socketToken,
this,
SLOT(printPreviewProcessOutput()),
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
index 258a4d62d1..075b3f8b3c 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
@@ -114,10 +114,12 @@ bool PuppetCreator::useOnlyFallbackPuppet() const
|| !qgetenv("USE_ONLY_FALLBACK_PUPPET").isEmpty() || m_kit == 0 || !m_kit->isValid();
}
-PuppetCreator::PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion)
+PuppetCreator::PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion, const Model *model, QmlPuppetVersion puppetVersion)
: m_qtCreatorVersion(qtCreatorVersion),
m_kit(kit),
- m_availablePuppetType(FallbackPuppet)
+ m_availablePuppetType(FallbackPuppet),
+ m_model(model),
+ m_puppetVersion(puppetVersion)
{
}
@@ -125,18 +127,18 @@ PuppetCreator::~PuppetCreator()
{
}
-void PuppetCreator::createPuppetExecutableIfMissing(PuppetCreator::QmlPuppetVersion puppetVersion)
+void PuppetCreator::createPuppetExecutableIfMissing()
{
- if (puppetVersion == Qml1Puppet)
+ if (m_puppetVersion == Qml1Puppet)
createQml1PuppetExecutableIfMissing();
else
createQml2PuppetExecutableIfMissing();
}
-QProcess *PuppetCreator::createPuppetProcess(PuppetCreator::QmlPuppetVersion puppetVersion, const QString &puppetMode, const QString &socketToken, QObject *handlerObject, const char *outputSlot, const char *finishSlot) const
+QProcess *PuppetCreator::createPuppetProcess(const QString &puppetMode, const QString &socketToken, QObject *handlerObject, const char *outputSlot, const char *finishSlot) const
{
QString puppetPath;
- if (puppetVersion == Qml1Puppet)
+ if (m_puppetVersion == Qml1Puppet)
puppetPath = qmlPuppetPath(m_availablePuppetType);
else
puppetPath = qml2PuppetPath(m_availablePuppetType);
@@ -332,13 +334,21 @@ QString PuppetCreator::qmlPuppetPath(PuppetType puppetType) const
QProcessEnvironment PuppetCreator::processEnvironment() const
{
+#if defined(Q_OS_WIN)
+ static QLatin1String pathSep(";");
+#else
+ static QLatin1String pathSep(":");
+#endif
Utils::Environment environment = Utils::Environment::systemEnvironment();
if (!useOnlyFallbackPuppet())
m_kit->addToEnvironment(environment);
environment.set("QML_BAD_GUI_RENDER_LOOP", "true");
environment.set("QML_USE_MOCKUPS", "true");
environment.set("QML_PUPPET_MODE", "true");
-
+ if (m_puppetVersion == Qml1Puppet)
+ environment.appendOrSet("QML_IMPORT_PATH", m_model->importPaths().join(pathSep), pathSep);
+ else
+ environment.appendOrSet("QML2_IMPORT_PATH", m_model->importPaths().join(pathSep), pathSep);
return environment.toProcessEnvironment();
}
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
index b8ef4e68ba..ab27deb6d9 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
@@ -41,6 +41,7 @@ class Kit;
namespace QmlDesigner {
+class Model;
class PuppetBuildProgressDialog;
class PuppetCreator
@@ -56,13 +57,12 @@ public:
Qml2Puppet
};
- PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion);
+ PuppetCreator(ProjectExplorer::Kit *kit, const QString &qtCreatorVersion, const Model *model, QmlPuppetVersion puppetVersion);
~PuppetCreator();
- void createPuppetExecutableIfMissing(QmlPuppetVersion puppetVersion);
+ void createPuppetExecutableIfMissing();
- QProcess *createPuppetProcess(QmlPuppetVersion puppetVersion,
- const QString &puppetMode,
+ QProcess *createPuppetProcess(const QString &puppetMode,
const QString &socketToken,
QObject *handlerObject,
const char *outputSlot,
@@ -120,6 +120,8 @@ private:
PuppetType m_availablePuppetType;
static QHash<Core::Id, PuppetType> m_qml1PuppetForKitPuppetHash;
static QHash<Core::Id, PuppetType> m_qml2PuppetForKitPuppetHash;
+ const Model *m_model;
+ QmlPuppetVersion m_puppetVersion;
};
} // namespace QmlDesigner