networksetup update, add missing .cvsignores
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 21 Jul 2008 11:41:49 +0000 (11:41 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 21 Jul 2008 11:41:49 +0000 (11:41 +0000)
data/skin_default.xml
data/skin_default/.cvsignore [new file with mode: 0644]
lib/mmi/.cvsignore [new file with mode: 0644]
lib/python/Components/Network.py
lib/python/Plugins/SystemPlugins/DefaultServicesScanner/.cvsignore [new file with mode: 0644]
lib/python/Screens/NetworkSetup.py

index 8f32d1a..4061360 100644 (file)
        </screen>
        <!-- Adapter setup -->
        <screen name="AdapterSetup" position="90,100" size="550,400" title="Network Setup" >
-               <widget name="config" position="10,10" size="530,130" scrollbarMode="showOnDemand" />
+               <widget name="config" position="10,10" size="530,125" scrollbarMode="showOnDemand" />
                <ePixmap pixmap="skin_default/div-h.png" position="0,140" zPosition="1" size="550,2" />
                <widget name="DNS1text" position="10,145" size="190,21" zPosition="1" font="Regular;19" />
                <widget name="DNS2text" position="10,175" size="190,21" zPosition="1" font="Regular;19" />
-               <widget name="DNS1" position="430,145" size="120,21" zPosition="1" font="Regular;17" />
-               <widget name="DNS2" position="430,175" size="120,21" zPosition="1" font="Regular;17" />
+               <widget name="DNS1" position="420,145" size="130,21" zPosition="1" font="Regular;17" />
+               <widget name="DNS2" position="420,175" size="130,21" zPosition="1" font="Regular;17" />
                <ePixmap pixmap="skin_default/div-h.png" position="0,200" zPosition="1" size="550,2" />         
                <widget name="introduction" position="10,205" size="440,20" font="Regular;19" halign="center" />
 
@@ -543,8 +543,14 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
                <widget name="introduction" position="140,360" size="300,20" zPosition="10" font="Regular;21" halign="center" transparent="1" />
        </screen>
        <!-- Network adapter selection -->
-       <screen name="NetworkAdapterSelection" position="130,140" size="460,330" title="Select Network Adapter">
-               <widget name="adapterlist" position="10,10" size="440,310" />
+       <screen name="NetworkAdapterSelection" position="70,100" size="550,400" title="Select Network Adapter">
+               <widget name="list" position="10,10" size="530,250" scrollbarMode="showOnDemand" zPosition="10"/>    
+               <ePixmap pixmap="skin_default/bottombar.png" position="5,310" size="540,120" zPosition="1" transparent="1" alphatest="on" />
+               <widget name="ButtonRedtext" position="430,325" size="120,21" zPosition="10" font="Regular;21" transparent="1" />
+               <ePixmap pixmap="skin_default/buttons/button_red.png" position="410,325" zPosition="10" size="15,16" transparent="1" alphatest="on" />
+               <widget name="ButtonBluetext" position="60,325" size="300,21" zPosition="10" font="Regular;21" transparent="1" />
+               <ePixmap pixmap="skin_default/buttons/button_blue.png" position="30,325" zPosition="10" size="15,16" transparent="1" alphatest="on" />
+               <widget name="introduction" position="140,360" size="300,21" zPosition="10" font="Regular;21" halign="center" transparent="1" />
        </screen>
        <!-- Network adapter test Black = "#000000" Grey = "#8c8c93" Green = "#1cff1c" Red = #f23d21-->
        <screen name="NetworkAdapterTest" position="70,100" size="570,400" title="Network test..." >
diff --git a/data/skin_default/.cvsignore b/data/skin_default/.cvsignore
new file mode 100644 (file)
index 0000000..282522d
--- /dev/null
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/lib/mmi/.cvsignore b/lib/mmi/.cvsignore
new file mode 100644 (file)
index 0000000..e995588
--- /dev/null
@@ -0,0 +1,3 @@
+.deps
+Makefile
+Makefile.in
index d94fa30..b5b8e20 100644 (file)
@@ -109,19 +109,19 @@ class Network:
                for ifacename, iface in self.ifaces.items():
                        if iface['up'] == True:
                                fp.write("auto " + ifacename + "\n")
-                               if iface['dhcp'] == True:
-                                       fp.write("iface "+ ifacename +" inet dhcp\n")
-                               if iface['dhcp'] == False:
-                                       fp.write("iface "+ ifacename +" inet static\n")
-                                       if iface.has_key('ip'):
-                                               print tuple(iface['ip'])
-                                               fp.write("      address %d.%d.%d.%d\n" % tuple(iface['ip']))
-                                               fp.write("      netmask %d.%d.%d.%d\n" % tuple(iface['netmask']))
-                                               if iface.has_key('gateway'):
-                                                       fp.write("      gateway %d.%d.%d.%d\n" % tuple(iface['gateway']))
-                               if iface.has_key("configStrings"):
-                                       fp.write("\n" + iface["configStrings"] + "\n")
-                               fp.write("\n")                          
+                       if iface['dhcp'] == True:
+                               fp.write("iface "+ ifacename +" inet dhcp\n")
+                       if iface['dhcp'] == False:
+                               fp.write("iface "+ ifacename +" inet static\n")
+                               if iface.has_key('ip'):
+                                       print tuple(iface['ip'])
+                                       fp.write("      address %d.%d.%d.%d\n" % tuple(iface['ip']))
+                                       fp.write("      netmask %d.%d.%d.%d\n" % tuple(iface['netmask']))
+                                       if iface.has_key('gateway'):
+                                               fp.write("      gateway %d.%d.%d.%d\n" % tuple(iface['gateway']))
+                       if iface.has_key("configStrings"):
+                               fp.write("\n" + iface["configStrings"] + "\n")
+                       fp.write("\n")                          
                fp.close()
                self.writeNameserverConfig()
 
diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/.cvsignore b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/.cvsignore
new file mode 100644 (file)
index 0000000..138b9cc
--- /dev/null
@@ -0,0 +1,4 @@
+*.pyc
+*.pyo
+Makefile
+Makefile.in
index be2a763..8cc473f 100644 (file)
@@ -2,45 +2,121 @@ from Screen import Screen
 from Components.ActionMap import ActionMap,NumberActionMap
 from Screens.MessageBox import MessageBox
 from Screens.Standby import *
-from Components.ConfigList import ConfigListScreen
-from Components.config import config, getConfigListEntry
 from Components.Network import iNetwork
-from Tools.Directories import resolveFilename
 from Components.Label import Label,MultiColorLabel
 from Components.Pixmap import Pixmap,MultiPixmap
 from Components.MenuList import MenuList
 from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigText, ConfigSelection, getConfigListEntry
+from Components.ConfigList import ConfigListScreen
 from Components.PluginComponent import plugins
+from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
 from Plugins.Plugin import PluginDescriptor
 from enigma import eTimer
-from os import path as os_path
+from os import path as os_path, system as os_system
 from re import compile as re_compile, search as re_search
 from Tools.Directories import resolveFilename, SCOPE_PLUGINS
 
+from Tools.Directories import SCOPE_SKIN_IMAGE,SCOPE_PLUGINS, resolveFilename
+from Tools.LoadPixmap import LoadPixmap
+from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, gFont
+
+class InterfaceList(MenuList):
+       def __init__(self, list, enableWrapAround=False):
+               MenuList.__init__(self, list, enableWrapAround, eListboxPythonMultiContent)
+               self.l.setFont(0, gFont("Regular", 20))
+               self.l.setItemHeight(30)
+
+def InterfaceEntryComponent(index,name,default,active ):
+       res = [ (index) ]
+       res.append(MultiContentEntryText(pos=(80, 5), size=(430, 25), font=0, text=name))
+       if default is True:
+               png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/buttons/button_blue.png"))
+       if default is False:
+               png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/buttons/button_blue_off.png"))
+       res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 5), size=(25, 25), png = png))
+       if active is True:
+               png2 = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_on.png"))
+       if active is False:
+               png2 = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_error.png"))
+       res.append(MultiContentEntryPixmapAlphaTest(pos=(40, 1), size=(25, 25), png = png2))
+       return res
+
+
 class NetworkAdapterSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
                iNetwork.getInterfaces()
                self.wlan_errortext = _("No working wireless networkadapter found.\nPlease verify that you have attached a compatible WLAN USB Stick and your Network is configured correctly.")
                self.lan_errortext = _("No working local networkadapter found.\nPlease verify that you have attached a network cable and your Network is configured correctly.")
