From: Stefan Pluecken <stefan.pluecken@multimedia-labs.de> Date: Fri, 2 Sep 2005 22:39:40 +0000 (+0000) Subject: add option for DHCP and possibility to disable configElements X-Git-Tag: 2.6.0~5589 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/11b18fabe50ba2cea39503eccaf0c4fdbc741f4d add option for DHCP and possibility to disable configElements --- diff --git a/data/setup.xml b/data/setup.xml index 3b92ec61..ee6549ba 100644 --- a/data/setup.xml +++ b/data/setup.xml @@ -16,6 +16,7 @@ <item text="VCR Switch">config.av.vcrswitch</item> </setup> <setup key="network" title="Networksetup"> + <item text="Use DHCP">config.network.dhcp</item> <item text="IP Address">config.network.ip</item> <item text="Gateway">config.network.gateway</item> <item text="Nameserver">config.network.dns</item> diff --git a/lib/python/Components/Network.py b/lib/python/Components/Network.py index 3740e51b..d53bf00e 100644 --- a/lib/python/Components/Network.py +++ b/lib/python/Components/Network.py @@ -6,6 +6,18 @@ class Network: def __init__(self): pass + def setDHCP(self, useDHCP): + if (useDHCP): + print "Using DHCP" + config.network.ip.enabled = False + config.network.gateway.enabled = False + config.network.dns.enabled = False + else: + print "NOT using DHCP" + config.network.ip.enabled = True + config.network.gateway.enabled = True + config.network.dns.enabled = True + def setIPAddress(self, ip): print ip os.system("echo ifconfig eth0 %d.%d.%d.%d" % (ip[0], ip[1], ip[2], ip[3])) @@ -19,10 +31,11 @@ class Network: resolvconf.close() def setMACAddress(self, mac): - os.system("echo ifconfig eth0 %02x:%02x:%02x:%02x:%02x:%02x" % (mac[0], mac[1], mac[2], mac[3], mac[4], mac[5])) + os.system("echo ifconfig eth0 ether %02x:%02x:%02x:%02x:%02x:%02x" % (mac[0], mac[1], mac[2], mac[3], mac[4], mac[5])) def InitNetwork(): config.network = ConfigSubsection() + config.network.dhcp = configElement("config.network.dhcp", configBoolean, 0, ("no", "yes")) config.network.ip = configElement("config.network.ip", configSequence, [192,168,1,45], (("."), 3)) config.network.gateway = configElement("config.network.gateway", configSequence, [192,168,1,3], (("."), 3)) config.network.dns = configElement("config.network.dns", configSequence, [192,168,1,3], (("."), 3)) @@ -30,6 +43,9 @@ def InitNetwork(): iNetwork = Network() + def setDHCP(configElement): + iNetwork.setDHCP(configElement.value) + def setIPAddress(configElement): iNetwork.setIPAddress(configElement.value) @@ -43,6 +59,7 @@ def InitNetwork(): iNetwork.setMACAddress(configElement.value) # this will call the "setup-val" initial + config.network.dhcp.addNotifier(setDHCP) config.network.ip.addNotifier(setIPAddress) config.network.gateway.addNotifier(setIPGateway) config.network.dns.addNotifier(setIPNameserver) diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index e8376385..c7434e4d 100644 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -233,6 +233,7 @@ class configElement: self.controlType = control self.vals = vals self.notifierList = [ ] + self.enabled = True self.loadData() def addNotifier(self, notifier): self.notifierList.append(notifier); diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index e2e55974..36b64c1c 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -51,11 +51,14 @@ class Setup(Screen): list.append( (ItemText, item) ) def keyOk(self): - self["config"].handleKey(config.choseElement) + if (self["config"].getCurrent()[1].parent.enabled == True): + self["config"].handleKey(config.choseElement) def keyLeft(self): - self["config"].handleKey(config.prevElement) + if (self["config"].getCurrent()[1].parent.enabled == True): + self["config"].handleKey(config.prevElement) def keyRight(self): - self["config"].handleKey(config.nextElement) + if (self["config"].getCurrent()[1].parent.enabled == True): + self["config"].handleKey(config.nextElement) def keySave(self): print "save requested"