X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c2107d5c3e3c72a68f14cb4adceb86556fb4ea14..911fcb5e5e2bcdeeb8bde259c4fbe7827aa72bf1:/lib/python/Components/HelpMenuList.py diff --git a/lib/python/Components/HelpMenuList.py b/lib/python/Components/HelpMenuList.py index 48802f7b..25c9b8b6 100644 --- a/lib/python/Components/HelpMenuList.py +++ b/lib/python/Components/HelpMenuList.py @@ -1,4 +1,4 @@ -from GUIComponent import * +from GUIComponent import GUIComponent from enigma import eListboxPythonMultiContent, eListbox, gFont @@ -13,30 +13,41 @@ class HelpMenuList(GUIComponent): self.onSelChanged = [ ] self.l = eListboxPythonMultiContent() self.callback = callback - + l = [ ] for (actionmap, context, actions) in list: for (action, help) in actions: entry = [ ] - + 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) ) - + l.append(entry) - + self.l.setList(l) - - self.l.setFont(0, gFont("Regular", 26)) - + + self.l.setFont(0, gFont("Regular", 24)) + self.l.setItemHeight(38) + def ok(self): # a list entry has a "private" tuple as first entry... l = self.getCurrent() @@ -45,7 +56,7 @@ class HelpMenuList(GUIComponent): # ...containing (Actionmap, Context, Action, keydata). # we returns this tuple to the callback. self.callback(l[0], l[1], l[2]) - + def getCurrent(self): sel = self.l.getCurrentSelection() return sel and sel[0] @@ -54,9 +65,12 @@ class HelpMenuList(GUIComponent): def postWidgetCreate(self, instance): instance.setContent(self.l) - instance.setItemHeight(42) 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()