X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FSetup.py;h=2e833278c473575ee7797ff22021c663277ae02f;hp=61e6fdd72187f8c263c75be820ea7a3400bb95d1;hb=5219d43296787b3592eedba7fd78b54e87638351;hpb=aa994115e6beac1182eaf5d485d4f6a8d46101c0 diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 61e6fdd..2e83327 100755 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -62,6 +62,17 @@ class Setup(ConfigListScreen, Screen): self.refill(list) self["config"].setList(list) + def removeEntryNotifier(self): + if self.needEntryChange: + for item in self.needEntryChange: + if self.entryChanged in item.notifiers: + item.notifiers.remove(self.entryChanged) + + def entryChanged(self, configElement): + list = [] + self.refill(list) + self["config"].setList(list) + def refill(self, list): xmldata = setupdom.getroot() for x in xmldata.findall("setup"): @@ -77,6 +88,8 @@ class Setup(ConfigListScreen, Screen): self.onChangedEntry = [ ] + self.needEntryChange = [ ] + self.setup = setup list = [] self.refill(list) @@ -114,6 +127,7 @@ class Setup(ConfigListScreen, Screen): return SetupSummary def addItems(self, list, parentNode): + self.needEntryChange = [ ] for x in parentNode: if x.tag == 'item': item_level = int(x.get("level", 0)) @@ -140,6 +154,14 @@ class Setup(ConfigListScreen, Screen): if not isinstance(item, ConfigNothing): list.append( (item_text, item) ) + needentrychange = x.get("entrychange") + if needentrychange == "yes": + self.needEntryChange.append(item) + if not self.entryChanged in item.notifiers: + item.notifiers.append(self.entryChanged) + if not self.removeEntryNotifier in self.onClose: + self.onClose.append(self.removeEntryNotifier) + def getSetupTitle(id): xmldata = setupdom.getroot() for x in xmldata.findall("setup"):