X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/55b9e8af49d4f89639f87f92657975f194b6161d..dbe120313d2b4589e3c7ebe49ee98586a2b04e16:/lib/python/Screens/MovieSelection.py?ds=sidebyside diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py index 079f5ebd..8e08db88 100644 --- a/lib/python/Screens/MovieSelection.py +++ b/lib/python/Screens/MovieSelection.py @@ -30,7 +30,7 @@ class ChannelContextMenu(FixedMenu): self.skinName = "Menu" def execPlugin(self, plugin): - plugin(self.session, self.service) + plugin(session=self.session, service=self.service) def delete(self): serviceHandler = eServiceCenter.getInstance() @@ -77,6 +77,7 @@ class MovieSelection(Screen): self["waitingtext"] = Label(_("Please wait... Loading list...")) self["list"] = MovieList(None) + self.list = self["list"] self.selectedmovie = selectedmovie #self["okbutton"] = Button("ok", [self.channelSelected]) @@ -91,8 +92,13 @@ class MovieSelection(Screen): self["actions"].csel = self self.onShown.append(self.go) + self.lengthTimer = eTimer() + self.lengthTimer.timeout.get().append(self.updateLengthData) + def go(self): - self.delayTimer.start(0, 1) + # ouch. this should redraw our "Please wait..."-text. + # this is of course not the right way to do this. + self.delayTimer.start(10, 1) def updateHDDData(self): self["list"].reload(eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD))) @@ -101,18 +107,33 @@ class MovieSelection(Screen): self["waitingtext"].instance.hide() self["freeDiskSpace"].update() + + self.lengthTimer.start(10, 1) + self.lengthPosition = 0 + self.lengthLength = len(self["list"]) + + def updateLengthData(self): + self.list.updateLengthOfIndex(self.lengthPosition) + self.lengthPosition += 1 + if self.lengthPosition < self.lengthLength: + self.lengthTimer.start(10, 1) def moveTo(self): self["list"].moveTo(self.selectedmovie) def getCurrent(self): - return self["list"].getCurrent()[0] + return self["list"].getCurrent() def movieSelected(self): - self.close(self.getCurrent()) + self.lengthTimer.stop() + current = self.getCurrent() + if current is not None: + self.close(current) def doContext(self): - self.session.open(ChannelContextMenu, self, self.getCurrent()) + current = self.getCurrent() + if current is not None: + self.session.open(ChannelContextMenu, self, current) def abort(self): self.close(None)