diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index d923f4fef51..8665eb9730f 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -294,10 +294,15 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::runDeploy() m_process->setUseCtrlCStub(true); DeployErrorCode deployError = NoError; - connect(m_process, &Utils::QtcProcess::readyReadStandardOutput, - std::bind(&AndroidDeployQtStep::processReadyReadStdOutput, this, std::ref(deployError))); - connect(m_process, &Utils::QtcProcess::readyReadStandardError, - std::bind(&AndroidDeployQtStep::processReadyReadStdError, this, std::ref(deployError))); + + m_process->setStdOutLineCallback([this, &deployError](const QString &line) { + deployError |= parseDeployErrors(line); + stdOutput(line); + }); + m_process->setStdErrLineCallback([this, &deployError](const QString &line) { + deployError |= parseDeployErrors(line); + stdError(line); + }); m_process->start(); @@ -523,41 +528,11 @@ QWidget *AndroidDeployQtStep::createConfigWidget() return widget; } -void AndroidDeployQtStep::processReadyReadStdOutput(DeployErrorCode &errorCode) -{ - const QByteArray output = m_process->readAllStandardOutput(); - int start = 0; - int end; - - do { - end = output.indexOf('\n', start); - QString line = QString::fromLocal8Bit(output.mid(start, end - start)); - errorCode |= parseDeployErrors(line); - stdOutput(line); - start = end + 1; - } while (end >= 0); -} - void AndroidDeployQtStep::stdOutput(const QString &line) { emit addOutput(line, BuildStep::OutputFormat::Stdout, BuildStep::DontAppendNewline); } -void AndroidDeployQtStep::processReadyReadStdError(DeployErrorCode &errorCode) -{ - const QByteArray output = m_process->readAllStandardError(); - int start = 0; - int end; - - do { - end = output.indexOf('\n', start); - QString line = QString::fromLocal8Bit(output.mid(start, end - start)); - errorCode |= parseDeployErrors(line); - stdError(line); - start = end + 1; - } while (end >= 0); -} - void AndroidDeployQtStep::stdError(const QString &line) { emit addOutput(line, BuildStep::OutputFormat::Stderr, BuildStep::DontAppendNewline); @@ -575,7 +550,8 @@ void AndroidDeployQtStep::stdError(const QString &line) TaskHub::addTask(DeploymentTask(Task::Error, newOutput)); } -AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::parseDeployErrors(QString &deployOutputLine) const +AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::parseDeployErrors( + const QString &deployOutputLine) const { DeployErrorCode errorCode = NoError; diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h index 3090bbb2e8d..1a5acc84b89 100644 --- a/src/plugins/android/androiddeployqtstep.h +++ b/src/plugins/android/androiddeployqtstep.h @@ -81,7 +81,7 @@ private: void stdOutput(const QString &line); void processReadyReadStdError(DeployErrorCode &errorCode); void stdError(const QString &line); - DeployErrorCode parseDeployErrors(QString &deployOutputLine) const; + DeployErrorCode parseDeployErrors(const QString &deployOutputLine) const; friend void operator|=(DeployErrorCode &e1, const DeployErrorCode &e2) { e1 = static_cast((int)e1 | (int)e2); } friend DeployErrorCode operator|(const DeployErrorCode &e1, const DeployErrorCode &e2) { return static_cast((int)e1 | (int)e2); }