1 from Screen import Screen
2 from Components.ActionMap import ActionMap,NumberActionMap
3 from Screens.MessageBox import MessageBox
4 from Screens.Standby import *
5 from Components.ConfigList import ConfigListScreen
6 from Components.config import config, getConfigListEntry
7 from Components.Network import iNetwork
8 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
9 from Components.Label import Label
10 from Components.Pixmap import Pixmap
11 from Tools.LoadPixmap import LoadPixmap
12 from Components.MenuList import MenuList
13 from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing, ConfigSubsection, ConfigText, ConfigSelection, getConfigListEntry
14 from Components.PluginComponent import plugins
15 from Plugins.Plugin import PluginDescriptor
16 #from Plugins.SystemPlugins.WirelessLan.plugin import *
17 #from Plugins.SystemPlugins.WirelessLan.Wlan import *
18 from enigma import eTimer, eConsoleAppContainer,gRGB
29 return gRGB(int(str[1:], 0x10))
31 class NetworkAdapterSelection(Screen):
32 def __init__(self, session):
33 Screen.__init__(self, session)
35 self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
36 if len(self.adapters) == 0:
37 #Reset Network to defaults if network broken
38 iNetwork.resetNetworkConfig('lan')
40 self["adapterlist"] = MenuList(self.adapters)
41 self["actions"] = ActionMap(["OkCancelActions"],
43 "ok": self.okbuttonClick,
47 if len(self.adapters) == 1:
48 self.onFirstExecBegin.append(self.okbuttonClick)
50 def okbuttonClick(self):
51 selection = self["adapterlist"].getCurrent()
52 if selection is not None:
53 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[1])
54 def AdapterSetupClosed(self, *ret):
55 if len(self.adapters) == 1: # just one network adapter.. close selection
58 class NameserverSetup(Screen, ConfigListScreen):
60 def __init__(self, session):
61 Screen.__init__(self, session)
62 self.backupNameserverList = iNetwork.getNameserverList()[:]
63 print "backup-list:", self.backupNameserverList
65 self["ButtonGreentext"] = Label(_("Add"))
66 self["ButtonYellowtext"] = Label(_("Delete"))
67 self["ButtonRedtext"] = Label(_("Close"))
70 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
73 "cancel": self.cancel,
80 ConfigListScreen.__init__(self, self.list)
83 def createConfig(self):
84 self.nameservers = iNetwork.getNameserverList()
85 self.nameserverEntries = []
87 for nameserver in self.nameservers:
88 self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
90 def createSetup(self):
93 for i in range(len(self.nameserverEntries)):
94 self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
96 self["config"].list = self.list
97 self["config"].l.setList(self.list)
100 iNetwork.clearNameservers()
101 for nameserver in self.nameserverEntries:
102 iNetwork.addNameserver(nameserver.value)
103 iNetwork.writeNameserverConfig()
107 iNetwork.clearNameservers()
108 print "backup-list:", self.backupNameserverList
109 for nameserver in self.backupNameserverList:
110 iNetwork.addNameserver(nameserver)
114 iNetwork.addNameserver([0,0,0,0])
119 print "currentIndex:", self["config"].getCurrentIndex()
121 index = self["config"].getCurrentIndex()
122 if index < len(self.nameservers):
123 iNetwork.removeNameserver(self.nameservers[index])
128 class AdapterSetup(Screen, ConfigListScreen):
129 def __init__(self, session, iface):
130 Screen.__init__(self, session)
131 self.session = session
132 ## FIXME , workaround against current wizzard not able to send arguments
140 if self.iface == 'wlan0':
141 from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant
142 self.ws = wpaSupplicant()
144 list.append(_("WEP"))
145 list.append(_("WPA"))
146 list.append(_("WPA2"))
148 config.plugins.wlan.essid = NoSave(ConfigText(default = "home", fixed_size = False))
149 config.plugins.wlan.encryption.enabled = NoSave(ConfigYesNo(default = False))
150 config.plugins.wlan.encryption.type = NoSave(ConfigSelection(list, default = _("WPA")))
151 config.plugins.wlan.encryption.psk = NoSave(ConfigText(default = "mysecurewlan", fixed_size = False))
154 self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False))
155 self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=True))
156 self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")) or [0,0,0,0])
157 self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0]))
158 self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0]))
159 nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
160 self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
161 self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
163 self["actions"] = ActionMap(["SetupActions","ShortcutActions"],
166 "cancel": self.cancel,
168 "blue": self.KeyBlue,
172 ConfigListScreen.__init__(self, self.list)
174 self.onLayoutFinish.append(self.layoutFinished)
176 self["DNS1text"] = Label(_("Primary DNS"))
177 self["DNS2text"] = Label(_("Secondary DNS"))
178 self["DNS1"] = Label()
179 self["DNS2"] = Label()
181 self["introduction"] = Label(_("Current settings:"))
183 self["IPtext"] = Label(_("IP Address"))
184 self["Netmasktext"] = Label(_("Netmask"))
185 self["Gatewaytext"] = Label(_("Gateway"))
188 self["Mask"] = Label()
189 self["Gateway"] = Label()
191 self["BottomBG"] = Pixmap()
192 self["Adaptertext"] = Label(_("Network:"))
193 self["Adapter"] = Label()
194 self["introduction2"] = Label(_("Press OK to activate the settings."))
195 self["ButtonRed"] = Pixmap()
196 self["ButtonRedtext"] = Label(_("Close"))
197 self["ButtonBlue"] = Pixmap()
198 self["ButtonBluetext"] = Label(_("Edit DNS"))
200 def layoutFinished(self):
201 self["DNS1"].setText(self.primaryDNS.getText())
202 self["DNS2"].setText(self.secondaryDNS.getText())
203 self["IP"].setText(self.ipConfigEntry.getText())
204 self["Mask"].setText(self.netmaskConfigEntry.getText())
205 self["Gateway"].setText(self.gatewayConfigEntry.getText())
206 self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
208 def createSetup(self):
211 self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
212 self.list.append(self.dhcpEntry)
213 if not self.dhcpConfigEntry.value:
214 self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
215 self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
216 self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
217 if self.hasGatewayConfigEntry.value:
218 self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
221 self.extendedSetup = None
222 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
223 callFnc = p.__call__["ifaceSupported"](self.iface)
224 if callFnc is not None:
225 self.extended = callFnc
227 if p.__call__.has_key("configStrings"):
228 self.configStrings = p.__call__["configStrings"]
230 self.configStrings = None
232 self.list.append(getConfigListEntry(_("Network SSID"), config.plugins.wlan.essid))
233 self.encryptionEnabled = getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption.enabled)
234 self.list.append(self.encryptionEnabled)
236 if config.plugins.wlan.encryption.enabled.value:
237 self.list.append(getConfigListEntry(_("Encryption Type"), config.plugins.wlan.encryption.type))
238 self.list.append(getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk))
241 self["config"].list = self.list
242 self["config"].l.setList(self.list)
245 self.session.open(NameserverSetup)
248 print self["config"].getCurrent()
249 if self["config"].getCurrent() == self.dhcpEntry:
253 ConfigListScreen.keyLeft(self)
257 ConfigListScreen.keyRight(self)
261 selection = self["config"].getCurrent()
262 if selection == self.extendedSetup:
263 self.extended(self.session, self.iface)
265 iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
266 iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
267 iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
268 if self.hasGatewayConfigEntry.value:
269 iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
271 iNetwork.removeAdapterAttribute(self.iface, "gateway")
273 if self.extended is not None and self.configStrings is not None:
274 iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
275 self.ws.writeConfig()
277 iNetwork.deactivateNetworkConfig()
278 iNetwork.writeNetworkConfig()
279 iNetwork.activateNetworkConfig()
280 #if self.iface == 'wlan0':
281 # iNetwork.restartNetwork()
285 iNetwork.getInterfaces()
292 class AdapterSetupConfiguration(Screen):
294 def __init__(self, session,iface):
295 Screen.__init__(self, session)
297 self.session = session
298 #self.ethtool_bin = "/usr/sbin/ethtool"
300 #self.container = eConsoleAppContainer()
301 self.mainmenu = self.genMainMenu()
302 self["menulist"] = MenuList(self.mainmenu)
303 self["description"] = Label()
304 self["IFtext"] = Label()
306 self["BottomBG"] = Label()
307 self["Statustext"] = Label()
308 self["statuspic_active"] = Pixmap()
309 self["statuspic_active"].hide()
310 self["statuspic_inactive"] = Pixmap()
311 self["statuspic_inactive"].hide()
312 self["BottomBG"] = Pixmap()
313 self["ButtonRed"] = Pixmap()
314 self["ButtonRedtext"] = Label(_("Close"))
316 self.oktext = _("Press OK on your remote control to continue.")
317 self.reboottext = _("Your Dreambox will restart after pressing OK on your remote control.")
319 self["actions"] = NumberActionMap(["WizardActions","ShortcutActions"],
328 iNetwork.loadNetworkConfig()
329 self.onLayoutFinish.append(self.layoutFinished)
330 self.updateStatusbar()
333 if self["menulist"].getCurrent()[1] == 'edit':
334 self.session.open(AdapterSetup,self.iface)
335 if self["menulist"].getCurrent()[1] == 'test':
336 self.session.open(NetworkAdapterTest,self.iface)
337 if self["menulist"].getCurrent()[1] == 'dns':
338 self.session.open(NameserverSetup)
339 if self["menulist"].getCurrent()[1] == 'scanwlan':
340 from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
341 self.session.open(WlanScan,self.iface)
342 if self["menulist"].getCurrent()[1] == 'wlanstatus':
343 from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus
344 self.session.open(WlanStatus,self.iface)
345 if self["menulist"].getCurrent()[1] == 'lanrestart':
346 self.session.openWithCallback(self.restartLan, MessageBox, (_("Are you sure you want to restart your network interfaces?\n\n") + self.oktext ) )
347 if self["menulist"].getCurrent()[1] == 'enablewlan':
348 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") + self.reboottext ) )
349 if self["menulist"].getCurrent()[1] == 'resetconfig':
350 self.session.openWithCallback(self.resetconfig, MessageBox, (_("Are you sure you want to reset \nyour network configuration to defaults?\n\n") + self.reboottext ) )
353 self["menulist"].up()
354 self.loadDescription()
357 self["menulist"].down()
358 self.loadDescription()
360 def layoutFinished(self):
362 self["menulist"].moveToIndex(idx)
363 self.loadDescription()
365 def loadDescription(self):
366 if self["menulist"].getCurrent()[1] == 'edit':
367 self["description"].setText(_("Edit the network configuration of your Dreambox.\n" ) + self.oktext )
368 if self["menulist"].getCurrent()[1] == 'test':
369 self["description"].setText(_("Test the network configuration of your Dreambox.\n" ) + self.oktext )
370 if self["menulist"].getCurrent()[1] == 'resetconfig':
371 self["description"].setText(_("Reset the network configuration of your Dreambox.\n\n" ) + self.reboottext )
372 if self["menulist"].getCurrent()[1] == 'dns':
373 self["description"].setText(_("Edit the Nameserver configuration of your Dreambox.\n" ) + self.oktext )
374 if self["menulist"].getCurrent()[1] == 'scanwlan':
375 self["description"].setText(_("Scan your network for wireless Access Points and connect to them using your WLAN USB Stick\n" ) + self.oktext )
376 if self["menulist"].getCurrent()[1] == 'wlanstatus':
377 self["description"].setText(_("Shows the state of your wireless LAN connection.\n" ) + self.oktext )
378 if self["menulist"].getCurrent()[1] == 'lanrestart':
379 self["description"].setText(_("Restart your network connection and interfaces.\n" ) + self.oktext )
380 if self["menulist"].getCurrent()[1] == 'enablewlan':
381 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 )
384 def updateStatusbar(self):
385 self["IFtext"].setText(_("Network:"))
386 self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface))
387 self["Statustext"].setText(_("Link:"))
389 if self.iface == 'wlan0':
390 from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan, WlanList, wpaSupplicant
392 stats = w.getStatus()
393 if stats['BSSID'] == "00:00:00:00:00:00":
394 self["statuspic_active"].hide()
395 self["statuspic_inactive"].show()
397 self["statuspic_active"].show()
398 self["statuspic_inactive"].hide()
400 self.getLinkState(self.iface)
405 def genMainMenu(self):
407 menu.append((_("Adapter settings"), "edit"));
408 menu.append((_("Nameserver settings"), "dns"));
409 menu.append((_("Network test"), "test"));
410 menu.append((_("Restart network"), "lanrestart"));
411 menu.append((_("Reset configuration"), "resetconfig"));
414 self.extendedSetup = None
415 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
416 callFnc = p.__call__["ifaceSupported"](self.iface)
417 if callFnc is not None:
418 menu.append((_("Scan Wireless Networks"), "scanwlan"));
419 menu.append((_("Show WLAN Status"), "wlanstatus"));
420 if callFnc is None and iNetwork.ifaces.has_key('wlan0') is False:
421 menu.append((_("Enable WLAN Support"), "enablewlan"));
425 def enablewlan(self, ret = False):
427 iNetwork.resetNetworkConfig('wlan')
428 TryQuitMainloop(self.session,2)
430 def resetconfig(self, ret = False):
432 iNetwork.resetNetworkConfig('lan')
433 TryQuitMainloop(self.session,2)
435 def restartLan(self, ret = False):
437 iNetwork.restartNetwork()
439 def getLinkState(self,iface):
440 iNetwork.getLinkState(iface,self.dataAvail)
442 def dataAvail(self,data):
443 self.output = data.strip()
444 result = self.output.split('\n')
445 pattern = re.compile("Link detected: yes")
447 if re.search(pattern, item):
448 self["statuspic_active"].show()
449 self["statuspic_inactive"].hide()
451 self["statuspic_active"].hide()
452 self["statuspic_inactive"].show()
455 class NetworkAdapterTest(Screen):
457 def __init__(self, session,iface):
458 Screen.__init__(self, session)
463 self["updown_actions"] = NumberActionMap(["WizardActions"],
466 "up": lambda: self.updownhandler('up'),
467 "down": lambda: self.updownhandler('down'),
471 self["shortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
476 self["infoshortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
478 "red": self.closeInfo,
479 "back": self.closeInfo,
481 self["shortcutsgreen"] = ActionMap(["ShortcutActions"],
483 "green": self.KeyGreen,
485 self["shortcutsgreen_restart"] = ActionMap(["ShortcutActions"],
487 "green": self.KeyGreenRestart,
489 self["shortcutsyellow"] = ActionMap(["ShortcutActions"],
491 "yellow": self.KeyYellow,
494 self["shortcutsgreen_restart"].setEnabled(False)
495 self["updown_actions"].setEnabled(False)
496 self["infoshortcuts"].setEnabled(False)
497 self.onClose.append(self.delTimer)
498 self.onLayoutFinish.append(self.layoutFinished)
499 self.steptimer = False
504 self.nextStepTimer = eTimer()
505 self.nextStepTimer.callback.append(self.nextStepTimerFire)
508 self["shortcuts"].setEnabled(True)
509 self["infoshortcuts"].setEnabled(False)
510 self["InfoText"].hide()
511 self["InfoTextBorder"].hide()
512 self["ButtonRedtext"].setText(_("Close"))
516 del self.nextStepTimer
518 def nextStepTimerFire(self):
520 self.nextstep= nextstep
521 self.nextStepTimer.stop()
522 self.steptimer = False
523 self.runTest(self.nextstep)
525 def updownhandler(self,direction):
527 if direction == 'up':
529 activebutton = activebutton -1
530 self.setActiveButton(activebutton)
531 if direction == 'down':
533 activebutton = activebutton +1
534 self.setActiveButton(activebutton)
536 def setActiveButton(self,button):
538 self["NetworkInfo"].show()
539 self["NetworkInfo_selected"].hide()
540 self["AdapterInfo"].hide()
541 self["AdapterInfo_selected"].show()
543 self["AdapterInfo"].show()
544 self["AdapterInfo_selected"].hide()
545 self["DhcpInfo"].show()
546 self["DhcpInfo_selected"].hide()
547 self["NetworkInfo"].hide()
548 self["NetworkInfo_selected"].show()
550 self["NetworkInfo"].show()
551 self["NetworkInfo_selected"].hide()
552 self["IPInfo"].show()
553 self["IPInfo_selected"].hide()
554 self["DhcpInfo"].hide()
555 self["DhcpInfo_selected"].show()
557 self["DhcpInfo"].show()
558 self["DhcpInfo_selected"].hide()
559 self["DNSInfo"].show()
560 self["DNSInfo_selected"].hide()
561 self["IPInfo"].hide()
562 self["IPInfo_selected"].show()
564 self["IPInfo"].show()
565 self["IPInfo_selected"].hide()
566 self["EditSettingsButton"].show()
567 self["EditSettingsButton_selected"].hide()
568 self["DNSInfo"].hide()
569 self["DNSInfo_selected"].show()
571 self["DNSInfo"].show()
572 self["DNSInfo_selected"].hide()
573 self["EditSettingsButton"].hide()
574 self["EditSettingsButton_selected"].show()
576 def runTest(self,next):
598 self.steptimer = True
599 self.nextStepTimer.start(3000)
602 self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
603 self["Adapter"].instance.setForegroundColor(getColor(Green))
604 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Black))
605 self["AdapterInfo_OK"].show()
606 self.steptimer = True
607 self.nextStepTimer.start(3000)
610 self.getLinkState(self.iface)
611 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Black))
612 self.steptimer = True
613 self.nextStepTimer.start(3000)
616 if iNetwork.getAdapterAttribute(self.iface, 'dhcp') is True:
617 self["Dhcp"].instance.setForegroundColor(getColor(Green))
618 self["Dhcp"].setText(_("enabled"))
619 self["DhcpInfo_OK"].show()
620 self["DhcpInfo_NOK"].hide()
622 self["Dhcp"].instance.setForegroundColor(getColor(Grey))
623 self["Dhcp"].setText(_("disabled"))
624 self["DhcpInfo_NOK"].show()
625 self["DhcpInfo_OK"].hide()
626 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Black))
627 self.steptimer = True
628 self.nextStepTimer.start(3000)
631 if len(iNetwork.getAdapterAttribute(self.iface,'ip')) != 0:
632 self["IP"].instance.setForegroundColor(getColor(Green))
633 self["IP"].setText(_("confirmed"))
634 self["IPInfo_OK"].show()
635 self["IPInfo_NOK"].hide()
637 self["IP"].instance.setForegroundColor(getColor(Grey))
638 self["IP"].setText(_("unconfirmed"))
639 self["IPInfo_NOK"].show()
640 self["IPInfo_OK"].hide()
641 self["IPInfo_Text"].instance.setForegroundColor(getColor(Black))
642 self.steptimer = True
643 self.nextStepTimer.start(3000)
646 self.steptimer = False
647 self.nextStepTimer.stop()
648 if len (iNetwork.getNameserverList()) != 0:
649 self["DNS"].instance.setForegroundColor(getColor(Green))
650 self["DNS"].setText(_("confirmed"))
651 self["DNSInfo_OK"].show()
652 self["DNSInfo_NOK"].hide()
654 self["DNS"].instance.setForegroundColor(getColor(Grey))
655 self["DNS"].setText(_("unconfirmed"))
656 self["DNSInfo_NOK"].show()
657 self["DNSInfo_OK"].hide()
659 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Black))
660 self["EditSettings_Text"].show()
661 self["EditSettingsButton_selected"].show()
662 self["ButtonYellow_off"].show()
663 self["ButtonYellow"].hide()
664 self["ButtonGreentext"].setText(_("Restart test"))
665 self["ButtonGreen"].show()
666 self["ButtonGreen_off"].hide()
667 self["shortcutsgreen"].setEnabled(False)
668 self["shortcutsgreen_restart"].setEnabled(True)
669 self["shortcutsyellow"].setEnabled(False)
670 self["updown_actions"].setEnabled(True)
675 self["shortcutsgreen"].setEnabled(False)
676 self["shortcutsyellow"].setEnabled(True)
677 self["updown_actions"].setEnabled(False)
678 self["ButtonYellow_off"].hide()
679 self["ButtonYellow"].show()
680 self["ButtonGreen"].hide()
681 self["ButtonGreen_off"].show()
682 self.steptimer = True
683 self.nextStepTimer.start(1000)
685 def KeyGreenRestart(self):
688 self.layoutFinished()
689 self["Adapter"].setText((""))
690 self["Network"].setText((""))
691 self["Dhcp"].setText((""))
692 self["IP"].setText((""))
693 self["DNS"].setText((""))
694 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Grey))
695 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Grey))
696 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Grey))
697 self["IPInfo_Text"].instance.setForegroundColor(getColor(Grey))
698 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Grey))
699 self["shortcutsgreen_restart"].setEnabled(False)
700 self["shortcutsgreen"].setEnabled(False)
701 self["shortcutsyellow"].setEnabled(True)
702 self["updown_actions"].setEnabled(False)
703 self["ButtonYellow_off"].hide()
704 self["ButtonYellow"].show()
705 self["ButtonGreen"].hide()
706 self["ButtonGreen_off"].show()
707 self.steptimer = True
708 self.nextStepTimer.start(1000)
712 self["infoshortcuts"].setEnabled(True)
713 self["shortcuts"].setEnabled(False)
714 if activebutton == 1: # Adapter Check
715 self["InfoText"].setText(_("This test detects your configured LAN-Adapter."))
716 self["InfoTextBorder"].show()
717 self["InfoText"].show()
718 self["ButtonRedtext"].setText(_("Back"))
719 if activebutton == 2: #LAN Check
720 self["InfoText"].setText(_("This test checks whether a network cable is connected to your LAN-Adapter.\nIf you get a \"disconnected\" message:\n- verify that a network cable is attached\n- verify that the cable is not broken"))
721 self["InfoTextBorder"].show()
722 self["InfoText"].show()
723 self["ButtonRedtext"].setText(_("Back"))
724 if activebutton == 3: #DHCP Check
725 self["InfoText"].setText(_("This test checks whether your LAN Adapter is set up for automatic IP Address configuration with DHCP.\nIf you get a \"disabled\" message:\n - then your LAN Adapter is configured for manual IP Setup\n- verify thay you have entered correct IP informations in the AdapterSetup dialog.\nIf you get an \"enabeld\" message:\n-verify that you have a configured and working DHCP Server in your network."))
726 self["InfoTextBorder"].show()
727 self["InfoText"].show()
728 self["ButtonRedtext"].setText(_("Back"))
729 if activebutton == 4: # IP Check
730 self["InfoText"].setText(_("This test checks whether a valid IP Address is found for your LAN Adapter.\nIf you get a \"unconfirmed\" message:\n- no valid IP Address was found\n- please check your DHCP, cabling and adapter setup"))
731 self["InfoTextBorder"].show()
732 self["InfoText"].show()
733 self["ButtonRedtext"].setText(_("Back"))
734 if activebutton == 5: # DNS Check
735 self["InfoText"].setText(_("This test checks for configured Nameservers.\nIf you get a \"unconfirmed\" message:\n- please check your DHCP, cabling and Adapter setup\n- if you configured your Nameservers manually please verify your entries in the \"Nameserver\" Configuration"))
736 self["InfoTextBorder"].show()
737 self["InfoText"].show()
738 self["ButtonRedtext"].setText(_("Back"))
739 if activebutton == 6: # Edit Settings
740 self.session.open(AdapterSetup,self.iface)
745 self["shortcutsgreen_restart"].setEnabled(True)
746 self["shortcutsgreen"].setEnabled(False)
747 self["shortcutsyellow"].setEnabled(False)
748 self["ButtonGreentext"].setText(_("Restart test"))
749 self["ButtonYellow_off"].show()
750 self["ButtonYellow"].hide()
751 self["ButtonGreen"].show()
752 self["ButtonGreen_off"].hide()
753 self.steptimer = False
754 self.nextStepTimer.stop()
756 def layoutFinished(self):
757 self["shortcutsyellow"].setEnabled(False)
758 self["AdapterInfo_selected"].hide()
759 self["AdapterInfo_OK"].hide()
761 self["NetworkInfo_selected"].hide()
762 self["NetworkInfo_OK"].hide()
763 self["NetworkInfo_NOK"].hide()
765 self["DhcpInfo_selected"].hide()
766 self["DhcpInfo_OK"].hide()
767 self["DhcpInfo_NOK"].hide()
769 self["IPInfo_selected"].hide()
770 self["IPInfo_OK"].hide()
771 self["IPInfo_NOK"].hide()
773 self["DNSInfo_selected"].hide()
774 self["DNSInfo_OK"].hide()
775 self["DNSInfo_NOK"].hide()
777 self["EditSettings_Text"].hide()
778 self["EditSettingsButton"].hide()
779 self["EditSettingsButton_selected"].hide()
780 self["ButtonYellow"].hide()
781 self["ButtonGreen_off"].hide()
782 self["InfoText"].hide()
783 self["InfoTextBorder"].hide()
786 self["Adaptertext"] = Label(_("LAN Adapter"))
787 self["Adapter"] = Label()
788 self["AdapterInfo"] = Pixmap()
789 self["AdapterInfo_selected"] = Pixmap()
790 self["AdapterInfo_Text"] = Label(_("Show Info"))
791 self["AdapterInfo_OK"] = Pixmap()
793 if self.iface == 'wlan0':
794 self["Networktext"] = Label(_("Wireless Network"))
796 self["Networktext"] = Label(_("Local Network"))
798 self["Network"] = Label()
799 self["NetworkInfo"] = Pixmap()
800 self["NetworkInfo_selected"] = Pixmap()
801 self["NetworkInfo_Text"] = Label(_("Show Info"))
802 self["NetworkInfo_OK"] = Pixmap()
803 self["NetworkInfo_NOK"] = Pixmap()
805 self["Dhcptext"] = Label(_("DHCP"))
806 self["Dhcp"] = Label()
807 self["DhcpInfo"] = Pixmap()
808 self["DhcpInfo_selected"] = Pixmap()
809 self["DhcpInfo_Text"] = Label(_("Show Info"))
810 self["DhcpInfo_OK"] = Pixmap()
811 self["DhcpInfo_NOK"] = Pixmap()
813 self["IPtext"] = Label(_("IP Address"))
815 self["IPInfo"] = Pixmap()
816 self["IPInfo_selected"] = Pixmap()
817 self["IPInfo_Text"] = Label(_("Show Info"))
818 self["IPInfo_OK"] = Pixmap()
819 self["IPInfo_NOK"] = Pixmap()
821 self["DNStext"] = Label(_("Nameserver"))
822 self["DNS"] = Label()
823 self["DNSInfo"] = Pixmap()
824 self["DNSInfo_selected"] = Pixmap()
825 self["DNSInfo_Text"] = Label(_("Show Info"))
826 self["DNSInfo_OK"] = Pixmap()
827 self["DNSInfo_NOK"] = Pixmap()
829 self["EditSettings_Text"] = Label(_("Edit settings"))
830 self["EditSettingsButton"] = Pixmap()
831 self["EditSettingsButton_selected"] = Pixmap()
833 self["ButtonRedtext"] = Label(_("Close"))
834 self["ButtonRed"] = Pixmap()
835 self["ButtonGreentext"] = Label(_("Start test"))
836 self["ButtonGreen"] = Pixmap()
837 self["ButtonGreen_off"] = Pixmap()
838 self["ButtonYellowtext"] = Label(_("Stop test"))
839 self["ButtonYellow"] = Pixmap()
840 self["ButtonYellow_off"] = Pixmap()
842 self["InfoTextBorder"] = Pixmap()
843 self["InfoText"] = Label()
845 def getLinkState(self,iface):
846 iNetwork.getLinkState(iface,self.dataAvail)
848 def dataAvail(self,data):
849 self.output = data.strip()
850 result = self.output.split('\n')
851 pattern = re.compile("Link detected: yes")
853 if re.search(pattern, item):
854 self["Network"].instance.setForegroundColor(getColor(Green))
855 self["Network"].setText(_("connected"))
856 self["NetworkInfo_OK"].show()
857 self["NetworkInfo_NOK"].hide()
859 self["Network"].instance.setForegroundColor(getColor(Grey))
860 self["Network"].setText(_("disconnected"))
861 self["NetworkInfo_OK"].hide()
862 self["NetworkInfo_NOK"].show()