def __init__(self):
self.plugins = {}
self.pluginList = [ ]
+ self.installedPluginList = [ ]
self.setPluginPrefix("Plugins.")
self.resetWarnings()
directory_category = directory + c
if not os_path.isdir(directory_category):
continue
- open(directory_category + "/__init__.py", "a").close()
for pluginname in os_listdir(directory_category):
path = directory_category + "/" + pluginname
if os_path.isdir(path):
plugins = [ plugins ]
for p in plugins:
+ p.path = path
p.updateIcon(path)
new_plugins.append(p)
#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"""
for x in where:
res.extend(self.plugins.get(x, [ ]))
-
- return res
+ res.sort(key=lambda x:x.weight)
+ return res
def getPluginsForMenu(self, menuid):
res = [ ]
def clearPluginList(self):
self.pluginList = []
self.plugins = {}
- self.firstRun = True
- self.restartRequired = False
def shutdown(self):
for p in self.pluginList[:]: