Menu.py: add possibility to use the exclamation mark as NOT indicator in menu/setup...
[enigma2.git] / lib / python / Screens / Menu.py
index 93f23dfb620e91b1484e7e6bac9c32a47625fb5c..bb0709e5955a9be8fd72e8445fad9cb4fc85e0b6 100644 (file)
@@ -61,9 +61,6 @@ class MenuSummary(Screen):
                </widget>
        </screen>"""
 
-       def __init__(self, session, parent):
-               Screen.__init__(self, session, parent)
-
 class Menu(Screen):
 
        ALLOW_SUSPEND = True
@@ -100,8 +97,12 @@ class Menu(Screen):
 
        def addMenu(self, destList, node):
                requires = node.get("requires")
-               if requires and not SystemInfo.get(requires, False):
-                       return
+               if requires:
+                       if requires[0] == '!':
+                               if SystemInfo.get(requires[1:], False):
+                                       return
+                       elif not SystemInfo.get(requires, False):
+                               return
                MenuTitle = _(node.get("text", "??").encode("UTF-8"))
                entryID = node.get("entryID", "undefined")
                weight = node.get("weight", 50)
@@ -118,13 +119,17 @@ class Menu(Screen):
                self.menuClosed(*res)
 
        def menuClosed(self, *res):
-               if len(res) and res[0]:
+               if res and res[0]:
                        self.close(True)
 
        def addItem(self, destList, node):
                requires = node.get("requires")
-               if requires and not SystemInfo.get(requires, False):
-                       return
+               if requires:
+                       if requires[0] == '!':
+                               if SystemInfo.get(requires[1:], False):
+                                       return
+                       elif not SystemInfo.get(requires, False):
+                               return
                item_text = node.get("text", "").encode("UTF-8")
                entryID = node.get("entryID", "undefined")
                weight = node.get("weight", 50)