diff --git a/src/plugins/android/androidrunconfiguration.cpp b/src/plugins/android/androidrunconfiguration.cpp index e481f1eda44..28d9862a70c 100644 --- a/src/plugins/android/androidrunconfiguration.cpp +++ b/src/plugins/android/androidrunconfiguration.cpp @@ -28,8 +28,9 @@ namespace Android { class BaseStringListAspect final : public Utils::StringAspect { public: - explicit BaseStringListAspect() = default; - ~BaseStringListAspect() final = default; + explicit BaseStringListAspect(AspectContainer *container) + : StringAspect(container) + {} void fromMap(const QVariantMap &map) final { @@ -50,39 +51,34 @@ public: AndroidRunConfiguration(Target *target, Id id) : RunConfiguration(target, id) { - auto envAspect = addAspect(); - envAspect->addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {}); + environment.addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {}); - auto extraAppArgsAspect = addAspect(); - extraAppArgsAspect->setMacroExpander(macroExpander()); + extraAppArgs.setMacroExpander(macroExpander()); - connect(extraAppArgsAspect, &BaseAspect::changed, this, [target, extraAppArgsAspect] { + connect(&extraAppArgs, &BaseAspect::changed, this, [this, target] { if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) { const QString buildKey = target->activeBuildKey(); target->buildSystem()->setExtraData(buildKey, Android::Constants::AndroidApplicationArgs, - extraAppArgsAspect->arguments()); + extraAppArgs()); } }); - auto amStartArgsAspect = addAspect(); - amStartArgsAspect->setId(Constants::ANDROID_AM_START_ARGS); - amStartArgsAspect->setSettingsKey("Android.AmStartArgsKey"); - amStartArgsAspect->setLabelText(Tr::tr("Activity manager start arguments:")); - amStartArgsAspect->setDisplayStyle(StringAspect::LineEditDisplay); - amStartArgsAspect->setHistoryCompleter("Android.AmStartArgs.History"); + amStartArgs.setId(Constants::ANDROID_AM_START_ARGS); + amStartArgs.setSettingsKey("Android.AmStartArgsKey"); + amStartArgs.setLabelText(Tr::tr("Activity manager start arguments:")); + amStartArgs.setDisplayStyle(StringAspect::LineEditDisplay); + amStartArgs.setHistoryCompleter("Android.AmStartArgs.History"); - auto preStartShellCmdAspect = addAspect(); - preStartShellCmdAspect->setDisplayStyle(StringAspect::TextEditDisplay); - preStartShellCmdAspect->setId(Constants::ANDROID_PRESTARTSHELLCMDLIST); - preStartShellCmdAspect->setSettingsKey("Android.PreStartShellCmdListKey"); - preStartShellCmdAspect->setLabelText(Tr::tr("Pre-launch on-device shell commands:")); + preStartShellCmd.setDisplayStyle(StringAspect::TextEditDisplay); + preStartShellCmd.setId(Constants::ANDROID_PRESTARTSHELLCMDLIST); + preStartShellCmd.setSettingsKey("Android.PreStartShellCmdListKey"); + preStartShellCmd.setLabelText(Tr::tr("Pre-launch on-device shell commands:")); - auto postStartShellCmdAspect = addAspect(); - postStartShellCmdAspect->setDisplayStyle(StringAspect::TextEditDisplay); - postStartShellCmdAspect->setId(Constants::ANDROID_POSTFINISHSHELLCMDLIST); - postStartShellCmdAspect->setSettingsKey("Android.PostStartShellCmdListKey"); - postStartShellCmdAspect->setLabelText(Tr::tr("Post-quit on-device shell commands:")); + postStartShellCmd.setDisplayStyle(StringAspect::TextEditDisplay); + postStartShellCmd.setId(Constants::ANDROID_POSTFINISHSHELLCMDLIST); + postStartShellCmd.setSettingsKey("Android.PostStartShellCmdListKey"); + postStartShellCmd.setLabelText(Tr::tr("Post-quit on-device shell commands:")); setUpdater([this] { const BuildTargetInfo bti = buildTargetInfo(); @@ -92,6 +88,12 @@ public: connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update); } + + EnvironmentAspect environment{this}; + ArgumentsAspect extraAppArgs{this}; + StringAspect amStartArgs{this}; + BaseStringListAspect preStartShellCmd{this}; + BaseStringListAspect postStartShellCmd{this}; }; AndroidRunConfigurationFactory::AndroidRunConfigurationFactory()