Screens/NetworkSetup.py: - rework network gui.
authoracid-burn <acidburn@opendreambox.org>
Fri, 25 Sep 2009 10:42:26 +0000 (12:42 +0200)
committeracid-burn <acidburn@opendreambox.org>
Fri, 25 Sep 2009 10:42:26 +0000 (12:42 +0200)
- move buttons to the top and remove bottom bar
- replace all Labels where possible through StaticText for better skinability
- minor fixes

lib/python/Screens/NetworkSetup.py

index aae7ef8..ec2bafe 100755 (executable)
@@ -5,6 +5,7 @@ from Screens.Standby import *
 from Screens.VirtualKeyBoard import VirtualKeyBoard
 from Screens.HelpMenu import HelpableScreen
 from Components.Network import iNetwork
 from Screens.VirtualKeyBoard import VirtualKeyBoard
 from Screens.HelpMenu import HelpableScreen
 from Components.Network import iNetwork
+from Components.Sources.StaticText import StaticText
 from Components.Label import Label,MultiColorLabel
 from Components.Pixmap import Pixmap,MultiPixmap
 from Components.MenuList import MenuList
 from Components.Label import Label,MultiColorLabel
 from Components.Pixmap import Pixmap,MultiPixmap
 from Components.MenuList import MenuList
@@ -55,12 +56,14 @@ class NetworkAdapterSelection(Screen,HelpableScreen):
                self.wlan_errortext = _("No working wireless network adapter found.\nPlease verify that you have attached a compatible WLAN device and your network is configured correctly.")
                self.lan_errortext = _("No working local network adapter found.\nPlease verify that you have attached a network cable and your network is configured correctly.")
                self.oktext = _("Press OK on your remote control to continue.")
                self.wlan_errortext = _("No working wireless network adapter found.\nPlease verify that you have attached a compatible WLAN device and your network is configured correctly.")
                self.lan_errortext = _("No working local network adapter found.\nPlease verify that you have attached a network cable and your network is configured correctly.")
                self.oktext = _("Press OK on your remote control to continue.")
+               self.edittext = _("Press OK to edit the settings.")
+               self.defaulttext = _("Press yellow to set this interface as default interface.")
                self.restartLanRef = None
                
                self.restartLanRef = None
                
-               self["ButtonBluetext"] = Label(_("Set as default Interface"))
-               self["ButtonBlue"] = Pixmap()
-               self["ButtonRedtext"] = Label(_("Close"))
-               self["introduction"] = Label(_("Press OK to edit the settings."))
+               self["key_red"] = StaticText(_("Close"))
+               self["key_green"] = StaticText(_("Select"))
+               self["key_yellow"] = StaticText("")
+               self["introduction"] = StaticText(self.edittext)
                
                self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
                
                
                self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
                
@@ -75,18 +78,19 @@ class NetworkAdapterSelection(Screen,HelpableScreen):
 
                self["ColorActions"] = HelpableActionMap(self, "ColorActions",
                        {
 
                self["ColorActions"] = HelpableActionMap(self, "ColorActions",
                        {
-                       "red": (self.close, _("exit network interface list")),  
+                       "red": (self.close, _("exit network interface list")),
+                       "green": (self.okbuttonClick, _("select interface")),
                        })
                
                self["DefaultInterfaceAction"] = HelpableActionMap(self, "ColorActions",
                        {
                        })
                
                self["DefaultInterfaceAction"] = HelpableActionMap(self, "ColorActions",
                        {
-                       "blue": (self.setDefaultInterface, [_("Set interface as default Interface"),_("* Only available if more than one interface is active.")] ),     
+                       "yellow": (self.setDefaultInterface, [_("Set interface as default Interface"),_("* Only available if more than one interface is active.")] ),
                        })
                        })
-               
+
                self.list = []
                self["list"] = InterfaceList(self.list)
                self.updateList()
                self.list = []
                self["list"] = InterfaceList(self.list)
                self.updateList()
-               
+
                if len(self.adapters) == 1:
                        self.onFirstExecBegin.append(self.okbuttonClick)
                self.onClose.append(self.cleanup)
                if len(self.adapters) == 1:
                        self.onFirstExecBegin.append(self.okbuttonClick)
                self.onClose.append(self.cleanup)
@@ -97,12 +101,12 @@ class NetworkAdapterSelection(Screen,HelpableScreen):
                default_gw = None
                num_configured_if = len(iNetwork.getConfiguredAdapters())
                if num_configured_if >= 2:
                default_gw = None
                num_configured_if = len(iNetwork.getConfiguredAdapters())
                if num_configured_if >= 2:
