Merge branch 'obi/master'
[enigma2.git] / lib / python / Components / PluginComponent.py
index 0e178fff0790050f3338e4638106992339c9f628..93b089001630cf5d4841e29cf21c9447b6a885e0 100755 (executable)
@@ -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"""