aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/PluginComponent.py
diff options
context:
space:
mode:
authoracid-burn <acid-burn@opendreambox.org>2011-02-18 20:31:01 +0100
committeracid-burn <acid-burn@opendreambox.org>2011-02-18 20:31:01 +0100
commit47eb827c45c6c8637418b64480d518d8553e4ee9 (patch)
tree8a2c7a238241502eb06617266fbefc664aee08d6 /lib/python/Components/PluginComponent.py
parent86e9360f343238d5b6fc180be0b6076549847bc3 (diff)
parentdf1a17b12cb9535832a8db9bcbcf213210ddca81 (diff)
downloadenigma2-47eb827c45c6c8637418b64480d518d8553e4ee9.tar.gz
enigma2-47eb827c45c6c8637418b64480d518d8553e4ee9.zip
Merge remote branch 'origin/acid-burn/bug_670_plugin_restartoption' into experimental
Diffstat (limited to 'lib/python/Components/PluginComponent.py')
-rwxr-xr-xlib/python/Components/PluginComponent.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py
index e5194b28..93b08900 100755
--- a/lib/python/Components/PluginComponent.py
+++ b/lib/python/Components/PluginComponent.py
@@ -14,6 +14,7 @@ class PluginComponent:
def __init__(self):
self.plugins = {}
self.pluginList = [ ]
+ self.installedPluginList = [ ]
self.setPluginPrefix("Plugins.")
self.resetWarnings()
@@ -73,6 +74,7 @@ class PluginComponent:
plugins = [ plugins ]
for p in plugins:
+ p.path = path
p.updateIcon(path)
new_plugins.append(p)
@@ -91,17 +93,25 @@ class PluginComponent:
#ignore already installed but reloaded plugins
for p in plugins_removed:
for pa in plugins_added:
- if pa.name == p.name and pa.where == p.where:
+ if pa.path == p.path and pa.where == p.where:
pa.needsRestart = False
for p in plugins_removed:
self.removePlugin(p)
for p in plugins_added:
- self.addPlugin(p)
-
+ if self.firstRun or p.needsRestart is False:
+ self.addPlugin(p)
+ else:
+ for installed_plugin in self.installedPluginList:
+ if installed_plugin.path == p.path:
+ if installed_plugin.where == p.where:
+ p.needsRestart = False
+ self.addPlugin(p)
+
if self.firstRun:
self.firstRun = False
+ self.installedPluginList = self.pluginList
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
@@ -124,8 +134,6 @@ class PluginComponent:
def clearPluginList(self):
self.pluginList = []
self.plugins = {}
- self.firstRun = True
- self.restartRequired = False
def shutdown(self):
for p in self.pluginList[:]: