changeset 353529a960cb in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=353529a960cb
description: use NEC to handle account creation events

diffstat:

 src/common/connection.py                 |  22 ++++++++++++++--------
 src/common/connection_handlers_events.py |  10 +++++++++-
 src/config.py                            |  26 ++++++++++++++------------
 src/gui_interface.py                     |   6 ------
 src/remote_control.py                    |   5 +++++
 5 files changed, 42 insertions(+), 27 deletions(-)

diffs (186 lines):

diff -r 32b8728d0b1f -r 353529a960cb src/common/connection.py
--- a/src/common/connection.py  Sun Nov 07 17:52:21 2010 +0100
+++ b/src/common/connection.py  Sun Nov 07 18:26:31 2010 +0100
@@ -823,9 +823,11 @@
                 self.new_account_info['hostname'] == data[0]:
                     # it's a new account
                     if not data[1]: # wrong answer
-                        self.dispatch('ACC_NOT_OK', (
-                                _('Server %(name)s answered wrongly to 
register request: '
-                                '%(error)s') % {'name': data[0], 'error': 
data[3]}))
+                        reason = _('Server %(name)s answered wrongly to '
+                            'register request: %(error)s') % {'name': data[0],
+                            'error': data[3]}
+                        gajim.nec.push_incoming_event(AccountNotCreated(None,
+                            conn=self, reason=reason))
                         return
                     is_form = data[2]
                     conf = data[1]
@@ -833,13 +835,16 @@
                     if self.new_account_form:
                         def _on_register_result(result):
                             if not common.xmpp.isResultNode(result):
-                                self.dispatch('ACC_NOT_OK', 
(result.getError()))
+                                
gajim.nec.push_incoming_event(AccountNotCreated(
+                                    None, conn=self, reason=result.getError()))
                                 return
                             if gajim.HAVE_GPG:
                                 self.USE_GPG = True
                                 self.gpg = GnuPG.GnuPG(gajim.config.get(
                                         'use_gpg_agent'))
-                            self.dispatch('ACC_OK', (self.new_account_info))
+                            gajim.nec.push_incoming_event(
+                                AccountCreatedEvent(None, conn=self,
+                                account_info = self.new_account_info))
                             self.new_account_info = None
                             self.new_account_form = None
                             if self.connection:
@@ -858,9 +863,10 @@
                             if self.new_account_form.keys().sort() != \
                             conf.keys().sort():
                                 # requested config has changed since first 
