faster loading of movie list (done by initially not loading the file length and updat...
[enigma2.git] / lib / python / Components / MovieList.py
index a921b8df088daacc16d7837b4b521fbcc6a50b0e..681dec2b9e6df13e8b5c8b41c61843186e1525d5 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:
@@ -91,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