From 51cfe177a122ab51ecebcb84d922b5096b85cc4e Mon Sep 17 00:00:00 2001 From: Yann Leboulanger <asterix@lagaule.org> Date: Sun, 8 Apr 2012 17:53:53 +0200 Subject: [PATCH] ability for a plugin to raise NodeProcessed --- src/common/ged.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/common/ged.py b/src/common/ged.py index 72920f05e6..0d8766c1fa 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 -- GitLab