forked from qt-creator/qt-creator
Android: Use aspects more directly in AndroidRunConfiguration
Change-Id: I0eed35acd6c65dccd99ace12dc98bf0e3ab1a2f0 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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<EnvironmentAspect>();
|
||||
envAspect->addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {});
|
||||
environment.addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {});
|
||||
|
||||
auto extraAppArgsAspect = addAspect<ArgumentsAspect>();
|
||||
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<StringAspect>();
|
||||
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<BaseStringListAspect>();
|
||||
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<BaseStringListAspect>();
|
||||
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()
|
||||
|
Reference in New Issue
Block a user