Merge branch 'bug_723_infobarext_pvr'
authorFraxinas <andreas.frisch@multimedia-labs.de>
Wed, 16 Mar 2011 14:31:34 +0000 (15:31 +0100)
committerFraxinas <andreas.frisch@multimedia-labs.de>
Wed, 16 Mar 2011 14:31:34 +0000 (15:31 +0100)
lib/python/Screens/InfoBarGenerics.py

index 0bb7fd3..2e97b59 100644 (file)
@@ -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):