Changeset 10090

Show
Ignore:
Timestamp:
07/31/08 08:14:48 (4 months ago)
Author:
asterix
Message:

use PassphraseDialog? only asynchronously. see #4147

Location:
trunk/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/config.py

    r10081 r10090  
    25542554                        if self.remove_and_unregister_radiobutton.get_active(): 
    25552555                                if not gajim.connections[self.account].password: 
    2556                                         passphrase = '' 
     2556                                        def on_ok(passphrase, checked): 
     2557                                                if passphrase == -1: 
     2558                                                        # We don't remove account cause we canceled pw window 
     2559                                                        return 
     2560                                                gajim.connections[self.account].password = passphrase 
     2561                                                gajim.connections[self.account].unregister_account( 
     2562                                                        self._on_remove_success) 
     2563 
    25572564                                        w = dialogs.PassphraseDialog( 
    25582565                                                _('Password Required'), 
    25592566                                                _('Enter your password for account %s') % self.account, 
    2560                                                 _('Save password')) 
    2561                                         passphrase, save = w.run() 
    2562                                         if passphrase == -1: 
    2563                                                 # We don't remove account cause we canceled pw window 
    2564                                                 return 
    2565                                         gajim.connections[self.account].password = passphrase 
     2567                                                _('Save password'), ok_handler=on_ok) 
     2568                                        return 
    25662569                                gajim.connections[self.account].unregister_account( 
    25672570                                        self._on_remove_success) 
     
    25732576                                _('Account "%s" is connected to the server') % self.account, 
    25742577                                _('If you remove it, the connection will be lost.'), 
    2575                                 on_response_ok = remove) 
     2578                                on_response_ok=remove) 
    25762579                else: 
    25772580                        remove() 
  • trunk/src/dialogs.py

    r10084 r10090  
    200200class PassphraseDialog: 
    201201        '''Class for Passphrase dialog''' 
    202         def run(self): 
    203                 '''Wait for OK button to be pressed and return passphrase/password''' 
    204                 rep = self.window.run() 
    205                 if rep == gtk.RESPONSE_OK: 
    206                         passphrase = self.passphrase_entry.get_text().decode('utf-8') 
    207                 else: 
    208                         passphrase = -1 
    209  
    210                 if self.check: 
    211                         save_passphrase_checkbutton = self.xml.\ 
    212                                 get_widget('save_passphrase_checkbutton') 
    213                         checked = save_passphrase_checkbutton.get_active() 
    214                 else: 
    215                         checked = False 
    216  
    217                 self.window.destroy() 
    218                 return passphrase, checked 
    219  
    220         def __init__(self, titletext, labeltext, checkbuttontext=None, is_modal=True, 
    221         ok_handler = None, cancel_handler = None): 
     202        def __init__(self, titletext, labeltext, checkbuttontext=None, 
     203        ok_handler=None, cancel_handler=None): 
    222204                self.xml = gtkgui_helpers.get_glade('passphrase_dialog.glade') 
    223205                self.window = self.xml.get_widget('passphrase_dialog') 
     
    230212 
    231213                self.cancel_handler = cancel_handler 
    232                 self.is_modal = is_modal 
    233                 if not is_modal and ok_handler is not None: 
    234                         self.ok_handler = ok_handler 
    235                         okbutton = self.xml.get_widget('ok_button') 
    236                         okbutton.connect('clicked', self.on_okbutton_clicked) 
    237                         cancelbutton = self.xml.get_widget('cancel_button') 
    238                         cancelbutton.connect('clicked', self.on_cancelbutton_clicked) 
     214                self.ok_handler = ok_handler 
     215                okbutton = self.xml.get_widget('ok_button') 
     216                okbutton.connect('clicked', self.on_okbutton_clicked) 
     217                cancelbutton = self.xml.get_widget('cancel_button') 
     218                cancelbutton.connect('clicked', self.on_cancelbutton_clicked) 
    239219 
    240220                self.xml.signal_autoconnect(self) 
     
    249229 
    250230        def on_okbutton_clicked(self, widget): 
     231                if not self.ok_handler: 
     232                        return 
     233 
    251234                passph = self.passphrase_entry.get_text().decode('utf-8') 
    252235 
  • trunk/src/gajim.py

    r10086 r10090  
    14411441                                dialogs.PassphraseDialog(_('Wrong Passphrase'), 
    14421442                                        _('Please retype your GPG passphrase or press Cancel.'), 
    1443                                         is_modal=False, ok_handler=(_ok, count), cancel_handler=_cancel) 
    1444  
    1445                 dialogs.PassphraseDialog(title, second, 
    1446                         is_modal=False, ok_handler=(_ok, 0), cancel_handler=_cancel) 
    1447  
     1443                                        ok_handler=(_ok, count), cancel_handler=_cancel) 
     1444 
     1445                dialogs.PassphraseDialog(title, second, ok_handler=(_ok, 0), 
     1446                cancel_handler=_cancel) 
    14481447 
    14491448        def handle_event_roster_info(self, account, array): 
  • trunk/src/roster_window.py

    r10087 r10090  
    19331933                        gajim.interface.systray.change_status('connecting') 
    19341934 
    1935         def send_status(self, account, status, txt, auto = False, to = None): 
     1935        def send_status(self, account, status, txt, auto=False, to=None): 
    19361936                child_iterA = self._get_account_iter(account, self.model) 
    19371937                if status != 'offline': 
     
    19511951                                                        correctly started (environment variable probably not \ 
    19521952                                                        correctly set)') 
    1953                                         w = dialogs.PassphraseDialog(_('Password Required'), text, 
    1954                                                 _('Save password')) 
    1955                                         passphrase, save = w.run() 
    1956                                         if passphrase == -1: 
     1953                                        def on_ok(passphrase, save): 
     1954                                                gajim.connections[account].password = passphrase 
     1955                                                if save: 
     1956                                                        gajim.config.set_per('accounts', account, 'savepass', True) 
     1957                                                        passwords.save_password(account, passphrase) 
     1958                                                keyid = gajim.config.get_per('accounts', account, 'keyid') 
     1959                                                if keyid and not gajim.connections[account].gpg: 
     1960                                                        dialog = dialogs.WarningDialog(_('GPG is not usable'), 
     1961                                                                _('You will be connected to %s without OpenPGP.') % \ 
     1962                                                                account) 
     1963                                                self.send_status_continue(account, status, txt, auto, to) 
     1964 
     1965                                        def on_cancel(): 
    19571966                                                if child_iterA: 
    19581967                                                        self.model[child_iterA][0] = \ 
     
    19611970                                                        gajim.interface.systray.change_status('offline') 
    19621971                                                self.update_status_combobox() 
    1963                                                 return 
    1964                                         gajim.connections[account].password = passphrase 
    1965                                         if save: 
    1966                                                 gajim.config.set_per('accounts', account, 'savepass', True) 
    1967                                                 passwords.save_password(account, passphrase) 
     1972 
     1973                                        w = dialogs.PassphraseDialog(_('Password Required'), text, 
     1974                                                _('Save password'), ok_handler=on_ok, 
     1975                                                cancel_handler=on_cancel) 
     1976                                        return 
    19681977 
    19691978                                keyid = gajim.config.get_per('accounts', account, 'keyid') 
     
    19721981                                                _('You will be connected to %s without OpenPGP.') % account) 
    19731982 
     1983                self.send_status_continue(account, status, txt, auto, to) 
     1984 
     1985        def send_status_continue(self, account, status, txt, auto, to): 
    19741986                if gajim.account_is_connected(account): 
    19751987                        if status == 'online' and gajim.interface.sleeper.getState() != \