SynchronousProcessResponse SynchronousProcess::run(const QString &binary, const QStringList &args) { if (debug) { qDebug() << '>' << Q_FUNC_INFO << binary << args; } m_d->clearForRun(); // On Windows, start failure is triggered immediately if the // executable cannot be found in the path. Do not start the // event loop in that case. m_d->m_process.start(binary, args, QIODevice::ReadOnly); if (!m_d->m_startFailure) { m_d->m_timer.start(); QApplication::setOverrideCursor(Qt::WaitCursor); m_d->m_eventLoop.exec(QEventLoop::ExcludeUserInputEvents); if (m_d->m_result.result == SynchronousProcessResponse::Finished || m_d->m_result.result == SynchronousProcessResponse::FinishedError) { processStdOut(false); processStdErr(false); } m_d->m_result.stdOut = convertStdOut(m_d->m_stdOut.data); m_d->m_result.stdErr = convertStdErr(m_d->m_stdErr.data); m_d->m_timer.stop(); QApplication::restoreOverrideCursor(); } if (debug) { qDebug() << '<' << Q_FUNC_INFO << binary << m_d->m_result; } return m_d->m_result; }
void FloppyAction::processStdErr(const QString &s) { processStdOut(s); }
void FloppyAction::readStdErr() { processStdOut( theProcess->readAllStandardError() ); }
void SynchronousProcess::stdOutReady() { m_d->m_hangTimerCount = 0; processStdOut(true); }
void slotReadyReadStdout() { stdoutbuf += m_proc->readAllStandardOutput(); processStdOut(); }