summaryrefslogtreecommitdiff
path: root/src/plugin_manager.py
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2011-11-09 14:02:17 +0100
committermathieui <mathieui@mathieui.net>2011-11-09 14:02:17 +0100
commit98b9506983b57d7da1f5543f8cefd68dca0827ae (patch)
tree790c3977931a8a1075ec26058f44d4ca42e0500f /src/plugin_manager.py
parent04c283c55188bda7d0cdd87c345cbe5603552f09 (diff)
downloadpoezio-98b9506983b57d7da1f5543f8cefd68dca0827ae.tar.gz
poezio-98b9506983b57d7da1f5543f8cefd68dca0827ae.tar.bz2
poezio-98b9506983b57d7da1f5543f8cefd68dca0827ae.tar.xz
poezio-98b9506983b57d7da1f5543f8cefd68dca0827ae.zip
Remove poezio_event_handler to keep only event_handler
Diffstat (limited to 'src/plugin_manager.py')
-rw-r--r--src/plugin_manager.py29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/plugin_manager.py b/src/plugin_manager.py
index bdf94a5b..067cb10e 100644
--- a/src/plugin_manager.py
+++ b/src/plugin_manager.py
@@ -34,7 +34,6 @@ class PluginManager(object):
self.plugins = {} # module name -> plugin object
self.commands = {} # module name -> dict of commands loaded for the module
self.event_handlers = {} # module name -> list of event_name/handler pairs loaded for the module
- self.poezio_event_handlers = {}
def load(self, name):
if name in self.plugins:
@@ -61,7 +60,6 @@ class PluginManager(object):
self.modules[name] = module
self.commands[name] = {}
self.event_handlers[name] = []
- self.poezio_event_handlers[name] = []
self.plugins[name] = module.Plugin(self, self.core, plugins_conf_dir)
def unload(self, name):
@@ -70,15 +68,12 @@ class PluginManager(object):
for command in self.commands[name].keys():
del self.core.commands[command]
for event_name, handler in self.event_handlers[name]:
- self.core.xmpp.del_event_handler(event_name, handler)
- for handler in self.poezio_event_handlers[name]:
- self.core.events.del_event_handler(None, handler)
+ self.del_event_handler(name, event_name, handler)
self.plugins[name].unload()
del self.plugins[name]
del self.commands[name]
del self.event_handlers[name]
- del self.poezio_event_handlers[name]
except Exception as e:
import traceback
self.core.information(_("Could not unload plugin (may not be safe to try again): ") + traceback.format_exc())
@@ -97,26 +92,22 @@ class PluginManager(object):
commands[name] = (handler, help, completion)
self.core.commands[name] = (handler, help, completion)
- def add_event_handler(self, module_name, event_name, handler):
+ def add_event_handler(self, module_name, event_name, handler, position=0):
eh = self.event_handlers[module_name]
eh.append((event_name, handler))
- self.core.xmpp.add_event_handler(event_name, handler)
+ if event_name in self.core.events.events:
+ self.core.events.add_event_handler(event_name, handler, position)
+ else:
+ self.core.xmpp.add_event_handler(event_name, handler)
def del_event_handler(self, module_name, event_name, handler):
- self.core.xmpp.del_event_handler(event_name, handler)
+ if event_name in self.core.events.events:
+ self.core.events.del_event_handler(None, handler)
+ else:
+ self.core.xmpp.del_event_handler(event_name, handler)
eh = self.event_handlers[module_name]
eh = list(filter(lambda e : e != (event_name, handler), eh))
- def add_poezio_event_handler(self, module_name, event_name, handler, position):
- eh = self.poezio_event_handlers[module_name]
- eh.append(handler)
- self.core.events.add_event_handler(event_name, handler, position)
-
- def del_poezio_event_handler(self, module_name, event_name, handler):
- self.core.events.del_event_handler(None, handler)
- eh = self.poezio_event_handlers[module_name]
- eh = list(filter(lambda e : e != handler, eh))
-
def completion_load(self, the_input):
"""
completion function that completes the name of the plugins, from