X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/053b66b521438dee9485a0ef16e2e7292af49b51..73e179bb7dfd67800dce39a383a269b2d871d180:/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py index ae586081..1af90f13 100644 --- a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py @@ -7,13 +7,14 @@ from Components.HTMLComponent import HTMLComponent from Components.GUIComponent import GUIComponent from Components.EpgList import Rect from Components.Sources.Event import Event -from Components.Sources.Source import ObsoleteSource from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest +from Components.TimerList import TimerList from Screens.Screen import Screen from Screens.EventView import EventViewSimple from Screens.TimeDateInput import TimeDateInput from Screens.TimerEntry import TimerEntry from Screens.EpgSelection import EPGSelection +from Screens.TimerEdit import TimerSanityConflict from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE from RecordTimer import RecordTimerEntry, parseEvent from ServiceReference import ServiceReference @@ -39,7 +40,7 @@ class EPGList(HTMLComponent, GUIComponent): if overjump_empty: self.l.setSelectableFunc(self.isSelectable) self.epgcache = eEPGCache.getInstance() - self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png')) + self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock.png')) self.time_base = None self.time_epoch = time_epoch self.list = None @@ -53,7 +54,7 @@ class EPGList(HTMLComponent, GUIComponent): self.foreColorService = None self.backColorService = None - def applySkin(self, desktop): + def applySkin(self, desktop, screen): if self.skinAttributes is not None: attribs = [ ] for (attrib, value) in self.skinAttributes: @@ -74,7 +75,7 @@ class EPGList(HTMLComponent, GUIComponent): else: attribs.append((attrib,value)) self.skinAttributes = attribs - return GUIComponent.applySkin(self, desktop) + return GUIComponent.applySkin(self, desktop, screen) def isSelectable(self, service, sname, event_list): return (event_list and len(event_list) and True) or False @@ -170,6 +171,10 @@ class EPGList(HTMLComponent, GUIComponent): self.l.setFont(1, gFont("Regular", 14)) self.l.setSelectionClip(eRect(0,0,0,0), False) + def preWidgetRemove(self, instance): + instance.selectionChanged.get().remove(self.serviceChanged) + instance.setContent(None) + def recalcEntrySize(self): esize = self.l.getItemSize() width = esize.width() @@ -272,7 +277,7 @@ class EPGList(HTMLComponent, GUIComponent): self.cur_service = None self.time_base = int(stime) test = [ (service.ref.toString(), 0, self.time_base, self.time_epoch) for service in services ] - test.insert(0, 'RnITBD') + test.insert(0, 'XRnITBD') epg_data = self.queryEPG(test) self.list = [ ] @@ -343,7 +348,6 @@ class GraphMultiEPG(Screen): self["key_green"] = Button(_("Add timer")) self["timeline_text"] = TimelineText() self["Event"] = Event() - self["Clock"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01") self.time_lines = [ ] for x in (0,1,2,3,4,5): pm = Pixmap() @@ -380,7 +384,7 @@ class GraphMultiEPG(Screen): },-1) self.updateTimelineTimer = eTimer() - self.updateTimelineTimer.timeout.get().append(self.moveTimeLines) + self.updateTimelineTimer.callback.append(self.moveTimeLines) self.updateTimelineTimer.start(60*1000) self.onLayoutFinish.append(self.onCreate) @@ -497,13 +501,25 @@ class GraphMultiEPG(Screen): if event is None: return newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) - self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) + self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) - def timerEditFinished(self, answer): + def finishedAdd(self, answer): + print "finished add" if answer[0]: - self.session.nav.RecordTimer.record(answer[1]) + entry = answer[1] + simulTimerList = self.session.nav.RecordTimer.record(entry) + if simulTimerList is not None: + if (len(simulTimerList) == 2) and (simulTimerList[1].dontSave) and (simulTimerList[1].autoincrease): + simulTimerList[1].end = entry.begin - 30 + self.session.nav.RecordTimer.timeChanged(simulTimerList[1]) + self.session.nav.RecordTimer.record(entry) + else: + self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) else: - print "Timeredit aborted" + print "Timeredit aborted" + + def finishSanityCorrection(self, answer): + self.finishedAdd(answer) def onSelectionChanged(self): evt = self["list"].getCurrent()