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(); + m_qmlViewerAspect = addAspect(); + m_qmlViewerAspect->setLabelText(tr("QML viewer:")); + m_qmlViewerAspect->setPlaceHolderText(executable()); + m_qmlViewerAspect->setDisplayStyle(BaseStringAspect::LineEditDisplay); + setOutputFormatter(); // 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 +#include 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);