diff options
author | hjk <hjk@qt.io> | 2019-06-13 18:25:17 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-06-14 13:34:38 +0000 |
commit | 67b33a06628ef4df68c402fc1b2907a556a8d44c (patch) | |
tree | ca767cf772310932f23e853188155272d103cb03 /src/plugins/boot2qt | |
parent | 77e8e1707c7223fc4905058f531e83e6788ad845 (diff) |
ProjectExplorer: Introduce a new BaseSelectionAspect
To handle an (exclusive) choice within a set of possible options,
visualized by a set of QRadioButtons.
Use in QdbMakeDefaultAppStep.
Change-Id: Icc62a45e8c5986cd9400f90449f92154ed854a22
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/boot2qt')
-rw-r--r-- | src/plugins/boot2qt/qdbmakedefaultappstep.cpp | 86 | ||||
-rw-r--r-- | src/plugins/boot2qt/qdbmakedefaultappstep.h | 11 |
2 files changed, 11 insertions, 86 deletions
diff --git a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp index 8ff39732ff..5ddb9fa6c7 100644 --- a/src/plugins/boot2qt/qdbmakedefaultappstep.cpp +++ b/src/plugins/boot2qt/qdbmakedefaultappstep.cpp @@ -27,56 +27,27 @@ #include "qdbmakedefaultappservice.h" -#include <QRadioButton> -#include <QVBoxLayout> +#include <projectexplorer/runconfigurationaspects.h> + +using namespace ProjectExplorer; namespace Qdb { namespace Internal { -class QdbConfigWidget : public ProjectExplorer::BuildStepConfigWidget -{ -public: - QdbConfigWidget(QdbMakeDefaultAppStep *step) - : BuildStepConfigWidget(step) - { - QVBoxLayout * const mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(0); - - m_makeDefaultBtn.setText( - QdbMakeDefaultAppStep::tr("Set this application to start by default")); - m_resetDefaultBtn.setText( - QdbMakeDefaultAppStep::tr("Reset default application")); - - if (step->makeDefault()) - m_makeDefaultBtn.setChecked(true); - else - m_resetDefaultBtn.setChecked(true); - - mainLayout->addWidget(&m_makeDefaultBtn); - mainLayout->addWidget(&m_resetDefaultBtn); - - connect(&m_makeDefaultBtn, &QRadioButton::clicked, this, [step] { - step->setMakeDefault(true); - }); - connect(&m_resetDefaultBtn, &QRadioButton::clicked, this, [step] { - step->setMakeDefault(false); - }); - } - -private: - QRadioButton m_makeDefaultBtn; - QRadioButton m_resetDefaultBtn; -}; - -QdbMakeDefaultAppStep::QdbMakeDefaultAppStep(ProjectExplorer::BuildStepList *bsl) +QdbMakeDefaultAppStep::QdbMakeDefaultAppStep(BuildStepList *bsl) : AbstractRemoteLinuxDeployStep(bsl, stepId()) { setDefaultDisplayName(stepDisplayName()); auto service = createDeployService<QdbMakeDefaultAppService>(); - setInternalInitializer([this, service] { - service->setMakeDefault(m_makeDefault); + auto selection = addAspect<BaseSelectionAspect>(); + selection->setSettingsKey("QdbMakeDefaultDeployStep.MakeDefault"); + selection->addOption(tr("Set this application to start by default")); + selection->addOption(tr("Reset default application")); + + setInternalInitializer([service, selection] { + service->setMakeDefault(selection->value() == 0); return service->isDeploymentPossible(); }); } @@ -86,45 +57,10 @@ Core::Id QdbMakeDefaultAppStep::stepId() return "Qdb.MakeDefaultAppStep"; } -ProjectExplorer::BuildStepConfigWidget *QdbMakeDefaultAppStep::createConfigWidget() -{ - return new QdbConfigWidget(this); -} - QString QdbMakeDefaultAppStep::stepDisplayName() { return QStringLiteral("Change default application"); } -void QdbMakeDefaultAppStep::setMakeDefault(bool makeDefault) -{ - m_makeDefault = makeDefault; -} - -bool QdbMakeDefaultAppStep::makeDefault() const -{ - return m_makeDefault; -} - -static QString makeDefaultKey() -{ - return QLatin1String("QdbMakeDefaultDeployStep.MakeDefault"); -} - -bool QdbMakeDefaultAppStep::fromMap(const QVariantMap &map) -{ - if (!AbstractRemoteLinuxDeployStep::fromMap(map)) - return false; - m_makeDefault = map.value(makeDefaultKey()).toBool(); - return true; -} - -QVariantMap QdbMakeDefaultAppStep::toMap() const -{ - QVariantMap map = AbstractRemoteLinuxDeployStep::toMap(); - map.insert(makeDefaultKey(), m_makeDefault); - return map; -} - } // namespace Internal } // namespace Qdb diff --git a/src/plugins/boot2qt/qdbmakedefaultappstep.h b/src/plugins/boot2qt/qdbmakedefaultappstep.h index e5f2be8389..ffaf0dcab6 100644 --- a/src/plugins/boot2qt/qdbmakedefaultappstep.h +++ b/src/plugins/boot2qt/qdbmakedefaultappstep.h @@ -39,17 +39,6 @@ public: static Core::Id stepId(); static QString stepDisplayName(); - - void setMakeDefault(bool makeDefault); - bool makeDefault() const; - -protected: - ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override; - bool fromMap(const QVariantMap &map) override; - QVariantMap toMap() const override; - -private: - bool m_makeDefault = false; }; } // namespace Internal |