recursive close with menu key in menu
authorFelix Domke <tmbinc@elitedvb.net>
Fri, 3 Feb 2006 22:29:15 +0000 (22:29 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Fri, 3 Feb 2006 22:29:15 +0000 (22:29 +0000)
lib/python/Screens/Menu.py

index 9c41c16..db41cd5 100644 (file)
@@ -102,15 +102,19 @@ class Menu(Screen):
                self.session.open(*dialog)
 
        def openSetup(self, dialog):
-               self.session.open(Setup, dialog)
+               self.session.openWithCallback(self.menuClosed, Setup, dialog)
 
        def addMenu(self, destList, node):
                MenuTitle = _(getValbyAttr(node, "text"))
                if MenuTitle != "":                                                                                                                                     #check for title
-                       a = boundFunction(self.session.open, Menu, node, node.childNodes)
+                       a = boundFunction(self.session.openWithCallback, self.menuClosed, Menu, node, node.childNodes)
                        #TODO add check if !empty(node.childNodes)
                        destList.append((MenuTitle, a))
-               
+
+       def menuClosed(self, *res):
+               if len(res) and res[0]:
+                       self.close(True)
+
        def addItem(self, destList, node):
                ItemText = _(getValbyAttr(node, "text"))
                if ItemText != "":                                                                                                                                      #check for name
@@ -177,8 +181,8 @@ class Menu(Screen):
                self["actions"] = ActionMap(["OkCancelActions", "MenuActions"], 
                        {
                                "ok": self.okbuttonClick,
-                               "cancel": self.close,
-                               "menu": self.close
+                               "cancel": self.closeNonRecursive,
+                               "menu": self.closeRecursive
                        })
                
                a = getValbyAttr(parent, "title")
@@ -186,6 +190,12 @@ class Menu(Screen):
                        a = _(getValbyAttr(parent, "text"))
                self["title"] = Header(a)
 
+       def closeNonRecursive(self):
+               self.close(False)
+
+       def closeRecursive(self):
+               self.close(True)
+
 class MainMenu(Menu):
        #add file load functions for the xml-file