X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FConverter%2FStringList.py;h=d0886620622e35bfbdcdd441635232fd0976309d;hb=6a2f0acb3f92f433eb1ec4fd29a39532dadbaaca;hp=1304c6430bf19be16934538008e7a86bc8ab8640;hpb=9d3112aad388b4369a339b851aa2507a02bb2d4f;p=vuplus_dvbapp diff --git a/lib/python/Components/Converter/StringList.py b/lib/python/Components/Converter/StringList.py index 1304c64..d088662 100644 --- a/lib/python/Components/Converter/StringList.py +++ b/lib/python/Components/Converter/StringList.py @@ -6,23 +6,36 @@ 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): - self.content = eListboxPythonStringContent() + if not self.content: + self.content = eListboxPythonStringContent() + if self.source: self.content.setList(self.source.list) self.downstream_elements.changed(what) def selectionChanged(self, index): self.source.selectionChanged(index) + + def setIndex(self, index): # update all non-master targets + print "changed selection in listbox!" for x in self.downstream_elements: + print "downstream element", x if x is not self.master: + print "is not master, so update to index", index 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] @@ -38,5 +51,9 @@ 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): + if self.content: + self.content.invalidateEntry(index)