2 from Screens.Screen import Screen
3 from Screens.HelpMenu import HelpableScreen
4 from Screens.MessageBox import MessageBox
5 from Screens.ChoiceBox import ChoiceBox
6 from AutoTimerEditor import AutoTimerEditor
7 from AutoTimerSettings import AutoTimerSettings
8 from AutoTimerPreview import AutoTimerPreview
9 from AutoTimerImporter import AutoTimerImportSelector
12 from AutoTimerList import AutoTimerList
13 from Components.ActionMap import HelpableActionMap
14 from Components.Button import Button
17 from AutoTimerComponent import AutoTimerComponent
19 class AutoTimerOverview(Screen, HelpableScreen):
20 """Overview of AutoTimers"""
22 skin = """<screen name="AutoTimerOverview" position="140,148" size="460,265" title="AutoTimer Overview">
23 <widget name="entries" position="5,5" size="450,200" scrollbarMode="showOnDemand" />
24 <ePixmap position="0,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" alphatest="on" />
25 <ePixmap position="140,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/yellow.png" alphatest="on" />
26 <ePixmap position="280,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/blue.png" alphatest="on" />
27 <ePixmap position="422,230" zPosition="1" size="35,25" pixmap="skin_default/buttons/key_menu.png" alphatest="on" />
28 <widget name="key_green" position="0,220" zPosition="2" size="140,40" halign="center" valign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />
29 <widget name="key_yellow" position="140,220" zPosition="2" size="140,40" halign="center" valign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />
30 <widget name="key_blue" position="280,220" zPosition="2" size="140,40" halign="center" valign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" />
33 def __init__(self, session, autotimer):
34 Screen.__init__(self, session)
35 HelpableScreen.__init__(self)
38 self.autotimer = autotimer
43 self["key_green"] = Button(_("Save"))
44 self["key_yellow"] = Button(_("Delete"))
45 self["key_blue"] = Button(_("Add"))
47 # Create List of Timers
48 self["entries"] = AutoTimerList(self.autotimer.getTupleTimerList())
51 self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
53 "ok": (self.ok, _("Edit selected AutoTimer")),
54 "cancel": (self.cancel, _("Close and forget changes")),
58 self["MenuActions"] = HelpableActionMap(self, "MenuActions",
60 "menu": (self.menu, _("Open Context Menu"))
64 self["ColorActions"] = HelpableActionMap(self, "ColorActions",
66 "green": (self.save, _("Close and save changes")),
67 "yellow": (self.remove, _("Remove selected AutoTimer")),
68 "blue": (self.add, _("Add new AutoTimer")),
73 newTimer = self.autotimer.defaultTimer.clone()
74 newTimer.id = self.autotimer.getUniqueId()
76 self.session.openWithCallback(
82 def editCallback(self, ret):
87 def addCallback(self, ret):
90 self.autotimer.add(ret)
93 def importCallback(self, ret):
95 self.session.openWithCallback(
101 def refresh(self, res = None):
103 self["entries"].setList(self.autotimer.getTupleTimerList())
106 # Edit selected Timer
107 current = self["entries"].getCurrent()
108 if current is not None:
109 self.session.openWithCallback(
116 # Remove selected Timer
117 cur = self["entries"].getCurrent()
119 self.session.openWithCallback(
122 _("Do you really want to delete %s?") % (cur[0].name),
125 def removeCallback(self, ret):
126 cur = self["entries"].getCurrent()
128 self.autotimer.remove(cur[0].id)
133 self.session.openWithCallback(
136 _("Really close without saving settings?")
141 def cancelConfirm(self, ret):
143 # Invalidate config mtime to force re-read on next run
144 self.autotimer.configMtime = -1
146 # Close and indicated that we canceled by returning None
150 self.session.openWithCallback(
154 (_("Preview"), "preview"),
155 (_("Import"), "import"),
156 (_("Setup"), "setup"),
157 (_("Edit new timer defaults"), "defaults")
161 def menuCallback(self, ret):
165 total, new, modified, timers = self.autotimer.parseEPG(simulateOnly = True)
170 elif ret == "import":
171 # XXX: apply defaults here too?
172 self.session.openWithCallback(
174 AutoTimerImportSelector,
176 self.autotimer.getUniqueId(), # Id
186 elif ret == "defaults":
189 self.autotimer.defaultTimer,
190 editingDefaults = True
194 # Just close here, saving will be done by cb
195 self.close(self.session)