faster loading of movie list (done by initially not loading the file length and updat...
[vuplus_dvbapp] / lib / python / Components / MovieList.py
index bc65911..681dec2 100644 (file)
@@ -13,7 +13,7 @@ from enigma import eServiceReference, eServiceCenter, \
 #
 # | name of movie              |
 #
-def MovieListEntry(serviceref, serviceHandler):
+def MovieListEntry(serviceref, serviceHandler, withLength = False):
        if serviceref.flags & eServiceReference.mustDescent:
                return None
 
@@ -23,7 +23,10 @@ def MovieListEntry(serviceref, serviceHandler):
                # ignore service which refuse to info
                return None
        
-       len = info.getLength(serviceref)
+       if withLength:
+               len = info.getLength(serviceref)
+       else:
+               len = 0
        if len > 0:
                len = "%d:%02d" % (len / 60, len % 60)
        else:
@@ -32,7 +35,10 @@ def MovieListEntry(serviceref, serviceHandler):
        begin = info.getInfo(serviceref, iServiceInformation.sTimeCreate)
        res = [ (serviceref, begin) ]
 
-       res.append(MultiContentEntryText(pos=(0, 0), size=(560, 30), font = 0, flags = RT_HALIGN_LEFT, text = info.getName(serviceref)))
+       res.append(MultiContentEntryText(pos=(0, 0), size=(420, 30), font = 0, flags = RT_HALIGN_LEFT, text = info.getName(serviceref)))
+       service = ServiceReference(info.getInfoString(serviceref, iServiceInformation.sServiceref))
+       if service is not None:
+               res.append(MultiContentEntryText(pos=(420, 0), size=(140, 30), font = 0, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
        
        description = info.getInfoString(serviceref, iServiceInformation.sDescription)
 
@@ -53,7 +59,7 @@ class MovieList(HTMLComponent, GUIComponent):
                self.l = eListboxPythonMultiContent()
                if root is not None:
                        self.reload(root)
-               self.l.setFont(0, gFont("Regular", 30))
+               self.l.setFont(0, gFont("Regular", 22))
                self.l.setFont(1, gFont("Regular", 18))
                
        def moveToIndex(self, index):
@@ -88,6 +94,14 @@ class MovieList(HTMLComponent, GUIComponent):
                                self.list.remove(l)
                self.l.setList(self.list)
 
+       def __len__(self):
+               return len(self.list)
+
+       def updateLengthOfIndex(self, index):
+               serviceHandler = eServiceCenter.getInstance()
+               self.list[index] = MovieListEntry(self.list[index][0][0], serviceHandler, True)
+               self.l.invalidateEntry(index)
+
        def load(self, root):
                # this lists our root service, then building a 
                # nice list