git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VirtualKeyBoard: Add cz/sk layout (patch from Petr)to VirtualKeyBoard. Add possibilit...
[enigma2.git]
/
lib
/
python
/
Components
/
PluginComponent.py
diff --git
a/lib/python/Components/PluginComponent.py
b/lib/python/Components/PluginComponent.py
index 60f767380cbe653baa25b86e53d404369b170210..b06246b25939f4ec4f39810b8292e42ce1534a00 100755
(executable)
--- 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 = [ ]
def __init__(self):
self.plugins = {}
self.pluginList = [ ]
+ self.installedPluginList = [ ]
self.setPluginPrefix("Plugins.")
self.resetWarnings()
self.setPluginPrefix("Plugins.")
self.resetWarnings()
@@
-21,21
+22,14
@@
class PluginComponent:
self.prefix = prefix
def addPlugin(self, plugin):
self.prefix = prefix
def addPlugin(self, plugin):
- if self.firstRun:
+ if self.firstRun
or plugin.needsRestart is False
:
self.pluginList.append(plugin)
for x in plugin.where:
self.plugins.setdefault(x, []).append(plugin)
if x == PluginDescriptor.WHERE_AUTOSTART:
plugin(reason=0)
else:
self.pluginList.append(plugin)
for x in plugin.where:
self.plugins.setdefault(x, []).append(plugin)
if x == PluginDescriptor.WHERE_AUTOSTART:
plugin(reason=0)
else:
- if plugin.needsRestart is False:
- self.pluginList.append(plugin)
- for x in plugin.where:
- self.plugins.setdefault(x, []).append(plugin)
- if x == PluginDescriptor.WHERE_AUTOSTART:
- plugin(reason=0)
- else:
- self.restartRequired = True
+ self.restartRequired = True
def removePlugin(self, plugin):
self.pluginList.remove(plugin)
def removePlugin(self, plugin):
self.pluginList.remove(plugin)
@@
-55,7
+49,6
@@
class PluginComponent:
directory_category = directory + c
if not os_path.isdir(directory_category):
continue
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):
for pluginname in os_listdir(directory_category):
path = directory_category + "/" + pluginname
if os_path.isdir(path):
@@
-80,6
+73,7
@@
class PluginComponent:
plugins = [ plugins ]
for p in plugins:
plugins = [ plugins ]
for p in plugins:
+ p.path = path
p.updateIcon(path)
new_plugins.append(p)
p.updateIcon(path)
new_plugins.append(p)
@@
-98,17
+92,25
@@
class PluginComponent:
#ignore already installed but reloaded plugins
for p in plugins_removed:
for pa in plugins_added:
#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:
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
if self.firstRun:
self.firstRun = False
+ self.installedPluginList = self.pluginList
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
@@
-119,8
+121,8
@@
class PluginComponent:
for x in where:
res.extend(self.plugins.get(x, [ ]))
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 getPluginsForMenu(self, menuid):
res = [ ]