X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/525a8afd5b9ef35328f44236f5861f88746ce414..5f8f37a21fa5a6880802e2def55b38e25444365e:/lib/python/Screens/MovieSelection.py diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py index f3754c20..c70627bb 100644 --- a/lib/python/Screens/MovieSelection.py +++ b/lib/python/Screens/MovieSelection.py @@ -5,11 +5,14 @@ from Components.ActionMap import ActionMap from Components.MovieList import MovieList from Components.DiskInfo import DiskInfo from Components.Label import Label +from Components.PluginComponent import plugins +from Plugins.Plugin import PluginDescriptor from Screens.MessageBox import MessageBox from Screens.FixedMenu import FixedMenu from Tools.Directories import * +from Tools.BoundFunction import boundFunction from enigma import eServiceReference, eServiceCenter, eTimer @@ -20,8 +23,14 @@ class ChannelContextMenu(FixedMenu): menu = [(_("back"), self.close), (_("delete..."), self.delete)] + for p in plugins.getPlugins(PluginDescriptor.WHERE_MOVIELIST): + menu.append((p.description, boundFunction(self.execPlugin, p))) + FixedMenu.__init__(self, session, _("Movie Menu"), menu) self.skinName = "Menu" + + def execPlugin(self, plugin): + plugin(self.session, self.service) def delete(self): serviceHandler = eServiceCenter.getInstance() @@ -83,7 +92,9 @@ class MovieSelection(Screen): self.onShown.append(self.go) 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))) @@ -97,13 +108,18 @@ class MovieSelection(Screen): self["list"].moveTo(self.selectedmovie) def getCurrent(self): - return self["list"].getCurrent()[0] + l = self["list"].getCurrent() + return l and l[0] def movieSelected(self): - self.close(self.getCurrent()) + 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)