From c0ebc011a78dd85727b3d91de8cbf271a25b8819 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Sat, 17 May 2008 21:44:15 +0000 Subject: [PATCH] allow "internal" plugins from outside of the e2 plugin directory (useful for file scanner in internal e2 code) --- lib/python/Components/PluginComponent.py | 3 ++- lib/python/Plugins/Plugin.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py index 818ea583..d72e2af3 100644 --- a/lib/python/Components/PluginComponent.py +++ b/lib/python/Components/PluginComponent.py @@ -80,7 +80,7 @@ class PluginComponent: # build a diff between the old list of plugins and the new one # internally, the "fnc" argument will be compared with __eq__ plugins_added = [p for p in new_plugins if p not in self.pluginList] - plugins_removed = [p for p in self.pluginList if p not in new_plugins] + plugins_removed = [p for p in self.pluginList if not p.internal and p not in new_plugins] for p in plugins_removed: self.removePlugin(p) @@ -94,6 +94,7 @@ class PluginComponent: if type(where) is not list: where = [ where ] res = [ ] + for x in where: for p in self.plugins.get(x, [ ]): res.append(p) diff --git a/lib/python/Plugins/Plugin.py b/lib/python/Plugins/Plugin.py index 4319d324..a0db1d66 100644 --- a/lib/python/Plugins/Plugin.py +++ b/lib/python/Plugins/Plugin.py @@ -45,8 +45,9 @@ class PluginDescriptor: # or return a function which is called with session and the interface name for extended setup of this interface WHERE_NETWORKSETUP = 10 - def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None): + def __init__(self, name = "Plugin", where = [ ], description = "", icon = None, fnc = None, wakeupfnc = None, internal = False): self.name = name + self.internal = internal if type(where) is list: self.where = where else: -- 2.30.2