-                       self["ButtonBlue"].show()
-                       self["ButtonBluetext"].show()
+                       self["key_yellow"].setText(_("Default"))
+                       self["introduction"].setText(self.defaulttext)
                        self["DefaultInterfaceAction"].setEnabled(True)
                else:
                        self["DefaultInterfaceAction"].setEnabled(True)
                else:
-                       self["ButtonBlue"].hide()
-                       self["ButtonBluetext"].hide()
+                       self["key_yellow"].setText("")
+                       self["introduction"].setText(self.edittext)
                        self["DefaultInterfaceAction"].setEnabled(False)
 
                if num_configured_if < 2 and os_path.exists("/etc/default_gw"):
                        self["DefaultInterfaceAction"].setEnabled(False)
 
                if num_configured_if < 2 and os_path.exists("/etc/default_gw"):
@@ -127,6 +131,7 @@ class NetworkAdapterSelection(Screen,HelpableScreen):
                                else:
                                        active_int = False
                                self.list.append(InterfaceEntryComponent(index = x[1],name = _(x[0]),default=default_int,active=active_int ))
                                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):
                self["list"].l.setList(self.list)
 
        def setDefaultInterface(self):
@@ -197,6 +202,7 @@ class NetworkAdapterSelection(Screen,HelpableScreen):
                        self.session.open(MessageBox, _("Finished configuring your network"), type = MessageBox.TYPE_INFO, timeout = 10, default = False)
 
 
                        self.session.open(MessageBox, _("Finished configuring your network"), type = MessageBox.TYPE_INFO, timeout = 10, default = False)
 
 
+
 class NameserverSetup(Screen, ConfigListScreen, HelpableScreen):
        def __init__(self, session):
                Screen.__init__(self, session)
 class NameserverSetup(Screen, ConfigListScreen, HelpableScreen):
        def __init__(self, session):
                Screen.__init__(self, session)
@@ -204,30 +210,31 @@ class NameserverSetup(Screen, ConfigListScreen, HelpableScreen):
                self.backupNameserverList = iNetwork.getNameserverList()[:]
                print "backup-list:", self.backupNameserverList
                
                self.backupNameserverList = iNetwork.getNameserverList()[:]
                print "backup-list:", self.backupNameserverList
                
-               self["ButtonGreentext"] = Label(_("Add"))
-               self["ButtonYellowtext"] = Label(_("Delete"))
-               self["ButtonRedtext"] = Label(_("Close"))
-               self["introduction"] = Label(_("Press OK to activate the settings."))
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_green"] = StaticText(_("Add"))
+               self["key_yellow"] = StaticText(_("Delete"))
+
+               self["introduction"] = StaticText(_("Press OK to activate the settings."))
                self.createConfig()
                self.createConfig()
-               
+
                self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
                        {
                        "cancel": (self.cancel, _("exit nameserver configuration")),
                        "ok": (self.ok, _("activate current configuration")),
                        })
                self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
                        {
                        "cancel": (self.cancel, _("exit nameserver configuration")),
                        "ok": (self.ok, _("activate current configuration")),
                        })
-               
+
                self["ColorActions"] = HelpableActionMap(self, "ColorActions",
                        {
                        "red": (self.cancel, _("exit nameserver configuration")),
                        "green": (self.add, _("add a nameserver entry")),
                        "yellow": (self.remove, _("remove a nameserver entry")),
                        })
                self["ColorActions"] = HelpableActionMap(self, "ColorActions",
                        {
                        "red": (self.cancel, _("exit nameserver configuration")),
                        "green": (self.add, _("add a nameserver entry")),
                        "yellow": (self.remove, _("remove a nameserver entry")),
                        })
-               
+
                self["actions"] = NumberActionMap(["SetupActions"],
                {
                        "ok": self.ok,
                self["actions"] = NumberActionMap(["SetupActions"],
                {
                        "ok": self.ok,
-               }, -2)          
-               
+               }, -2)
+
                self.list = []
                ConfigListScreen.__init__(self, self.list)
                self.createSetup()
                self.list = []
                ConfigListScreen.__init__(self, self.list)
                self.createSetup()
@@ -277,7 +284,8 @@ class NameserverSetup(Screen, ConfigListScreen, HelpableScreen):
                        iNetwork.removeNameserver(self.nameservers[index])
                        self.createConfig()
                        self.createSetup()
                        iNetwork.removeNameserver(self.nameservers[index])
                        self.createConfig()
                        self.createSetup()
-       
+
+
 class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
        def __init__(self, session, networkinfo, essid=None, aplist=None):
                Screen.__init__(self, session)
 class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
        def __init__(self, session, networkinfo, essid=None, aplist=None):
                Screen.__init__(self, session)
