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
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"):
self.onChangedEntry = [ ]
+ self.needEntryChange = [ ]
+
self.setup = setup
list = []
self.refill(list)
return SetupSummary
def addItems(self, list, parentNode):
+ self.needEntryChange = [ ]
for x in parentNode:
if x.tag == 'item':
item_level = int(x.get("level", 0))
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"):