Android: Let user specify shell commands

Let user specify list of shell commands to run before app starts
and after app quits.

Change-Id: I9794fb96180530ca6c28ce6581fda51a25be28d4
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Vikas Pachdha
2017-06-08 14:57:09 +02:00
parent cc8bff67b3
commit a6a13bfb76
13 changed files with 569 additions and 71 deletions

View File

@@ -40,7 +40,10 @@ using namespace ProjectExplorer;
namespace Android {
using namespace Internal;
const char amStartArgsKey[] = "Android.AmStartArgsKey";
const char preStartShellCmdsKey[] = "Android.PreStartShellCmdListKey";
const char postFinishShellCmdsKey[] = "Android.PostFinishShellCmdListKey";
AndroidRunConfiguration::AndroidRunConfiguration(Target *parent, Core::Id id)
: RunConfiguration(parent, id)
@@ -52,6 +55,16 @@ AndroidRunConfiguration::AndroidRunConfiguration(Target *parent, AndroidRunConfi
{
}
void AndroidRunConfiguration::setPreStartShellCommands(const QStringList &cmdList)
{
m_preStartShellCommands = cmdList;
}
void AndroidRunConfiguration::setPostFinishShellCommands(const QStringList &cmdList)
{
m_postFinishShellCommands = cmdList;
}
void AndroidRunConfiguration::setAmStartExtraArgs(const QStringList &args)
{
m_amStartExtraArgs = args;
@@ -61,8 +74,14 @@ QWidget *AndroidRunConfiguration::createConfigurationWidget()
{
auto configWidget = new AndroidRunConfigurationWidget();
configWidget->setAmStartArgs(m_amStartExtraArgs);
configWidget->setPreStartShellCommands(m_preStartShellCommands);
configWidget->setPostFinishShellCommands(m_postFinishShellCommands);
connect(configWidget, &AndroidRunConfigurationWidget::amStartArgsChanged,
this, &AndroidRunConfiguration::setAmStartExtraArgs);
connect(configWidget, &AndroidRunConfigurationWidget::preStartCmdsChanged,
this, &AndroidRunConfiguration::setPreStartShellCommands);
connect(configWidget, &AndroidRunConfigurationWidget::postFinishCmdsChanged,
this, &AndroidRunConfiguration::setPostFinishShellCommands);
return configWidget;
}
@@ -73,6 +92,8 @@ Utils::OutputFormatter *AndroidRunConfiguration::createOutputFormatter() const
bool AndroidRunConfiguration::fromMap(const QVariantMap &map)
{
m_preStartShellCommands = map.value(preStartShellCmdsKey).toStringList();
m_postFinishShellCommands = map.value(postFinishShellCmdsKey).toStringList();
m_amStartExtraArgs = map.value(amStartArgsKey).toStringList();
return RunConfiguration::fromMap(map);
}
@@ -80,6 +101,8 @@ bool AndroidRunConfiguration::fromMap(const QVariantMap &map)
QVariantMap AndroidRunConfiguration::toMap() const
{
QVariantMap res = RunConfiguration::toMap();
res[preStartShellCmdsKey] = m_preStartShellCommands;
res[postFinishShellCmdsKey] = m_postFinishShellCommands;
res[amStartArgsKey] = m_amStartExtraArgs;
return res;
}
@@ -88,4 +111,15 @@ const QStringList &AndroidRunConfiguration::amStartExtraArgs() const
{
return m_amStartExtraArgs;
}
const QStringList &AndroidRunConfiguration::preStartShellCommands() const
{
return m_preStartShellCommands;
}
const QStringList &AndroidRunConfiguration::postFinishShellCommands() const
{
return m_postFinishShellCommands;
}
} // namespace Android