@@ -311,47 +319,42 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                        "blue": (self.KeyBlue, _("open nameserver configuration")),
                        })
 
                        "blue": (self.KeyBlue, _("open nameserver configuration")),
                        })
 
-               self["VirtualKB"] = HelpableActionMap(self, "ColorActions",
+               self["VirtualKB"] = HelpableActionMap(self, "VirtualKeyboardActions",
                        {
                        {
-                       "green": (self.KeyGreen, [_("open virtual keyboard input help"),_("* Only available when entering hidden SSID or network key")] ),                                      
+                       "showVirtualKeyboard": (self.KeyText, [_("open virtual keyboard input help"),_("* Only available when entering hidden SSID or network key")] ),
                        })
 
                self["actions"] = NumberActionMap(["SetupActions"],
                {
                        "ok": self.ok,
                }, -2)
                        })
 
                self["actions"] = NumberActionMap(["SetupActions"],
                {
                        "ok": self.ok,
                }, -2)
-               
-               
+
                self.list = []
                ConfigListScreen.__init__(self, self.list,session = self.session)
                self.createSetup()
                self.onLayoutFinish.append(self.layoutFinished)
                self.onClose.append(self.cleanup)
                self.list = []
                ConfigListScreen.__init__(self, self.list,session = self.session)
                self.createSetup()
                self.onLayoutFinish.append(self.layoutFinished)
                self.onClose.append(self.cleanup)
-               
-               self["DNS1text"] = Label(_("Primary DNS"))
-               self["DNS2text"] = Label(_("Secondary DNS"))
-               self["DNS1"] = Label()
-               self["DNS2"] = Label()
-               
-               self["introduction"] = Label(_("Current settings:"))
-               
-               self["IPtext"] = Label(_("IP Address"))
-               self["Netmasktext"] = Label(_("Netmask"))
-               self["Gatewaytext"] = Label(_("Gateway"))
-               
-               self["IP"] = Label()
-               self["Mask"] = Label()
-               self["Gateway"] = Label()
-               
-               self["BottomBG"] = Pixmap()
-               self["Adaptertext"] = Label(_("Network:"))
-               self["Adapter"] = Label()
-               self["introduction2"] = Label(_("Press OK to activate the settings."))
-               self["ButtonRed"] = Pixmap()
-               self["ButtonRedtext"] = Label(_("Close"))
-               self["ButtonBlue"] = Pixmap()
-               self["ButtonBluetext"] = Label(_("Edit DNS"))
-               self["ButtonGreen"] = Pixmap()
+
+               self["DNS1text"] = StaticText(_("Primary DNS"))
+               self["DNS2text"] = StaticText(_("Secondary DNS"))
+               self["DNS1"] = StaticText()
+               self["DNS2"] = StaticText()
+               self["introduction"] = StaticText(_("Current settings:"))
+
+               self["IPtext"] = StaticText(_("IP Address"))
+               self["Netmasktext"] = StaticText(_("Netmask"))
+               self["Gatewaytext"] = StaticText(_("Gateway"))
+
+               self["IP"] = StaticText()
+               self["Mask"] = StaticText()
+               self["Gateway"] = StaticText()
+
+               self["Adaptertext"] = StaticText(_("Network:"))
+               self["Adapter"] = StaticText()
+               self["introduction2"] = StaticText(_("Press OK to activate the settings."))
+               self["key_red"] = StaticText(_("Cancel"))
+               self["key_blue"] = StaticText(_("Edit DNS"))
+
                self["VKeyIcon"] = Pixmap()
                self["HelpWindow"] = Pixmap()
 
                self["VKeyIcon"] = Pixmap()
                self["HelpWindow"] = Pixmap()
 
@@ -374,14 +377,15 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                        self["IP"].setText(_("N/A"))                    
                if iNetwork.getAdapterAttribute(self.iface, "gateway"):
                        if self.gatewayConfigEntry.getText() == "0.0.0.0":
                        self["IP"].setText(_("N/A"))                    
                if iNetwork.getAdapterAttribute(self.iface, "gateway"):
                        if self.gatewayConfigEntry.getText() == "0.0.0.0":
+                               self["Gatewaytext"].setText(_("Gateway"))
                                self["Gateway"].setText(_("N/A"))
                        else:
                                self["Gateway"].setText(_("N/A"))
                        else:
+                               self["Gatewaytext"].setText(_("Gateway"))
                                self["Gateway"].setText(self.gatewayConfigEntry.getText())
                else:
                                self["Gateway"].setText(self.gatewayConfigEntry.getText())
                else:
-                       self["Gateway"].hide()
-                       self["Gatewaytext"].hide()
+                       self["Gateway"].setText("")
+                       self["Gatewaytext"].setText("")
                self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
                self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
