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;
}
Exemplo n.º 2
0
void FloppyAction::processStdErr(const QString &s)
{
	processStdOut(s);
}
Exemplo n.º 3
0
void FloppyAction::readStdErr()
{
	processStdOut( theProcess->readAllStandardError() );
}
void SynchronousProcess::stdOutReady()
{
    m_d->m_hangTimerCount = 0;
    processStdOut(true);
}
Exemplo n.º 5
0
 void slotReadyReadStdout()
 {
     stdoutbuf += m_proc->readAllStandardOutput();
     processStdOut();
 }