Always show ip address/gateway/netmask in network settings dialog
[enigma2.git] / lib / python / Screens / NetworkSetup.py
index a2b15e935e7e6976dc8d564c5b5ebd1109abbf35..8a3dadb5baf03333c2493fcfdaad1b1397d3c176 100644 (file)
@@ -1,44 +1,50 @@
 from Screen import Screen
 from Components.ActionMap import ActionMap
 from Screen import Screen
 from Components.ActionMap import ActionMap
-from Components.ConfigList import ConfigList, ConfigListScreen
+from Components.ConfigList import ConfigListScreen
 from Components.config import config, getConfigListEntry
 from Components.Network import iNetwork
 from Components.Label import Label
 from Components.MenuList import MenuList
 from Components.config import config, getConfigListEntry
 from Components.Network import iNetwork
 from Components.Label import Label
 from Components.MenuList import MenuList
-from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigSubsection, ConfigNothing
+from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing
 from Components.PluginComponent import plugins
 from Plugins.Plugin import PluginDescriptor
 
 from Components.PluginComponent import plugins
 from Plugins.Plugin import PluginDescriptor
 
-
 class NetworkAdapterSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
 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"],
                {
                self["actions"] = ActionMap(["OkCancelActions"],
                {
-                       "ok": self.okbuttonClick ,
+                       "ok": self.okbuttonClick,
                        "cancel": self.close
                })
 
                        "cancel": self.close
                })
 
+               if len(self.adapters) == 1:
+                       self.onFirstExecBegin.append(self.okbuttonClick)
+
        def okbuttonClick(self):
                selection = self["adapterlist"].getCurrent()
        def okbuttonClick(self):
                selection = self["adapterlist"].getCurrent()
-               print "selection:", selection
                if selection is not None:
                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):
                Screen.__init__(self, session)
                self.backupNameserverList = iNetwork.getNameserverList()[:]
                print "backup-list:", self.backupNameserverList
 class NameserverSetup(Screen, ConfigListScreen):
        def __init__(self, session):
                Screen.__init__(self, session)
                self.backupNameserverList = iNetwork.getNameserverList()[:]
                print "backup-list:", self.backupNameserverList
-               
+
                self["red"] = Label(_("Delete"))
                self["green"] = Label(_("Add"))
                self["red"] = Label(_("Delete"))
                self["green"] = Label(_("Add"))
-               
+
                self.createConfig()
                self.createConfig()
