changeset a08a9bccf39d in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=a08a9bccf39d
description: do not allow several password window for one account. Fixes #5151

diffstat:

 src/gajim.py |  14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diffs (50 lines):

diff -r 89f0828cd6be -r a08a9bccf39d src/gajim.py
--- a/src/gajim.py      Wed Jul 08 21:41:40 2009 +0200
+++ b/src/gajim.py      Thu Jul 09 14:52:32 2009 +0200
@@ -600,6 +600,9 @@
                        for request in self.gpg_passphrase.values():
                                if request:
                                        request.interrupt()
+                       # .keys() is needed because dict changes during loop
+                       for account in self.pass_dialog.keys():
+                               self.pass_dialog[account].window.destroy()
                if status == 'offline':
                        # sensitivity for this menuitem
                        if gajim.get_number_of_connected_accounts() == 0:
@@ -1526,6 +1529,8 @@
 
        def handle_event_password_required(self, account, array):
                #('PASSWORD_REQUIRED', account, None)
+               if account in self.pass_dialog:
+                       return
                text = _('Enter your password for account %s') % account
                if passwords.USER_HAS_GNOMEKEYRING and \
                not passwords.USER_USES_GNOMEKEYRING:
@@ -1538,13 +1543,16 @@
                                gajim.config.set_per('accounts', account, 
'savepass', True)
                                passwords.save_password(account, passphrase)
                        gajim.connections[account].set_password(passphrase)
+                       del self.pass_dialog[account]
 
                def on_cancel():
                        self.roster.set_state(account, 'offline')
                        self.roster.update_status_combobox()
+                       del self.pass_dialog[account]
 
-               dialogs.PassphraseDialog(_('Password Required'), text, _('Save 
password'),
-                       ok_handler=on_ok, cancel_handler=on_cancel)
+               self.pass_dialog[account] = dialogs.PassphraseDialog(
+                       _('Password Required'), text, _('Save password'), 
ok_handler=on_ok,
+                       cancel_handler=on_cancel)
 
        def handle_event_roster_info(self, account, array):
                #('ROSTER_INFO', account, (jid, name, sub, ask, groups))
@@ -3231,7 +3239,7 @@
                self.status_sent_to_users = {}
                self.status_sent_to_groups = {}
                self.gpg_passphrase = {}
-               self.gpg_dialog = None
+               self.pass_dialog = {}
                self.default_colors = {
                        'inmsgcolor': gajim.config.get('inmsgcolor'),
                        'outmsgcolor': gajim.config.get('outmsgcolor'),
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to