X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Flogwindow.py;h=c5c41dd1714cab4fd4714b719dd7a05384e41d1f;hp=64d4e9fe0f6ff0b56eed112afec3c3e66e6afcad;hb=f5f7c75d459590c0b22a8c7ec7096c78788a4db8;hpb=4c1046ce18cb25a8a045ca588d975723af36ea1a diff --git a/sface/logwindow.py b/sface/logwindow.py index 64d4e9f..c5c41dd 100644 --- a/sface/logwindow.py +++ b/sface/logwindow.py @@ -1,20 +1,49 @@ +import sys +from cStringIO import StringIO + from PyQt4.QtCore import * from PyQt4.QtGui import * from sface.config import config +class LogIO(QObject): + def __init__(self, parent, old_stdout): + QObject.__init__(self, parent) + self.io = StringIO() + self.old_stdout = old_stdout + + def write(self, txt): + self.io.write(txt) + self.parent().update() + + def getText(self): + return self.io.getvalue() class LogWindow(QDialog): def __init__(self, parent=None): QWidget.__init__(self, parent) self.setWindowTitle("SFI Log") self.text = QTextBrowser(self) - + self.text.ensureCursorVisible() + layout = QVBoxLayout() layout.addWidget(self.text) self.setLayout(layout) - def setText(self, txt): - self.text.setText(txt) + self.logio = LogIO(self, sys.stdout) + + def redirectOutput(self): + print "\n\nRedirecting all output to Log Window. Please open the log window to see the output\n" + self.old_stdout = sys.stdout + self.old_stderr = sys.stderr + sys.stdout = self.logio + sys.stderr = self.logio + + def update(self): + self.text.setText(self.logio.getText()) + c = self.text.textCursor() + c.movePosition(QTextCursor.End) + self.text.setTextCursor(c) +