don't crash if boolean source returns None
[enigma2.git] / lib / python / Screens / Menu.py
index 00f16722f4056113b9fe964cf28ee92a4128236c..6ea0f647e1211ffc8bd56487c8f65993635e6f2f 100644 (file)
@@ -1,10 +1,8 @@
 from Screen import Screen
 from Components.Sources.List import List
 from Components.ActionMap import ActionMap
-from Components.Header import Header
-from Components.Label import Label
+from Components.Sources.StaticText import StaticText
 from Components.config import configfile
-from Components.Sources.Clock import Clock
 from Components.PluginComponent import plugins
 
 from Tools.Directories import resolveFilename, SCOPE_SKIN
@@ -50,37 +48,23 @@ class MenuUpdater:
        
        def getUpdatedMenu(self, id):
                return self.updatedMenuItems[id]
-       
+
 menuupdater = MenuUpdater()
 
 class MenuSummary(Screen):
        skin = """
        <screen position="0,0" size="132,64">
-               <widget name="MenuTitle" position="6,4" size="120,21" font="Regular;18" />
-               <widget name="MenuEntry" position="6,25" size="120,21" font="Regular;16" />
-               <widget source="CurrentTime" render="Label" position="56,46" size="82,18" font="Regular;16" >
+               <widget source="parent.title" render="Label" position="6,4" size="120,21" font="Regular;18" />
+               <widget source="parent.menu" render="Label" position="6,25" size="120,21" font="Regular;16">
+                       <convert type="StringListSelection" />
+               </widget>
+               <widget source="global.CurrentTime" render="Label" position="56,46" size="82,18" font="Regular;16" >
                        <convert type="ClockToText">WithSeconds</convert>
                </widget>
        </screen>"""
 
        def __init__(self, session, parent):
-               Screen.__init__(self, session)
-               self["MenuTitle"] = Label(parent.menu_title)
-               self["MenuEntry"] = Label("")
-               self["CurrentTime"] = Clock()
-               self.parent = parent
-               self.onShow.append(self.addWatcher)
-               self.onHide.append(self.removeWatcher)
-       
-       def addWatcher(self):
-               self.parent["menu"].onSelectionChanged.append(self.selectionChanged)
-               self.selectionChanged()
-       
-       def removeWatcher(self):
-               self.parent["menu"].onSelectionChanged.remove(self.selectionChanged)
-
-       def selectionChanged(self):
-               self["MenuEntry"].setText(self.parent["menu"].getCurrent()[0])
+               Screen.__init__(self, session, parent)
 
 class Menu(Screen):
 
@@ -224,7 +208,7 @@ class Menu(Screen):
                a = parent.getAttribute("title").encode("UTF-8") or None
                if a is None:
                        a = _(parent.getAttribute("text").encode("UTF-8"))
-               self["title"] = Header(a)
+               self["title"] = StaticText(a)
                self.menu_title = a
 
        def closeNonRecursive(self):