X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/502fcfc68a0634e5d5bd586c9a89fe93dc0cbcc4..3a13654dd717d6cc27715461cfd24850e40980f6:/lib/python/Screens/EventView.py diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py index 48d85bf7..79d548af 100644 --- a/lib/python/Screens/EventView.py +++ b/lib/python/Screens/EventView.py @@ -1,32 +1,33 @@ from Screen import Screen from Components.ActionMap import ActionMap from Components.Label import Label -from Components.ProgressBar import ProgressBar -from enigma import eWidget, eServiceEventPtr, eLabel +from Components.ScrollLabel import ScrollLabel +from enigma import eServiceEventPtr +from ServiceReference import ServiceReference +from RecordTimer import RecordTimerEntry +from TimerEntry import TimerEntry class EventView(Screen): - def __init__(self, session, Event, callback): + def __init__(self, session, Event, Ref, callback=None): Screen.__init__(self, session) - self.cbFunc = callback - print self.cbFunc - - self["epg_description"] = Label() + self.currentService=None + self["epg_description"] = ScrollLabel() self["datetime"] = Label() self["channel"] = Label() - self["scrollbar"] = ProgressBar() self["duration"] = Label() - self["actions"] = ActionMap(["OkCancelActions", "EventViewActions"], { "cancel": self.close, "ok": self.close, - "scrollUp": self.scrollUp, - "scrollDown": self.scrollDown, + "pageUp": self.pageUp, + "pageDown": self.pageDown, "prevEvent": self.prevEvent, - "nextEvent": self.nextEvent + "nextEvent": self.nextEvent, + "timerAdd": self.timerAdd }) self.setEvent(Event) + self.setService(Ref) def prevEvent(self): if self.cbFunc is not None: @@ -35,19 +36,60 @@ class EventView(Screen): def nextEvent(self): if self.cbFunc is not None: self.cbFunc(self.setEvent, +1) + + def timerAdd(self): + epg = self.event + + if (epg == None): + description = "unknown event" + else: + description = epg.getEventName() + # FIXME we need a timestamp here: + begin = epg.getBeginTime() + + print begin + print epg.getDuration() + end = begin + epg.getDuration() + + + # FIXME only works if already playing a service + serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()) + + newEntry = RecordTimerEntry(begin, end, serviceref, epg, description) + self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) + + def timerEditFinished(self, answer): + if (answer[0]): + self.session.nav.RecordTimer.record(answer[1]) + else: + print "Timeredit aborted" + + def setService(self, service): + self.currentService=service + name = self.currentService.getServiceName() + if name is not None: + self["channel"].setText(name) + else: + self["channel"].setText(_("unknown service")) def setEvent(self, event): - text = event.getShortDescription() - if len(text) > 0: - text = text + '\n\n' - text = text + event.getExtendedDescription() + self.event = event + text = event.getEventName() + short = event.getShortDescription() + ext = event.getExtendedDescription() + if len(short) > 0 and short != text: + text = text + '\n\n' + short + if len(ext) > 0: + if len(text) > 0: + text = text + '\n\n' + text = text + ext + self.session.currentDialog.instance.setTitle(event.getEventName()) self["epg_description"].setText(text) self["datetime"].setText(event.getBeginTimeString()) - self["channel"].setText("Unknown Service") - self["duration"].setText("%d min"%(event.getDuration()/60)) - - def scrollUp(self): - print "scrollUp" + self["duration"].setText(_("%d min")%(event.getDuration()/60)) - def scrollDown(self): - print "scrollDown" + def pageUp(self): + self["epg_description"].pageUp() + + def pageDown(self): + self["epg_description"].pageDown()