connection
-                                self.dispatch('ACC_NOT_OK', (_(
-                                        'Server %s provided a different 
registration form')\
-                                        % data[0]))
+                                reason = _('Server %s provided a different '
+                                    'registration form') % data[0]
+                                
gajim.nec.push_incoming_event(AccountNotCreated(
+                                    None, conn=self, reason=reason))
                                 return
                             common.xmpp.features_nb.register(self.connection,
                                     self._hostname, self.new_account_form,
diff -r 32b8728d0b1f -r 353529a960cb src/common/connection_handlers_events.py
--- a/src/common/connection_handlers_events.py  Sun Nov 07 17:52:21 2010 +0100
+++ b/src/common/connection_handlers_events.py  Sun Nov 07 18:26:31 2010 +0100
@@ -1232,4 +1232,12 @@
         elif self.stanza.getTag('itemremove'):
             for item in pref.getTags('item'):
                 self.removed_items.append(item.getAttr('jid'))
-        return True
\ No newline at end of file
+        return True
+
+class AccountCreatedEvent(nec.NetworkIncomingEvent):
+    name = 'account-created'
+    base_network_events = []
+
+class AccountNotCreatedEvent(nec.NetworkIncomingEvent):
+    name = 'account-not-created'
+    base_network_events = []
\ No newline at end of file
diff -r 32b8728d0b1f -r 353529a960cb src/config.py
--- a/src/config.py     Sun Nov 07 17:52:21 2010 +0100
+++ b/src/config.py     Sun Nov 07 18:26:31 2010 +0100
@@ -3447,9 +3447,10 @@
             self.new_acc_connected)
         gajim.ged.register_event_handler('NEW_ACC_NOT_CONNECTED', ged.CORE,
             self.new_acc_not_connected)
-        gajim.ged.register_event_handler('ACC_OK', ged.CORE, self.acc_is_ok)
-        gajim.ged.register_event_handler('ACC_NOT_OK', ged.CORE,
-            self.acc_is_not_ok)
+        gajim.ged.register_event_handler('account-created', ged.GUI1,
+            self._nec_acc_is_ok)
+        gajim.ged.register_event_handler('account-not-created', ged.GUI1,
+            self._nec_acc_is_not_ok)
 
     def on_wizard_window_destroy(self, widget):
         page = self.notebook.get_current_page()
@@ -3463,9 +3464,10 @@
             self.new_acc_connected)
         gajim.ged.remove_event_handler('NEW_ACC_NOT_CONNECTED', ged.CORE,
             self.new_acc_not_connected)
-        gajim.ged.remove_event_handler('ACC_OK', ged.CORE, self.acc_is_ok)
-        gajim.ged.remove_event_handler('ACC_NOT_OK', ged.CORE,
-            self.acc_is_not_ok)
+        gajim.ged.remove_event_handler('account-created', ged.GUI1,
+            self._nec_acc_is_ok)
+        gajim.ged.remove_event_handler('account-not-created', ged.GUI1,
+            self._nec_acc_is_not_ok)
         del gajim.interface.instances['account_creation_wizard']
 
     def on_register_server_features_button_clicked(self, widget):
@@ -3772,25 +3774,25 @@
         self.finish_label.set_markup(finish_text)
         self.notebook.set_current_page(6) # show finish page
 
-    def acc_is_ok(self, account, config):
+    def _nec_acc_is_ok(self, obj):
         """
         Account creation succeeded
         """
         # We receive events from all accounts from GED
-        if account != self.account:
+        if obj.conn.name != self.account:
             return
-        self.create_vars(config)
+        self.create_vars(obj.account_info)
         self.show_finish_page()
 
         if self.update_progressbar_timeout_id is not None:
             gobject.source_remove(self.update_progressbar_timeout_id)
 
-    def acc_is_not_ok(self, account, reason):
+    def _nec_acc_is_not_ok(self, obj):
         """
         Account creation failed
         """
         # We receive events from all accounts from GED
-        if account != self.account:
+        if obj.conn.name != self.account:
             return
         self.back_button.show()
         self.cancel_button.show()
@@ -3802,7 +3804,7 @@
         img = self.xml.get_object('finish_image')
         img.set_from_stock(gtk.STOCK_DIALOG_ERROR, gtk.ICON_SIZE_DIALOG)
         finish_text = '<big><b>%s</b></big>\n\n%s' % (_(
-            'An error occurred during account creation'), reason)
+            'An error occurred during account creation'), obj.reason)
         self.finish_label.set_markup(finish_text)
         self.notebook.set_current_page(6) # show finish page
 
diff -r 32b8728d0b1f -r 353529a960cb src/gui_interface.py
--- a/src/gui_interface.py      Sun Nov 07 17:52:21 2010 +0100
+++ b/src/gui_interface.py      Sun Nov 07 18:26:31 2010 +0100
@@ -585,11 +585,6 @@
             gajim.interface.instances[account]['pep_services'].items_received(
                     array[2])
 
-    def handle_event_acc_ok(self, account, array):
-        #('ACC_OK', account, (config))
-        if self.remote_ctrl:
-            self.remote_ctrl.raise_signal('NewAccount', (account, array))
-
     def handle_event_myvcard(self, account, array):
         nick = ''
         if 'NICKNAME' in array and array['NICKNAME']:
@@ -1811,7 +1806,6 @@
             'AGENT_REMOVED': [self.handle_event_agent_removed],
             'REGISTER_AGENT_INFO': [self.handle_event_register_agent_info],
             'AGENT_INFO_ITEMS': [self.handle_event_agent_info_items],
-            'ACC_OK': [self.handle_event_acc_ok],
             'MYVCARD': [self.handle_event_myvcard],
             'VCARD': [self.handle_event_vcard],
             'GC_NOTIFY': [self.handle_event_gc_notify],
diff -r 32b8728d0b1f -r 353529a960cb src/remote_control.py
--- a/src/remote_control.py     Sun Nov 07 17:52:21 2010 +0100
+++ b/src/remote_control.py     Sun Nov 07 18:26:31 2010 +0100
@@ -127,6 +127,8 @@
             ged.POSTGUI, self.on_gc_message_received)
         gajim.ged.register_event_handler('our-show',
             ged.POSTGUI, self.on_our_status)
+        gajim.ged.register_event_handler('account-created',
+            ged.POSTGUI, self.on_account_created)
 
     def on_last_status_time(self, obj):
         self.raise_signal('LastStatusTime', (obj.conn.name, [
@@ -183,6 +185,9 @@
     def on_our_status(self, obj):
         self.raise_signal('AccountPresence', (obj.show, obj.conn.name))
 
+    def on_account_created(self, obj):
+        self.raise_signal('NewAccount', (obj.conn.name, obj.account_info))
+
     def raise_signal(self, signal, arg):
         if self.signal_object:
             try:
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to