1 # -*- coding: UTF-8 -*-
6 from Components.ActionMap import ActionMap
7 from Components.Label import Label
8 from Components.Language import language
9 from Components.MenuList import MenuList
10 from enigma import eServiceCenter
11 from os import environ
12 from Plugins.Plugin import PluginDescriptor
13 from Screens.Screen import Screen
14 from Tools.Directories import resolveFilename, SCOPE_LANGUAGE, SCOPE_PLUGINS
17 ################################################
19 lang = language.getLanguage()
20 environ["LANGUAGE"] = lang[:2]
\r
21 gettext.bindtextdomain("enigma2", resolveFilename(SCOPE_LANGUAGE))
\r
22 gettext.textdomain("enigma2")
23 gettext.bindtextdomain("ZapHistoryBrowser", "%s%s" % (resolveFilename(SCOPE_PLUGINS), "Extensions/ZapHistoryBrowser/locale/"))
26 t = gettext.dgettext("ZapHistoryBrowser", txt)
\r
28 t = gettext.gettext(txt)
\r
31 ############################################
33 class TitleScreen(Screen):
34 def __init__(self, session, parent=None):
\r
35 Screen.__init__(self, session, parent)
\r
36 self.onLayoutFinish.append(self.setScreenTitle)
\r
38 def setScreenTitle(self):
\r
39 self.setTitle(_("Zap-History Browser"))
41 ################################################
43 class ZapHistoryBrowser(TitleScreen):
45 <screen position="200,80" size="320,440" title="Zap-History Browser" >
46 <ePixmap pixmap="skin_default/buttons/red.png" position="10,0" size="140,40" transparent="1" alphatest="on" />
47 <ePixmap pixmap="skin_default/buttons/green.png" position="170,0" size="140,40" transparent="1" alphatest="on" />
48 <widget name="key_red" position="10,0" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1" />
49 <widget name="key_green" position="170,0" zPosition="1" size="140,40" font="Regular;20" valign="center" halign="center" backgroundColor="#1f771f" transparent="1" />
50 <widget name="list" position="0,40" size="320,400" scrollbarMode="showOnDemand" />
53 def __init__(self, session, servicelist):
54 TitleScreen.__init__(self, session)
55 self.session = session
57 self.servicelist = servicelist
58 self.serviceHandler = eServiceCenter.getInstance()
60 self["list"] = MenuList([])
61 self["key_red"] = Label(_("Clear"))
62 self["key_green"] = Label(_("Delete"))
64 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
72 self.onLayoutFinish.append(self.buildList)
76 for x in self.servicelist.history:
77 if len(x) == 2: # Single-Bouquet
81 info = self.serviceHandler.info(ref)
82 name = info.getName(ref).replace('\xc2\x86', '').replace('\xc2\x87', '')
85 self["list"].setList(list)
88 length = len(self.servicelist.history)
90 self.servicelist.history_pos = (length - self["list"].getSelectionIndex()) - 1
91 self.servicelist.setHistoryPath()
94 for i in range(0, len(self.servicelist.history)):
95 del self.servicelist.history[0]
97 self.servicelist.history_pos = 0
100 length = len(self.servicelist.history)
102 idx = (length - self["list"].getSelectionIndex()) - 1
103 del self.servicelist.history[idx]
106 # We must check if the current service is still in the zap-history
107 currRef = self.session.nav.getCurrentlyPlayingServiceReference()
109 for x in self.servicelist.history:
110 if len(x) == 2: # Single-Bouquet
112 else: # Multi-Bouquet
116 self.servicelist.history_pos = idx
121 ################################################
123 def main(session, servicelist, **kwargs):
124 session.open(ZapHistoryBrowser, servicelist)
126 def Plugins(**kwargs):
127 return PluginDescriptor(name=_("Zap-History Browser"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)