-               self["ButtonGreen"].hide()
                self["VKeyIcon"].hide()
                self["VirtualKB"].setEnabled(False)
                self["HelpWindow"].hide()
                self["VKeyIcon"].hide()
                self["VirtualKB"].setEnabled(False)
                self["HelpWindow"].hide()
@@ -400,7 +404,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                self.weplist = None
                self.wsconfig = None
                self.default = None
                self.weplist = None
                self.wsconfig = None
                self.default = None
-               
+
                if self.iface == "wlan0" or self.iface == "ath0" :
                        from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant,Wlan
                        self.w = Wlan(self.iface)
                if self.iface == "wlan0" or self.iface == "ath0" :
                        from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant,Wlan
                        self.w = Wlan(self.iface)
@@ -426,9 +430,8 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                                for ap in self.aps:
                                                        a = self.aps[ap]
                                                        if a['active']:
                                                for ap in self.aps:
                                                        a = self.aps[ap]
                                                        if a['active']:
-                                                               if a['essid'] == "":
-                                                                       a['essid'] = a['bssid']
-                                                               self.nwlist.append((a['essid'],a['essid']))
+                                                               if a['essid'] != '':
+                                                                       self.nwlist.append((a['essid'],a['essid']))
                                        self.nwlist.sort(key = lambda x: x[0])
                                except:
                                        self.nwlist.append(("No Networks found",_("No Networks found")))
                                        self.nwlist.sort(key = lambda x: x[0])
                                except:
                                        self.nwlist.append(("No Networks found",_("No Networks found")))
@@ -438,7 +441,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                self.default = self.essid
                        else:
                                self.default = self.wsconfig['ssid']
                                self.default = self.essid
                        else:
                                self.default = self.wsconfig['ssid']
-                               
+
                        if "hidden..." not in self.nwlist:
                                self.nwlist.append(("hidden...",_("hidden network")))
                        if self.default not in self.nwlist:
                        if "hidden..." not in self.nwlist:
                                self.nwlist.append(("hidden...",_("hidden network")))
                        if self.default not in self.nwlist:
@@ -450,7 +453,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                        config.plugins.wlan.encryption.type = NoSave(ConfigSelection(self.encryptionlist, default = self.wsconfig['encryption_type'] ))
                        config.plugins.wlan.encryption.wepkeytype = NoSave(ConfigSelection(self.weplist, default = self.wsconfig['encryption_wepkeytype'] ))
                        config.plugins.wlan.encryption.psk = NoSave(ConfigPassword(default = self.wsconfig['key'], visible_width = 50, fixed_size = False))
                        config.plugins.wlan.encryption.type = NoSave(ConfigSelection(self.encryptionlist, default = self.wsconfig['encryption_type'] ))
                        config.plugins.wlan.encryption.wepkeytype = NoSave(ConfigSelection(self.weplist, default = self.wsconfig['encryption_wepkeytype'] ))
                        config.plugins.wlan.encryption.psk = NoSave(ConfigPassword(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.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])
@@ -468,7 +471,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
        def createSetup(self):
                self.list = []
                self.InterfaceEntry = getConfigListEntry(_("Use Interface"), self.activateInterfaceEntry)
        def createSetup(self):
                self.list = []
                self.InterfaceEntry = getConfigListEntry(_("Use Interface"), self.activateInterfaceEntry)
-               
+
                self.list.append(self.InterfaceEntry)
                if self.activateInterfaceEntry.value:
                        self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
                self.list.append(self.InterfaceEntry)
                if self.activateInterfaceEntry.value:
                        self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
@@ -480,8 +483,8 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                self.list.append(self.gatewayEntry)
                                if self.hasGatewayConfigEntry.value:
                                        self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
                                self.list.append(self.gatewayEntry)
                                if self.hasGatewayConfigEntry.value:
                                        self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
-                       
-                       self.extended = None            
+
+                       self.extended = None
                        for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
                                callFnc = p.__call__["ifaceSupported"](self.iface)
                                if callFnc is not None:
                        for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
                                callFnc = p.__call__["ifaceSupported"](self.iface)
                                if callFnc is not None:
@@ -507,13 +510,12 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                                        self.list.append(self.encryptionType)
                                                        if config.plugins.wlan.encryption.type.value == 'WEP':
                                                                self.list.append(getConfigListEntry(_("Encryption Keytype"), config.plugins.wlan.encryption.wepkeytype))
                                                        self.list.append(self.encryptionType)
                                                        if config.plugins.wlan.encryption.type.value == 'WEP':
                                                                self.list.append(getConfigListEntry(_("Encryption Keytype"), config.plugins.wlan.encryption.wepkeytype))
