[AV Settings] add PCM Multichannel entry.
[vuplus_dvbapp] / lib / python / Screens / Setup.py
index 61e6fdd..2e83327 100755 (executable)
@@ -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"):