WirelessLanSetup : block wireless module setup in master mode.
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / WirelessLanSetup / plugin.py
index 2f1eb90..3207bb8 100755 (executable)
@@ -74,21 +74,38 @@ class WlanSelection(Screen,HelpableScreen):
                iNetwork.msgPlugins()
                iNetwork.getInterfaces()
 
+       def checkIfaceMode(self, iface = None):
+               try:
+                       obj = Wireless(iface)
+                       if obj.getMode() == 'Master':
+                               return -1
+                       else:
+                               return 0
+               except:
+                       return -2
+
        def ok(self):
 #              print len(self["menulist"].list)
                if len(self["menulist"].list) == 0:
                        self.session.open(MessageBox, (_("Can not find any WirelessLan Module\n")),MessageBox.TYPE_ERROR,5 )
                        return
-               ifaces=self["menulist"].getCurrent()[1]
-               if ifaces == None:
-                       pass
+               iface=self["menulist"].getCurrent()[1]
+               if iface == None:
+                       return
                else:
-                       self.session.open(WlanSetup,ifaces)
+                       ret = self.checkIfaceMode(iface)
+                       if ret == -2:
+                               self.session.open(MessageBox, (_("Invalid WirelessLan Module.\n")),MessageBox.TYPE_ERROR,5 )
+                               return
+                       elif ret == -1:
+                               self.session.open(MessageBox, (_("Can not setup WirelessLan Module in 'AP Mode'\n")),MessageBox.TYPE_ERROR,5 )
+                               return
+               self.session.open(WlanSetup, iface)
 
        def getWlandevice(self):
                list = []
                for x in iNetwork.getInstalledAdapters():
-                       if x.startswith('eth'):
+                       if x.startswith('eth') or x.startswith('br') or x.startswith('mon'):
                                continue
                        description=self.getAdapterDescription(x)
                        if description == "Unknown network adapter":
@@ -314,6 +331,8 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                        <widget source="netmask" render="Label" position="300,275" zPosition="1" size="150,26" font="Regular;20" halign="center" valign="center" />     
                        <eLabel text="Gateway : " position="100,300" size="190,21" font="Regular;19" />
                        <widget source="gateway" render="Label" position="300,300" zPosition="1" size="150,26" font="Regular;20" halign="center" valign="center" />
+                       <widget name="VKeyIcon" pixmap="skin_default/buttons/key_text.png" position="460,230" zPosition="10" size="35,25" transparent="1" alphatest="on" />
+                       <widget name="HelpWindow" pixmap="skin_default/buttons/key_text.png" position="383,420" zPosition="1" size="1,1" transparent="1" alphatest="on" />
                </screen>
                """
        def __init__(self, session, iface, essidSelected = None):
@@ -331,6 +350,10 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                        "cancel": self.keyCancel,
                        "red": self.keyCancel,
                }, -2)
+               self["HelpWindow"] = Pixmap()
+               self["HelpWindow"].hide()
+               self["VKeyIcon"] = Pixmap()
+               self["VKeyIcon"].hide()
                self.iface = iface
                self.essidSelected = essidSelected
                self.ssid = None
@@ -508,6 +531,14 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
 
                self["config"].list = self.configList
                self["config"].l.setList(self.configList)
+               if not self.showTextIcon in self["config"].onSelectionChanged:
+                       self["config"].onSelectionChanged.append(self.showTextIcon)
+
+       def showTextIcon(self):
+               if isinstance(self["config"].getCurrent()[1], ConfigText) or isinstance(self["config"].getCurrent()[1], ConfigPassword):
+                       self["VKeyIcon"].show()
+               else:
+                       self["VKeyIcon"].hide()
 
        def getApList(self):
                if self.essidSelected is None: