from Screen import Screen
from Components.ActionMap import ActionMap,NumberActionMap
from Screens.MessageBox import MessageBox
+from Screens.InputBox import InputBox
from Screens.Standby import *
-from Components.ConfigList import ConfigListScreen
-from Components.config import config, getConfigListEntry
from Components.Network import iNetwork
-from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
from Components.Label import Label,MultiColorLabel
from Components.Pixmap import Pixmap,MultiPixmap
-from Tools.LoadPixmap import LoadPixmap
from Components.MenuList import MenuList
-from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing, ConfigSubsection, ConfigText, ConfigSelection, getConfigListEntry
+from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigText, ConfigSelection, getConfigListEntry, ConfigNothing
+from Components.ConfigList import ConfigListScreen
from Components.PluginComponent import plugins
+from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
from Plugins.Plugin import PluginDescriptor
-from enigma import eTimer, eConsoleAppContainer,gRGB
-import time, os, re
+from enigma import eTimer
+from os import path as os_path, system as os_system, unlink
+from re import compile as re_compile, search as re_search
from Tools.Directories import resolveFilename, SCOPE_PLUGINS
+from Tools.Directories import SCOPE_SKIN_IMAGE,SCOPE_PLUGINS, resolveFilename
+from Tools.LoadPixmap import LoadPixmap
+from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, gFont
+
+class InterfaceList(MenuList):
+ def __init__(self, list, enableWrapAround=False):
+ MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
+ self.l.setFont(0, gFont("Regular", 20))
+ self.l.setItemHeight(30)
+
+def InterfaceEntryComponent(index,name,default,active ):
+ res = [ (index) ]
+ res.append(MultiContentEntryText(pos=(80, 5), size=(430, 25), font=0, text=name))
+ if default is True:
+ png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/buttons/button_blue.png"))
+ if default is False:
+ png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/buttons/button_blue_off.png"))
+ res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 5), size=(25, 25), png = png))
+ if active is True:
+ png2 = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_on.png"))
+ if active is False:
+ png2 = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_error.png"))
+ res.append(MultiContentEntryPixmapAlphaTest(pos=(40, 1), size=(25, 25), png = png2))
+ return res
+
+
class NetworkAdapterSelection(Screen):
def __init__(self, session):
Screen.__init__(self, session)
- iNetwork.getInterfaces()
+
self.wlan_errortext = _("No working wireless networkadapter found.\nPlease verify that you have attached a compatible WLAN USB Stick and your Network is configured correctly.")
self.lan_errortext = _("No working local networkadapter found.\nPlease verify that you have attached a network cable and your Network is configured correctly.")
+
+ self["ButtonBluetext"] = Label(_("Set as default Interface"))
+ self["ButtonRedtext"] = Label(_("Close"))
+ self["introduction"] = Label(_("Press OK to edit the settings."))
+
self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
+
if len(self.adapters) == 0:
self.onFirstExecBegin.append(self.NetworkFallback)
-
- self["adapterlist"] = MenuList(self.adapters)
- self["actions"] = ActionMap(["OkCancelActions"],
+
+ self.list = []
+ self["list"] = InterfaceList(self.list)
+ self.updateList()
+ self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
{
"ok": self.okbuttonClick,
- "cancel": self.close
- })
+ "cancel": self.close,
+ "blue": self.setDefaultInterface,
+ "red": self.close
+ }, -2)
if len(self.adapters) == 1:
self.onFirstExecBegin.append(self.okbuttonClick)
+ def updateList(self):
+ iNetwork.getInterfaces()
+ self.list = []
+ default_gw = None
+ num_configured_if = len(iNetwork.configuredInterfaces)
+ if num_configured_if < 2 and os_path.exists("/etc/default_gw"):
+ unlink("/etc/default_gw")
+
+ if os_path.exists("/etc/default_gw"):
+ fp = file('/etc/default_gw', 'r')
+ result = fp.read()
+ fp.close()
+ default_gw = result
+
+ if len(self.adapters) == 0: # no interface available => display only eth0
+ self.list.append(InterfaceEntryComponent("eth0",iNetwork.getFriendlyAdapterName('eth0'),True,True ))
+ else:
+ for x in self.adapters:
+ if x[1] == default_gw:
+ default_int = True
+ else:
+ default_int = False
+ if iNetwork.getAdapterAttribute(x[1], 'up') is True:
+ active_int = True
+ else:
+ active_int = False
+ self.list.append(InterfaceEntryComponent(index = x[1],name = _(x[0]),default=default_int,active=active_int ))
+ self["list"].l.setList(self.list)
+
+ def setDefaultInterface(self):
+ selection = self["list"].getCurrent()
+ num_if = len(self.list)
+ old_default_gw = None
+ if os_path.exists("/etc/default_gw"):
+ fp = open('/etc/default_gw', 'r')
+ old_default_gw = fp.read()
+ fp.close()
+ if num_if > 1 and (not old_default_gw or old_default_gw != selection[0]):
+ fp = open('/etc/default_gw', 'w+')
+ fp.write(selection[0])
+ fp.close()
+ iNetwork.restartNetwork()
+ self.updateList()
+ elif old_default_gw and num_if < 2:
+ unlink("/etc/default_gw")
+ iNetwork.restartNetwork()
+ self.updateList()
+
def okbuttonClick(self):
- selection = self["adapterlist"].getCurrent()
+ selection = self["list"].getCurrent()
+ print "selection",selection
if selection is not None:
- self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[1])
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[0])
def AdapterSetupClosed(self, *ret):
- self.close()
+ if len(self.adapters) == 1:
+ self.close()
+ else:
+ self.updateList()
def NetworkFallback(self):
if iNetwork.configuredInterfaces.has_key('wlan0') is True:
self.session.openWithCallback(self.ErrorMessageClosed, MessageBox, self.wlan_errortext, type = MessageBox.TYPE_INFO,timeout = 10)
+ if iNetwork.configuredInterfaces.has_key('ath0') is True:
+ self.session.openWithCallback(self.ErrorMessageClosed, MessageBox, self.wlan_errortext, type = MessageBox.TYPE_INFO,timeout = 10)
else:
self.session.openWithCallback(self.ErrorMessageClosed, MessageBox, self.lan_errortext, type = MessageBox.TYPE_INFO,timeout = 10)
def ErrorMessageClosed(self, *ret):
if iNetwork.configuredInterfaces.has_key('wlan0') is True:
self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, 'wlan0')
+ elif iNetwork.configuredInterfaces.has_key('ath0') is True:
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, 'ath0')
else:
self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, 'eth0')
self["ButtonGreentext"] = Label(_("Add"))
self["ButtonYellowtext"] = Label(_("Delete"))
self["ButtonRedtext"] = Label(_("Close"))
+ self["introduction"] = Label(_("Press OK to activate the settings."))
self.createConfig()
self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
iNetwork.writeNameserverConfig()
self.close()
+ def run(self):
+ self.ok()
+
def cancel(self):
iNetwork.clearNameservers()
print "backup-list:", self.backupNameserverList
iNetwork.removeNameserver(self.nameservers[index])
self.createConfig()
self.createSetup()
-
+
class AdapterSetup(Screen, ConfigListScreen):
def __init__(self, session, iface,essid=None, aplist=None):
Screen.__init__(self, session)
self.session = session
- iNetwork.getInterfaces()
+ self.iface = iface
self.essid = essid
self.aplist = aplist
- ## FIXME , workaround against current wizzard not able to send arguments
- if iface == 0:
- self.iface = "eth0"
- elif iface == 1:
- self.iface = "wlan0"
- else:
- self.iface = iface
-
- if self.iface == 'wlan0':
- from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant,Wlan
- self.ws = wpaSupplicant()
- list = []
- list.append(_("WEP"))
- list.append(_("WPA"))
- list.append(_("WPA2"))
- if self.aplist is not None:
- self.nwlist = self.aplist
- self.nwlist.sort(key = lambda x: x[0])
- else:
- if iNetwork.getAdapterAttribute('wlan0', 'up') is True:
- self.nwlist = []
- try:
- self.w = Wlan('wlan0')
- aps = self.w.getNetworkList()
- if aps is not None:
- print "[Wlan.py] got Accespoints!"
- for ap in aps:
- a = aps[ap]
- if a['active']:
- if a['essid'] == "":
- a['essid'] = a['bssid']
- self.nwlist.append( a['essid'])
- self.nwlist.sort(key = lambda x: x[0])
- except:
- self.nwlist.append("No Networks found")
- else:
- self.nwlist.append("No Networks found")
-
- wsconfig = self.ws.loadConfig()
- default = self.essid or wsconfig['ssid']
- if default not in self.nwlist:
- self.nwlist.append(default)
- config.plugins.wlan.essid = NoSave(ConfigSelection(self.nwlist, default = default ))
- config.plugins.wlan.encryption.enabled = NoSave(ConfigYesNo(default = wsconfig['encryption'] ))
- config.plugins.wlan.encryption.type = NoSave(ConfigSelection(list, default = wsconfig['encryption_type'] ))
- config.plugins.wlan.encryption.psk = NoSave(ConfigText(default = wsconfig['key'], fixed_size = False,visible_width = 30))
- #self.ws.loadConfig()
-
- 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")) 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]))
- nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
- self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
- self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
+ self.extended = None
+ self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up")
+ iNetwork.getInterfaces()
+
+ self.createConfig()
- self["actions"] = ActionMap(["SetupActions","ShortcutActions"],
+ self["actions"] = NumberActionMap(["SetupActions", "ColorActions"],
{
"ok": self.ok,
"cancel": self.cancel,
}, -2)
self.list = []
- ConfigListScreen.__init__(self, self.list)
+ ConfigListScreen.__init__(self, self.list,session = self.session)
self.createSetup()
self.onLayoutFinish.append(self.layoutFinished)
else:
self["IP"].setText([0,0,0,0])
self["Mask"].setText(self.netmaskConfigEntry.getText())
- self["Gateway"].setText(self.gatewayConfigEntry.getText())
+ if iNetwork.getAdapterAttribute(self.iface, "gateway"):
+ self["Gateway"].setText(self.gatewayConfigEntry.getText())
+ else:
+ self["Gateway"].hide()
+ self["Gatewaytext"].hide()
self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
+ def createConfig(self):
+ self.InterfaceEntry = None
+ self.dhcpEntry = None
+ self.gatewayEntry = None
+ self.SSIDscan = None
+ self.wlanSSID = None
+ self.manualwlanSSID = None
+ self.encryptionEnabled = None
+ self.encryptionKey = None
+ self.nwlist = None
+ self.wsconfig = None
+ self.default = None
+
+ if self.iface == "wlan0" or self.iface == "ath0" :
+ from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant,Wlan
+ self.ws = wpaSupplicant()
+ list = []
+ list.append(_("WEP"))
+ list.append(_("WPA"))
+ list.append(_("WPA2"))
+ if self.aplist is not None:
+ self.nwlist = self.aplist
+ self.nwlist.sort(key = lambda x: x[0])
+ else:
+ self.nwlist = []
+ self.w = None
+ self.aps = None
+ try:
+ self.w = Wlan(self.iface)
+ self.aps = self.w.getNetworkList()
+ if self.aps is not None:
+ print "[NetworkSetup.py] got Accespoints!"
+ for ap in aps:
+ a = aps[ap]
+ if a['active']:
+ if a['essid'] == "":
+ a['essid'] = a['bssid']
+ self.nwlist.append( a['essid'])
+ self.nwlist.sort(key = lambda x: x[0])
+ except:
+ self.nwlist.append("No Networks found")
+
+ self.wsconfig = self.ws.loadConfig()
+ self.default = self.essid or self.wsconfig['ssid']
+ if self.default not in self.nwlist:
+ self.nwlist.append(self.default)
+ config.plugins.wlan.essidscan = NoSave(ConfigYesNo(default = self.wsconfig['ssidscan']))
+ if self.wsconfig['ssidscan'] is True:
+ config.plugins.wlan.essid = NoSave(ConfigSelection(self.nwlist, default = self.default ))
+ else:
+ config.plugins.wlan.essid = NoSave(ConfigText(default = self.default, visible_width = 50, fixed_size = False))
+ config.plugins.wlan.encryption.enabled = NoSave(ConfigYesNo(default = self.wsconfig['encryption'] ))
+ config.plugins.wlan.encryption.type = NoSave(ConfigSelection(list, default = self.wsconfig['encryption_type'] ))
+ config.plugins.wlan.encryption.psk = NoSave(ConfigText(default = self.wsconfig['key'], visible_width = 50, fixed_size = False))
+
+ self.activateInterfaceEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "up") or False))
+ self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False))
+ 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]))
+ if iNetwork.getAdapterAttribute(self.iface, "gateway"):
+ self.dhcpdefault=True
+ else:
+ self.dhcpdefault=False
+ self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=self.dhcpdefault or False))
+ self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0]))
+ nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
+ self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
+ self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
+
def createSetup(self):
self.list = []
+ self.InterfaceEntry = getConfigListEntry(_("Use Interface"), self.activateInterfaceEntry)
- self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
- self.list.append(self.dhcpEntry)
- if not self.dhcpConfigEntry.value:
- self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
- self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
- 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):
- callFnc = p.__call__["ifaceSupported"](self.iface)
- if callFnc is not None:
- self.extended = callFnc
- print p.__call__
- if p.__call__.has_key("configStrings"):
- self.configStrings = p.__call__["configStrings"]
- else:
- self.configStrings = None
-
- self.list.append(getConfigListEntry(_("Network SSID"), config.plugins.wlan.essid))
- self.encryptionEnabled = getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption.enabled)
- self.list.append(self.encryptionEnabled)
-
- if config.plugins.wlan.encryption.enabled.value:
- self.list.append(getConfigListEntry(_("Encryption Type"), config.plugins.wlan.encryption.type))
- self.list.append(getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk))
+ self.list.append(self.InterfaceEntry)
+ if self.activateInterfaceEntry.value:
+ self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
+ self.list.append(self.dhcpEntry)
+ if not self.dhcpConfigEntry.value:
+ self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
+ self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
+ self.gatewayEntry = getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry)
+ self.list.append(self.gatewayEntry)
+ if self.hasGatewayConfigEntry.value:
+ self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
+
+ self.extended = None
+ for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
+ callFnc = p.__call__["ifaceSupported"](self.iface)
+ if callFnc is not None:
+ if p.__call__.has_key("WlanPluginEntry"): # internally used only for WLAN Plugin
+ self.extended = callFnc
+ if p.__call__.has_key("configStrings"):
+ self.configStrings = p.__call__["configStrings"]
+ else:
+ self.configStrings = None
+ self.SSIDscan = getConfigListEntry(_("Automatic SSID lookup"), config.plugins.wlan.essidscan)
+ self.list.append(self.SSIDscan)
+ self.wlanSSID = getConfigListEntry(_("Network SSID"), config.plugins.wlan.essid)
+ self.list.append(self.wlanSSID)
+ self.encryptionEnabled = getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption.enabled)
+ self.list.append(self.encryptionEnabled)
+
+ if config.plugins.wlan.encryption.enabled.value:
+ self.list.append(getConfigListEntry(_("Encryption Type"), config.plugins.wlan.encryption.type))
+ self.encryptionKey = getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk)
+ self.list.append(self.encryptionKey)
self["config"].list = self.list
self["config"].l.setList(self.list)
def KeyBlue(self):
- self.session.open(NameserverSetup)
+ self.session.openWithCallback(self.NameserverSetupClosed, NameserverSetup)
def newConfig(self):
print self["config"].getCurrent()
+ if self["config"].getCurrent() == self.InterfaceEntry:
+ self.createSetup()
if self["config"].getCurrent() == self.dhcpEntry:
self.createSetup()
-
+ if self["config"].getCurrent() == self.gatewayEntry:
+ self.createSetup()
+ if self.iface == "wlan0" or self.iface == "ath0" :
+ if self["config"].getCurrent() == self.SSIDscan:
+ if config.plugins.wlan.essidscan.value is True:
+ config.plugins.wlan.essid = NoSave(ConfigSelection(self.nwlist, default = self.default ))
+ else:
+ config.plugins.wlan.essid = NoSave(ConfigText(default = self.default, visible_width = 50, fixed_size = False))
+ self.createSetup()
+ if self["config"].getCurrent() == self.encryptionEnabled:
+ self.createSetup()
+
def keyLeft(self):
ConfigListScreen.keyLeft(self)
- self.createSetup()
+ self.newConfig()
def keyRight(self):
ConfigListScreen.keyRight(self)
- self.createSetup()
+ self.newConfig()
def ok(self):
- selection = self["config"].getCurrent()
- if selection == self.extendedSetup:
- self.extended(self.session, self.iface)
+ iNetwork.setAdapterAttribute(self.iface, "up", self.activateInterfaceEntry.value)
+ iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
+ iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
+ iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
+ if self.hasGatewayConfigEntry.value:
+ iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
else:
- iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
- iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
- iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
- if self.hasGatewayConfigEntry.value:
- 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))
- self.ws.writeConfig()
-
- iNetwork.deactivateNetworkConfig()
- iNetwork.writeNetworkConfig()
- iNetwork.activateNetworkConfig()
- self.close()
+ 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))
+ self.ws.writeConfig()
+ if self.activateInterfaceEntry.value is False:
+ iNetwork.deactivateInterface(self.iface)
+ iNetwork.writeNetworkConfig()
+ iNetwork.deactivateNetworkConfig()
+ iNetwork.activateNetworkConfig()
+ self.close()
def cancel(self):
+ iNetwork.setAdapterAttribute(self.iface, "up", self.oldInterfaceState)
+ self.activateInterfaceEntry.value = self.oldInterfaceState
+ if self.activateInterfaceEntry.value is False:
+ iNetwork.deactivateInterface(self.iface)
iNetwork.getInterfaces()
self.close()
def run(self):
self.ok()
+ def NameserverSetupClosed(self, *ret):
+ iNetwork.loadNameserverConfig()
+ nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
+ self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
+ self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
+ self.createSetup()
+ self.layoutFinished()
+
class AdapterSetupConfiguration(Screen):
def __init__(self, session,iface):
Screen.__init__(self, session)
- self.iface = iface
self.session = session
+ self.iface = iface
self.mainmenu = self.genMainMenu()
self["menulist"] = MenuList(self.mainmenu)
self["description"] = Label()
self.oktext = _("Press OK on your remote control to continue.")
self.reboottext = _("Your Dreambox will restart after pressing OK on your remote control.")
- self.errortext = _("No working wireless interface found.\n Please verify that you have attached a compatible WLAN USB Stick or enable you local network interface.")
+ self.errortext = _("No working wireless interface found.\n Please verify that you have attached a compatible WLAN device or enable your local network interface.")
self["actions"] = NumberActionMap(["WizardActions","ShortcutActions"],
{
def ok(self):
if self["menulist"].getCurrent()[1] == 'edit':
- if self.iface == 'wlan0':
- from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
- ifobj = Wireless(self.iface) # a Wireless NIC Object
- self.wlanresponse = ifobj.getStatistics()
- if self.wlanresponse[0] != 19: # Wlan Interface found.
- self.session.open(AdapterSetup,self.iface)
+ if self.iface == 'wlan0' or self.iface == 'ath0':
+ try:
+ from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
+ from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
+ except ImportError:
+ self.session.open(MessageBox, _("The wireless LAN plugin is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 )
else:
- # Display Wlan not available Message
- self.showErrorMessage()
+ ifobj = Wireless(self.iface) # a Wireless NIC Object
+ self.wlanresponse = ifobj.getStatistics()
+ if self.wlanresponse[0] != 19: # Wlan Interface found.
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup,self.iface)
+ else:
+ # Display Wlan not available Message
+ self.showErrorMessage()
else:
- self.session.open(AdapterSetup,self.iface)
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup,self.iface)
if self["menulist"].getCurrent()[1] == 'test':
self.session.open(NetworkAdapterTest,self.iface)
if self["menulist"].getCurrent()[1] == 'dns':
self.session.open(NameserverSetup)
if self["menulist"].getCurrent()[1] == 'scanwlan':
- from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
- ifobj = Wireless(self.iface) # a Wireless NIC Object
- self.wlanresponse = ifobj.getStatistics()
- if self.wlanresponse[0] != 19:
+ try:
from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
- self.session.openWithCallback(self.WlanScanClosed, WlanScan, self.iface)
+ from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
+ except ImportError:
+ self.session.open(MessageBox, _("The wireless LAN plugin is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 )
else:
- # Display Wlan not available Message
- self.showErrorMessage()
+ ifobj = Wireless(self.iface) # a Wireless NIC Object
+ self.wlanresponse = ifobj.getStatistics()
+ if self.wlanresponse[0] != 19:
+ self.session.openWithCallback(self.WlanScanClosed, WlanScan, self.iface)
+ else:
+ # Display Wlan not available Message
+ self.showErrorMessage()
if self["menulist"].getCurrent()[1] == 'wlanstatus':
- from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
- ifobj = Wireless(self.iface) # a Wireless NIC Object
- self.wlanresponse = ifobj.getStatistics()
- if self.wlanresponse[0] != 19:
+ try:
from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus
- self.session.open(WlanStatus,self.iface)
- else:
- # Display Wlan not available Message
- self.showErrorMessage()
+ from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
+ except ImportError:
+ self.session.open(MessageBox, _("The wireless LAN plugin is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 )
+ else:
+ ifobj = Wireless(self.iface) # a Wireless NIC Object
+ self.wlanresponse = ifobj.getStatistics()
+ if self.wlanresponse[0] != 19:
+ self.session.openWithCallback(self.AdapterSetupClosed, WlanStatus,self.iface)
+ #self.session.open(WlanStatus,self.iface)
+ else:
+ # Display Wlan not available Message
+ self.showErrorMessage()
if self["menulist"].getCurrent()[1] == 'lanrestart':
self.session.openWithCallback(self.restartLan, MessageBox, (_("Are you sure you want to restart your network interfaces?\n\n") + self.oktext ) )
- if self["menulist"].getCurrent()[1] == 'enablewlan':
- self.session.openWithCallback(self.enableWlan, MessageBox, _("Are you sure you want to enable WLAN support?\nConnect your Wlan USB Stick to your Dreambox and press OK.\n\n") )
- if self["menulist"].getCurrent()[1] == 'enablelan':
- self.session.openWithCallback(self.enableLan, MessageBox, (_("Are you sure you want to enable your local network?\n\n") + self.oktext ) )
if self["menulist"].getCurrent()[1] == 'openwizard':
from Plugins.SystemPlugins.NetworkWizard.NetworkWizard import NetworkWizard
self.session.openWithCallback(self.AdapterSetupClosed, NetworkWizard)
+ if self["menulist"].getCurrent()[1][0] == 'extendedSetup':
+ self.extended = self["menulist"].getCurrent()[1][2]
+ self.extended(self.session, self.iface)
def up(self):
self["menulist"].up()
self["description"].setText(_("Edit the network configuration of your Dreambox.\n" ) + self.oktext )
if self["menulist"].getCurrent()[1] == 'test':
self["description"].setText(_("Test the network configuration of your Dreambox.\n" ) + self.oktext )
- if self["menulist"].getCurrent()[1] == 'enablelan':
- self["description"].setText(_("Enable the local network of your Dreambox.\n\n" ) + self.oktext )
if self["menulist"].getCurrent()[1] == 'dns':
self["description"].setText(_("Edit the Nameserver configuration of your Dreambox.\n" ) + self.oktext )
if self["menulist"].getCurrent()[1] == 'scanwlan':
self["description"].setText(_("Shows the state of your wireless LAN connection.\n" ) + self.oktext )
if self["menulist"].getCurrent()[1] == 'lanrestart':
self["description"].setText(_("Restart your network connection and interfaces.\n" ) + self.oktext )
- if self["menulist"].getCurrent()[1] == 'enablewlan':
- self["description"].setText(_("Pressing OK enables the built in wireless LAN support of your Dreambox.\nWlan USB Sticks with Zydas ZD1211B and RAlink RT73 Chipset are supported.\nConnect your Wlan USB Stick to your Dreambox before pressing OK.\n\n" ) + self.reboottext )
if self["menulist"].getCurrent()[1] == 'openwizard':
self["description"].setText(_("Use the Networkwizard to configure your Network\n" ) + self.oktext )
-
+ if self["menulist"].getCurrent()[1][0] == 'extendedSetup':
+ self["description"].setText(_(self["menulist"].getCurrent()[1][1]) + self.oktext )
+
def updateStatusbar(self):
self["IFtext"].setText(_("Network:"))
self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface))
self["Statustext"].setText(_("Link:"))
- if self.iface == 'wlan0':
+ if self.iface == 'wlan0' or self.iface == 'ath0':
try:
from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan
w = Wlan(self.iface)
menu.append((_("Nameserver settings"), "dns"))
menu.append((_("Network test"), "test"))
menu.append((_("Restart network"), "lanrestart"))
-
+
self.extended = None
- self.extendedSetup = None
+ self.extendedSetup = None
for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
callFnc = p.__call__["ifaceSupported"](self.iface)
if callFnc is not None:
- menu.append((_("Scan Wireless Networks"), "scanwlan"))
- menu.append((_("Show WLAN Status"), "wlanstatus"))
- menu.append((_("Enable LAN"), "enablelan"))
- if callFnc is None and iNetwork.ifaces.has_key('wlan0') is False:
- menu.append((_("Enable WLAN"), "enablewlan"))
- if callFnc is None and iNetwork.ifaces.has_key('wlan0') is True:
- menu.append((_("Enable LAN"), "enablelan"))
-
- if os.path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")):
- menu.append((_("NetworkWizard"), "openwizard"));
+ self.extended = callFnc
+ print p.__call__
+ if p.__call__.has_key("WlanPluginEntry"): # internally used only for WLAN Plugin
+ menu.append((_("Scan Wireless Networks"), "scanwlan"))
+ if iNetwork.getAdapterAttribute(self.iface, "up"):
+ menu.append((_("Show WLAN Status"), "wlanstatus"))
+ else:
+ if p.__call__.has_key("menuEntryName"):
+ menuEntryName = p.__call__["menuEntryName"](self.iface)
+ else:
+ menuEntryName = _('Extended Setup...')
+ if p.__call__.has_key("menuEntryDescription"):
+ menuEntryDescription = p.__call__["menuEntryDescription"](self.iface)
+ else:
+ menuEntryDescription = _('Extended Networksetup Plugin...')
+ self.extendedSetup = ('extendedSetup',menuEntryDescription, self.extended)
+ menu.append((menuEntryName,self.extendedSetup))
+
+ if os_path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")):
+ menu.append((_("NetworkWizard"), "openwizard"))
+
return menu
def AdapterSetupClosed(self, *ret):
self.mainmenu = self.genMainMenu()
self["menulist"].l.setList(self.mainmenu)
+ iNetwork.getInterfaces()
self.updateStatusbar()
def WlanScanClosed(self,*ret):
if ret[0] is not None:
- self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, 'wlan0',ret[0],ret[1])
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, self.iface,ret[0],ret[1])
else:
- self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, 'wlan0',None,ret[0])
+ self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, self.iface,None,ret[0])
- def enableWlan(self, ret = False):
- if (ret == True):
- iNetwork.resetNetworkConfig('wlan')
- iNetwork.getInterfaces()
- if iNetwork.getAdapterAttribute('wlan0', 'up') is True:
- self.iface = 'wlan0'
- try:
- from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
- except ImportError:
- self.session.open(MessageBox, _("The wireless LAN plugin is not installed!\nPlease install it."), type = MessageBox.TYPE_INFO,timeout = 10 )
- else:
- self.session.openWithCallback(self.WlanScanClosed, WlanScan, self.iface)
- else:
- self.session.openWithCallback(self.restartDreambox, MessageBox, _("Your wireless LAN Adapter could not be started.\nDo you want to reboot your Dreambox to apply the new configuration?\n"))
-
- def enableLan(self, ret = False):
- if (ret == True):
- iNetwork.resetNetworkConfig('lan')
- iNetwork.getInterfaces()
- if iNetwork.getAdapterAttribute('eth0', 'up') is True:
- self.iface = 'eth0'
- self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, 'eth0')
- else:
- self.session.openWithCallback(self.restartDreambox, MessageBox, _("Your wired LAN Adapter could not be started.\nDo you want to reboot your Dreambox to apply the new configuration?\n"))
def restartLan(self, ret = False):
if (ret == True):
iNetwork.restartNetwork()
- def restartDreambox(self, ret = False):
- if (ret == True):
- TryQuitMainloop(self.session,2)
-
def getLinkState(self,iface):
iNetwork.getLinkState(iface,self.dataAvail)
def dataAvail(self,data):
self.output = data.strip()
result = self.output.split('\n')
- pattern = re.compile("Link detected: yes")
+ pattern = re_compile("Link detected: yes")
for item in result:
- if re.search(pattern, item):
+ if re_search(pattern, item):
self["statuspic"].setPixmapNum(0)
else:
self["statuspic"].setPixmapNum(1)
def doStep1(self):
self.steptimer = True
self.nextStepTimer.start(3000)
+ self["ButtonYellow_Check"].show()
+ self["ButtonYellowtext"].show()
def doStep2(self):
self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
self["EditSettingsButton"].hide()
self["InfoText"].hide()
self["InfoTextBorder"].hide()
+ self["ButtonYellow_Check"].hide()
+ self["ButtonYellowtext"].hide()
def setLabels(self):
self["Adaptertext"] = MultiColorLabel(_("LAN Adapter"))
self["AdapterInfo_Text"] = MultiColorLabel(_("Show Info"))
self["AdapterInfo_OK"] = Pixmap()
- if self.iface == 'wlan0':
+ if self.iface == 'wlan0' or self.iface == 'ath0':
self["Networktext"] = MultiColorLabel(_("Wireless Network"))
else:
self["Networktext"] = MultiColorLabel(_("Local Network"))
self["InfoText"] = Label()
def getLinkState(self,iface):
- if iface == 'wlan0':
+ if iface == 'wlan0' or iface == 'ath0':
try:
from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan
w = Wlan(iface)
def dataAvail(self,data):
self.output = data.strip()
result = self.output.split('\n')
- pattern = re.compile("Link detected: yes")
+ pattern = re_compile("Link detected: yes")
for item in result:
- if re.search(pattern, item):
+ if re_search(pattern, item):
self["Network"].setForegroundColorNum(2)
self["Network"].setText(_("connected"))
self["NetworkInfo_Check"].setPixmapNum(0)