From 56da7b1c456ed1cbd8a09a9c6bc7c312e51ca037 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 14 Mar 2011 12:03:18 +0100 Subject: [PATCH] do not show extensions menu plugins which require servicelist in pvr playback mode (works around bug #723) --- lib/python/Screens/InfoBarGenerics.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 4f6eafca..b12d8ed3 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1353,6 +1353,7 @@ class InfoBarExtensions: answer[1][1]() from Tools.BoundFunction import boundFunction +import inspect # depends on InfoBarExtensions @@ -1364,9 +1365,13 @@ class InfoBarPlugins: return name def getPluginList(self): - list = [((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name) for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU)] - list.sort(key = lambda e: e[2]) # sort by name - return list + l = [] + for p in plugins.getPlugins(where = PluginDescriptor.WHERE_EXTENSIONSMENU): + args = inspect.getargspec(p.__call__)[0] + if len(args) == 1 or len(args) == 2 and isinstance(self, InfoBarChannelSelection): + l.append(((boundFunction(self.getPluginName, p.name), boundFunction(self.runPlugin, p), lambda: True), None, p.name)) + l.sort(key = lambda e: e[2]) # sort by name + return l def runPlugin(self, plugin): if isinstance(self, InfoBarChannelSelection): -- 2.30.2