I/O priority support with cfq scheduler (needs new kernel patch)
[enigma2.git] / lib / python / Screens / NetworkSetup.py
index c99ee247826e0c9c74c6b41a07cbf00b1af9d0f1..0317975851553d6d335884aa4f9ead988d1903b4 100644 (file)
@@ -1,57 +1,81 @@
 from Screen import Screen
-from Components.ActionMap import ActionMap
+from Components.ActionMap import NumberActionMap
 from Components.ConfigList import ConfigList
 from Components.config import config
 from Components.config import getConfigListEntry
+from Components.Network import iNetwork
+from Components.Label import Label
 
 class NetworkSetup(Screen):
-    def __init__(self, session):
-        Screen.__init__(self, session)
-        
-        self["actions"] = ActionMap(["SetupActions"],
-        {
-            "ok": self.keySave,
-            "cancel": self.keyCancel,
-            "left": self.keyLeft,
-            "right": self.keyRight
-        }, -1)
-
-        self.list = []
-        self["config"] = ConfigList(self.list)
-        self.createSetup()
-        
-    def createSetup(self):
-        self.list = []
-        
-        self.list.append(getConfigListEntry("Use DHCP", config.network.dhcp))
-        if (config.network.dhcp.value == 0):
-            self.list.append(getConfigListEntry("IP Address", config.network.ip))
-            self.list.append(getConfigListEntry("Netmask", config.network.netmask))
-            self.list.append(getConfigListEntry("Gateway", config.network.gateway))
-            self.list.append(getConfigListEntry("Nameserver", config.network.dns))
-        
-        self["config"].list = self.list
-        self["config"].l.setList(self.list)
-        
-    def newConfig(self):
-        print self["config"].getCurrent()
-        if self["config"].getCurrent()[0] == "Use DHCP":
-            self.createSetup()
+       def __init__(self, session):
+               Screen.__init__(self, session)
+        
+               self["actions"] = NumberActionMap(["SetupActions"],
+               {
+                       "ok": self.keySave,
+                       "cancel": self.keyCancel,
+                       "left": self.keyLeft,
+                       "right": self.keyRight,
+                       "1": self.keyNumberGlobal,
+                       "2": self.keyNumberGlobal,
+                       "3": self.keyNumberGlobal,
+                       "4": self.keyNumberGlobal,
+                       "5": self.keyNumberGlobal,
+                       "6": self.keyNumberGlobal,
+                       "7": self.keyNumberGlobal,
+                       "8": self.keyNumberGlobal,
+                       "9": self.keyNumberGlobal,
+                       "0": self.keyNumberGlobal
+               }, -1)
 
-    def keyLeft(self):
-        self["config"].handleKey(config.key["prevElement"])
-        self.newConfig()
+               self.list = []
+               self["config"] = ConfigList(self.list)
+               self.createSetup()
+        
+               self["introduction"] = Label(_("Press OK to activate the settings."))
+        
+       def createSetup(self):
+               self.list = []
+        
+               self.dhcpEntry = getConfigListEntry(_("Use DHCP"), config.network.dhcp)
+               self.list.append(self.dhcpEntry)
+               self.list.append(getConfigListEntry(_('IP Address'), config.network.ip))
+               if (config.network.dhcp.value == 0):
+                       self.list.append(getConfigListEntry(_('Netmask'), config.network.netmask))
+                       self.list.append(getConfigListEntry(_('Gateway'), config.network.gateway))
+                       self.list.append(getConfigListEntry(_('Nameserver'), config.network.dns))
+        
+               self["config"].list = self.list
+               self["config"].l.setList(self.list)
+        
+       def newConfig(self):
+               print self["config"].getCurrent()
+               if self["config"].getCurrent() == self.dhcpEntry:
+                       self.createSetup()
 
-    def keyRight(self):
-        self["config"].handleKey(config.key["nextElement"])
-        self.newConfig()
+       def keyLeft(self):
+               self["config"].handleKey(config.key["prevElement"])
+               self.newConfig()
 
-    def keySave(self):
-        #for x in self["config"].list:
-            #x[1].save()
-        self.close()
+       def keyRight(self):
+               self["config"].handleKey(config.key["nextElement"])
+               self.newConfig()
+    
+       def keyNumberGlobal(self, number):
+               print "You pressed number " + str(number)
+               if (self["config"].getCurrent()[1].parent.enabled == True):
+                       self["config"].handleKey(config.key[str(number)])
+        
+       def keySave(self):
+               #for x in self["config"].list:
+                       #x[1].save()
+        
+               iNetwork.writeNetworkConfig()    
+               iNetwork.activateNetworkConfig()
+               self.close()
 
-    def keyCancel(self):
-        for x in self["config"].list:
-            x[1].cancel()
-        self.close()        
\ No newline at end of file
+       def keyCancel(self):
+               for x in self["config"].list:
+                       x[1].cancel()
+               iNetwork.loadNetworkConfig()
+               self.close()