From a7630f999f60c448ae9c427fd708ea44280ccafe Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 17 Aug 2023 14:42:06 +0200 Subject: [PATCH] Android: Use a aspect for AndroidBuildStep::buildAAB Testing the water... Change-Id: Ic5bd970519f0ec11e03ba19a24e0aeb2a84a18e3 Reviewed-by: Alessandro Portale Reviewed-by: Jarek Kobus Reviewed-by: --- src/plugins/android/androidbuildapkstep.cpp | 34 ++++++++------------- src/plugins/android/androidbuildapkstep.h | 4 +-- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index 2018371e362..4286fcc4e3a 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -302,17 +302,12 @@ QWidget *AndroidBuildApkWidget::createAdvancedGroup() auto verboseOutputCheckBox = new QCheckBox(Tr::tr("Verbose output"), group); verboseOutputCheckBox->setChecked(m_step->verboseOutput()); - auto vbox = new QVBoxLayout(group); - QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(m_step->kit()); - if (version && version->qtVersion() >= QVersionNumber(5, 14)) { - auto buildAAB = new QCheckBox(Tr::tr("Build Android App Bundle (*.aab)"), group); - buildAAB->setChecked(m_step->buildAAB()); - connect(buildAAB, &QAbstractButton::toggled, m_step, &AndroidBuildApkStep::setBuildAAB); - vbox->addWidget(buildAAB); - } - vbox->addWidget(openPackageLocationCheckBox); - vbox->addWidget(verboseOutputCheckBox); - vbox->addWidget(m_addDebuggerCheckBox); + Layouting::Column { + m_step->buildAAB, + openPackageLocationCheckBox, + verboseOutputCheckBox, + m_addDebuggerCheckBox + }.attachTo(group); connect(verboseOutputCheckBox, &QAbstractButton::toggled, this, [this](bool checked) { m_step->setVerboseOutput(checked); }); @@ -479,6 +474,11 @@ AndroidBuildApkStep::AndroidBuildApkStep(BuildStepList *parent, Utils::Id id) setImmutable(true); setDisplayName(Tr::tr("Build Android APK")); + QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(kit()); + + buildAAB.setLabelText(Tr::tr("Build Android App Bundle (*.aab)")); + buildAAB.setVisible(version && version->qtVersion() >= QVersionNumber(5, 14)); + connect(this, &BuildStep::addOutput, this, [this](const QString &string, OutputFormat format) { if (format == OutputFormat::Stderr) stdError(string); @@ -566,7 +566,7 @@ bool AndroidBuildApkStep::init() arguments << "--gradle"; - if (m_buildAAB) + if (buildAAB()) arguments << "--aab" << "--jarsigner"; if (buildType() == BuildConfiguration::Release) { @@ -997,16 +997,6 @@ void AndroidBuildApkStep::setSignPackage(bool b) m_signPackage = b; } -bool AndroidBuildApkStep::buildAAB() const -{ - return m_buildAAB; -} - -void AndroidBuildApkStep::setBuildAAB(bool aab) -{ - m_buildAAB = aab; -} - bool AndroidBuildApkStep::openPackageLocation() const { return m_openPackageLocation; diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h index 2e41b0ddbb8..b746ddde064 100644 --- a/src/plugins/android/androidbuildapkstep.h +++ b/src/plugins/android/androidbuildapkstep.h @@ -37,8 +37,7 @@ public: bool signPackage() const; void setSignPackage(bool b); - bool buildAAB() const; - void setBuildAAB(bool aab); + Utils::BoolAspect buildAAB{this}; bool openPackageLocation() const; void setOpenPackageLocation(bool open); @@ -72,7 +71,6 @@ private: void reportWarningOrError(const QString &message, ProjectExplorer::Task::TaskType type); void updateBuildToolsVersionInJsonFile(); - bool m_buildAAB = false; bool m_signPackage = false; bool m_verbose = false; bool m_openPackageLocation = false;