3 from Screens.Screen import Screen
4 from Screens.MessageBox import MessageBox
6 from Components.ActionMap import ActionMap, NumberActionMap
7 from Components.Pixmap import Pixmap
8 from Components.GUIComponent import *
9 from Components.MenuList import MenuList
10 from Components.MultiContent import MultiContentEntryText
11 from Components.config import config, getConfigListEntry
12 from Components.ConfigList import ConfigList, ConfigListScreen
13 from Network import Network
15 from Plugins.Plugin import PluginDescriptor
17 from Wlan import WlanList, InitNetwork, wpaSupplicant
19 class WlanSelection(Screen):
21 <screen position="76,138" size="600,300" title="Choose a Wireless Network" >
22 <widget name="list" position="10,10" size="580,200" scrollbarMode="showOnDemand" />
25 #<widget name="Explanation" position="10,340" size="580,100" />
26 def __init__(self, session, args = None):
28 self.skin = WlanSelection.skin
29 self.session = session
30 Screen.__init__(self, session)
34 self["list"] = WlanList(None)
36 self["actions"] = NumberActionMap(["WizardActions", "InputActions", "EPGSelectActions"],
51 cur = self["list"].getCurrent()
53 ret = (self.session, cur)
55 ret = (self.session, None)
59 self.close( (self.session, None) )
61 class WlanConfiguration(ConfigListScreen, Screen):
63 <screen position="76,138" size="600,300" title="Wireless Network Configuration" >
64 <widget name="config" position="10,10" size="580,200" scrollbarMode="showOnDemand" />
68 def __init__(self, session, essid = None, encrypted = False, iface = "wlan1"):
70 Screen.__init__(self, session)
72 self.ws = wpaSupplicant()
78 config.plugins.wlan.enabled.value = True
79 config.plugins.wlan.interface.value = iface
80 config.plugins.wlan.essid.value = essid
81 config.plugins.wlan.encryption.enabled.value = True
83 self["actions"] = ActionMap(["SetupActions"],
86 "cancel": self.cancel,
89 self.skin = WlanConfiguration.skin
94 ConfigListScreen.__init__(self, self.list)
97 def createSetup(self):
99 n = Network(self.iface)
100 n.loadNetworkConfig()
104 self.list.append(getConfigListEntry(_("Wireless Network Adapter"), config.plugins.wlan.enabled))
105 if config.plugins.wlan.enabled.value:
107 self.list.append(getConfigListEntry(_("Interface"), config.plugins.wlan.interface))
108 self.list.append(getConfigListEntry(_("Network SSID"), config.plugins.wlan.essid))
109 self.list.append(getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption.enabled))
110 if config.plugins.wlan.encryption.enabled.value:
111 self.list.append(getConfigListEntry(_("Encryption Type"), config.plugins.wlan.encryption.type))
112 self.list.append(getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk))
114 self.dhcpEntry = getConfigListEntry(_("Use DHCP"), config.network.dhcp)
115 self.list.append(self.dhcpEntry)
117 if not config.network.dhcp.value:
118 self.list.append(getConfigListEntry(_("IP Address"), config.network.ip))
119 self.list.append(getConfigListEntry(_("Netmask"), config.network.netmask))
120 self.list.append(getConfigListEntry(_("Nameserver"), config.network.dns))
121 self.list.append(getConfigListEntry(_("Gateway"), config.network.gateway))
123 self["config"].list = self.list
124 self["config"].l.setList(self.list)
127 print self["config"].getCurrent()
128 if self["config"].getCurrent() == self.dhcpEntry:
132 ConfigListScreen.keyLeft(self)
136 ConfigListScreen.keyRight(self)
140 self.ws.writeConfig()
141 self.ws.restart(self.iface)
142 n = Network(self.iface)
143 n.writeNetworkConfig()
144 n.activateNetworkConfig()
150 def EntryChoosed(parms):
153 if parms[1] is not None:
158 session.open(WlanConfiguration, essid, encrypted, iface)
160 session.open(WlanConfiguration)
162 def WlanSelectionMain(session, **kwargs):
163 session.openWithCallback(EntryChoosed, WlanSelection)
165 def WlanConfigurationMain(session, **kwargs):
166 session.open(WlanConfiguration)
168 def Plugins(**kwargs):
169 return PluginDescriptor(name=_("Wireless LAN"), description=_("Connect to a Wireless Network"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=WlanSelectionMain)