aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidrunconfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/androidrunconfiguration.cpp')
-rw-r--r--src/plugins/android/androidrunconfiguration.cpp96
1 files changed, 53 insertions, 43 deletions
diff --git a/src/plugins/android/androidrunconfiguration.cpp b/src/plugins/android/androidrunconfiguration.cpp
index ef469da2b62..45f991ca747 100644
--- a/src/plugins/android/androidrunconfiguration.cpp
+++ b/src/plugins/android/androidrunconfiguration.cpp
@@ -18,8 +18,8 @@
#include <qtsupport/qtkitinformation.h>
#include <utils/detailswidget.h>
+#include <utils/process.h>
#include <utils/qtcassert.h>
-#include <utils/qtcprocess.h>
#include <utils/utilsicons.h>
using namespace ProjectExplorer;
@@ -46,49 +46,59 @@ public:
}
};
-AndroidRunConfiguration::AndroidRunConfiguration(Target *target, Utils::Id id)
- : RunConfiguration(target, id)
+class AndroidRunConfiguration : public RunConfiguration
{
- auto envAspect = addAspect<EnvironmentAspect>();
- envAspect->addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {});
-
- auto extraAppArgsAspect = addAspect<ArgumentsAspect>(macroExpander());
-
- connect(extraAppArgsAspect, &BaseAspect::changed, this, [target, extraAppArgsAspect] {
- if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) {
- const QString buildKey = target->activeBuildKey();
- target->buildSystem()->setExtraData(buildKey,
- Android::Constants::AndroidApplicationArgs,
- extraAppArgsAspect->arguments());
- }
- });
-
- 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");
-
- 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:"));
-
- 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:"));
-
- setUpdater([this] {
- const BuildTargetInfo bti = buildTargetInfo();
- setDisplayName(bti.displayName);
- setDefaultDisplayName(bti.displayName);
- });
-
- connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
+public:
+ AndroidRunConfiguration(Target *target, Id id)
+ : RunConfiguration(target, id)
+ {
+ auto envAspect = addAspect<EnvironmentAspect>();
+ envAspect->addSupportedBaseEnvironment(Tr::tr("Clean Environment"), {});
+
+ auto extraAppArgsAspect = addAspect<ArgumentsAspect>(macroExpander());
+
+ connect(extraAppArgsAspect, &BaseAspect::changed, this, [target, extraAppArgsAspect] {
+ if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) {
+ const QString buildKey = target->activeBuildKey();
+ target->buildSystem()->setExtraData(buildKey,
+ Android::Constants::AndroidApplicationArgs,
+ extraAppArgsAspect->arguments());
+ }
+ });
+
+ 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");
+
+ 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:"));
+
+ 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:"));
+
+ setUpdater([this] {
+ const BuildTargetInfo bti = buildTargetInfo();
+ setDisplayName(bti.displayName);
+ setDefaultDisplayName(bti.displayName);
+ });
+
+ connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
+ }
+};
+
+AndroidRunConfigurationFactory::AndroidRunConfigurationFactory()
+{
+ registerRunConfiguration<AndroidRunConfiguration>("Qt4ProjectManager.AndroidRunConfiguration:");
+ addSupportedTargetDeviceType(Android::Constants::ANDROID_DEVICE_TYPE);
}
} // namespace Android