1 # for localized messages
5 from Screens.Screen import Screen
6 from Screens.HelpMenu import HelpableScreen
7 from Screens.MessageBox import MessageBox
8 from Screens.ChoiceBox import ChoiceBox
9 from AutoTimerEditor import AutoTimerEditor
10 from AutoTimerSettings import AutoTimerSettings
11 from AutoTimerPreview import AutoTimerPreview
12 from AutoTimerImporter import AutoTimerImportSelector
15 from AutoTimerList import AutoTimerList
16 from Components.ActionMap import HelpableActionMap
17 from Components.Button import Button
20 from AutoTimerComponent import AutoTimerComponent
22 class AutoTimerOverview(Screen, HelpableScreen):
23 """Overview of AutoTimers"""
25 skin = """<screen name="AutoTimerOverview" position="140,148" size="460,265" title="AutoTimer Overview">
26 <widget name="entries" position="5,5" size="450,200" scrollbarMode="showOnDemand" />
27 <ePixmap position="0,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/green.png" alphatest="on" />
28 <ePixmap position="140,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/yellow.png" alphatest="on" />
29 <ePixmap position="280,220" zPosition="1" size="140,40" pixmap="skin_default/buttons/blue.png" alphatest="on" />
30 <ePixmap position="422,230" zPosition="1" size="35,25" pixmap="skin_default/buttons/key_menu.png" alphatest="on" />
31 <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" />
32 <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" />
33 <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" />
36 def __init__(self, session, autotimer):
37 Screen.__init__(self, session)
38 HelpableScreen.__init__(self)
41 self.autotimer = autotimer
46 self["key_green"] = Button(_("Save"))
47 self["key_yellow"] = Button(_("Delete"))
48 self["key_blue"] = Button(_("Add"))
50 # Create List of Timers
51 self["entries"] = AutoTimerList(self.autotimer.getTupleTimerList())
54 self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions",
56 "ok": (self.ok, _("Edit selected AutoTimer")),
57 "cancel": (self.cancel, _("Close and forget changes")),
61 self["MenuActions"] = HelpableActionMap(self, "MenuActions",
63 "menu": (self.menu, _("Open Context Menu"))
67 self["ColorActions"] = HelpableActionMap(self, "ColorActions",
69 "green": (self.save, _("Close and save changes")),
70 "yellow": (self.remove, _("Remove selected AutoTimer")),
71 "blue": (self.add, _("Add new AutoTimer")),
76 newTimer = self.autotimer.defaultTimer.clone()
77 newTimer.id = self.autotimer.getUniqueId()
79 self.session.openWithCallback(
85 def editCallback(self, ret):
90 def addCallback(self, ret):
93 self.autotimer.add(ret)
96 def importCallback(self, ret):
98 self.session.openWithCallback(
104 def refresh(self, res = None):
106 self["entries"].setList(self.autotimer.getTupleTimerList())
109 # Edit selected Timer
110 current = self["entries"].getCurrent()
111 if current is not None:
112 self.session.openWithCallback(
119 # Remove selected Timer
120 cur = self["entries"].getCurrent()
122 self.session.openWithCallback(
125 _("Do you really want to delete %s?") % (cur[0].name),
128 def removeCallback(self, ret):
129 cur = self["entries"].getCurrent()
131 self.autotimer.remove(cur[0].id)
136 self.session.openWithCallback(
139 _("Really close without saving settings?")
144 def cancelConfirm(self, ret):
146 # Invalidate config mtime to force re-read on next run
147 self.autotimer.configMtime = -1
149 # Close and indicated that we canceled by returning None
153 self.session.openWithCallback(
157 (_("Preview"), "preview"),
158 (_("Import"), "import"),
159 (_("Setup"), "setup"),
160 (_("Edit new timer defaults"), "defaults")
164 def menuCallback(self, ret):
168 total, new, modified, timers = self.autotimer.parseEPG(simulateOnly = True)
173 elif ret == "import":
174 # XXX: apply defaults here too?
175 self.session.openWithCallback(
177 AutoTimerImportSelector,
179 self.autotimer.getUniqueId(), # Id
189 elif ret == "defaults":
192 self.autotimer.defaultTimer,
193 editingDefaults = True
197 # Just close here, saving will be done by cb
198 self.close(self.session)