X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/296fb4a470bd2ec2e4163fdda29401b6140a52ad..1109344c9409572f9829e46971b71a7fe1d3c8cc:/lib/python/Components/ServiceList.py diff --git a/lib/python/Components/ServiceList.py b/lib/python/Components/ServiceList.py index a113eb9b..4a27c768 100644 --- a/lib/python/Components/ServiceList.py +++ b/lib/python/Components/ServiceList.py @@ -41,6 +41,19 @@ class ServiceList(HTMLComponent, GUIComponent): self.root = None self.mode = self.MODE_NORMAL + self.onSelectionChanged = [ ] + + def connectSelChanged(self, fnc): + if not fnc in self.onSelectionChanged: + self.onSelectionChanged.append(fnc) + + def disconnectSelChanged(self, fnc): + if fnc in self.onSelectionChanged: + self.onSelectionChanged.remove(fnc) + + def selectionChanged(self): + for x in self.onSelectionChanged: + x() def setCurrent(self, ref): self.l.setCurrent(ref) @@ -93,6 +106,7 @@ class ServiceList(HTMLComponent, GUIComponent): def postWidgetCreate(self, instance): instance.setWrapAround(True) instance.setContent(self.l) + instance.selectionChanged.get().append(self.selectionChanged) self.setMode(self.mode) def getRoot(self): @@ -122,6 +136,7 @@ class ServiceList(HTMLComponent, GUIComponent): self.l.setRoot(root, justSet) if not justSet: self.l.sort() + self.selectionChanged() def removeCurrent(self): self.l.removeCurrent()