+               
+               self["ButtonBluetext"] = Label(_("Set as default Interface"))
+               self["ButtonRedtext"] = Label(_("Close"))
+               self["introduction"] = Label(_("Press OK to edit the settings."))
+               
                self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
+
                if len(self.adapters) == 0:
                        self.onFirstExecBegin.append(self.NetworkFallback)
-                       
-               self["adapterlist"] = MenuList(self.adapters)
-               self["actions"] = ActionMap(["OkCancelActions"],
+
+               self.list = []
+               self["list"] = InterfaceList(self.list)
+               self.updateList()
+               self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
                {
                        "ok": self.okbuttonClick,
-                       "cancel": self.close
-               })
+                       "cancel": self.close,
+                       "blue": self.setDefaultInterface,                       
+                       "red": self.close
+               }, -2)
 
                if len(self.adapters) == 1:
                        self.onFirstExecBegin.append(self.okbuttonClick)
 
+       def updateList(self):
+               print "update list"
+               self.list = []
+               default_gw = None
+               if os_path.exists("/etc/default_gw"):
+                       fp = file('/etc/default_gw', 'r')
+                       result = fp.read()
+                       fp.close()
+                       default_gw = result
+
+               if len(self.adapters) == 0: # no interface available => display only eth0
+                       self.list.append(InterfaceEntryComponent("eth0",iNetwork.getFriendlyAdapterName('eth0'),True,True ))
+               else:
+                       for x in self.adapters:
+                               if x[1] == default_gw:
+                                       default_int = True
+                               else:
+                                       default_int = False
+                               if iNetwork.getAdapterAttribute(x[1], 'up') is True:
+                                       active_int = True
+                               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):
+               selection = self["list"].getCurrent()
+               backupdefault_gw = None
+               if os_path.exists("/etc/default_gw"):
+                       fp = file('/etc/default_gw', 'r')
+                       backupdefault_gw  = fp.read()
+                       fp.close()
+               if selection[0] != backupdefault_gw:
+                       os_system("rm -rf /etc/default_gw")
+                       fp = file('/etc/default_gw', 'w')       
+                       fp.write(selection[0])                          
+                       fp.close()
+                       iNetwork.restartNetwork()
+               self.updateList()
+                       
        def okbuttonClick(self):
-               selection = self["adapterlist"].getCurrent()
+               selection = self["list"].getCurrent()
+               print "selection",selection
                if selection is not None:
-                       self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[1])
+                       self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[0])
 
        def AdapterSetupClosed(self, *ret):
                if len(self.adapters) == 1:
@@ -310,7 +386,6 @@ class AdapterSetup(Screen, ConfigListScreen):
                                iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
                        else:
                                iNetwork.removeAdapterAttribute(self.iface, "gateway")
-                               
                        if self.extended is not None and self.configStrings is not None:
                                iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
                                self.ws.writeConfig()