diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-02-07 11:58:23 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-02-07 11:58:23 +0100 |
commit | 5432dd1f5c43d9859e08e6e3a33baf600b33950d (patch) | |
tree | cdfa0d672607bfa86fae687e774338bc5066bf94 /src/plugins/qmlprojectmanager | |
parent | d3bb3c09535963eb8b711edb08ee79b7dcc9a393 (diff) | |
parent | 631d9cd711ed348699bb265b7c9333600c8636e3 (diff) | |
download | qt-creator-5432dd1f5c43d9859e08e6e3a33baf600b33950d.tar.gz |
Merge remote-tracking branch 'origin/4.6'
Conflicts:
src/plugins/coreplugin/locator/locator.cpp
src/plugins/imageviewer/imageviewerplugin.cpp
src/plugins/remotelinux/remotelinuxplugin.cpp
src/tools/clangbackend/source/tokeninfo.cpp
tests/unit/unittest/data/highlightingmarks.cpp
Change-Id: I74cc3ba3a2836cb9d0e65d3380d8c4f88d720c67
Diffstat (limited to 'src/plugins/qmlprojectmanager')
6 files changed, 40 insertions, 0 deletions
diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp index 6154ecd3d7..01054df127 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectfileformat.cpp @@ -127,6 +127,13 @@ QmlProjectItem *QmlProjectFileFormat::parseProjectFile(const Utils::FileName &fi OtherFileFilterItem *otherFileFilterItem = new OtherFileFilterItem(projectItem); setupFileFilterItem(otherFileFilterItem, childNode); projectItem->appendContent(otherFileFilterItem); + } else if (childNode->name() == "Environment") { + const auto properties = childNode->properties(); + auto i = properties.constBegin(); + while (i != properties.constEnd()) { + projectItem->addToEnviroment(i.key(), i.value().toString()); + ++i; + } } else { qWarning() << "Unknown type:" << childNode->name(); } diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp index 8e9e99475f..b462bf48b8 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.cpp @@ -106,4 +106,14 @@ bool QmlProjectItem::matchesFile(const QString &filePath) const return false; } +QList<Utils::EnvironmentItem> QmlProjectItem::environment() const +{ + return m_environment; +} + +void QmlProjectItem::addToEnviroment(const QString &key, const QString &value) +{ + m_environment.append(Utils::EnvironmentItem(key, value)); +} + } // namespace QmlProjectManager diff --git a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h index 757e571468..e3c65e7ef1 100644 --- a/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h +++ b/src/plugins/qmlprojectmanager/fileformat/qmlprojectitem.h @@ -25,6 +25,8 @@ #pragma once +#include <utils/environment.h> + #include <QObject> #include <QSet> #include <QStringList> @@ -60,6 +62,9 @@ public: void appendContent(QmlProjectContentItem *item) { m_content.append(item); } + QList<Utils::EnvironmentItem> environment() const; + void addToEnviroment(const QString &key, const QString &value); + signals: void qmlFilesChanged(const QSet<QString> &, const QSet<QString> &); @@ -69,6 +74,7 @@ protected: QStringList m_importPaths; QStringList m_absoluteImportPaths; QString m_mainFile; + QList<Utils::EnvironmentItem> m_environment; QList<QmlProjectContentItem *> m_content; // content property }; diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 2f9ab498da..471ef4a13b 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -213,6 +213,13 @@ Utils::FileName QmlProject::targetFile(const Utils::FileName &sourceFile, return Utils::FileName::fromString(QDir::cleanPath(targetDir.absoluteFilePath(relative))); } +QList<Utils::EnvironmentItem> QmlProject::environment() const +{ + if (m_projectItem) + return m_projectItem.data()->environment(); + return {}; +} + bool QmlProject::validProjectFile() const { return !m_projectItem.isNull(); diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h index c1b667d21a..4ecd7b226e 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.h +++ b/src/plugins/qmlprojectmanager/qmlproject.h @@ -30,6 +30,8 @@ #include <projectexplorer/project.h> +#include <utils/environment.h> + #include <QPointer> namespace ProjectExplorer { class RunConfiguration; } @@ -65,6 +67,8 @@ public: Utils::FileName targetDirectory(const ProjectExplorer::Target *target) const; Utils::FileName targetFile(const Utils::FileName &sourceFile, const ProjectExplorer::Target *target) const; + + QList<Utils::EnvironmentItem> environment() const; QStringList customImportPaths() const; bool addFiles(const QStringList &filePaths); diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp index 626c889551..5cc6fe9988 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp @@ -25,6 +25,8 @@ #include "qmlprojectenvironmentaspect.h" +#include "qmlproject.h" + #include <projectexplorer/target.h> #include <projectexplorer/kit.h> #include <utils/qtcassert.h> @@ -57,6 +59,10 @@ Utils::Environment QmlProjectEnvironmentAspect::baseEnvironment() const if (base == static_cast<int>(KitEnvironmentBase)) runConfiguration()->target()->kit()->addToEnvironment(env); + QmlProject *project = qobject_cast<QmlProject *>(runConfiguration()->target()->project()); + if (project) + env.modify(project->environment()); + return env; } |