diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2010-02-11 23:14:35 +0100 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2010-02-11 23:14:35 +0100 |
| commit | 325b302e9142dcec73452ea1e5207d94855a0ab2 (patch) | |
| tree | 91d8b666087bb090e250e06277cfb200569b8cdf | |
| parent | e058cb26c1fe4a6352ac5987c94694c0ecc1ff98 (diff) | |
| parent | 7c2f35aa189b8e3d4d5e3fece3362d71ee160762 (diff) | |
| download | enigma2-325b302e9142dcec73452ea1e5207d94855a0ab2.tar.gz enigma2-325b302e9142dcec73452ea1e5207d94855a0ab2.zip | |
Merge branch 'bug_443_listbox_selection' into experimental
| -rw-r--r-- | data/encoding.conf | 27 | ||||
| -rw-r--r-- | lib/python/Components/Converter/TemplatedMultiContent.py | 20 | ||||
| -rw-r--r-- | lib/python/Components/Renderer/Listbox.py | 4 | ||||
| -rw-r--r-- | lib/python/Components/Sources/List.py | 5 |
4 files changed, 33 insertions, 23 deletions
diff --git a/data/encoding.conf b/data/encoding.conf index 9383317e..3f09b564 100644 --- a/data/encoding.conf +++ b/data/encoding.conf @@ -12,18 +12,21 @@ bul ISO8859-5 #so our default is ISO8859-1 without two char byte encoding #So all transponders which needs this must be listed here #TSID ONID -0x447 0x1 #ASTRA 19.2 UPC Direct -0x427 0x1 #ASTRA 19.2 UPC Direct -0x44b 0x1 #ASTRA 19.2 UPC Direct -0x4ff 0x1 #ASTRA 19.2 UPC Direct -0x407 0x1 #ASTRA 19.2 UPC Direct -0x436 0x1 #ASTRA 19.2 MTV Euro - MTV Networks -0x42a 0x1 #ASTRA 19.2 VH1 Classic - MTV Networks -0xbc6 0x3 #ASTRA 23.5 Cslink, Skylink -0xc85 0x3 #ASTRA 23.5 Cslink, Skylink -0xc89 0x3 #ASTRA 23.5 Cslink, Skylink -0xc8f 0x3 #ASTRA 23.5 Cslink, Skylink -0xbc7 0x3 #ASTRA 23.5 Cslink, Skylink +0x447 0x1 # Astra 19.2°E 12.304 H - UPC Direct +0x427 0x1 # Astra 19.2°E 10.920 H - UPC Direct +0x44b 0x1 # Astra 19.2°E 12.382 H - UPC Direct +0x4ff 0x1 # Astra 19.2°E 11.992 H - UPC Direct +0x407 0x1 # Astra 19.2°E 11.671 H - UPC Direct +0x436 0x1 # Astra 19.2°E 11.973 V - MTV Networks Europe +0x42a 0x1 # Astra 19.2°E 11.739 V - MTV Networks Europe +0xc23 0x3 # Astra 23.5°E 10.803 H - CS Link / SkyLink +0xc85 0x3 # Astra 23.5°E 11.797 H - CS Link / SkyLink +0xc89 0x3 # Astra 23.5°E 11.876 H - CS Link / SkyLink +0xc8f 0x3 # Astra 23.5°E 11.992 H - CS Link / SkyLink +0xc93 0x3 # Astra 23.5°E 12.070 H - CS Link / SkyLink +0xc95 0x3 # Astra 23.5°E 12.109 H - SkyLink +0xbc6 0x3 # Astra 23.5°E 12.525 V - CS Link / SkyLink +0xbc7 0x3 # Astra 23.5°E 12.565 H - SkyLink 400 318 #Hotbird 13.0 Cyfra+ 1000 318 #Hotbird 13.0 Grupa ITI 1500 318 #Hotbird 13.0 Cyfra+ diff --git a/lib/python/Components/Converter/TemplatedMultiContent.py b/lib/python/Components/Converter/TemplatedMultiContent.py index b86d94bf..b5a98449 100644 --- a/lib/python/Components/Converter/TemplatedMultiContent.py +++ b/lib/python/Components/Converter/TemplatedMultiContent.py @@ -10,8 +10,8 @@ class TemplatedMultiContent(StringList): del l["self"] # cleanup locals a bit del l["args"] - self.template = eval(args, {}, l) self.active_style = None + self.template = eval(args, {}, l) assert "fonts" in self.template assert "itemHeight" in self.template assert "template" in self.template or "templates" in self.template @@ -25,7 +25,6 @@ class TemplatedMultiContent(StringList): if not self.content: from enigma import eListboxPythonMultiContent self.content = eListboxPythonMultiContent() - self.setTemplate() # also setup fonts (also given by source) index = 0 @@ -35,30 +34,33 @@ class TemplatedMultiContent(StringList): # if only template changed, don't reload list if what[0] == self.CHANGED_SPECIFIC and what[1] == "style": - self.setTemplate() - return - - if self.source: + pass + elif self.source: self.content.setList(self.source.list) - self.setTemplate() + self.setTemplate() self.downstream_elements.changed(what) def setTemplate(self): if self.source: style = self.source.style + if style == self.active_style: - return # style did not change + return # if skin defined "templates", that means that it defines multiple styles in a dict. template should still be a default templates = self.template.get("templates") template = self.template.get("template") itemheight = self.template["itemHeight"] + selectionEnabled = self.template.get("selectionEnabled", True) if templates and style and style in templates: # if we have a custom style defined in the source, and different templates in the skin, look it up template = templates[style][1] itemheight = templates[style][0] + if len(templates[style]) > 2: + selectionEnabled = templates[style][2] self.content.setTemplate(template) - self.content.setItemHeight(itemheight) + self.selectionEnabled = selectionEnabled + self.active_style = style diff --git a/lib/python/Components/Renderer/Listbox.py b/lib/python/Components/Renderer/Listbox.py index 7a895330..640121e1 100644 --- a/lib/python/Components/Renderer/Listbox.py +++ b/lib/python/Components/Renderer/Listbox.py @@ -77,6 +77,10 @@ class Listbox(Renderer, object): selection_enabled = property(lambda self: self.__selection_enabled, setSelectionEnabled) def changed(self, what): + if hasattr(self.source, "selectionEnabled"): + self.selection_enabled = self.source.selectionEnabled + if len(what) > 1 and isinstance(what[1], str) and what[1] == "style": + return self.content = self.source.content def entry_changed(self, index): diff --git a/lib/python/Components/Sources/List.py b/lib/python/Components/Sources/List.py index 1eab32b2..6f0670a1 100644 --- a/lib/python/Components/Sources/List.py +++ b/lib/python/Components/Sources/List.py @@ -91,8 +91,9 @@ to generate HTML.""" return self.__style def setStyle(self, style): - self.__style = style - self.changed((self.CHANGED_SPECIFIC, "style")) + if self.__style != style: + self.__style = style + self.changed((self.CHANGED_SPECIFIC, "style")) style = property(getStyle, setStyle) |
