X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sface%2Fsfiprocess.py;h=92c420bcdf6cd0a63f29836ce2ef2ee2210b66a0;hb=eba29cd265f907a7e8ef2d23c2a6c47269c4ff15;hp=61018895a1daa8253aeeb65910900ba737d3803d;hpb=154bcc2afda6ff1d2889f8d6b120becbedb3b707;p=sface.git diff --git a/sface/sfiprocess.py b/sface/sfiprocess.py index 6101889..92c420b 100644 --- a/sface/sfiprocess.py +++ b/sface/sfiprocess.py @@ -23,6 +23,11 @@ class SfiProcess(QObject): self.process = QProcess() self.connect(self.process, SIGNAL("finished(int, QProcess::ExitStatus)"), self.processFinished) + + self.connect(self.process, SIGNAL("readyReadStandardOutput()"), + self.processStandardOutput) + self.connect(self.process, SIGNAL("readyReadStandardError()"), + self.processStandardError) def __init_command(self, args): self.args = QStringList() @@ -36,6 +41,16 @@ class SfiProcess(QObject): def isRunning(self): return self.process.state() != QProcess.NotRunning + def processStandardOutput(self): + # NOTE: The signal readyReadStandardOutput is emitted when + # the process has made new data available through its standard output channel. + # But the process is not necessarily finished. + if config.debug: + print self.process.readAllStandardOutput() + + def processStandardError(self): + print self.process.readAllStandardError() + def processFinished(self): if self.process.exitStatus() == QProcess.CrashExit: print self.readOutput() @@ -112,3 +127,4 @@ class SfiProcess(QObject): if config.verbose: command = "%s %s" % (self.exe, self.args.join(" ")) print time.strftime('%M:%S'),"[%.3f s]"%(time.time()-self._trace),command,'Done' +