void ZHttpServer::execProcess(const QString &command, QTcpSocket *socket) const { qWarning() << "execProcess:" << command; QProcess *process = new QProcess(const_cast<ZHttpServer*>(this)); connect(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), socket, [this, socket, process, command] { qWarning() << QString("Exec \"%1\" failed:").arg(sysroot + "/" + command) << process->errorString(); socket->write(messagePackage("", "text/html", HttpInfo::OtherError, process->errorString())); socket->close(); onProcessFinished(process); }); connect(process, static_cast<void (QProcess::*)(int)>(&QProcess::finished), socket, [this, socket, process] { const QByteArray &message = process->exitCode() == 0 ? process->readAllStandardOutput() : process->readAllStandardError(); qWarning() << "execProcess finished, message:" << message; socket->write(messagePackage(message)); socket->close(); onProcessFinished(process); }); process->start(sysroot + "/" + command, QProcess::ReadOnly); }
void RenderingProgressDialog::onVideoEngineStopped(int retCode) { if (retCode == 1) { onProcessCanceled(); } else { onProcessFinished(0); } }
void Process::tryToRetrieveExitCode() { if (d->exitCode == STILL_ACTIVE) if (!GetExitCodeProcess(d->hProcess, &d->exitCode)) d->exitCode = STILL_ACTIVE; if (d->exitCode == STILL_ACTIVE) QTimer::singleShot(250, this, SLOT(tryToRetrieveExitCode())); else onProcessFinished(); }
void PowerComponentX11::onProcessError(QProcess::ProcessError error) { QLOG_ERROR() << "Disabling screensaver is not working. Make sure xdg-screensaver is installed."; m_broken = true; onProcessFinished(-1, QProcess::CrashExit); }