when length is not available, just don't show anything
[enigma2.git] / lib / python / Components / MovieList.py
index ace360124d6c153dc5fee397d9e60e06dd2c9ff4..5c98e4be5d6d344b951a21b95da646e5538607f3 100644 (file)
@@ -93,17 +93,15 @@ class MovieList(GUIComponent):
                if len > 0:
                        len = "%d:%02d" % (len / 60, len % 60)
                else:
-                       if config.usage.load_length_of_movies_in_moviellist.value:
-                               len = "?:??"
-                       else:
-                               len = "X:XX"
+                       len = ""
                
                res = [ None ]
                
                txt = info.getName(serviceref)
                service = ServiceReference(info.getInfoString(serviceref, iServiceInformation.sServiceref))
                description = info.getInfoString(serviceref, iServiceInformation.sDescription)
-               
+               tags = info.getInfoString(serviceref, iServiceInformation.sTags)
+
                begin_string = ""
                if begin > 0:
                        t = FuzzyTime(begin)
@@ -111,23 +109,33 @@ class MovieList(GUIComponent):
                
                if self.list_type == MovieList.LISTTYPE_ORIGINAL:
                        res.append(MultiContentEntryText(pos=(0, 0), size=(width-182, 30), font = 0, flags = RT_HALIGN_LEFT, text=txt))
-                       if service is not None:
-                               res.append(MultiContentEntryText(pos=(width-180, 0), size=(180, 30), font = 2, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
+                       if self.tags:
+                               res.append(MultiContentEntryText(pos=(width-180, 0), size=(180, 30), font = 2, flags = RT_HALIGN_RIGHT, text = tags))
+                               if service is not None:
+                                       res.append(MultiContentEntryText(pos=(200, 50), size=(200, 20), font = 1, flags = RT_HALIGN_LEFT, text = service.getServiceName()))
+                       else:
+                               if service is not None:
+                                       res.append(MultiContentEntryText(pos=(width-180, 0), size=(180, 30), font = 2, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
                        res.append(MultiContentEntryText(pos=(0, 30), size=(width, 20), font=1, flags=RT_HALIGN_LEFT, text=description))
-                       res.append(MultiContentEntryText(pos=(0, 50), size=(width-270, 20), font=1, flags=RT_HALIGN_LEFT, text=begin_string))
-                       res.append(MultiContentEntryText(pos=(width-200, 50), size=(200, 20), font=1, flags=RT_HALIGN_RIGHT, text=len))
+                       res.append(MultiContentEntryText(pos=(0, 50), size=(200, 20), font=1, flags=RT_HALIGN_LEFT, text=begin_string))
+                       res.append(MultiContentEntryText(pos=(width-200, 50), size=(198, 20), font=1, flags=RT_HALIGN_RIGHT, text=len))
                elif self.list_type == MovieList.LISTTYPE_COMPACT_DESCRIPTION:
                        res.append(MultiContentEntryText(pos=(0, 0), size=(width-120, 20), font = 0, flags = RT_HALIGN_LEFT, text = txt))
-                       if service is not None:
-                               res.append(MultiContentEntryText(pos=(width-212, 20), size=(154, 17), font = 1, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
                        res.append(MultiContentEntryText(pos=(0, 20), size=(width-212, 17), font=1, flags=RT_HALIGN_LEFT, text=description))
                        res.append(MultiContentEntryText(pos=(width-120, 6), size=(120, 20), font=1, flags=RT_HALIGN_RIGHT, text=begin_string))
+                       if service is not None:
+                               res.append(MultiContentEntryText(pos=(width-212, 20), size=(154, 17), font = 1, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
                        res.append(MultiContentEntryText(pos=(width-58, 20), size=(58, 20), font=1, flags=RT_HALIGN_RIGHT, text=len))
                elif self.list_type == MovieList.LISTTYPE_COMPACT:
                        res.append(MultiContentEntryText(pos=(0, 0), size=(width-77, 20), font = 0, flags = RT_HALIGN_LEFT, text = txt))
-                       if service is not None:
-                               res.append(MultiContentEntryText(pos=(width-200, 20), size=(200, 17), font = 1, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
-                       res.append(MultiContentEntryText(pos=(0, 20), size=(width-200, 17), font=1, flags=RT_HALIGN_LEFT, text=begin_string))
+                       if self.tags:
+                               res.append(MultiContentEntryText(pos=(width-200, 20), size=(200, 17), font = 1, flags = RT_HALIGN_RIGHT, text = tags))
+                               if service is not None:
+                                       res.append(MultiContentEntryText(pos=(200, 20), size=(200, 17), font = 1, flags = RT_HALIGN_LEFT, text = service.getServiceName()))
+                       else:
+                               if service is not None:
+                                       res.append(MultiContentEntryText(pos=(width-200, 20), size=(200, 17), font = 1, flags = RT_HALIGN_RIGHT, text = service.getServiceName()))
+                       res.append(MultiContentEntryText(pos=(0, 20), size=(200, 17), font=1, flags=RT_HALIGN_LEFT, text=begin_string))
                        res.append(MultiContentEntryText(pos=(width-75, 0), size=(75, 20), font=0, flags=RT_HALIGN_RIGHT, text=len))
                else:
                        assert(self.list_type == MovieList.LISTTYPE_MINIMAL)
@@ -212,6 +220,7 @@ class MovieList(GUIComponent):
                        if this_tags == ['']:
                                this_tags = []
                        this_tags = set(this_tags)
+                       tags |= this_tags
                
                        # filter_tags is either None (which means no filter at all), or 
                        # a set. In this case, all elements of filter_tags must be present,
@@ -219,7 +228,6 @@ class MovieList(GUIComponent):
                        if filter_tags is not None and not this_tags.issuperset(filter_tags):
                                continue
                
-                       tags |= this_tags
                        self.list.append((serviceref, info, begin, -1))
                
                if self.sort_type == MovieList.SORT_ALPHANUMERIC:
@@ -243,8 +251,9 @@ class MovieList(GUIComponent):
                for x in self.list:
                        if x[0] == serviceref:
                                self.instance.moveSelectionTo(count)
-                               break
+                               return True
                        count += 1
-
+               return False
+       
        def moveDown(self):
                self.instance.moveSelection(self.instance.moveDown)