use NEC to handle account creation events
This commit is contained in:
parent
375c9cf05e
commit
60e8c63a29
|
@ -823,9 +823,11 @@ class Connection(CommonConnection, ConnectionHandlers):
|
|||
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 @@ class Connection(CommonConnection, ConnectionHandlers):
|
|||
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 @@ class Connection(CommonConnection, ConnectionHandlers):
|
|||
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,
|
||||
|
|
|
@ -1232,4 +1232,12 @@ class ArchivingPreferencesChangedReceivedEvent(nec.NetworkIncomingEvent):
|
|||
elif self.stanza.getTag('itemremove'):
|
||||
for item in pref.getTags('item'):
|
||||
self.removed_items.append(item.getAttr('jid'))
|
||||
return True
|
||||
return True
|
||||
|
||||
class AccountCreatedEvent(nec.NetworkIncomingEvent):
|
||||
name = 'account-created'
|
||||
base_network_events = []
|
||||
|
||||
class AccountNotCreatedEvent(nec.NetworkIncomingEvent):
|
||||
name = 'account-not-created'
|
||||
base_network_events = []
|
|
@ -3447,9 +3447,10 @@ class AccountCreationWizardWindow:
|
|||
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 @@ class AccountCreationWizardWindow:
|
|||
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 @@ class AccountCreationWizardWindow:
|
|||
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 @@ class AccountCreationWizardWindow:
|
|||
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
|
||||
|
||||
|
|
|
@ -585,11 +585,6 @@ class Interface:
|
|||
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 @@ class Interface:
|
|||
'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],
|
||||
|
|
|
@ -127,6 +127,8 @@ class Remote:
|
|||
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 @@ class Remote:
|
|||
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:
|
||||
|
|
Loading…
Reference in New Issue