From 5a97fa53dc1425f6ab35fc9f1540d13b29324604 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 9 Oct 2020 15:24:33 +0200 Subject: [PATCH] Android: Aspectify AndroidDeployQtStep Change-Id: Ibc2f04336831494c04a2283a59e1f550776c8bf3 Reviewed-by: Alessandro Portale --- src/plugins/android/androiddeployqtstep.cpp | 57 ++++++--------------- src/plugins/android/androiddeployqtstep.h | 14 +---- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 0de5dc0d46b..3776b55c33a 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -51,6 +51,7 @@ #include #include +#include #include #include #include @@ -86,8 +87,18 @@ AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Utils::Id id) : BuildStep(parent, id) { setImmutable(true); + + m_uninstallPreviousPackage = addAspect(); + m_uninstallPreviousPackage->setSettingsKey(UninstallPreviousPackageKey); + m_uninstallPreviousPackage->setLabel(tr("Uninstall the existing app first")); + m_uninstallPreviousPackage->setValue(false); + const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(kit()); - m_uninstallPreviousPackage = qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0); + const bool forced = qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0); + if (forced) { + m_uninstallPreviousPackage->setValue(true); + m_uninstallPreviousPackage->setEnabled(false); + } connect(this, &AndroidDeployQtStep::askForUninstall, this, &AndroidDeployQtStep::slotAskForUninstall, @@ -167,7 +178,7 @@ bool AndroidDeployQtStep::init() emit addOutput(tr("Deploying to %1").arg(m_serialNumber), OutputFormat::Stdout); - m_uninstallPreviousPackageRun = m_uninstallPreviousPackage; + m_uninstallPreviousPackageRun = m_uninstallPreviousPackage->value(); if (m_uninstallPreviousPackageRun) m_manifestName = AndroidManager::manifestPath(target()); @@ -480,14 +491,6 @@ QWidget *AndroidDeployQtStep::createConfigWidget() setDisplayName(QString("%1").arg(displayName())); setSummaryText(displayName()); - auto uninstallPreviousCheckBox = new QCheckBox(widget); - uninstallPreviousCheckBox->setText(tr("Uninstall the existing app first")); - uninstallPreviousCheckBox->setChecked(uninstallPreviousPackage() > Keep); - uninstallPreviousCheckBox->setEnabled(uninstallPreviousPackage() != ForceUninstall); - - connect(uninstallPreviousCheckBox, &QAbstractButton::toggled, - this, &AndroidDeployQtStep::setUninstallPreviousPackage); - auto resetDefaultDevices = new QPushButton(widget); resetDefaultDevices->setText(tr("Reset Default Deployment Devices")); @@ -508,10 +511,10 @@ QWidget *AndroidDeployQtStep::createConfigWidget() AndroidManager::installQASIPackage(target(), packagePath); }); - auto layout = new QVBoxLayout(widget); - layout->addWidget(uninstallPreviousCheckBox); - layout->addWidget(resetDefaultDevices); - layout->addWidget(installCustomApkButton); + LayoutBuilder builder(widget); + builder.addRow(m_uninstallPreviousPackage); + builder.addRow(resetDefaultDevices); + builder.addRow(installCustomApkButton); return widget; } @@ -569,32 +572,6 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::parseDeployErrors(QStr return errorCode; } -bool AndroidDeployQtStep::fromMap(const QVariantMap &map) -{ - m_uninstallPreviousPackage = map.value(UninstallPreviousPackageKey, m_uninstallPreviousPackage).toBool(); - return ProjectExplorer::BuildStep::fromMap(map); -} - -QVariantMap AndroidDeployQtStep::toMap() const -{ - QVariantMap map = ProjectExplorer::BuildStep::toMap(); - map.insert(UninstallPreviousPackageKey, m_uninstallPreviousPackage); - return map; -} - -void AndroidDeployQtStep::setUninstallPreviousPackage(bool uninstall) -{ - m_uninstallPreviousPackage = uninstall; -} - -AndroidDeployQtStep::UninstallType AndroidDeployQtStep::uninstallPreviousPackage() -{ - const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(kit()); - if (qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0)) - return ForceUninstall; - return m_uninstallPreviousPackage ? Uninstall : Keep; -} - // AndroidDeployQtStepFactory AndroidDeployQtStepFactory::AndroidDeployQtStepFactory() diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h index 450213de5a4..3090bbb2e8d 100644 --- a/src/plugins/android/androiddeployqtstep.h +++ b/src/plugins/android/androiddeployqtstep.h @@ -59,20 +59,8 @@ class AndroidDeployQtStep : public ProjectExplorer::BuildStep }; public: - enum UninstallType { - Keep, - Uninstall, - ForceUninstall - }; - AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc, Utils::Id id); - bool fromMap(const QVariantMap &map) override; - QVariantMap toMap() const override; - - UninstallType uninstallPreviousPackage(); - void setUninstallPreviousPackage(bool uninstall); - signals: void askForUninstall(DeployErrorCode errorCode); @@ -105,7 +93,7 @@ private: QMap m_filesToPull; QStringList m_androidABIs; - bool m_uninstallPreviousPackage = false; + Utils::BoolAspect *m_uninstallPreviousPackage = nullptr; bool m_uninstallPreviousPackageRun = false; bool m_useAndroiddeployqt = false; bool m_askForUninstall = false;