X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FSetup.py;h=7e4f03a31bfb4c31fc3b8b73148a8a26379bdf1e;hp=61e6fdd72187f8c263c75be820ea7a3400bb95d1;hb=HEAD;hpb=aa994115e6beac1182eaf5d485d4f6a8d46101c0 diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 61e6fdd..7e4f03a 100755 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -19,6 +19,12 @@ except: setupdom = xml.etree.cElementTree.parse(setupfile) setupfile.close() +def getConfigMenuItem(configElement): + for item in setupdom.getroot().findall('./setup/item/.'): + if item.text == configElement: + return _(item.attrib["text"]), eval(configElement) + return "", None + class SetupError(Exception): def __init__(self, message): self.msg = message @@ -62,6 +68,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 +94,8 @@ class Setup(ConfigListScreen, Screen): self.onChangedEntry = [ ] + self.needEntryChange = [ ] + self.setup = setup list = [] self.refill(list) @@ -114,6 +133,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 +160,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"):