-                                                               self.encryptionKey = getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk)                                                
-                                                               self.list.append(self.encryptionKey)                                                    
-                                                       else:                                                           
-                                                               self.encryptionKey = getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk)                                                
+                                                               self.encryptionKey = getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk)
                                                                self.list.append(self.encryptionKey)
                                                                self.list.append(self.encryptionKey)
-       
-               
+                                                       else:
+                                                               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)
                if not self.selectionChanged in self["config"].onSelectionChanged:
                self["config"].list = self.list
                self["config"].l.setList(self.list)
                if not self.selectionChanged in self["config"].onSelectionChanged:
@@ -522,24 +524,24 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
        def KeyBlue(self):
                self.session.openWithCallback(self.NameserverSetupClosed, NameserverSetup)
 
        def KeyBlue(self):
                self.session.openWithCallback(self.NameserverSetupClosed, NameserverSetup)
 
-       def KeyGreen(self):
-               if self.iface == "wlan0" or self.iface == "ath0" :      
+       def KeyText(self):
+               if self.iface == "wlan0" or self.iface == "ath0" :
                        if self["config"].getCurrent() == self.hiddenSSID:
                                if config.plugins.wlan.essid.value == 'hidden...':
                                        self.session.openWithCallback(self.VirtualKeyBoardSSIDCallback, VirtualKeyBoard, title = (_("Enter WLAN network name/SSID:")), text = config.plugins.wlan.essid.value)
                        if self["config"].getCurrent() == self.encryptionKey:
                                self.session.openWithCallback(self.VirtualKeyBoardKeyCallback, VirtualKeyBoard, title = (_("Enter WLAN passphrase/key:")), text = config.plugins.wlan.encryption.psk.value)
                        if self["config"].getCurrent() == self.hiddenSSID:
                                if config.plugins.wlan.essid.value == 'hidden...':
                                        self.session.openWithCallback(self.VirtualKeyBoardSSIDCallback, VirtualKeyBoard, title = (_("Enter WLAN network name/SSID:")), text = config.plugins.wlan.essid.value)
                        if self["config"].getCurrent() == self.encryptionKey:
                                self.session.openWithCallback(self.VirtualKeyBoardKeyCallback, VirtualKeyBoard, title = (_("Enter WLAN passphrase/key:")), text = config.plugins.wlan.encryption.psk.value)
-       
+
        def VirtualKeyBoardSSIDCallback(self, callback = None):
                if callback is not None and len(callback):
        def VirtualKeyBoardSSIDCallback(self, callback = None):
                if callback is not None and len(callback):
-                       config.plugins.wlan.hiddenessid = NoSave(ConfigText(default = callback, visible_width = 50, fixed_size = False))
-                       self.createSetup()
-                       
+                       config.plugins.wlan.hiddenessid.setValue(callback)
+                       self["config"].invalidate(self.hiddenSSID)
+
        def VirtualKeyBoardKeyCallback(self, callback = None):
                if callback is not None and len(callback):
        def VirtualKeyBoardKeyCallback(self, callback = None):
                if callback is not None and len(callback):
-                       config.plugins.wlan.encryption.psk = NoSave(ConfigPassword(default = callback, visible_width = 50, fixed_size = False))
-                       self.createSetup()
-                       
+                       config.plugins.wlan.encryption.psk.setValue(callback)
+                       self["config"].invalidate(self.encryptionKey)
+
        def newConfig(self):
                if self["config"].getCurrent() == self.InterfaceEntry:
                        self.createSetup()
        def newConfig(self):
                if self["config"].getCurrent() == self.InterfaceEntry:
                        self.createSetup()
@@ -547,13 +549,14 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                        self.createSetup()
                if self["config"].getCurrent() == self.gatewayEntry:
                        self.createSetup()
                        self.createSetup()
                if self["config"].getCurrent() == self.gatewayEntry:
                        self.createSetup()
-               if self.iface == "wlan0" or self.iface == "ath0" :      
+               if self.iface == "wlan0" or self.iface == "ath0" :
                        if self["config"].getCurrent() == self.wlanSSID:
                                self.createSetup()
                        if self["config"].getCurrent() == self.encryptionEnabled:
                                self.createSetup()
                        if self["config"].getCurrent() == self.encryptionType:
                        if self["config"].getCurrent() == self.wlanSSID:
                                self.createSetup()
                        if self["config"].getCurrent() == self.encryptionEnabled:
                                self.createSetup()
                        if self["config"].getCurrent() == self.encryptionType:
-                               self.createSetup()      
+                               self.createSetup()
+
        def keyLeft(self):
                ConfigListScreen.keyLeft(self)
                self.newConfig()
        def keyLeft(self):
                ConfigListScreen.keyLeft(self)
                self.newConfig()
