do not crash when attributes are not present; replace by defaults instead
[vuplus_dvbapp] / lib / python / Screens / NetworkSetup.py
index 4416b52..cf03f11 100644 (file)
@@ -9,24 +9,30 @@ from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothi
 from Components.PluginComponent import plugins
 from Plugins.Plugin import PluginDescriptor
 
-
 class NetworkAdapterSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
 
-               self["adapterlist"] = MenuList(iNetwork.getAdapterList())
+               self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
 
+               self["adapterlist"] = MenuList(self.adapters)
                self["actions"] = ActionMap(["OkCancelActions"],
                {
-                       "ok": self.okbuttonClick ,
+                       "ok": self.okbuttonClick,
                        "cancel": self.close
                })
 
+               if len(self.adapters) == 1:
+                       self.onFirstExecBegin.append(self.okbuttonClick)
+
        def okbuttonClick(self):
                selection = self["adapterlist"].getCurrent()
-               print "selection:", selection
                if selection is not None:
-                       self.session.open(AdapterSetup, selection)
+                       self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, selection[1])
+
+       def AdapterSetupClosed(self, *ret):
+               if len(self.adapters) == 1: # just one network adapter.. close selection
+                       self.close()
 
 class NameserverSetup(Screen, ConfigListScreen):
        def __init__(self, session):
@@ -96,7 +102,6 @@ class NameserverSetup(Screen, ConfigListScreen):
                        self.createConfig()
                        self.createSetup()
 
-
 class AdapterSetup(Screen, ConfigListScreen):
        def __init__(self, session, iface):
                Screen.__init__(self, session)
@@ -104,13 +109,13 @@ class AdapterSetup(Screen, ConfigListScreen):
                self.iface = iface
 
                print iNetwork.getAdapterAttribute(self.iface, "dhcp")
-               self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp")))
+               self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False))
                self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=True))
-               self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")))
-               self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask")))
-               self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway")))
+               self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")) or [0,0,0,0])
+               self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0]))
+               self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0]))
        
-               self["iface"] = Label(iNetwork.getAdapterName(self.iface))
+               self["iface"] = Label(iNetwork.getFriendlyAdapterName(self.iface))
 
                self["actions"] = ActionMap(["SetupActions"],
                {
@@ -123,6 +128,15 @@ class AdapterSetup(Screen, ConfigListScreen):
                self.createSetup()
 
                self["introduction"] = Label(_("Press OK to activate the settings."))
+               self["introduction2"] = Label(_("Current settings:"))
+               
+               self["IPtext"] = Label(_("IP Address"))
+               self["Netmasktext"] = Label(_("Netmask"))
+               self["Gatewaytext"] = Label(_("Gateway"))
+               
+               self["IP"] = Label(self.ipConfigEntry.getText())
+               self["Mask"] = Label(self.netmaskConfigEntry.getText())
+               self["Gateway"] = Label(self.gatewayConfigEntry.getText())
 
        def createSetup(self):
                self.list = []