* src/DisplayState.py: Warning log handler, add timeout handler

svn: r5824
This commit is contained in:
Don Allingham
2006-01-23 22:36:34 +00:00
parent 4b01a84b63
commit d2092f04d7
4 changed files with 20 additions and 10 deletions

View File

@ -533,11 +533,21 @@ class WarnHandler(RotateHandler):
self.setLevel(logging.WARN)
self.button = button
button.on_clicked(self.display)
self.timer = None
def emit(self,record):
if self.timer:
gobject.source_remove(self.timer)
gobject.timeout_add(180*1000,self._clear)
RotateHandler.emit(self,record)
self.button.show()
def _clear(self):
self.button.hide()
self.set_capacity(self._capacity)
self.timer = None
return False
def display(self,obj):
obj.hide()
g = gtk.glade.XML(const.gladeFile,'scrollmsg')
@ -546,7 +556,9 @@ class WarnHandler(RotateHandler):
buf = msg.get_buffer()
for i in self.get_formatted_log():
buf.insert_at_cursor(i + '\n')
self.set_capacity(self._capacity)
top.run()
top.destroy()
class DisplayState(GrampsDb.GrampsDBCallback):
@ -565,7 +577,9 @@ class DisplayState(GrampsDb.GrampsDBCallback):
self.widget = None
self.warnbtn = warnbtn
formatter = logging.Formatter('%(levelname)s %(name)s: %(message)s')
self.rh = WarnHandler(capacity=400,button=warnbtn)
self.rh.setFormatter(formatter)
self.log = logging.getLogger()
self.log.setLevel(logging.WARN)
self.log.addHandler(self.rh)