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"