projects
/
vuplus_dvbapp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
ba3ca76
)
add possibility to disable/enable listbox selection in multicontent templates
author
ghost
<andreas.monzner@multimedia-labs.de>
Thu, 11 Feb 2010 22:12:47 +0000
(23:12 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Wed, 31 Mar 2010 09:04:14 +0000
(11:04 +0200)
fixes bug #443
lib/python/Components/Converter/TemplatedMultiContent.py
patch
|
blob
|
history
lib/python/Components/Renderer/Listbox.py
patch
|
blob
|
history
lib/python/Components/Sources/List.py
patch
|
blob
|
history
diff --git
a/lib/python/Components/Converter/TemplatedMultiContent.py
b/lib/python/Components/Converter/TemplatedMultiContent.py
index
b86d94b
..
b5a9844
100644
(file)
--- 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"]
del l["self"] # cleanup locals a bit
del l["args"]
- self.template = eval(args, {}, l)
self.active_style = None
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
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()
if not self.content:
from enigma import eListboxPythonMultiContent
self.content = eListboxPythonMultiContent()
- self.setTemplate()
# also setup fonts (also given by source)
index = 0
# 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":
# 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.content.setList(self.source.list)
- self.setTemplate()
+ self.setTemplate()
self.downstream_elements.changed(what)
def setTemplate(self):
if self.source:
style = self.source.style
self.downstream_elements.changed(what)
def setTemplate(self):
if self.source:
style = self.source.style
+
if style == self.active_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"]
# 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 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.setTemplate(template)
-
self.content.setItemHeight(itemheight)
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
7a89533
..
640121e
100644
(file)
--- 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):
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):
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
1eab32b
..
6f0670a
100644
(file)
--- 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):
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)
style = property(getStyle, setStyle)