Author: asterix Date: 2007-12-28 11:20:41 +0100 (Fri, 28 Dec 2007) New Revision: 9207
Modified: trunk/src/gajim.py Log: ask GPG passphrases one by one for each account. fix #3644
Modified: trunk/src/gajim.py =================================================================== --- trunk/src/gajim.py 2007-12-27 23:33:05 UTC (rev 9206) +++ trunk/src/gajim.py 2007-12-28 10:20:41 UTC (rev 9207) @@ -1410,14 +1410,19 @@ gajim.connections[account].gpg_passphrase(self.gpg_passphrase[keyid]) callback() return + if self.gpg_dialog: + # A GPG dialog is already open, retry in 0.5 second + gobject.timeout_add(500, self.handle_event_gpg_password_required, + account, array) + return password_ok = False count = 0 title = _('Passphrase Required') second = _('Enter GPG key passphrase for account %s.') % account while not password_ok and count < 3: count += 1 - w = dialogs.PassphraseDialog(title, second, '') - passphrase, save = w.run() + self.gpg_dialog = dialogs.PassphraseDialog(title, second, '') + passphrase, save = self.gpg_dialog.run() if passphrase == -1: # User pressed cancel passphrase = None @@ -1427,6 +1432,7 @@ test_gpg_passphrase(passphrase) title = _('Wrong Passphrase') second = _('Please retype your GPG passphrase or press Cancel.') + self.gpg_dialog = None if passphrase != None: self.gpg_passphrase[keyid] = passphrase gobject.timeout_add(30000, self.forget_gpg_passphrase, keyid) @@ -2697,6 +2703,7 @@ self.status_sent_to_users = {} self.status_sent_to_groups = {} self.gpg_passphrase = {} + self.gpg_dialog = None self.default_colors = { 'inmsgcolor': gajim.config.get('inmsgcolor'), 'outmsgcolor': gajim.config.get('outmsgcolor'),