forked from qt-creator/qt-creator
Use QtcProcess in startAvdAsync()
Change-Id: I47d6522f944ffe95a047e22971e94bba4fc93e2a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -173,14 +173,14 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateA
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void avdProcessFinished(int exitCode, QProcess *p)
|
static void avdProcessFinished(int exitCode, QtcProcess *p)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(p, return);
|
QTC_ASSERT(p, return);
|
||||||
if (exitCode) {
|
if (exitCode) {
|
||||||
QString title = QCoreApplication::translate("Android::Internal::AndroidAvdManager",
|
QString title = QCoreApplication::translate("Android::Internal::AndroidAvdManager",
|
||||||
"AVD Start Error");
|
"AVD Start Error");
|
||||||
QMessageBox::critical(Core::ICore::dialogParent(), title,
|
QMessageBox::critical(Core::ICore::dialogParent(), title,
|
||||||
QString::fromLatin1(p->readAll()));
|
QString::fromLatin1(p->readAllStandardOutput()));
|
||||||
}
|
}
|
||||||
p->deleteLater();
|
p->deleteLater();
|
||||||
}
|
}
|
||||||
@@ -293,23 +293,21 @@ bool AndroidAvdManager::startAvdAsync(const QString &avdName) const
|
|||||||
.arg(m_config.emulatorToolPath().toString()));
|
.arg(m_config.emulatorToolPath().toString()));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
auto avdProcess = new QProcess();
|
auto avdProcess = new QtcProcess();
|
||||||
avdProcess->setProcessChannelMode(QProcess::MergedChannels);
|
avdProcess->setProcessChannelMode(QProcess::MergedChannels);
|
||||||
QObject::connect(avdProcess,
|
QObject::connect(avdProcess, &QtcProcess::finished, avdProcess,
|
||||||
QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
|
[avdProcess] { avdProcessFinished(avdProcess->exitCode(), avdProcess); });
|
||||||
avdProcess,
|
|
||||||
std::bind(&avdProcessFinished, std::placeholders::_1, avdProcess));
|
|
||||||
|
|
||||||
// start the emulator
|
// start the emulator
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (AndroidConfigurations::force32bitEmulator())
|
if (AndroidConfigurations::force32bitEmulator())
|
||||||
arguments << "-force-32bit";
|
arguments << "-force-32bit";
|
||||||
|
|
||||||
arguments << m_config.emulatorArgs()
|
arguments << m_config.emulatorArgs() << "-avd" << avdName;
|
||||||
<< "-avd" << avdName;
|
|
||||||
qCDebug(avdManagerLog) << "Running command (startAvdAsync):"
|
qCDebug(avdManagerLog) << "Running command (startAvdAsync):"
|
||||||
<< CommandLine(m_config.emulatorToolPath(), arguments).toUserOutput();
|
<< CommandLine(m_config.emulatorToolPath(), arguments).toUserOutput();
|
||||||
avdProcess->start(m_config.emulatorToolPath().toString(), arguments);
|
avdProcess->setCommand({m_config.emulatorToolPath(), arguments});
|
||||||
|
avdProcess->start();
|
||||||
if (!avdProcess->waitForStarted(-1)) {
|
if (!avdProcess->waitForStarted(-1)) {
|
||||||
delete avdProcess;
|
delete avdProcess;
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user