From 216dbbfd18a36835b8a48d2f2e1e1ce2c65c8f14 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Mon, 24 Nov 2008 22:42:42 +0100 Subject: catch up DiseqcTest development --- lib/python/Components/Sources/Progress.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/python/Components/Sources') diff --git a/lib/python/Components/Sources/Progress.py b/lib/python/Components/Sources/Progress.py index b96065b3..d57a6179 100644 --- a/lib/python/Components/Sources/Progress.py +++ b/lib/python/Components/Sources/Progress.py @@ -12,5 +12,12 @@ class Progress(Source): def setValue(self, value): self.__value = value self.changed((self.CHANGED_ALL,)) + + def setRange(self, range = 100): + self.range = range + self.changed((self.CHANGED_ALL,)) + + def getRange(self): + return self.range value = property(getValue, setValue) -- cgit v1.2.3 From 2c9a0e18d4ad0b5a73abb5466ea2f70b61daf7fa Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Thu, 15 Jan 2009 13:21:08 +0100 Subject: allow styleable TemplatedMultiContent lists --- .../Components/Converter/TemplatedMultiContent.py | 30 ++++++++++++++++++++-- lib/python/Components/Sources/List.py | 17 +++++++----- 2 files changed, 39 insertions(+), 8 deletions(-) (limited to 'lib/python/Components/Sources') diff --git a/lib/python/Components/Converter/TemplatedMultiContent.py b/lib/python/Components/Converter/TemplatedMultiContent.py index a1b601d6..cc00455c 100644 --- a/lib/python/Components/Converter/TemplatedMultiContent.py +++ b/lib/python/Components/Converter/TemplatedMultiContent.py @@ -11,16 +11,21 @@ class TemplatedMultiContent(StringList): del l["args"] self.template = eval(args, {}, l) + self.active_style = None assert "fonts" in self.template assert "itemHeight" in self.template - assert "template" in self.template + assert "template" in self.template or "templates" in self.template + assert "template" in self.template or "default" in self.template["templates"] # we need to have a default template + + if not "template" in self.template: # default template can be ["template"] or ["templates"]["default"] + self.template["template"] = self.template["templates"]["default"] def changed(self, what): if not self.content: from enigma import eListboxPythonMultiContent self.content = eListboxPythonMultiContent() self.content.setItemHeight(self.template["itemHeight"]) - self.content.setTemplate(self.template["template"]) + self.setTemplate() # also setup fonts (also given by source) index = 0 @@ -28,7 +33,28 @@ class TemplatedMultiContent(StringList): self.content.setFont(index, f) index += 1 + # if only template changed, don't reload list + if what[0] == self.CHANGED_SPECIFIC and what[1] == "style": + self.setTemplate() + return + if self.source: self.content.setList(self.source.list) + 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 + + # 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") + + if templates and style: # if we have a custom style defined in the source, and different templates in the skin, look it up + template = templates.get(self.source.style, template) # default to default template + + self.content.setTemplate(template) diff --git a/lib/python/Components/Sources/List.py b/lib/python/Components/Sources/List.py index ef9c1c89..26c68ab5 100644 --- a/lib/python/Components/Sources/List.py +++ b/lib/python/Components/Sources/List.py @@ -17,6 +17,7 @@ to generate HTML.""" self.fonts = fonts self.disable_callbacks = False self.enableWrapAround = enableWrapAround + self.__style = "default" # style might be an optional string which can be used to define different visualisations in the skin def setList(self, list): self.__list = list @@ -76,17 +77,21 @@ to generate HTML.""" self.index -= 1 self.setIndex(self.index) + @cached + def getStyle(self): + return self.__style + + def setStyle(self, style): + self.__style = style + self.changed((self.CHANGED_SPECIFIC, "style")) + + style = property(getStyle, setStyle) + def updateList(self, list): """Changes the list without changing the selection or emitting changed Events""" assert len(list) == len(self.__list) - print "get old index" old_index = self.index - print "disable callback" self.disable_callbacks = True - print "set list" self.list = list - print "set index" self.index = old_index - print "reenable callbacks" self.disable_callbacks = False - print "done" -- cgit v1.2.3 From 9190777bc7e49f2a5e451ee58f3085215f9cf74a Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Tue, 10 Feb 2009 22:30:03 +0100 Subject: add modifyEntry --- lib/python/Components/Sources/List.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/python/Components/Sources') diff --git a/lib/python/Components/Sources/List.py b/lib/python/Components/Sources/List.py index 26c68ab5..23b53957 100644 --- a/lib/python/Components/Sources/List.py +++ b/lib/python/Components/Sources/List.py @@ -28,7 +28,11 @@ to generate HTML.""" def entry_changed(self, index): if not self.disable_callbacks: self.downstream_elements.entry_changed(self, index) - + + def modifyEntry(self, index, data): + self.__list[index] = data + self.entry_changed(index) + def count(self): return len(self.__list) -- cgit v1.2.3