move the movie selector to the currently playing movie
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 21 Dec 2005 22:04:56 +0000 (22:04 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 21 Dec 2005 22:04:56 +0000 (22:04 +0000)
lib/python/Components/MovieList.py
lib/python/Screens/InfoBar.py
lib/python/Screens/MovieSelection.py

index 7121772..3c5f7e2 100644 (file)
@@ -1,6 +1,7 @@
 from HTMLComponent import *
 from GUIComponent import *
 from Tools.FuzzyDate import FuzzyTime
+from ServiceReference import ServiceReference
 
 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation
 
@@ -105,6 +106,15 @@ class MovieList(HTMLComponent, GUIComponent):
                # now process them...
                for ref in movieList:
                        self.list.append(MovieListEntry(ref, serviceHandler))
+                       
+       def moveTo(self, serviceref):
+               found = 0
+               count = 0
+               for x in self.list:
+                       if str(ServiceReference(x[0])) == str(ServiceReference(serviceref)):
+                               found = count
+                       count += 1
+               self.instance.moveSelectionTo(found)
 
        def reload(self):
                self.load(self.root)
index 2375482..aaa3deb 100644 (file)
@@ -2,6 +2,7 @@ from Screen import Screen
 
 from Screens.MovieSelection import MovieSelection
 from Screens.MessageBox import MessageBox
+from ServiceReference import ServiceReference
 
 from Components.Clock import Clock
 from Components.ActionMap import ActionMap, HelpableActionMap
@@ -82,7 +83,8 @@ class MoviePlayer(Screen, InfoBarVolumeControl, InfoBarShowHide, InfoBarPowerKey
                        self.close()
                        
        def showMovies(self):
-               self.session.openWithCallback(self.movieSelected, MovieSelection)
+               ref = self.session.nav.getCurrentlyPlayingServiceReference()
+               self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
 
        def movieSelected(self, service):
                if service is not None:
index e9dc5b3..ffa73c1 100644 (file)
@@ -59,13 +59,16 @@ class ChannelContextMenu(FixedMenu):
                        self.close()
  
 class MovieSelection(Screen):
-       def __init__(self, session):
+       def __init__(self, session, selectedmovie = None):
                Screen.__init__(self, session)
                
                self.movemode = False
                self.bouquet_mark_edit = False
                
                self["list"] = MovieList(eServiceReference("2:0:1:0:0:0:0:0:0:0:/hdd/movies/"))
+               if (selectedmovie is not None):
+                       self.onShown.append(self.moveTo)
+                       self.selectedmovie = selectedmovie
                
                #self["okbutton"] = Button("ok", [self.channelSelected])
                self["freeDiskSpace"] = DiskInfo("/hdd/movies", DiskInfo.FREE)
@@ -78,6 +81,9 @@ class MovieSelection(Screen):
                        })
                self["actions"].csel = self
 
+       def moveTo(self):
+               self["list"].moveTo(self.selectedmovie)
+
        def getCurrent(self):
                return self["list"].getCurrent()[0]