aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-02-11 23:14:35 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-02-11 23:14:35 +0100
commit325b302e9142dcec73452ea1e5207d94855a0ab2 (patch)
tree91d8b666087bb090e250e06277cfb200569b8cdf /lib/python/Components
parente058cb26c1fe4a6352ac5987c94694c0ecc1ff98 (diff)
parent7c2f35aa189b8e3d4d5e3fece3362d71ee160762 (diff)
downloadenigma2-325b302e9142dcec73452ea1e5207d94855a0ab2.tar.gz
enigma2-325b302e9142dcec73452ea1e5207d94855a0ab2.zip
Merge branch 'bug_443_listbox_selection' into experimental
Diffstat (limited to 'lib/python/Components')
-rw-r--r--lib/python/Components/Converter/TemplatedMultiContent.py20
-rw-r--r--lib/python/Components/Renderer/Listbox.py4
-rw-r--r--lib/python/Components/Sources/List.py5
3 files changed, 18 insertions, 11 deletions
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)