aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprojectmanager
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2018-09-03 09:41:07 +0200
committerUlf Hermann <ulf.hermann@qt.io>2018-09-05 07:55:33 +0000
commit2d93a20bb6910182a2e41452a6ab81c746d4b5ea (patch)
treeef2c0cb18946e21282afdb3abb8ab535a3a179dc /src/plugins/qmlprojectmanager
parent1ae96a909059f4605d67b6b54280080914047b2a (diff)
QmlProject: Allow different QML viewers per project
Change-Id: I7ca136fe1cf51b8335a15b1b2b7ea838e4859f78 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/qmlprojectmanager')
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp9
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h3
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp1
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);