Android: Convert into a RunWorker based setup

This moves all of the RunControl implementation into a single
RunWorker, not yet splitting it up into separate RunWorkers
which is the final goal of this series.

Change-Id: I7373105603505aa4fffd7fe5ff0145f0128b34bc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2017-05-19 14:40:49 +02:00
parent 1a82bedc8b
commit 1d921ae044
14 changed files with 179 additions and 255 deletions

View File

@@ -38,60 +38,25 @@ using namespace ProjectExplorer;
namespace Android {
namespace Internal {
AndroidRunControl::AndroidRunControl(RunConfiguration *rc)
: RunControl(rc, ProjectExplorer::Constants::NORMAL_RUN_MODE)
, m_runner(new AndroidRunner(this, rc, ProjectExplorer::Constants::NORMAL_RUN_MODE))
AndroidRunSupport::AndroidRunSupport(RunControl *runControl)
: AndroidRunner(runControl)
{
setRunnable(m_runner->runnable());
setIcon(Utils::Icons::RUN_SMALL_TOOLBAR);
runControl->setIcon(Utils::Icons::RUN_SMALL_TOOLBAR);
}
AndroidRunControl::~AndroidRunControl()
AndroidRunSupport::~AndroidRunSupport()
{
stop();
}
void AndroidRunControl::start()
void AndroidRunSupport::start()
{
reportApplicationStart();
disconnect(m_runner, 0, this, 0);
connect(m_runner, &AndroidRunner::remoteErrorOutput,
this, &AndroidRunControl::handleRemoteErrorOutput);
connect(m_runner, &AndroidRunner::remoteOutput,
this, &AndroidRunControl::handleRemoteOutput);
connect(m_runner, &AndroidRunner::remoteProcessFinished,
this, &AndroidRunControl::handleRemoteProcessFinished);
appendMessage(tr("Starting remote process."), Utils::NormalMessageFormat);
m_runner->setRunnable(runnable().as<AndroidRunnable>());
m_runner->start();
AndroidRunner::start();
}
void AndroidRunControl::stop()
void AndroidRunSupport::stop()
{
m_runner->stop();
}
void AndroidRunControl::handleRemoteProcessFinished(const QString &error)
{
appendMessage(error, Utils::ErrorMessageFormat);
disconnect(m_runner, 0, this, 0);
reportApplicationStop();
}
void AndroidRunControl::handleRemoteOutput(const QString &output)
{
appendMessage(output, Utils::StdOutFormatSameLine);
}
void AndroidRunControl::handleRemoteErrorOutput(const QString &output)
{
appendMessage(output, Utils::StdErrFormatSameLine);
}
QString AndroidRunControl::displayName() const
{
return m_runner->displayName();
AndroidRunner::stop();
}
} // namespace Internal