From d6a76e58c4fecba9d940b7c75a1f33f20a1284a8 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Thu, 14 Apr 2005 07:58:54 +0000 Subject: [PATCH] gtkgui now registers to connections events --- src/common/connection.py | 4 ++-- src/config.py | 1 + src/gtkgui.py | 32 +++++++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/common/connection.py b/src/common/connection.py index a66e7074e..4ab911695 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -437,11 +437,11 @@ class connection: return -1 # END connect - def register_handler(self, event, funtion): + def register_handler(self, event, function): if event in self.handlers: self.handlers[event].append(function) - def unregister_handler(self, event, funtion): + def unregister_handler(self, event, function): if event in self.handlers: if function in self.handlers[event]: self.handlers[event].remove(function) diff --git a/src/config.py b/src/config.py index b5122e756..f73e3abb5 100644 --- a/src/config.py +++ b/src/config.py @@ -1123,6 +1123,7 @@ class Account_modification_window: Error_dialog(_('An account already has this name')) return gajim.connections[name] = connection.connection(name) + self.plugin.register_handlers(gajim.connections[name]) #if we neeed to register a new account if new_account_checkbutton.get_active(): self.plugin.send('NEW_ACC', None, (hostname, login, password, name, \ diff --git a/src/gtkgui.py b/src/gtkgui.py index 702d80af2..ac186678f 100644 --- a/src/gtkgui.py +++ b/src/gtkgui.py @@ -652,6 +652,33 @@ class interface: # update regular expressions self.make_regexps() + def register_handlers(self, conn): + conn.register_handler('ROSTER', self.handle_event_roster) + conn.register_handler('WARNING', self.handle_event_warning) + conn.register_handler('ERROR', self.handle_event_error) + conn.register_handler('STATUS', self.handle_event_status) + conn.register_handler('NOTIFY', self.handle_event_notify) + conn.register_handler('MSG', self.handle_event_msg) + conn.register_handler('MSGERROR', self.handle_event_msgerror) + conn.register_handler('MSGSENT', self.handle_event_msgsent) + conn.register_handler('SUBSCRIBED', self.handle_event_subscribed) + conn.register_handler('UNSUBSCRIBED', self.handle_event_unsubscribed) + conn.register_handler('SUBSCRIBE', self.handle_event_subscribe) + conn.register_handler('AGENT_INFO', self.handle_event_agent_info) + conn.register_handler('AGENT_INFO_ITEMS', \ + self.handle_event_agent_info_items) + conn.register_handler('AGENT_INFO_INFO', \ + self.handle_event_agent_info_info) + conn.register_handler('QUIT', self.handle_event_quit) + conn.register_handler('ACC_OK', self.handle_event_acc_ok) + conn.register_handler('MYVCARD', self.handle_event_myvcard) + conn.register_handler('VCARD', self.handle_event_vcard) + conn.register_handler('OS_INFO', self.handle_event_os_info) + conn.register_handler('GC_MSG', self.handle_event_gc_msg) + conn.register_handler('GC_SUBJECT', self.handle_event_gc_subject) + conn.register_handler('BAD_PASSPHRASE', self.handle_event_bad_passphrase) + conn.register_handler('ROSTER_INFO', self.handle_event_roster_info) + def __init__(self): if gtk.pygtk_version >= (2, 6, 0): gtk.about_dialog_set_email_hook(self.on_launch_browser_mailer, 'mail') @@ -680,7 +707,6 @@ class interface: if pix: gtk.window_set_default_icon(pix) self.roster = Roster_window(self) - gobject.timeout_add(100, self.read_sleepy) self.sleeper = common.sleepy.Sleepy( \ gajim.config.get('autoawaytime')*60, \ gajim.config.get('autoxatime')*60) @@ -708,8 +734,12 @@ class interface: self.windows['add_remove_emoticons_window'] = \ Add_remove_emoticons_window(self) self.windows['roster'] = self.roster + + for account in gajim.connections: + self.register_handlers(gajim.connections[account]) gobject.timeout_add(100, self.autoconnect) + gobject.timeout_add(100, self.read_sleepy) if __name__ == '__main__': try: # Import Psyco if available