@@ -568,18 +571,15 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                        helpwindowpos = self["HelpWindow"].getPosition()
                        if current[1].help_window.instance is not None:
                                current[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1]))
                        helpwindowpos = self["HelpWindow"].getPosition()
                        if current[1].help_window.instance is not None:
                                current[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1]))
-                               self["ButtonGreen"].show()
                                self["VKeyIcon"].show()
                                self["VKeyIcon"].show()
-                               self["VirtualKB"].setEnabled(True)                      
+                               self["VirtualKB"].setEnabled(True)
                elif current == self.encryptionKey and config.plugins.wlan.encryption.enabled.value:
                        helpwindowpos = self["HelpWindow"].getPosition()
                        if current[1].help_window.instance is not None:
                                current[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1]))
                elif current == self.encryptionKey and config.plugins.wlan.encryption.enabled.value:
                        helpwindowpos = self["HelpWindow"].getPosition()
                        if current[1].help_window.instance is not None:
                                current[1].help_window.instance.move(ePoint(helpwindowpos[0],helpwindowpos[1]))
-                               self["ButtonGreen"].show()
                                self["VKeyIcon"].show()
                                self["VKeyIcon"].show()
-                               self["VirtualKB"].setEnabled(True)                      
-               else:   
-                       self["ButtonGreen"].hide()
+                               self["VirtualKB"].setEnabled(True)
+               else:
                        self["VKeyIcon"].hide()
                        self["VirtualKB"].setEnabled(False)
 
                        self["VKeyIcon"].hide()
                        self["VirtualKB"].setEnabled(False)
 
@@ -608,12 +608,12 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                self.ws.writeConfig()
                        if self.activateInterfaceEntry.value is False:
                                iNetwork.deactivateInterface(self.iface)
                                self.ws.writeConfig()
                        if self.activateInterfaceEntry.value is False:
                                iNetwork.deactivateInterface(self.iface)
-                       iNetwork.writeNetworkConfig()                   
+                       iNetwork.writeNetworkConfig()
                        iNetwork.restartNetwork(self.applyConfigDataAvail)
                        self.applyConfigRef = self.session.openWithCallback(self.applyConfigfinishedCB, MessageBox, _("Please wait for activation of your network configuration..."), type = MessageBox.TYPE_INFO, enable_input = False)
                else:
                        self.cancel()
                        iNetwork.restartNetwork(self.applyConfigDataAvail)
                        self.applyConfigRef = self.session.openWithCallback(self.applyConfigfinishedCB, MessageBox, _("Please wait for activation of your network configuration..."), type = MessageBox.TYPE_INFO, enable_input = False)
                else:
                        self.cancel()
-                       
+
        def applyConfigDataAvail(self, data):
                if data is True:
                        iNetwork.getInterfaces(self.getInterfacesDataAvail)
        def applyConfigDataAvail(self, data):
                if data is True:
                        iNetwork.getInterfaces(self.getInterfacesDataAvail)
@@ -632,7 +632,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                        self.session.openWithCallback(lambda x : self.finished_cb(), MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10)
                                else:
                                        self.session.openWithCallback(self.ConfigfinishedCB, MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10)
                                        self.session.openWithCallback(lambda x : self.finished_cb(), MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10)
                                else:
                                        self.session.openWithCallback(self.ConfigfinishedCB, MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10)
-       
+
        def secondIfaceFoundCB(self,data):
                if data is False:
                        self.close('ok')
        def secondIfaceFoundCB(self,data):
                if data is False:
                        self.close('ok')
@@ -644,7 +644,7 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                                iNetwork.setAdapterAttribute(interface, "up", False)
                                iNetwork.deactivateInterface(interface)
                                self.applyConfig(True)
                                iNetwork.setAdapterAttribute(interface, "up", False)
                                iNetwork.deactivateInterface(interface)
                                self.applyConfig(True)
-                       
+
        def ConfigfinishedCB(self,data):
                if data is not None:
                        if data is True:
        def ConfigfinishedCB(self,data):
                if data is not None:
                        if data is True:
@@ -656,15 +656,15 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                else:
                        self.close('cancel')
 
                else:
                        self.close('cancel')
 
-       def cancelCB(self,data):                        
+       def cancelCB(self,data):
                if data is not None:
                        if data is True:
                                self.close('cancel')
                if data is not None:
                        if data is True:
                                self.close('cancel')
-                               
+
        def runAsync(self, finished_cb):
                self.finished_cb = finished_cb
                self.ok()
        def runAsync(self, finished_cb):
                self.finished_cb = finished_cb
                self.ok()
