- improved scan error handling
[enigma2.git] / screens.py
index 82646282c4935be4eb1d170352666f8383bdcfae..fe8d69dbdbe73522a393aae34734dbb48ae30b5d 100644 (file)
@@ -15,17 +15,22 @@ class Screen(dict, HTMLSkin, GUISkin):
                GUISkin.__init__(self)
                
        def execBegin(self):
                GUISkin.__init__(self)
                
        def execBegin(self):
+#              assert self.session == None, "a screen can only exec one per time"
+#              self.session = session
                for (name, val) in self.items():
                        val.execBegin()
        
        def execEnd(self):
                for (name, val) in self.items():
                        val.execEnd()
                for (name, val) in self.items():
                        val.execBegin()
        
        def execEnd(self):
                for (name, val) in self.items():
                        val.execEnd()
+#              assert self.session != None, "execEnd on non-execing screen!"
+#              self.session = None
        
        # never call this directly - it will be called from the session!
        def doClose(self):
                GUISkin.close(self)
                
        
        # never call this directly - it will be called from the session!
        def doClose(self):
                GUISkin.close(self)
                
+               del self.session
                for (name, val) in self.items():
                        print "%s -> %d" % (name, sys.getrefcount(val))
                        del self[name]
                for (name, val) in self.items():
                        print "%s -> %d" % (name, sys.getrefcount(val))
                        del self[name]
@@ -78,14 +83,6 @@ class mainMenu(Screen):
                                ("wie spaet ists?!", self.goClock)
                        ])
 
                                ("wie spaet ists?!", self.goClock)
                        ])
 
-#class mainMenu(Screen):
-#      def __init__(self):
-#              GUISkin.__init__(self)
-#              
-#              self["title"] = Header("this is the\nMAIN MENU !!!");
-#              self["okbutton"] = Button("ok")
-#              self["okbutton"].onClick = [ self.close ]
-
 class channelSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
 class channelSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
@@ -165,9 +162,13 @@ class clockDisplay(Screen):
 
 class serviceScan(Screen):
        def ok(self):
 
 class serviceScan(Screen):
        def ok(self):
+               print "ok"
                if self["scan"].isDone():
                        self.close()
        
                if self["scan"].isDone():
                        self.close()
        
+       def cancel(self):
+               print "cancel not yet implemented ;)"
+       
        def __init__(self, session):
                Screen.__init__(self, session)
                
        def __init__(self, session):
                Screen.__init__(self, session)
                
@@ -175,5 +176,9 @@ class serviceScan(Screen):
                self["scan_state"] = Label("scan state")
                self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"])
 
                self["scan_state"] = Label("scan state")
                self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"])
 
-               self["okbutton"] = Button("ok", [self.ok])
-               self["okbutton"].disable()
+               self["actions"] = ActionMap(["OkCancelActions"], 
+                       {
+                               "ok": self.ok,
+                               "cancel": self.cancel
+                       })
+