diff options
author | Ulf Hermann <[email protected]> | 2018-09-03 09:41:07 +0200 |
---|---|---|
committer | Ulf Hermann <[email protected]> | 2018-09-05 07:55:33 +0000 |
commit | 2d93a20bb6910182a2e41452a6ab81c746d4b5ea (patch) | |
tree | ef2c0cb18946e21282afdb3abb8ab535a3a179dc | |
parent | 1ae96a909059f4605d67b6b54280080914047b2a (diff) |
QmlProject: Allow different QML viewers per project
Change-Id: I7ca136fe1cf51b8335a15b1b2b7ea838e4859f78
Reviewed-by: hjk <[email protected]>
3 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 057bb813714..93fbbaa269d 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -56,6 +56,11 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id) : RunConfiguration(target, id) { addAspect<QmlProjectEnvironmentAspect>(); + m_qmlViewerAspect = addAspect<BaseStringAspect>(); + m_qmlViewerAspect->setLabelText(tr("QML viewer:")); + m_qmlViewerAspect->setPlaceHolderText(executable()); + m_qmlViewerAspect->setDisplayStyle(BaseStringAspect::LineEditDisplay); + setOutputFormatter<QtSupport::QtOutputFormatter>(); // reset default settings in constructor @@ -98,6 +103,10 @@ QString QmlProjectRunConfiguration::disabledReason() const QString QmlProjectRunConfiguration::executable() const { + const QString qmlViewer = m_qmlViewerAspect->value(); + if (!qmlViewer.isEmpty()) + return qmlViewer; + BaseQtVersion *version = QtKitInformation::qtVersion(target()->kit()); if (!version) // No Qt version in Kit. Don't try to run qmlscene. return QString(); diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h index 6adc5de4047..c51527b4272 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h @@ -28,6 +28,7 @@ #include "qmlprojectmanager_global.h" #include <projectexplorer/runconfiguration.h> +#include <projectexplorer/runconfigurationaspects.h> namespace Core { class IEditor; } @@ -62,6 +63,7 @@ public: QVariantMap toMap() const override; ProjectExplorer::Abi abi() const override; + ProjectExplorer::BaseStringAspect *qmlViewerAspect() const { return m_qmlViewerAspect; } signals: void scriptSourceChanged(); @@ -82,6 +84,7 @@ private: QString m_scriptFile; QString m_qmlViewerArgs; + ProjectExplorer::BaseStringAspect *m_qmlViewerAspect; }; namespace Internal { diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp index a9742058553..a20b0363b1f 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp @@ -51,6 +51,7 @@ QmlProjectRunConfigurationWidget::QmlProjectRunConfigurationWidget(QmlProjectRun m_fileListModel(new QStandardItemModel(this)) { auto form = new QFormLayout(this); + rc->qmlViewerAspect()->addToConfigurationLayout(form); m_fileListCombo = new QComboBox; m_fileListCombo->setModel(m_fileListModel); |