-               
+
        def NameserverSetupClosed(self, *ret):
                iNetwork.loadNameserverConfig()
                nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
        def NameserverSetupClosed(self, *ret):
                iNetwork.loadNameserverConfig()
                nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
@@ -672,10 +672,10 @@ class AdapterSetup(Screen, ConfigListScreen, HelpableScreen):
                self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
                self.createSetup()
                self.layoutFinished()
                self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
                self.createSetup()
                self.layoutFinished()
-               
+
        def cleanup(self):
                iNetwork.stopLinkStateConsole()
        def cleanup(self):
                iNetwork.stopLinkStateConsole()
-       
+
 
 class AdapterSetupConfiguration(Screen, HelpableScreen):
        def __init__(self, session,iface):
 
 class AdapterSetupConfiguration(Screen, HelpableScreen):
        def __init__(self, session,iface):
@@ -686,16 +686,13 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
                self.restartLanRef = None
                self.mainmenu = self.genMainMenu()
                self["menulist"] = MenuList(self.mainmenu)
                self.restartLanRef = None
                self.mainmenu = self.genMainMenu()
                self["menulist"] = MenuList(self.mainmenu)
-               self["description"] = Label()
-               self["IFtext"] = Label()
-               self["IF"] = Label()
-               self["BottomBG"] = Label()
-               self["Statustext"] = Label()
+               self["key_red"] = StaticText(_("Close"))
+               self["description"] = StaticText()
+               self["IFtext"] = StaticText()
+               self["IF"] = StaticText()
+               self["Statustext"] = StaticText()
                self["statuspic"] = MultiPixmap()
                self["statuspic"].hide()
                self["statuspic"] = MultiPixmap()
                self["statuspic"].hide()
-               self["BottomBG"] = Pixmap()
-               self["ButtonRed"] = Pixmap()
-               self["ButtonRedtext"] = Label(_("Close"))
                
                self.oktext = _("Press OK on your remote control to continue.")
                self.reboottext = _("Your Dreambox will restart after pressing OK on your remote control.")
                
                self.oktext = _("Press OK on your remote control to continue.")
                self.reboottext = _("Your Dreambox will restart after pressing OK on your remote control.")
@@ -1046,7 +1043,7 @@ class NetworkAdapterTest(Screen):
                self["infoshortcuts"].setEnabled(False)
                self["InfoText"].hide()
                self["InfoTextBorder"].hide()
                self["infoshortcuts"].setEnabled(False)
                self["InfoText"].hide()
                self["InfoTextBorder"].hide()
-               self["ButtonRedtext"].setText(_("Close"))
+               self["key_red"].setText(_("Close"))
 
        def delTimer(self):
                del self.steptimer
 
        def delTimer(self):
                del self.steptimer
@@ -1134,8 +1131,7 @@ class NetworkAdapterTest(Screen):
        def doStep1(self):
                self.steptimer = True
                self.nextStepTimer.start(3000)
        def doStep1(self):
                self.steptimer = True
                self.nextStepTimer.start(3000)
-               self["ButtonYellow_Check"].show()
-               self["ButtonYellowtext"].show()
+               self["key_yellow"].setText(_("Stop test"))
 
        def doStep2(self):
                self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
 
        def doStep2(self):
                self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
@@ -1185,8 +1181,8 @@ class NetworkAdapterTest(Screen):
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(True)
                self["updown_actions"].setEnabled(False)
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(True)
                self["updown_actions"].setEnabled(False)
-               self["ButtonYellow_Check"].setPixmapNum(0)
-               self["ButtonGreen_Check"].setPixmapNum(1)
+               self["key_yellow"].setText("")
+               self["key_green"].setText("")
                self.steptimer = True
                self.nextStepTimer.start(1000)
 
                self.steptimer = True
                self.nextStepTimer.start(1000)
 
@@ -1207,8 +1203,8 @@ class NetworkAdapterTest(Screen):
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(True)
                self["updown_actions"].setEnabled(False)
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(True)
                self["updown_actions"].setEnabled(False)
-               self["ButtonYellow_Check"].setPixmapNum(0)
-               self["ButtonGreen_Check"].setPixmapNum(1)
+               self["key_yellow"].setText("")
+               self["key_green"].setText("")
                self.steptimer = True
                self.nextStepTimer.start(1000)
 
                self.steptimer = True
                self.nextStepTimer.start(1000)
 
@@ -1219,27 +1215,27 @@ class NetworkAdapterTest(Screen):
                        self["InfoText"].setText(_("This test detects your configured LAN-Adapter."))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
                        self["InfoText"].setText(_("This test detects your configured LAN-Adapter."))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
-                       self["ButtonRedtext"].setText(_("Back"))
+                       self["key_red"].setText(_("Back"))
                if self.activebutton == 2: #LAN Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
                if self.activebutton == 2: #LAN Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
