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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)