diff options
author | Yann Leboulanger <asterix@lagaule.org> | 2012-04-08 19:53:53 +0400 |
---|---|---|
committer | Yann Leboulanger <asterix@lagaule.org> | 2012-04-08 19:53:53 +0400 |
commit | 51cfe177a122ab51ecebcb84d922b5096b85cc4e (patch) | |
tree | 6f5fc3d9a5a77dc5980a367bbd86219fe212c5be | |
parent | aaa36ea7a3893d16e036834f54f13553b6f8ce79 (diff) |
ability for a plugin to raise NodeProcessed
-rw-r--r-- | src/common/ged.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/ged.py b/src/common/ged.py index 72920f05e..0d8766c1f 100644 --- a/src/common/ged.py +++ b/src/common/ged.py @@ -27,6 +27,7 @@ Global Events Dispatcher module. import traceback +from common.xmpp import NodeProcessed import logging log = logging.getLogger('gajim.c.ged') @@ -86,11 +87,16 @@ class GlobalEventsDispatcher(object): def raise_event(self, event_name, *args, **kwargs): log.debug('%s\nArgs: %s'%(event_name, str(args))) if event_name in self.handlers: + node_processed = False for priority, handler in self.handlers[event_name]: try: if handler(*args, **kwargs): return True + except NodeProcessed: + node_processed = True except Exception, e: log.error('Error while running an even handler: %s' % \ handler) traceback.print_exc() + if node_processed: + raise NodeProcessed |