fix render/redraw_Screen
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
This commit is contained in:
parent
33dd1d28dc
commit
18d011693b
|
@ -41,16 +41,23 @@ class BaseController:
|
||||||
controller(self).show(*args, **kwds)
|
controller(self).show(*args, **kwds)
|
||||||
|
|
||||||
def redraw_screen(self):
|
def redraw_screen(self):
|
||||||
|
if hasattr(self, 'loop'):
|
||||||
try:
|
try:
|
||||||
self.loop.draw_screen()
|
self.loop.draw_screen()
|
||||||
except AssertionError as e:
|
except AssertionError as e:
|
||||||
log.exception("exception failure in redraw_screen")
|
log.critical(e)
|
||||||
raise e
|
|
||||||
|
|
||||||
def set_alarm_in(self, interval, cb):
|
def set_alarm_in(self, interval, cb):
|
||||||
self.loop.set_alarm_in(interval, cb)
|
self.loop.set_alarm_in(interval, cb)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def update(self, *args, **kwds):
|
||||||
|
log.debug("Updating ...")
|
||||||
|
route = Routes.current_idx()
|
||||||
|
if route == 0:
|
||||||
|
self.begin()
|
||||||
|
self.set_alarm_in(1, self.update)
|
||||||
|
|
||||||
def header_hotkeys(self, key):
|
def header_hotkeys(self, key):
|
||||||
if key in ['q', 'Q']:
|
if key in ['q', 'Q']:
|
||||||
raise urwid.ExitMainLoop()
|
raise urwid.ExitMainLoop()
|
||||||
|
@ -68,19 +75,19 @@ class BaseController:
|
||||||
self.redraw_screen()
|
self.redraw_screen()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.main_loop()
|
if not hasattr(self, 'loop'):
|
||||||
|
|
||||||
def main_loop(self):
|
|
||||||
""" Run eventloop
|
|
||||||
"""
|
|
||||||
self.loop = urwid.MainLoop(self.ui, self.palette,
|
self.loop = urwid.MainLoop(self.ui, self.palette,
|
||||||
unhandled_input=self.header_hotkeys)
|
unhandled_input=self.header_hotkeys)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
self.update()
|
||||||
self.loop.run()
|
self.loop.run()
|
||||||
except:
|
except:
|
||||||
log.exception("Exception in controller.run():")
|
log.exception("Exception in controller.run():")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
def begin(self):
|
||||||
|
""" Initializes the first controller for installation """
|
||||||
Routes.reset()
|
Routes.reset()
|
||||||
initial_controller = Routes.first()
|
initial_controller = Routes.first()
|
||||||
self.set_body(initial_controller(self).show())
|
initial_controller(self).show()
|
||||||
|
|
|
@ -41,6 +41,11 @@ class Routes:
|
||||||
raise RoutesError("Failed to load Route at index: {}".format(idx))
|
raise RoutesError("Failed to load Route at index: {}".format(idx))
|
||||||
return _route
|
return _route
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def current_idx(cls):
|
||||||
|
""" Returns current route index """
|
||||||
|
return cls.current_route_idx
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def reset(cls):
|
def reset(cls):
|
||||||
""" Resets current route """
|
""" Resets current route """
|
||||||
|
|
Loading…
Reference in New Issue