-               
+
                self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
                {
                        "ok": self.ok,
                self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
                {
                        "ok": self.ok,
@@ -50,21 +56,21 @@ class NameserverSetup(Screen, ConfigListScreen):
                self.list = []
                ConfigListScreen.__init__(self, self.list)
                self.createSetup()
                self.list = []
                ConfigListScreen.__init__(self, self.list)
                self.createSetup()
-               
+
        def createConfig(self):
                self.nameservers = iNetwork.getNameserverList()
                self.nameserverEntries = []
        def createConfig(self):
                self.nameservers = iNetwork.getNameserverList()
                self.nameserverEntries = []
-               
+
                for nameserver in self.nameservers:
                        self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
                for nameserver in self.nameservers:
                        self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
-                       
+
        def createSetup(self):
                self.list = []
 
                #self.nameserverConfigEntries = []
                for i in range(len(self.nameserverEntries)):
                        self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
        def createSetup(self):
                self.list = []
 
                #self.nameserverConfigEntries = []
                for i in range(len(self.nameserverEntries)):
                        self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
-               
+
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
@@ -74,33 +80,32 @@ class NameserverSetup(Screen, ConfigListScreen):
                        iNetwork.addNameserver(nameserver.value)
                iNetwork.writeNameserverConfig()
                self.close()
                        iNetwork.addNameserver(nameserver.value)
                iNetwork.writeNameserverConfig()
                self.close()
-       
+
        def cancel(self):
                iNetwork.clearNameservers()
                print "backup-list:", self.backupNameserverList
                for nameserver in self.backupNameserverList:
                        iNetwork.addNameserver(nameserver)
                self.close()
        def cancel(self):
                iNetwork.clearNameservers()
                print "backup-list:", self.backupNameserverList
                for nameserver in self.backupNameserverList:
                        iNetwork.addNameserver(nameserver)
                self.close()
-       
+
        def add(self):
                iNetwork.addNameserver([0,0,0,0])
                self.createConfig()
                self.createSetup()
        def add(self):
                iNetwork.addNameserver([0,0,0,0])
                self.createConfig()
                self.createSetup()
-       
+
        def remove(self):
                print "currentIndex:", self["config"].getCurrentIndex()
        def remove(self):
                print "currentIndex:", self["config"].getCurrentIndex()
-               
+
                index = self["config"].getCurrentIndex()
                if index < len(self.nameservers):
                        iNetwork.removeNameserver(self.nameservers[index])
                        self.createConfig()
                        self.createSetup()
 
                index = self["config"].getCurrentIndex()
                if index < len(self.nameservers):
                        iNetwork.removeNameserver(self.nameservers[index])
                        self.createConfig()
                        self.createSetup()
 
-               
 class AdapterSetup(Screen, ConfigListScreen):
        def __init__(self, session, iface):
                Screen.__init__(self, session)
 class AdapterSetup(Screen, ConfigListScreen):
        def __init__(self, session, iface):
                Screen.__init__(self, session)
-               
+
                self.iface = iface
 
                print iNetwork.getAdapterAttribute(self.iface, "dhcp")
                self.iface = iface
 
                print iNetwork.getAdapterAttribute(self.iface, "dhcp")
@@ -109,9 +114,9 @@ class AdapterSetup(Screen, ConfigListScreen):
                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")))
                self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask")))
                self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway")))
-        
-               self["iface"] = Label(iNetwork.getAdapterName(self.iface))
-                       
+       
+               self["iface"] = Label(iNetwork.getFriendlyAdapterName(self.iface))
+
                self["actions"] = ActionMap(["SetupActions"],
                {
                        "ok": self.ok,
                self["actions"] = ActionMap(["SetupActions"],
                {
                        "ok": self.ok,
@@ -123,6 +128,15 @@ class AdapterSetup(Screen, ConfigListScreen):
                self.createSetup()
 
                self["introduction"] = Label(_("Press OK to activate the settings."))
                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 = []
 
        def createSetup(self):
                self.list = []
@@ -135,7 +149,7 @@ class AdapterSetup(Screen, ConfigListScreen):
                        self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
                        if self.hasGatewayConfigEntry.value:
                                self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
                        self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
                        if self.hasGatewayConfigEntry.value:
                                self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
-               
+
                self.extended = None
                self.extendedSetup = None
                for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
                self.extended = None
                self.extendedSetup = None
                for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
@@ -147,7 +161,7 @@ class AdapterSetup(Screen, ConfigListScreen):
                                        self.configStrings = p.__call__["configStrings"]
                                else:
                                        self.configStrings = None
                                        self.configStrings = p.__call__["configStrings"]
                                else:
                                        self.configStrings = None
-                               
+
                                if p.__call__.has_key("menuEntryName"):
                                        menuEntryName = p.__call__["menuEntryName"](self.iface)
                                else:
                                if p.__call__.has_key("menuEntryName"):
                                        menuEntryName = p.__call__["menuEntryName"](self.iface)
                                else:
@@ -183,12 +197,12 @@ class AdapterSetup(Screen, ConfigListScreen):
                                iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
                        else:
                                iNetwork.removeAdapterAttribute(self.iface, "gateway")
                                iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
                        else:
                                iNetwork.removeAdapterAttribute(self.iface, "gateway")
-                       
+
                        if self.extended is not None and self.configStrings is not None:
                                iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
 
                        iNetwork.deactivateNetworkConfig()
                        if self.extended is not None and self.configStrings is not None:
                                iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
 
                        iNetwork.deactivateNetworkConfig()
-                       iNetwork.writeNetworkConfig()    
+                       iNetwork.writeNetworkConfig()
                        iNetwork.activateNetworkConfig()
                        self.close()
 
                        iNetwork.activateNetworkConfig()
                        self.close()