diff --git a/nomadnet/ui/textui/Log.py b/nomadnet/ui/textui/Log.py index b38e4b3..853acf7 100644 --- a/nomadnet/ui/textui/Log.py +++ b/nomadnet/ui/textui/Log.py @@ -12,10 +12,21 @@ class LogDisplay(): def __init__(self, app): import urwid self.app = app - self.log_term = LogTerminal(self.app) + self.log_term = None self.shortcuts_display = LogDisplayShortcuts(self.app) - self.widget = urwid.LineBox(self.log_term) + self.widget = None + + def show(self): + if self.log_term == None: + self.log_term = LogTerminal(self.app) + self.widget = urwid.LineBox(self.log_term) + + def kill(self): + if self.log_term != None: + self.log_term.terminate() + self.log_term = None + self.widget = None def shortcuts(self): return self.shortcuts_display @@ -26,10 +37,14 @@ class LogTerminal(urwid.WidgetWrap): self.log_term = urwid.Terminal( ("tail", "-fn50", self.app.logfilepath), encoding='utf-8', - escape_sequence="up" + escape_sequence="up", + main_loop=self.app.ui.loop, ) urwid.WidgetWrap.__init__(self, self.log_term) + def terminate(self): + self.log_term.terminate() + def keypress(self, size, key): if key == "up":