1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.config import config #global config instance
4 from Components.config import configEntry
5 from Components.config import configBoolean
6 from Components.ConfigList import ConfigList
9 from xml.dom import EMPTY_NAMESPACE
10 from skin import elementsWithTag
12 from Tools import XMLTools
14 setupdom = xml.dom.minidom.parseString(
16 <setup key="rc" title="RC Menu">
17 <item text="Repeat Rate">config.inputDevices.repeat</item>
18 <item text="Delay Rate">config.inputDevices.delay</item>
22 def getValbyAttr(x, attr):
23 for p in range(x.attributes.length):
24 a = x.attributes.item(p)
34 def addItems(self, list, childNode):
36 if x.nodeType != xml.dom.minidom.Element.nodeType:
38 elif x.tagName == 'item':
39 ItemText = getValbyAttr(x, "text")
40 b = XMLTools.mergeText(x.childNodes);
41 print "item " + ItemText + " " + b
43 list.append( (ItemText, config.getControlType(b) ) )
45 def __init__(self, session, setup):
46 Screen.__init__(self, session)
48 print "request setup for " + setup
50 entries = setupdom.childNodes
54 for x in entries: #walk through the actual nodelist
55 if x.nodeType != xml.dom.minidom.Element.nodeType:
57 elif x.tagName == 'setup':
58 ItemText = getValbyAttr(x, "key")
61 self.addItems(list, x.childNodes);
63 #check for list.entries > 0 else self.close
64 self["config"] = ConfigList(list)
66 self["actions"] = ActionMap(["OkCancelActions"],
68 "ok": self["config"].toggle,