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 cur = self["entries"].getCurrent()
107 self["entries"].setList(self.autotimer.getSortedTupleTimerList())
108 self["entries"].moveToEntry(cur)
111 # Edit selected Timer
112 current = self["entries"].getCurrent()
113 if current is not None:
114 self.session.openWithCallback(
121 # Remove selected Timer
122 cur = self["entries"].getCurrent()
124 self.session.openWithCallback(
127 _("Do you really want to delete %s?") % (cur.name),
130 def removeCallback(self, ret):
131 cur = self["entries"].getCurrent()
133 self.autotimer.remove(cur.id)
138 self.session.openWithCallback(
141 _("Really close without saving settings?")
146 def cancelConfirm(self, ret):
148 # Invalidate config mtime to force re-read on next run
149 self.autotimer.configMtime = -1
151 # Close and indicated that we canceled by returning None
155 self.session.openWithCallback(
159 (_("Preview"), "preview"),
160 (_("Import"), "import"),
161 (_("Setup"), "setup"),
162 (_("Edit new timer defaults"), "defaults"),
166 def menuCallback(self, ret):
170 total, new, modified, timers = self.autotimer.parseEPG(simulateOnly = True)
175 elif ret == "import":
176 newTimer = self.autotimer.defaultTimer.clone()
177 newTimer.id = self.autotimer.getUniqueId()
179 self.session.openWithCallback(
181 AutoTimerImportSelector,
188 elif ret == "defaults":
191 self.autotimer.defaultTimer,
192 editingDefaults = True
196 # Just close here, saving will be done by cb
197 self.close(self.session)