X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FSources%2FList.py;h=6f0670a1f6f059d8485d0c0016c8a79847ce7cd8;hp=791929a0a66d3dd436ce2b67a04dda0266f1492e;hb=6249914820d4028175d86237fdac9b155d1834fa;hpb=245b038a7bb1abd05a50ffa680eba4d4b1134eb2 diff --git a/lib/python/Components/Sources/List.py b/lib/python/Components/Sources/List.py index 791929a..6f0670a 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 @@ -26,8 +27,12 @@ to generate HTML.""" def entry_changed(self, index): if not self.disable_callbacks: - self.downstream_elements.entry_changed(self, index) - + self.downstream_elements.entry_changed(index) + + def modifyEntry(self, index, data): + self.__list[index] = data + self.entry_changed(index) + def count(self): return len(self.__list) @@ -35,6 +40,11 @@ to generate HTML.""" if self.disable_callbacks: return + # update all non-master targets + for x in self.downstream_elements: + if x is not self.master: + x.index = index + for x in self.onSelectionChanged: x() @@ -66,7 +76,7 @@ to generate HTML.""" self.index = 0 else: self.index += 1 - self.setIndex() + self.setIndex(self.index) def selectPrevious(self): if self.getIndex() - 1 < 0: @@ -74,19 +84,24 @@ to generate HTML.""" self.index = self.count() - 1 else: self.index -= 1 - self.setIndex() + self.setIndex(self.index) + + @cached + def getStyle(self): + return self.__style + + def setStyle(self, style): + if self.__style != 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"