Mercurial > getan > getan
diff getan/controller.py @ 194:cf98dc7f9354
Move mainloop related code to GetanController
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Wed, 23 Jan 2013 15:04:43 +0100 |
parents | 5e069074b1c9 |
children | 9f85ffa0a2f6 |
line wrap: on
line diff
--- a/getan/controller.py Thu Jan 17 11:44:33 2013 +0100 +++ b/getan/controller.py Wed Jan 23 15:04:43 2013 +0100 @@ -10,6 +10,8 @@ # import logging +import urwid + from datetime import datetime from getan.view import GetanView @@ -39,7 +41,12 @@ self.state = PausedProjectsState(self, self.project_view) def main(self): - self.view.run() + self.loop = urwid.MainLoop(self.view.get_frame(), + self.view.get_palette(), + screen=urwid.raw_display.Screen(), + unhandled_input=self.unhandled_keypress, + input_filter=self.input_filter) + self.loop.run() def unhandled_keypress(self, key): self.state = self.state.keypress(key) @@ -107,9 +114,6 @@ self.project_view.update() self.view.update_view() - def exit(self): - self.view.exit() - def project_by_key(self, key): for proj in self.projects: if proj.key == key: @@ -180,3 +184,7 @@ def get_config(self): return self.config + + def exit(self): + logger.info("GetanController: exit.") + raise urwid.ExitMainLoop()