allow gstreamer to signalize missing plugins to the gui (requires reconfiguring enigm...
[enigma2.git] / lib / python / Components / EpgList.py
index 0c4290d64b4698f3bde7c065de7f9be4fd99746b..dbcd572b713a87095f431211869c0ef74b34504b 100644 (file)
@@ -1,9 +1,11 @@
 from HTMLComponent import HTMLComponent
 from GUIComponent import GUIComponent
 
-from enigma import eEPGCache, eListbox, eListboxPythonMultiContent, gFont, loadPNG, \
+from enigma import eEPGCache, eListbox, eListboxPythonMultiContent, gFont, \
        RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER, RT_VALIGN_CENTER
 
+from Tools.LoadPixmap import LoadPixmap
+
 from time import localtime, time
 from ServiceReference import ServiceReference
 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
@@ -49,7 +51,7 @@ class EPGList(HTMLComponent, GUIComponent):
                        assert(type == EPG_TYPE_SIMILAR)
                        self.l.setBuildFunc(self.buildSimilarEntry)
                self.epgcache = eEPGCache.getInstance()
-               self.clock_pixmap = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png'))
+               self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock.png'))
 
        def getEventFromId(self, service, eventid):
                event = None
@@ -97,12 +99,16 @@ class EPGList(HTMLComponent, GUIComponent):
                                        pass
 
        GUI_WIDGET = eListbox
-       
+
        def postWidgetCreate(self, instance):
                instance.setWrapAround(True)
                instance.selectionChanged.get().append(self.selectionChanged)
                instance.setContent(self.l)
 
+       def preWidgetRemove(self, instance):
+               instance.selectionChanged.get().remove(self.selectionChanged)
+               instance.setContent(None)
+
        def recalcEntrySize(self):
                esize = self.l.getItemSize()
                self.l.setFont(0, gFont("Regular", 22))
@@ -130,7 +136,7 @@ class EPGList(HTMLComponent, GUIComponent):
                        self.service_rect = Rect(width/20*7, 0, width/20*13, height)
 
        def buildSingleEntry(self, service, eventId, beginTime, duration, EventName):
-               rec=(self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) 
+               rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) 
                r1=self.weekday_rect
                r2=self.datetime_rect
                r3=self.descr_rect
@@ -146,7 +152,7 @@ class EPGList(HTMLComponent, GUIComponent):
                return res
 
        def buildSimilarEntry(self, service, eventId, beginTime, service_name, duration):
-               rec=(self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) 
+               rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) 
                r1=self.weekday_rect
                r2=self.datetime_rect
                r3=self.service_rect
@@ -198,7 +204,7 @@ class EPGList(HTMLComponent, GUIComponent):
        def fillMultiEPG(self, services, stime=-1):
                t = time()
                test = [ (service.ref.toString(), 0, stime) for service in services ]
-               test.insert(0, '0RIBDTCn')
+               test.insert(0, 'X0RIBDTCn')
                self.list = self.queryEPG(test)
                self.l.setList(self.list)
                print time() - t
@@ -207,7 +213,7 @@ class EPGList(HTMLComponent, GUIComponent):
        def updateMultiEPG(self, direction):
                t = time()
                test = [ x[3] and (x[1], direction, x[3]) or (x[1], direction, 0) for x in self.list ]
-               test.insert(0, 'RIBDTCn')
+               test.insert(0, 'XRIBDTCn')
                tmp = self.queryEPG(test)
                cnt=0
                for x in tmp: