X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4b53fef5099e42240db57ce118dd9aa570b7815d..d90dc5a86e764b466487c5da3ff53cacd04fdbf4:/lib/python/Screens/NetworkSetup.py diff --git a/lib/python/Screens/NetworkSetup.py b/lib/python/Screens/NetworkSetup.py index a2b15e93..8a3dadb5 100644 --- a/lib/python/Screens/NetworkSetup.py +++ b/lib/python/Screens/NetworkSetup.py @@ -1,44 +1,50 @@ 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, ConfigYesNo, ConfigIP, NoSave, ConfigSubsection, ConfigNothing +from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing 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): Screen.__init__(self, session) self.backupNameserverList = iNetwork.getNameserverList()[:] print "backup-list:", self.backupNameserverList - + self["red"] = Label(_("Delete")) self["green"] = Label(_("Add")) - + self.createConfig() - + 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() - + def createConfig(self): self.nameservers = iNetwork.getNameserverList() self.nameserverEntries = [] - + 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])) - + 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() - + 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 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() - class AdapterSetup(Screen, ConfigListScreen): def __init__(self, session, iface): Screen.__init__(self, session) - + 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["iface"] = Label(iNetwork.getAdapterName(self.iface)) - + + self["iface"] = Label(iNetwork.getFriendlyAdapterName(self.iface)) + 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["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 = [] @@ -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.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 - + 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") - + 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()