Skip to content
Snippets Groups Projects
Commit 51cfe177 authored by Yann Leboulanger's avatar Yann Leboulanger
Browse files

ability for a plugin to raise NodeProcessed

parent aaa36ea7
No related branches found
No related tags found
No related merge requests found
...@@ -27,6 +27,7 @@ Global Events Dispatcher module. ...@@ -27,6 +27,7 @@ Global Events Dispatcher module.
import traceback import traceback
from common.xmpp import NodeProcessed
import logging import logging
log = logging.getLogger('gajim.c.ged') log = logging.getLogger('gajim.c.ged')
...@@ -86,11 +87,16 @@ class GlobalEventsDispatcher(object): ...@@ -86,11 +87,16 @@ class GlobalEventsDispatcher(object):
def raise_event(self, event_name, *args, **kwargs): def raise_event(self, event_name, *args, **kwargs):
log.debug('%s\nArgs: %s'%(event_name, str(args))) log.debug('%s\nArgs: %s'%(event_name, str(args)))
if event_name in self.handlers: if event_name in self.handlers:
node_processed = False
for priority, handler in self.handlers[event_name]: for priority, handler in self.handlers[event_name]:
try: try:
if handler(*args, **kwargs): if handler(*args, **kwargs):
return True return True
except NodeProcessed:
node_processed = True
except Exception, e: except Exception, e:
log.error('Error while running an even handler: %s' % \ log.error('Error while running an even handler: %s' % \
handler) handler)
traceback.print_exc() traceback.print_exc()
if node_processed:
raise NodeProcessed
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment