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.Sources.StaticText import StaticText
17 from Components.config import config, getConfigListEntry
19 from EPGRefresh import epgrefresh
21 class EPGRefreshConfiguration(Screen, ConfigListScreen):
22 """Configuration of EPGRefresh"""
24 skin = """<screen name="EPGRefreshConfiguration" title="Configure EPGRefresh" position="75,155" size="565,280">
25 <widget name="config" position="5,5" size="555,225" scrollbarMode="showOnDemand" />
26 <ePixmap position="0,235" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
27 <ePixmap position="140,235" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
28 <ePixmap position="280,235" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
29 <ePixmap position="420,235" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" />
30 <widget source="key_red" render="Label" position="0,235" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
31 <widget source="key_green" render="Label" position="140,235" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
32 <widget source="key_yellow" render="Label" position="280,235" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
33 <widget source="key_blue" render="Label" position="420,235" zPosition="1" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
36 def __init__(self, session):
37 Screen.__init__(self, session)
40 self.setup_title = _("EPGRefresh Configuration")
41 self.onChangedEntry = []
43 # Although EPGRefresh keeps services in a Set we prefer a list
45 [x for x in epgrefresh.services[0]],
46 [x for x in epgrefresh.services[1]]
50 getConfigListEntry(_("Refresh automatically"), config.plugins.epgrefresh.enabled),
51 getConfigListEntry(_("Wakeup from Deep-Standby to refresh EPG"), config.plugins.epgrefresh.wakeup),
52 getConfigListEntry(_("Time to stay on service (in m)"), config.plugins.epgrefresh.interval),
53 getConfigListEntry(_("Refresh EPG after"), config.plugins.epgrefresh.begin),
54 getConfigListEntry(_("Refresh EPG before"), config.plugins.epgrefresh.end),
55 getConfigListEntry(_("Delay when not in Standby (in m)"), config.plugins.epgrefresh.delay_standby),
56 getConfigListEntry(_("Force scan even if receiver is in use"), config.plugins.epgrefresh.force),
57 getConfigListEntry(_("Inherit Services from AutoTimer if available"), config.plugins.epgrefresh.inherit_autotimer),
58 getConfigListEntry(_("Make AutoTimer parse EPG if available"), config.plugins.epgrefresh.parse_autotimer),
59 getConfigListEntry(_("Shutdown after refresh"), config.plugins.epgrefresh.afterevent),
62 ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changed)
65 self["key_red"] = StaticText(_("Cancel"))
66 self["key_green"] = StaticText(_("OK"))
67 self["key_yellow"] = StaticText(_("Refresh now"))
68 self["key_blue"] = StaticText(_("Edit Services"))
71 self["actions"] = ActionMap(["SetupActions", "ColorActions"],
73 "cancel": self.keyCancel,
75 "yellow": self.forceRefresh,
76 "blue": self.editServices
83 self.onLayoutFinish.append(self.setCustomTitle)
85 def setCustomTitle(self):
86 self.setTitle(_("Configure EPGRefresh"))
88 def forceRefresh(self):
89 epgrefresh.services = (set(self.services[0]), set(self.services[1]))
90 epgrefresh.forceRefresh(self.session)
92 def editServices(self):
93 self.session.openWithCallback(
94 self.editServicesCallback,
95 EPGRefreshServiceEditor,
99 def editServicesCallback(self, ret):
104 for x in self.onChangedEntry:
110 def getCurrentEntry(self):
111 return self["config"].getCurrent()[0]
113 def getCurrentValue(self):
114 return str(self["config"].getCurrent()[1].getText())
116 def createSummary(self):
119 def cancelConfirm(self, result):
123 for x in self["config"].list:
126 self.close(self.session)
129 if self["config"].isChanged():
130 from Screens.MessageBox import MessageBox
132 self.session.openWithCallback(
135 _("Really close without saving settings?")
138 self.close(self.session)
141 epgrefresh.services = (set(self.services[0]), set(self.services[1]))
142 epgrefresh.saveConfiguration()
144 for x in self["config"].list:
147 self.close(self.session)