1 # for localized messages
5 from Screens.Screen import Screen
6 from Components.ConfigList import ConfigListScreen
7 from EPGRefreshChannelEditor import EPGRefreshServiceEditor
10 from Screens.Setup import SetupSummary
13 from Components.ActionMap import ActionMap
14 from Components.Button import Button
17 from Components.config import config, getConfigListEntry
19 from EPGRefresh import epgrefresh
23 class EPGRefreshConfiguration(Screen, ConfigListScreen):
24 """Configuration of EPGRefresh"""
26 skin = """<screen name="EPGRefreshConfiguration" title="Configure EPGRefresh" position="75,155" size="565,280">
27 <widget name="config" position="5,5" size="555,225" scrollbarMode="showOnDemand" />
28 <ePixmap position="0,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
29 <ePixmap position="140,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
30 <ePixmap position="280,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
31 <ePixmap position="420,235" zPosition="4" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" />
32 <widget name="key_red" position="0,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
33 <widget name="key_green" position="140,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
34 <widget name="key_yellow" position="280,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
35 <widget name="key_blue" position="420,235" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
38 def __init__(self, session):
39 Screen.__init__(self, session)
42 self.setup_title = _("EPGRefresh Configuration")
43 self.onChangedEntry = []
45 # Although EPGRefresh keeps services in a Set we prefer a list
47 [x for x in epgrefresh.services[0]],
48 [x for x in epgrefresh.services[1]]
52 getConfigListEntry(_("Refresh automatically"), config.plugins.epgrefresh.enabled),
53 getConfigListEntry(_("Wakeup from Deep-Standby to refresh EPG"), config.plugins.epgrefresh.wakeup),
54 getConfigListEntry(_("Time to stay on service (in m)"), config.plugins.epgrefresh.interval),
55 getConfigListEntry(_("Refresh EPG after"), config.plugins.epgrefresh.begin),
56 getConfigListEntry(_("Refresh EPG before"), config.plugins.epgrefresh.end),
57 getConfigListEntry(_("Delay when not in Standby (in m)"), config.plugins.epgrefresh.delay_standby),
58 getConfigListEntry(_("Force scan even if reciever is in use"), config.plugins.epgrefresh.force),
59 getConfigListEntry(_("Inherit Services from AutoTimer if available"), config.plugins.epgrefresh.inherit_autotimer),
60 getConfigListEntry(_("Shutdown after refresh"), config.plugins.epgrefresh.afterevent),
63 ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changed)
66 self["key_red"] = Button(_("Cancel"))
67 self["key_green"] = Button(_("OK"))
68 self["key_yellow"] = Button(_("Refresh now"))
69 self["key_blue"] = Button(_("Edit Services"))
72 self["actions"] = ActionMap(["SetupActions", "ColorActions"],
74 "cancel": self.keyCancel,
76 "yellow": self.forceRefresh,
77 "blue": self.editServices
84 self.onLayoutFinish.append(self.setCustomTitle)
86 def setCustomTitle(self):
87 self.setTitle(_("Configure EPGRefresh"))
89 def forceRefresh(self):
90 epgrefresh.services = (Set(self.services[0]), Set(self.services[1]))
91 epgrefresh.forceRefresh(self.session)
93 def editServices(self):
94 self.session.openWithCallback(
95 self.editServicesCallback,
96 EPGRefreshServiceEditor,
100 def editServicesCallback(self, ret):
105 for x in self.onChangedEntry:
111 def getCurrentEntry(self):
112 return self["config"].getCurrent()[0]
114 def getCurrentValue(self):
115 return str(self["config"].getCurrent()[1].getText())
117 def createSummary(self):
120 def cancelConfirm(self, result):
124 for x in self["config"].list:
127 self.close(self.session)
130 if self["config"].isChanged():
131 from Screens.MessageBox import MessageBox
133 self.session.openWithCallback(
136 _("Really close without saving settings?")
139 self.close(self.session)
142 epgrefresh.services = (Set(self.services[0]), Set(self.services[1]))
143 epgrefresh.saveConfiguration()
145 for x in self["config"].list:
148 self.close(self.session)