X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FEpgList.py;h=1440d60e0b5f7a11240251947aeb1bf05e354038;hp=fa60400fd3c34641e2374fe9a89d598058f4e262;hb=HEAD;hpb=bce53d4a67d1655a496eebe5912c8573e880114e diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py old mode 100644 new mode 100755 index fa60400..1440d60 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -8,7 +8,8 @@ from Tools.LoadPixmap import LoadPixmap from time import localtime, time from ServiceReference import ServiceReference -from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE +from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN +import skin EPG_TYPE_SINGLE = 0 EPG_TYPE_MULTI = 1 @@ -43,8 +44,10 @@ class EPGList(HTMLComponent, GUIComponent): GUIComponent.__init__(self) self.type=type self.l = eListboxPythonMultiContent() - self.l.setFont(0, gFont("Regular", 22)) - self.l.setFont(1, gFont("Regular", 16)) + font = skin.fonts.get("EPGList0", ("Regular", 22)) + self.l.setFont(0, gFont(font[0], font[1])) + font = skin.fonts.get("EPGList1", ("Regular", 16)) + self.l.setFont(1, gFont(font[0], font[1])) if type == EPG_TYPE_SINGLE: self.l.setBuildFunc(self.buildSingleEntry) elif type == EPG_TYPE_MULTI: @@ -53,11 +56,11 @@ class EPGList(HTMLComponent, GUIComponent): assert(type == EPG_TYPE_SIMILAR) self.l.setBuildFunc(self.buildSimilarEntry) self.epgcache = eEPGCache.getInstance() - self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock.png')) - self.clock_add_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_add.png')) - self.clock_pre_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_pre.png')) - self.clock_post_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_post.png')) - self.clock_prepost_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_prepost.png')) + self.clock_pixmap = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock.png')) + self.clock_add_pixmap = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_add.png')) + self.clock_pre_pixmap = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_pre.png')) + self.clock_post_pixmap = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_post.png')) + self.clock_prepost_pixmap = LoadPixmap(cached=True, path=resolveFilename(SCOPE_CURRENT_SKIN, 'skin_default/icons/epgclock_prepost.png')) def getEventFromId(self, service, eventid): event = None @@ -163,9 +166,17 @@ class EPGList(HTMLComponent, GUIComponent): return self.clock_post_pixmap else: return self.clock_prepost_pixmap + + def getPixmapForEntry(self, service, eventId, beginTime, duration): + rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + if rec: + clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) + else: + clock_pic = None + return (clock_pic, rec) def buildSingleEntry(self, service, eventId, beginTime, duration, EventName): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.weekday_rect r2=self.datetime_rect r3=self.descr_rect @@ -176,7 +187,6 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4])) ] if rec: - clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic), (eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName) @@ -186,7 +196,7 @@ class EPGList(HTMLComponent, GUIComponent): return res def buildSimilarEntry(self, service, eventId, beginTime, service_name, duration): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.weekday_rect r2=self.datetime_rect r3=self.service_rect @@ -197,7 +207,6 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4])) ] if rec: - clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic), (eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name) @@ -206,25 +215,24 @@ class EPGList(HTMLComponent, GUIComponent): res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name)) return res - def buildMultiEntry(self, changecount, service, eventId, begTime, duration, EventName, nowTime, service_name): - rec=begTime and (self.timer.isInTimer(eventId, begTime, duration, service)) + def buildMultiEntry(self, changecount, service, eventId, beginTime, duration, EventName, nowTime, service_name): + (clock_pic, rec) = self.getPixmapForEntry(service, eventId, beginTime, duration) r1=self.service_rect r2=self.progress_rect r3=self.descr_rect r4=self.start_end_rect res = [ None ] # no private data needed if rec: - clock_pic = self.getClockPixmap(service, begTime, duration, eventId) res.extend(( (eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width()-21, r1.height(), 0, RT_HALIGN_LEFT, service_name), (eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r1.left()+r1.width()-16, r1.top(), 21, 21, clock_pic) )) else: res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_LEFT, service_name)) - if begTime is not None: - if nowTime < begTime: - begin = localtime(begTime) - end = localtime(begTime+duration) + if beginTime is not None: + if nowTime < beginTime: + begin = localtime(beginTime) + end = localtime(beginTime+duration) # print "begin", begin # print "end", end res.extend(( @@ -232,7 +240,7 @@ class EPGList(HTMLComponent, GUIComponent): (eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName) )) else: - percent = (nowTime - begTime) * 100 / duration + percent = (nowTime - beginTime) * 100 / duration res.extend(( (eListboxPythonMultiContent.TYPE_PROGRESS, r2.left(), r2.top(), r2.width(), r2.height(), percent), (eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName)