2 from Screens.Screen import Screen
3 from Components.ConfigList import ConfigListScreen
4 from EPGRefreshChannelEditor import EPGRefreshServiceEditor
7 from Screens.Setup import SetupSummary
10 from Components.ActionMap import ActionMap
11 from Components.Button import Button
14 from Components.config import config, getConfigListEntry
16 from EPGRefresh import epgrefresh
20 class EPGRefreshConfiguration(Screen, ConfigListScreen):
21 """Configuration of EPGRefresh"""
23 skin = """<screen name="EPGRefreshConfiguration" title="Configure EPGRefresh" position="75,155" size="565,280">
24 <widget name="config" position="5,5" size="555,225" scrollbarMode="showOnDemand" />
25 <ePixmap position="0,235" zPosition="4" size="140,40" pixmap="skin_default/key-red.png" transparent="1" alphatest="on" />
26 <ePixmap position="140,235" zPosition="4" size="140,40" pixmap="skin_default/key-green.png" transparent="1" alphatest="on" />
27 <ePixmap position="280,235" zPosition="4" size="140,40" pixmap="skin_default/key-yellow.png" transparent="1" alphatest="on" />
28 <ePixmap position="420,235" zPosition="4" size="140,40" pixmap="skin_default/key-blue.png" transparent="1" alphatest="on" />
29 <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" />
30 <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" />
31 <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" />
32 <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" />
35 def __init__(self, session):
36 Screen.__init__(self, session)
39 self.setup_title = "EPGRefresh Configuration"
40 self.onChangedEntry = []
42 # Although EPGRefresh keeps services in a Set we prefer a list
44 [x for x in epgrefresh.services[0]],
45 [x for x in epgrefresh.services[1]]
49 getConfigListEntry(_("Refresh automatically"), config.plugins.epgrefresh.enabled),
50 getConfigListEntry(_("Time to stay on service (in m)"), config.plugins.epgrefresh.interval),
51 getConfigListEntry(_("Refresh EPG after"), config.plugins.epgrefresh.begin),
52 getConfigListEntry(_("Refresh EPG before"), config.plugins.epgrefresh.end),
53 getConfigListEntry(_("Delay when not in Standby (in m)"), config.plugins.epgrefresh.delay_standby),
54 getConfigListEntry(_("Force scan even if not in Standby or Recording"), config.plugins.epgrefresh.force),
55 getConfigListEntry(_("Inherit Services from AutoTimer if available"), config.plugins.epgrefresh.inherit_autotimer),
56 getConfigListEntry(_("Shutdown after refresh"), config.plugins.epgrefresh.afterevent),
59 ConfigListScreen.__init__(self, self.list, session = session, on_change = self.changed)
62 self["key_red"] = Button(_("Cancel"))
63 self["key_green"] = Button(_("OK"))
64 self["key_yellow"] = Button(_("Refresh now"))
65 self["key_blue"] = Button(_("Edit Services"))
68 self["actions"] = ActionMap(["SetupActions", "ColorActions"],
70 "cancel": self.keyCancel,
72 "yellow": self.forceRefresh,
73 "blue": self.editServices
80 def forceRefresh(self):
81 epgrefresh.services = (Set(self.services[0]), Set(self.services[1]))
82 epgrefresh.forceRefresh(self.session)
84 def editServices(self):
85 self.session.openWithCallback(
86 self.editServicesCallback,
87 EPGRefreshServiceEditor,
91 def editServicesCallback(self, ret):
96 for x in self.onChangedEntry:
102 def getCurrentEntry(self):
103 return self["config"].getCurrent()[0]
105 def getCurrentValue(self):
106 return str(self["config"].getCurrent()[1].getText())
108 def createSummary(self):
111 def cancelConfirm(self, result):
115 for x in self["config"].list:
118 self.close(self.session)
121 if self["config"].isChanged():
122 self.session.openWithCallback(
125 _("Really close without saving settings?")
128 self.close(self.session)
131 epgrefresh.services = (Set(self.services[0]), Set(self.services[1]))
133 epgrefresh.saveConfiguration()
135 print "[EPGRefresh] Error occured while saving configuration:", e
137 for x in self["config"].list:
140 self.close(self.session)