-                       self["ButtonRedtext"].setText(_("Back"))
+                       self["key_red"].setText(_("Back"))
                if self.activebutton == 3: #DHCP Check
                        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."))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
                if self.activebutton == 3: #DHCP Check
                        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."))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
-                       self["ButtonRedtext"].setText(_("Back"))
+                       self["key_red"].setText(_("Back"))
                if self.activebutton == 4: # IP Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
                if self.activebutton == 4: # IP Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
-                       self["ButtonRedtext"].setText(_("Back"))
+                       self["key_red"].setText(_("Back"))
                if self.activebutton == 5: # DNS Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
                if self.activebutton == 5: # DNS Check
                        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"))
                        self["InfoTextBorder"].show()
                        self["InfoText"].show()
-                       self["ButtonRedtext"].setText(_("Back"))
+                       self["key_red"].setText(_("Back"))
                if self.activebutton == 6: # Edit Settings
                        self.session.open(AdapterSetup,self.iface)
 
                if self.activebutton == 6: # Edit Settings
                        self.session.open(AdapterSetup,self.iface)
 
@@ -1248,9 +1244,8 @@ class NetworkAdapterTest(Screen):
                self["shortcutsgreen_restart"].setEnabled(True)
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(False)
                self["shortcutsgreen_restart"].setEnabled(True)
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsyellow"].setEnabled(False)
-               self["ButtonGreentext"].setText(_("Restart test"))
-               self["ButtonYellow_Check"].setPixmapNum(1)
-               self["ButtonGreen_Check"].setPixmapNum(0)
+               self["key_green"].setText(_("Restart test"))
+               self["key_yellow"].setText("")
                self.steptimer = False
                self.nextStepTimer.stop()
 
                self.steptimer = False
                self.nextStepTimer.stop()
 
@@ -1265,8 +1260,7 @@ class NetworkAdapterTest(Screen):
                self["EditSettingsButton"].hide()
                self["InfoText"].hide()
                self["InfoTextBorder"].hide()
                self["EditSettingsButton"].hide()
                self["InfoText"].hide()
                self["InfoTextBorder"].hide()
-               self["ButtonYellow_Check"].hide()
-               self["ButtonYellowtext"].hide()
+               self["key_yellow"].setText("")
 
        def setLabels(self):
                self["Adaptertext"] = MultiColorLabel(_("LAN Adapter"))
 
        def setLabels(self):
                self["Adaptertext"] = MultiColorLabel(_("LAN Adapter"))
@@ -1306,14 +1300,9 @@ class NetworkAdapterTest(Screen):
                self["EditSettings_Text"] = MultiColorLabel(_("Edit settings"))
                self["EditSettingsButton"] = MultiPixmap()
                
                self["EditSettings_Text"] = MultiColorLabel(_("Edit settings"))
                self["EditSettingsButton"] = MultiPixmap()
                
-               self["ButtonRedtext"] = Label(_("Close"))
-               self["ButtonRed"] = Pixmap()
-
-               self["ButtonGreentext"] = Label(_("Start test"))
-               self["ButtonGreen_Check"] = MultiPixmap()
-               
-               self["ButtonYellowtext"] = Label(_("Stop test"))
-               self["ButtonYellow_Check"] = MultiPixmap()
+               self["key_red"] = StaticText(_("Close"))
+               self["key_green"] = StaticText(_("Start test"))
+               self["key_yellow"] = StaticText(_("Stop test"))
                
                self["InfoTextBorder"] = Pixmap()
                self["InfoText"] = Label()
                
                self["InfoTextBorder"] = Pixmap()
                self["InfoText"] = Label()
@@ -1376,9 +1365,8 @@ class NetworkAdapterTest(Screen):
                self["EditSettingsButton"].setPixmapNum(1)
                self["EditSettings_Text"].setForegroundColorNum(2) # active
                self["EditSettingsButton"].show()
                self["EditSettingsButton"].setPixmapNum(1)
                self["EditSettings_Text"].setForegroundColorNum(2) # active
                self["EditSettingsButton"].show()
-               self["ButtonYellow_Check"].setPixmapNum(1)
-               self["ButtonGreentext"].setText(_("Restart test"))
-               self["ButtonGreen_Check"].setPixmapNum(0)
+               self["key_yellow"].setText("")
+               self["key_green"].setText(_("Restart test"))
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsgreen_restart"].setEnabled(True)
                self["shortcutsyellow"].setEnabled(False)
                self["shortcutsgreen"].setEnabled(False)
                self["shortcutsgreen_restart"].setEnabled(True)
                self["shortcutsyellow"].setEnabled(False)