changeset aea349158914 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=aea349158914
description: don't traceback when remove a disabled account. Fixes #5647
diffstat:
src/config.py | 61 +++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 37 insertions(+), 24 deletions(-)
diffs (112 lines):
diff -r 5fecaef990ba -r aea349158914 src/config.py
--- a/src/config.py Tue Mar 09 21:48:57 2010 +0100
+++ b/src/config.py Wed Mar 10 13:51:55 2010 +0100
@@ -1740,9 +1740,9 @@
return
win_opened = False
- if gajim.interface.msg_win_mgr.get_controls(acct = account):
+ if gajim.interface.msg_win_mgr.get_controls(acct=account):
win_opened = True
- else:
+ elif account in gajim.interface.instances:
for key in gajim.interface.instances[account]:
if gajim.interface.instances[account][key] and
key != \
'remove_account':
@@ -1750,10 +1750,13 @@
break
# Detect if we have opened windows for this account
def remove(account):
- if 'remove_account' in
gajim.interface.instances[account]:
+ if account in gajim.interface.instances and \
+ 'remove_account' in gajim.interface.instances[account]:
gajim.interface.instances[account]['remove_account'].window.\
present()
else:
+ if not account in gajim.interface.instances:
+ gajim.interface.instances[account] = {}
gajim.interface.instances[account]['remove_account'] = \
RemoveAccountWindow(account)
if win_opened:
@@ -2706,12 +2709,19 @@
def on_remove_button_clicked(self, widget):
def remove():
- if gajim.connections[self.account].connected and \
+ if self.account in gajim.connections and \
+ gajim.connections[self.account].connected and \
not self.remove_and_unregister_radiobutton.get_active():
# change status to offline only if we will not
remove this JID from
# server
gajim.connections[self.account].change_status('offline', 'offline')
if self.remove_and_unregister_radiobutton.get_active():
+ if not self.account in gajim.connections:
+ dialogs.ErrorDialog(
+ _('Account is disabled'),
+ _('To unregister from a server,
account must be '
+ 'enabled.'))
+ return
if not gajim.connections[self.account].password:
def on_ok(passphrase, checked):
if passphrase == -1:
@@ -2731,7 +2741,8 @@
else:
self._on_remove_success(True)
- if gajim.connections[self.account].connected:
+ if self.account in gajim.connections and \
+ gajim.connections[self.account].connected:
dialogs.ConfirmationDialog(
_('Account "%s" is connected to the server') %
self.account,
_('If you remove it, the connection will be
lost.'),
@@ -2745,29 +2756,31 @@
if not res:
return
# Close all opened windows
- gajim.interface.roster.close_all(self.account, force = True)
- gajim.connections[self.account].disconnect(on_purpose = True)
- del gajim.connections[self.account]
+ gajim.interface.roster.close_all(self.account, force=True)
+ if self.account in gajim.connections:
+
gajim.connections[self.account].disconnect(on_purpose=True)
+ del gajim.connections[self.account]
gajim.logger.remove_roster(gajim.get_jid_from_account(self.account))
gajim.config.del_per('accounts', self.account)
gajim.interface.save_config()
del gajim.interface.instances[self.account]
- del gajim.interface.minimized_controls[self.account]
- del gajim.nicks[self.account]
- del gajim.block_signed_in_notifications[self.account]
- del gajim.groups[self.account]
- gajim.contacts.remove_account(self.account)
- del gajim.gc_connected[self.account]
- del gajim.automatic_rooms[self.account]
- del gajim.to_be_removed[self.account]
- del gajim.newly_added[self.account]
- del gajim.sleeper_state[self.account]
- del gajim.encrypted_chats[self.account]
- del gajim.last_message_time[self.account]
- del gajim.status_before_autoaway[self.account]
- del gajim.transport_avatar[self.account]
- del gajim.gajim_optional_features[self.account]
- del gajim.caps_hash[self.account]
+ if self.account in gajim.nicks:
+ del gajim.interface.minimized_controls[self.account]
+ del gajim.nicks[self.account]
+ del gajim.block_signed_in_notifications[self.account]
+ del gajim.groups[self.account]
+ gajim.contacts.remove_account(self.account)
+ del gajim.gc_connected[self.account]
+ del gajim.automatic_rooms[self.account]
+ del gajim.to_be_removed[self.account]
+ del gajim.newly_added[self.account]
+ del gajim.sleeper_state[self.account]
+ del gajim.encrypted_chats[self.account]
+ del gajim.last_message_time[self.account]
+ del gajim.status_before_autoaway[self.account]
+ del gajim.transport_avatar[self.account]
+ del gajim.gajim_optional_features[self.account]
+ del gajim.caps_hash[self.account]
if len(gajim.connections) >= 2: # Do not merge accounts if only
one exists
gajim.interface.roster.regroup =
gajim.config.get('mergeaccounts')
else:
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits