WirelessLanSetup : use 'python-wifi module' for scan APs..
[vuplus_dvbapp] / lib / python / Plugins / Extensions / WebBrowser / plugin.py
index 69e3d5c..6d9e8ea 100644 (file)
@@ -16,9 +16,15 @@ from urllib import quote, unquote_plus, unquote
 from urllib2 import Request, URLError, urlopen as urlopen2
 from httplib import HTTPConnection, CannotSendRequest, BadStatusLine, HTTPException
 
+from Screens.Screen import Screen
+from Screens.ChoiceBox import ChoiceBox
+from Screens.MessageBox import MessageBox
+from Screens.DefaultWizard import DefaultWizard
+from Screens.InfoBarGenerics import InfoBarNotifications
+
 from Components.Button import Button
 from Components.Label import Label
-from Components.Pixmap import Pixmap
+from Components.Pixmap import Pixmap, MovingPixmap
 from Components.Language import language
 from Components.Sources.List import List
 from Components.ConfigList import ConfigListScreen
@@ -27,13 +33,10 @@ from Components.ActionMap import NumberActionMap, ActionMap
 from Components.ServiceEventTracker import ServiceEventTracker
 from Components.config import config, ConfigSelection, getConfigListEntry, ConfigSlider
 
-from Screens.Screen import Screen
-from Screens.ChoiceBox import ChoiceBox
-from Screens.MessageBox import MessageBox
-from Screens.DefaultWizard import DefaultWizard
-from Screens.InfoBarGenerics import InfoBarNotifications
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS
+from Tools.LoadPixmap import LoadPixmap
 
-from enigma import eTimer, eServiceReference, iPlayableService, fbClass, eRCInput, eConsoleAppContainer
+from enigma import eTimer, eServiceReference, iPlayableService, fbClass, eRCInput, eConsoleAppContainer, getDesktop, ePicLoad
 
 HTTPConnection.debuglevel = 1
 
@@ -88,10 +91,14 @@ def wb_islock():
        return lock
 
 class VuPlayer(Screen, InfoBarNotifications):
+       size = getDesktop(0).size()
+       wb_bgr = resolveFilename(SCOPE_PLUGINS, "Extensions/WebBrowser/mp_wb_background.png")
+       wb_btn = resolveFilename(SCOPE_PLUGINS, "Extensions/WebBrowser/mp_wb_buttons.png")
+       position_params = size.width() > 750 and (620, wb_bgr, wb_btn) or (480, wb_bgr, wb_btn)
        skin =  """
-               <screen name="VuPlayer" flags="wfNoBorder" position="center,620" size="455,53" title="VuPlayer" backgroundColor="transparent">
-                       <ePixmap pixmap="Vu_HD/mp_wb_background.png" position="0,0" zPosition="-1" size="455,53" />
-                       <ePixmap pixmap="Vu_HD/icons/mp_wb_buttons.png" position="40,23" size="30,13" alphatest="on" />
+               <screen name="VuPlayer" flags="wfNoBorder" position="center,%d" size="455,53" title="VuPlayer" backgroundColor="transparent">
+                       <ePixmap pixmap="%s" position="0,0" zPosition="-1" size="455,53" />
+                       <ePixmap pixmap="%s" position="40,23" size="30,13" alphatest="on" />
 
                        <widget source="session.CurrentService" render="PositionGauge" position="80,25" size="220,10" zPosition="2" pointer="skin_default/position_pointer.png:540,0" transparent="1" foregroundColor="#20224f">
                                <convert type="ServicePosition">Gauge</convert>
@@ -105,7 +112,8 @@ class VuPlayer(Screen, InfoBarNotifications):
                                <convert type="ServicePosition">Length</convert>
                        </widget>
                </screen>
-               """
+               """ % position_params
+
        PLAYER_IDLE     = 0
        PLAYER_PLAYING  = 1
        PLAYER_PAUSED   = 2
@@ -366,7 +374,7 @@ class VuPlayerService:
                        if len(tmp) == 2 and tmp[0] == "http://www.youtube.com/watch":
                                tmp = tmp[1].split("&")
                                print tmp # ['v=BpThu778qB4', 'feature=related']
-                               if len(tmp) == 2:
+                               if len(tmp) > 2:
                                        tmp = tmp[0].split("=")
                                        print tmp # ['v', 'BpThu778qB4']
                                        if len(tmp) == 2 and tmp[0] == "v":
@@ -405,28 +413,32 @@ class VuPlayerService:
 
 class BrowserLauncher(ConfigListScreen, Screen):
        skin=   """
-               <screen name="BrowserLauncher" position="center,center" size="309,498" title="Web Browser">
-                       <ePixmap pixmap="Vu_HD/buttons/red.png" position="4,0" size="40,40" alphatest="on" />
-                       <ePixmap pixmap="Vu_HD/buttons/green.png" position="154,0" size="40,40" alphatest="on" />
+               <screen position="center,center" size="623,300" title="Web Browser">
+                       <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" alphatest="on" />
+                       <ePixmap pixmap="skin_default/buttons/green.png" position="158,0" size="140,40" alphatest="on" />
 
-                       <widget source="key_red" render="Label" position="30,0" zPosition="1" size="125,30" font="Regular;20" halign="center" valign="center" transparent="1" />
-                       <widget source="key_green" render="Label" position="180,0" zPosition="1" size="125,30" font="Regular;20" halign="center" valign="center" transparent="1" />
+                       <widget source="key_red" render="Label" position="10,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
+                       <widget source="key_green" render="Label" position="158,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
 
                        <widget name="config" position="0,50" size="309,100" scrollbarMode="showOnDemand" />
-                       <ePixmap pixmap="Vu_HD/rc_wb_desc.png" position="0,150" size="309,296" alphatest="on" />
-                       <widget name="info" position="0,455" size="309,50" font="Regular;18" halign="center" foregroundColor="blue" transparent="1" />
+                       <ePixmap pixmap="rc_wb_desc.png" position="312,5" size="309,296" alphatest="on" />
+                       <widget name="info" position="0,180" size="309,50" font="Regular;18" halign="center" foregroundColor="#a08500" transparent="1" />
                </screen>
                """
 
        def __init__(self, session): 
                Screen.__init__(self, session)
+               
+
                 self.session = session
                self.list = []
                ConfigListScreen.__init__(self, self.list)
 
                self.browser_root = "/usr/bin"
                self.browser_name = "arora"
-               self.conf_file = "/usr/lib/enigma2/python/Plugins/Extensions/WebBrowser/settings.conf"
+
+               from Tools.Directories import resolveFilename, SCOPE_PLUGINS
+               self.conf_file = resolveFilename(SCOPE_PLUGINS, "Extensions/WebBrowser/settings.conf")
                self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ],
                 {      "red": self.keyCancel,
                        "green": self.keyGo,
@@ -549,30 +561,29 @@ class BrowserLauncher(ConfigListScreen, Screen):
                        self.conf_mouse = self.mouse_list[0][0]
                self.mouse = ConfigSelection(default = self.conf_mouse, choices = self.mouse_list)
                self.list.append(getConfigListEntry(_('Mouse'), self.mouse))            
-
+               
                if self.conf_keyboard == "" or self.getHandlerName(self.conf_keyboard) is None:
                        self.conf_keyboard = self.keyboard_list[0][0]
                self.keyboard = ConfigSelection(default = self.conf_keyboard, choices = self.keyboard_list)
                self.list.append(getConfigListEntry(_('Keyboard'), self.keyboard))
 
-               if self.conf_alpha == "":
-                       self.conf_alpha = "255"
-               self.alpha = ConfigSlider(default = int(self.conf_alpha), increment = 10, limits = (0, 255))
-               self.list.append(getConfigListEntry(_("Alpha Value"), self.alpha))
-
                if self.conf_keymap == "":
                        self.conf_keymap = self.getLanguage()
-               self.lang_list = [("en", "English"), ("de", "German")]
+               self.lang_list = [("rc_en", "English(RC)"), ("rc_ch", "German(RC)"), ("en", "English"), ("ch", "German")]
                self.langs = ConfigSelection(default = self.conf_keymap, choices = self.lang_list)
-               self.list.append(getConfigListEntry(_("Language"), self.langs))
+               self.list.append(getConfigListEntry(_("    - Type"), self.langs))
 
+               if self.conf_alpha == "":
+                       self.conf_alpha = "255"
+               self.alpha = ConfigSlider(default = int(self.conf_alpha), increment = 10, limits = (0, 255))
+               self.list.append(getConfigListEntry(_("Alpha Value"), self.alpha))
                self["config"].list = self.list
                self["config"].l.setList(self.list)
 
        def getLanguage(self, lang=language.getLanguage()):
                if self.current_lang_idx == 1:
-                       return "de"
-               return "en"
+                       return "rc_ch"
+               return "rc_en"
 
        def makeHandlerList(self, data):
                n = ""
@@ -599,26 +610,28 @@ class BrowserLauncher(ConfigListScreen, Screen):
                                                event_list.append((h, _(h)))
                                                self.name_list.append((h, n))
                                                if n[1:].startswith("dream") and self.rc_mouse is None:
-                                                       self.rc_mouse = copy.deepcopy(h)
-                                                       self.rc_keyboard = copy.deepcopy(h)
-                                                       print "detected!! rc"
+                                                       for thl in h.split(" "):
+                                                               if thl.startswith("event"):
+                                                                       self.rc_mouse = copy.deepcopy(h)
+                                                                       self.rc_keyboard = copy.deepcopy(h)
+                                                                       print "detected!! rc:", h
                                                        continue
                                                if h.startswith("mouse") and self.usb_mouse is None:
                                                        self.usb_mouse = copy.deepcopy(h)
-                                                       print "detected!! usb mouse"
+                                                       print "detected!! usb mouse:",h
                                                        continue
                                                if tn == -1 and self.usb_keyboard is None:
                                                        self.usb_keyboard = copy.deepcopy(h)
-                                                       print "detected!! usb keyboard"
+                                                       print "detected!! usb keyboard:",h
                                elif line[0] == 'B' and line[3:].startswith("ABS") and p.startswith("usb-"):
                                        for h in h_list:
                                                if self.usb_mouse is not None:
                                                        break
                                                if self.usb_keyboard is not None and h == self.usb_keyboard[0]:
                                                        self.usb_keyboard = None
-                                                       print "clean!! usb keyboard"
+                                                       print "clean!! usb keyboard:",h
                                                self.usb_mouse = copy.deepcopy(h)
-                                               print "detected!! usb mouse"
+                                               print "detected!! usb mouse:",h
 
                tmp = copy.deepcopy(event_list)
                if self.usb_mouse is not None:
@@ -666,8 +679,13 @@ class BrowserLauncher(ConfigListScreen, Screen):
                        mouse_cmd = "export QWS_MOUSE_PROTO=LinuxInput:/dev/input/%s; " % (str(mouse_param))
 
                keymap_param = ""
-               if self.langs.value == "de":
+               if self.langs.value == "ch":
+                       keymap_param = ":keymap=/usr/share/keymaps/vuplus/ch.qmap"
+               elif self.langs.value == "rc_ch":
                        keymap_param = ":keymap=/usr/share/keymaps/vuplus/de.qmap"
+               elif self.langs.value == "rc_en":
+                       keymap_param = ":keymap=/usr/share/keymaps/vuplus/us.qmap"
+
                kbd_cmd = "export QWS_KEYBOARD=LinuxInput:/dev/input/%s%s; " % (str(keyboard_param), keymap_param)
 
                cmd = "%s%s%s%s" % (extra_cmd, kbd_cmd, mouse_cmd, browser_cmd)
@@ -691,7 +709,7 @@ class BrowserLauncher(ConfigListScreen, Screen):
                self.saveConfig()
                self.info.setText("Starting Webbrowser. Please wait...")
                if self.lock == False:
-                       if self.langs.value == "de":
+                       if self.langs.value == "ch" or self.langs.value == "rc_ch":
                                language.activateLanguageIndex(1)
                        else:
                                language.activateLanguageIndex(0)