allow burning DVDs with multiple titles where playback automatically jumps to the...
[enigma2.git] / lib / python / Components / HelpMenuList.py
index 0cd2fd2f6f516b692a9dbcb22653400cbf861688..25c9b8b6bcbb397ad085eb62690f530a7d1b8349 100644 (file)
@@ -1,4 +1,4 @@
-from GUIComponent import *
+from GUIComponent import GUIComponent
 
 from enigma import eListboxPythonMultiContent, eListbox, gFont
 
@@ -21,13 +21,23 @@ class HelpMenuList(GUIComponent):
 
                                buttons = queryKeyBinding(context, action)
 
+                               # do not display entries which are not accessible from keys
+                               if not len(buttons):
+                                       continue
+
                                name = None
+                               flags = 0
 
                                for n in buttons:
-                                       name = getKeyDescription(n)
+                                       (name, flags) = (getKeyDescription(n[0]), n[1])
                                        if name is not None:
                                                break
 
+                               if flags & 8: # for long keypresses, prepend l_ into the key name.
+                                       name = (name[0], "long")
+                                       
+                               print "name:", name
+
                                entry.append( (actionmap, context, action, name ) )
                                entry.append( (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 400, 28, 0, 0, help) )
 
@@ -35,8 +45,8 @@ class HelpMenuList(GUIComponent):
 
                self.l.setList(l)
 
-               self.l.setFont(0, gFont("Regular", 26))
-               self.l.setItemHeight(42)
+               self.l.setFont(0, gFont("Regular", 24))
+               self.l.setItemHeight(38)
 
        def ok(self):
                # a list entry has a "private" tuple as first entry...
@@ -55,9 +65,12 @@ class HelpMenuList(GUIComponent):
 
        def postWidgetCreate(self, instance):
                instance.setContent(self.l)
-
                instance.selectionChanged.get().append(self.selectionChanged)
 
+       def preWidgetRemove(self, instance):
+               instance.setContent(None)
+               instance.selectionChanged.get().remove(self.selectionChanged)
+
        def selectionChanged(self):
                for x in self.onSelChanged:
                        x()