Example #1
0
void ProcessWidget::slotProcessExited(KProcess *)
{
    procLineMaker->flush();
    if( !stdoutbuf.isEmpty() ) 
        insertStdoutLine("");
    if( !stderrbuf.isEmpty() ) 
        insertStderrLine("");
    childFinished(childproc->normalExit(), childproc->exitStatus());
    maybeScrollToBottom();
    emit processExited(childproc);
}
Example #2
0
ProcessWidget::ProcessWidget(QWidget *parent, const char *name)
    : QListWidget(parent)
{   
    //No selection will be possible
    setSelectionMode(QAbstractItemView::NoSelection);
    
    setFocusPolicy(Qt::NoFocus);
    QPalette pal = palette();
    pal.setColor(QPalette::HighlightedText,
                 pal.color(QPalette::Normal, QPalette::Text));
    pal.setColor(QPalette::Highlight,
                 pal.color(QPalette::Normal, QPalette::Mid));
    setPalette(pal);

    setCursor(QCursor(Qt::ArrowCursor));

    //Create the process
    childproc = new QProcess();

    procLineMaker = new ProcessLineMaker( childproc );

    connect( procLineMaker, SIGNAL(receivedStdoutLine(QString)),
             this, SLOT(insertStdoutLine(QString)));
    connect( procLineMaker, SIGNAL(receivedStderrLine(QString)),
             this, SLOT(insertStderrLine(QString)));
    connect( procLineMaker, SIGNAL(outputTreatmentOver()),
             this, SLOT(slotOutputTreatmentOver()));

    connect(this, SIGNAL(hidden()),
            procLineMaker, SLOT(slotWidgetHidden()));

    connect(childproc, SIGNAL(finished(int,QProcess::ExitStatus)),
            this, SLOT(slotProcessExited(int,QProcess::ExitStatus))) ;
    connect(this, SIGNAL(finished(int,QProcess::ExitStatus)),
            procLineMaker, SLOT(slotProcessExited()));
}