X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/911466bd5e018b80dfbbd5e12c4923e89a980792..d4fb39b22f791a7b30e3b3e2077d7410495bb9bb:/lib/python/Components/Converter/StringList.py diff --git a/lib/python/Components/Converter/StringList.py b/lib/python/Components/Converter/StringList.py index d5421976..213f08bc 100644 --- a/lib/python/Components/Converter/StringList.py +++ b/lib/python/Components/Converter/StringList.py @@ -1,33 +1,45 @@ from Converter import Converter from enigma import eListboxPythonStringContent - +from Components.Element import cached class StringList(Converter): """Turns a simple python list into a list which can be used in a listbox.""" def __init__(self, type): Converter.__init__(self, type) + self.content = None + + def changed(self, what): + if not self.content: + self.content = eListboxPythonStringContent() - def changed(self): - self.content = eListboxPythonStringContent() if self.source: self.content.setList(self.source.list) - self.downstream_elements.changed() + self.downstream_elements.changed(what) def selectionChanged(self, index): self.source.selectionChanged(index) + + def setIndex(self, index): # update all non-master targets for x in self.downstream_elements: if x is not self.master: x.index = index + def getIndex(self, index): + return None + + index = property(getIndex, setIndex) + + @cached def getCurrent(self): - if self.source is None: + if self.source is None or self.index is None or self.index >= len(self.source.list): return None return self.source.list[self.index] current = property(getCurrent) # pass through: getIndex / setIndex to master + @cached def getIndex(self): if self.master is None: return None @@ -36,5 +48,8 @@ class StringList(Converter): def setIndex(self, index): if self.master is not None: self.master.index = index - + index = property(getIndex, setIndex) + + def entry_changed(self, index): + self.downstream_elements.entry_changed(index)