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"],
330 iNetwork.getInterfaces()
331 self.onLayoutFinish.append(self.layoutFinished)
332 self.updateStatusbar()
335 if self["menulist"].getCurrent()[1] == 'edit':
336 self.session.open(AdapterSetup,self.iface)
337 if self["menulist"].getCurrent()[1] == 'test':
338 self.session.open(NetworkAdapterTest,self.iface)
339 if self["menulist"].getCurrent()[1] == 'dns':
340 self.session.open(NameserverSetup)
341 if self["menulist"].getCurrent()[1] == 'scanwlan':
342 from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
343 self.session.open(WlanScan,self.iface)
344 if self["menulist"].getCurrent()[1] == 'wlanstatus':
345 from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus
346 self.session.open(WlanStatus,self.iface)
347 if self["menulist"].getCurrent()[1] == 'lanrestart':
348 self.session.openWithCallback(self.restartLan, MessageBox, (_("Are you sure you want to restart your network interfaces?\n\n") + self.oktext ) )
349 if self["menulist"].getCurrent()[1] == 'enablewlan':
350 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 ) )
351 if self["menulist"].getCurrent()[1] == 'resetconfig':
352 self.session.openWithCallback(self.resetconfig, MessageBox, (_("Are you sure you want to reset \nyour network configuration to defaults?\n\n") + self.reboottext ) )
355 self["menulist"].up()
356 self.loadDescription()
359 self["menulist"].down()
360 self.loadDescription()
363 self["menulist"].pageUp()
364 self.loadDescription()
367 self["menulist"].pageDown()
368 self.loadDescription()
370 def layoutFinished(self):
372 self["menulist"].moveToIndex(idx)
373 self.loadDescription()
375 def loadDescription(self):
376 if self["menulist"].getCurrent()[1] == 'edit':
377 self["description"].setText(_("Edit the network configuration of your Dreambox.\n" ) + self.oktext )
378 if self["menulist"].getCurrent()[1] == 'test':
379 self["description"].setText(_("Test the network configuration of your Dreambox.\n" ) + self.oktext )
380 if self["menulist"].getCurrent()[1] == 'resetconfig':
381 self["description"].setText(_("Reset the network configuration of your Dreambox.\n\n" ) + self.reboottext )
382 if self["menulist"].getCurrent()[1] == 'dns':
383 self["description"].setText(_("Edit the Nameserver configuration of your Dreambox.\n" ) + self.oktext )
384 if self["menulist"].getCurrent()[1] == 'scanwlan':
385 self["description"].setText(_("Scan your network for wireless Access Points and connect to them using your WLAN USB Stick\n" ) + self.oktext )
386 if self["menulist"].getCurrent()[1] == 'wlanstatus':
387 self["description"].setText(_("Shows the state of your wireless LAN connection.\n" ) + self.oktext )
388 if self["menulist"].getCurrent()[1] == 'lanrestart':
389 self["description"].setText(_("Restart your network connection and interfaces.\n" ) + self.oktext )
390 if self["menulist"].getCurrent()[1] == 'enablewlan':
391 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 )
394 def updateStatusbar(self):
395 self["IFtext"].setText(_("Network:"))
396 self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface))
397 self["Statustext"].setText(_("Link:"))
399 if self.iface == 'wlan0':
400 from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan, WlanList, wpaSupplicant
402 stats = w.getStatus()
403 if stats['BSSID'] == "00:00:00:00:00:00":
404 self["statuspic_active"].hide()
405 self["statuspic_inactive"].show()
407 self["statuspic_active"].show()
408 self["statuspic_inactive"].hide()
410 self.getLinkState(self.iface)
415 def genMainMenu(self):
417 menu.append((_("Adapter settings"), "edit"));
418 menu.append((_("Nameserver settings"), "dns"));
419 menu.append((_("Network test"), "test"));
420 menu.append((_("Restart network"), "lanrestart"));
421 menu.append((_("Reset configuration"), "resetconfig"));
424 self.extendedSetup = None
425 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
426 callFnc = p.__call__["ifaceSupported"](self.iface)
427 if callFnc is not None:
428 menu.append((_("Scan Wireless Networks"), "scanwlan"));
429 menu.append((_("Show WLAN Status"), "wlanstatus"));
430 if callFnc is None and iNetwork.ifaces.has_key('wlan0') is False:
431 menu.append((_("Enable WLAN Support"), "enablewlan"));
435 def enablewlan(self, ret = False):
437 iNetwork.resetNetworkConfig('wlan')
438 TryQuitMainloop(self.session,2)
440 def resetconfig(self, ret = False):
442 iNetwork.resetNetworkConfig('lan')
443 TryQuitMainloop(self.session,2)
445 def restartLan(self, ret = False):
447 iNetwork.restartNetwork()
449 def getLinkState(self,iface):
450 iNetwork.getLinkState(iface,self.dataAvail)
452 def dataAvail(self,data):
453 self.output = data.strip()
454 result = self.output.split('\n')
455 pattern = re.compile("Link detected: yes")
457 if re.search(pattern, item):
458 self["statuspic_active"].show()
459 self["statuspic_inactive"].hide()
461 self["statuspic_active"].hide()
462 self["statuspic_inactive"].show()
465 class NetworkAdapterTest(Screen):
467 def __init__(self, session,iface):
468 Screen.__init__(self, session)
473 self["updown_actions"] = NumberActionMap(["WizardActions"],
476 "up": lambda: self.updownhandler('up'),
477 "down": lambda: self.updownhandler('down'),
481 self["shortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
486 self["infoshortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
488 "red": self.closeInfo,
489 "back": self.closeInfo,
491 self["shortcutsgreen"] = ActionMap(["ShortcutActions"],
493 "green": self.KeyGreen,
495 self["shortcutsgreen_restart"] = ActionMap(["ShortcutActions"],
497 "green": self.KeyGreenRestart,
499 self["shortcutsyellow"] = ActionMap(["ShortcutActions"],
501 "yellow": self.KeyYellow,
504 self["shortcutsgreen_restart"].setEnabled(False)
505 self["updown_actions"].setEnabled(False)
506 self["infoshortcuts"].setEnabled(False)
507 self.onClose.append(self.delTimer)
508 self.onLayoutFinish.append(self.layoutFinished)
509 self.steptimer = False
514 self.nextStepTimer = eTimer()
515 self.nextStepTimer.callback.append(self.nextStepTimerFire)
518 self["shortcuts"].setEnabled(True)
519 self["infoshortcuts"].setEnabled(False)
520 self["InfoText"].hide()
521 self["InfoTextBorder"].hide()
522 self["ButtonRedtext"].setText(_("Close"))
526 del self.nextStepTimer
528 def nextStepTimerFire(self):
530 self.nextstep= nextstep
531 self.nextStepTimer.stop()
532 self.steptimer = False
533 self.runTest(self.nextstep)
535 def updownhandler(self,direction):
537 if direction == 'up':
539 activebutton = activebutton -1
540 self.setActiveButton(activebutton)
541 if direction == 'down':
543 activebutton = activebutton +1
544 self.setActiveButton(activebutton)
546 def setActiveButton(self,button):
548 self["NetworkInfo"].show()
549 self["NetworkInfo_selected"].hide()
550 self["AdapterInfo"].hide()
551 self["AdapterInfo_selected"].show()
553 self["AdapterInfo"].show()
554 self["AdapterInfo_selected"].hide()
555 self["DhcpInfo"].show()
556 self["DhcpInfo_selected"].hide()
557 self["NetworkInfo"].hide()
558 self["NetworkInfo_selected"].show()
560 self["NetworkInfo"].show()
561 self["NetworkInfo_selected"].hide()
562 self["IPInfo"].show()
563 self["IPInfo_selected"].hide()
564 self["DhcpInfo"].hide()
565 self["DhcpInfo_selected"].show()
567 self["DhcpInfo"].show()
568 self["DhcpInfo_selected"].hide()
569 self["DNSInfo"].show()
570 self["DNSInfo_selected"].hide()
571 self["IPInfo"].hide()
572 self["IPInfo_selected"].show()
574 self["IPInfo"].show()
575 self["IPInfo_selected"].hide()
576 self["EditSettingsButton"].show()
577 self["EditSettingsButton_selected"].hide()
578 self["DNSInfo"].hide()
579 self["DNSInfo_selected"].show()
581 self["DNSInfo"].show()
582 self["DNSInfo_selected"].hide()
583 self["EditSettingsButton"].hide()
584 self["EditSettingsButton_selected"].show()
586 def runTest(self,next):
608 self.steptimer = True
609 self.nextStepTimer.start(3000)
612 self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
613 self["Adapter"].instance.setForegroundColor(getColor(Green))
614 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Black))
615 self["AdapterInfo_OK"].show()
616 self.steptimer = True
617 self.nextStepTimer.start(3000)
620 self.getLinkState(self.iface)
621 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Black))
622 self.steptimer = True
623 self.nextStepTimer.start(3000)
626 if iNetwork.getAdapterAttribute(self.iface, 'dhcp') is True:
627 self["Dhcp"].instance.setForegroundColor(getColor(Green))
628 self["Dhcp"].setText(_("enabled"))
629 self["DhcpInfo_OK"].show()
630 self["DhcpInfo_NOK"].hide()
632 self["Dhcp"].instance.setForegroundColor(getColor(Grey))
633 self["Dhcp"].setText(_("disabled"))
634 self["DhcpInfo_NOK"].show()
635 self["DhcpInfo_OK"].hide()
636 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Black))
637 self.steptimer = True
638 self.nextStepTimer.start(3000)
641 if len(iNetwork.getAdapterAttribute(self.iface,'ip')) != 0:
642 self["IP"].instance.setForegroundColor(getColor(Green))
643 self["IP"].setText(_("confirmed"))
644 self["IPInfo_OK"].show()
645 self["IPInfo_NOK"].hide()
647 self["IP"].instance.setForegroundColor(getColor(Grey))
648 self["IP"].setText(_("unconfirmed"))
649 self["IPInfo_NOK"].show()
650 self["IPInfo_OK"].hide()
651 self["IPInfo_Text"].instance.setForegroundColor(getColor(Black))
652 self.steptimer = True
653 self.nextStepTimer.start(3000)
656 self.steptimer = False
657 self.nextStepTimer.stop()
658 if len (iNetwork.getNameserverList()) != 0:
659 self["DNS"].instance.setForegroundColor(getColor(Green))
660 self["DNS"].setText(_("confirmed"))
661 self["DNSInfo_OK"].show()
662 self["DNSInfo_NOK"].hide()
664 self["DNS"].instance.setForegroundColor(getColor(Grey))
665 self["DNS"].setText(_("unconfirmed"))
666 self["DNSInfo_NOK"].show()
667 self["DNSInfo_OK"].hide()
669 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Black))
670 self["EditSettings_Text"].show()
671 self["EditSettingsButton_selected"].show()
672 self["ButtonYellow_off"].show()
673 self["ButtonYellow"].hide()
674 self["ButtonGreentext"].setText(_("Restart test"))
675 self["ButtonGreen"].show()
676 self["ButtonGreen_off"].hide()
677 self["shortcutsgreen"].setEnabled(False)
678 self["shortcutsgreen_restart"].setEnabled(True)
679 self["shortcutsyellow"].setEnabled(False)
680 self["updown_actions"].setEnabled(True)
685 self["shortcutsgreen"].setEnabled(False)
686 self["shortcutsyellow"].setEnabled(True)
687 self["updown_actions"].setEnabled(False)
688 self["ButtonYellow_off"].hide()
689 self["ButtonYellow"].show()
690 self["ButtonGreen"].hide()
691 self["ButtonGreen_off"].show()
692 self.steptimer = True
693 self.nextStepTimer.start(1000)
695 def KeyGreenRestart(self):
698 self.layoutFinished()
699 self["Adapter"].setText((""))
700 self["Network"].setText((""))
701 self["Dhcp"].setText((""))
702 self["IP"].setText((""))
703 self["DNS"].setText((""))
704 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Grey))
705 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Grey))
706 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Grey))
707 self["IPInfo_Text"].instance.setForegroundColor(getColor(Grey))
708 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Grey))
709 self["shortcutsgreen_restart"].setEnabled(False)
710 self["shortcutsgreen"].setEnabled(False)
711 self["shortcutsyellow"].setEnabled(True)
712 self["updown_actions"].setEnabled(False)
713 self["ButtonYellow_off"].hide()
714 self["ButtonYellow"].show()
715 self["ButtonGreen"].hide()
716 self["ButtonGreen_off"].show()
717 self.steptimer = True
718 self.nextStepTimer.start(1000)
722 self["infoshortcuts"].setEnabled(True)
723 self["shortcuts"].setEnabled(False)
724 if activebutton == 1: # Adapter Check
725 self["InfoText"].setText(_("This test detects your configured LAN-Adapter."))
726 self["InfoTextBorder"].show()
727 self["InfoText"].show()
728 self["ButtonRedtext"].setText(_("Back"))
729 if activebutton == 2: #LAN Check
730 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"))
731 self["InfoTextBorder"].show()
732 self["InfoText"].show()
733 self["ButtonRedtext"].setText(_("Back"))
734 if activebutton == 3: #DHCP Check
735 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."))
736 self["InfoTextBorder"].show()
737 self["InfoText"].show()
738 self["ButtonRedtext"].setText(_("Back"))
739 if activebutton == 4: # IP Check
740 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"))
741 self["InfoTextBorder"].show()
742 self["InfoText"].show()
743 self["ButtonRedtext"].setText(_("Back"))
744 if activebutton == 5: # DNS Check
745 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"))
746 self["InfoTextBorder"].show()
747 self["InfoText"].show()
748 self["ButtonRedtext"].setText(_("Back"))
749 if activebutton == 6: # Edit Settings
750 self.session.open(AdapterSetup,self.iface)
755 self["shortcutsgreen_restart"].setEnabled(True)
756 self["shortcutsgreen"].setEnabled(False)
757 self["shortcutsyellow"].setEnabled(False)
758 self["ButtonGreentext"].setText(_("Restart test"))
759 self["ButtonYellow_off"].show()
760 self["ButtonYellow"].hide()
761 self["ButtonGreen"].show()
762 self["ButtonGreen_off"].hide()
763 self.steptimer = False
764 self.nextStepTimer.stop()
766 def layoutFinished(self):
767 self["shortcutsyellow"].setEnabled(False)
768 self["AdapterInfo_selected"].hide()
769 self["AdapterInfo_OK"].hide()
771 self["NetworkInfo_selected"].hide()
772 self["NetworkInfo_OK"].hide()
773 self["NetworkInfo_NOK"].hide()
775 self["DhcpInfo_selected"].hide()
776 self["DhcpInfo_OK"].hide()
777 self["DhcpInfo_NOK"].hide()
779 self["IPInfo_selected"].hide()
780 self["IPInfo_OK"].hide()
781 self["IPInfo_NOK"].hide()
783 self["DNSInfo_selected"].hide()
784 self["DNSInfo_OK"].hide()
785 self["DNSInfo_NOK"].hide()
787 self["EditSettings_Text"].hide()
788 self["EditSettingsButton"].hide()
789 self["EditSettingsButton_selected"].hide()
790 self["ButtonYellow"].hide()
791 self["ButtonGreen_off"].hide()
792 self["InfoText"].hide()
793 self["InfoTextBorder"].hide()
796 self["Adaptertext"] = Label(_("LAN Adapter"))
797 self["Adapter"] = Label()
798 self["AdapterInfo"] = Pixmap()
799 self["AdapterInfo_selected"] = Pixmap()
800 self["AdapterInfo_Text"] = Label(_("Show Info"))
801 self["AdapterInfo_OK"] = Pixmap()
803 if self.iface == 'wlan0':
804 self["Networktext"] = Label(_("Wireless Network"))
806 self["Networktext"] = Label(_("Local Network"))
808 self["Network"] = Label()
809 self["NetworkInfo"] = Pixmap()
810 self["NetworkInfo_selected"] = Pixmap()
811 self["NetworkInfo_Text"] = Label(_("Show Info"))
812 self["NetworkInfo_OK"] = Pixmap()
813 self["NetworkInfo_NOK"] = Pixmap()
815 self["Dhcptext"] = Label(_("DHCP"))
816 self["Dhcp"] = Label()
817 self["DhcpInfo"] = Pixmap()
818 self["DhcpInfo_selected"] = Pixmap()
819 self["DhcpInfo_Text"] = Label(_("Show Info"))
820 self["DhcpInfo_OK"] = Pixmap()
821 self["DhcpInfo_NOK"] = Pixmap()
823 self["IPtext"] = Label(_("IP Address"))
825 self["IPInfo"] = Pixmap()
826 self["IPInfo_selected"] = Pixmap()
827 self["IPInfo_Text"] = Label(_("Show Info"))
828 self["IPInfo_OK"] = Pixmap()
829 self["IPInfo_NOK"] = Pixmap()
831 self["DNStext"] = Label(_("Nameserver"))
832 self["DNS"] = Label()
833 self["DNSInfo"] = Pixmap()
834 self["DNSInfo_selected"] = Pixmap()
835 self["DNSInfo_Text"] = Label(_("Show Info"))
836 self["DNSInfo_OK"] = Pixmap()
837 self["DNSInfo_NOK"] = Pixmap()
839 self["EditSettings_Text"] = Label(_("Edit settings"))
840 self["EditSettingsButton"] = Pixmap()
841 self["EditSettingsButton_selected"] = Pixmap()
843 self["ButtonRedtext"] = Label(_("Close"))
844 self["ButtonRed"] = Pixmap()
845 self["ButtonGreentext"] = Label(_("Start test"))
846 self["ButtonGreen"] = Pixmap()
847 self["ButtonGreen_off"] = Pixmap()
848 self["ButtonYellowtext"] = Label(_("Stop test"))
849 self["ButtonYellow"] = Pixmap()
850 self["ButtonYellow_off"] = Pixmap()
852 self["InfoTextBorder"] = Pixmap()
853 self["InfoText"] = Label()
855 def getLinkState(self,iface):
856 iNetwork.getLinkState(iface,self.dataAvail)
858 def dataAvail(self,data):
859 self.output = data.strip()
860 result = self.output.split('\n')
861 pattern = re.compile("Link detected: yes")
863 if re.search(pattern, item):
864 self["Network"].instance.setForegroundColor(getColor(Green))
865 self["Network"].setText(_("connected"))
866 self["NetworkInfo_OK"].show()
867 self["NetworkInfo_NOK"].hide()
869 self["Network"].instance.setForegroundColor(getColor(Grey))
870 self["Network"].setText(_("disconnected"))
871 self["NetworkInfo_OK"].hide()
872 self["NetworkInfo_NOK"].show()