URI: 
       tRevert "Improved password wrapper." - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit bad90305544e3a07b243882d0411632dcb082d22
   DIR parent b0f7411a0a1f4fbe634fb28760c3eeba1542e444
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sun,  5 Jul 2015 17:56:55 +0200
       
       Revert "Improved password wrapper."
       
       This reverts commit c33175c31279e68d2375e97aae1e1f7acb3ebf7b.
       
       Diffstat:
         M gui/qt/main_window.py               |      55 +++++++++++++++----------------
       
       1 file changed, 26 insertions(+), 29 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -1043,31 +1043,7 @@ class ElectrumWindow(QMainWindow):
                self.completions.setStringList(l)
        
            def protected(func):
       -        '''Password request wrapper.  The password is passed to the function
       -        as the 'password' named argument.  Return value is a 2-element
       -        tuple: (Cancelled, Result) where Cancelled is True if the user
       -        cancels the password request, otherwise False.  Result is the
       -        return value of the wrapped function, or None if cancelled.
       -        '''
       -        def request_password(self, *args, **kwargs):
       -            parent = kwargs.get('parent', self)
       -            if self.wallet.use_encryption:
       -                while True:
       -                    password = self.password_dialog(parent=parent)
       -                    if not password:
       -                        return True, None
       -                    try:
       -                        self.wallet.check_password(password)
       -                        break
       -                    except Exception as e:
       -                        QMessageBox.warning(parent, _('Error'), str(e), _('OK'))
       -                        continue
       -            else:
       -                password = None
       -
       -            kwargs['password'] = password
       -            return False, func(self, *args, **kwargs)
       -        return request_password
       +        return lambda s, *args: s.do_protect(func, args)
        
            def read_send_tab(self):
                if self.payment_request and self.payment_request.has_expired():
       t@@ -1886,6 +1862,29 @@ class ElectrumWindow(QMainWindow):
                d = QRDialog(data, self, title)
                d.exec_()
        
       +
       +    def do_protect(self, func, args):
       +        if self.wallet.use_encryption:
       +            while True:
       +                password = self.password_dialog()
       +                if not password:
       +                    return
       +                try:
       +                    self.wallet.check_password(password)
       +                    break
       +                except Exception as e:
       +                    QMessageBox.warning(self, _('Error'), str(e), _('OK'))
       +                    continue
       +        else:
       +            password = None
       +
       +        if args != (False,):
       +            args = (self,) + args + (password,)
       +        else:
       +            args = (self, password)
       +        apply(func, args)
       +
       +
            def show_public_keys(self, address):
                if not address: return
                try:
       t@@ -2065,10 +2064,8 @@ class ElectrumWindow(QMainWindow):
            def show_warning(self, msg):
                QMessageBox.warning(self, _('Warning'), msg, _('OK'))
        
       -    def password_dialog(self, msg=None, parent=None):
       -        if parent == None:
       -            parent = self
       -        d = QDialog(parent)
       +    def password_dialog(self, msg=None):
       +        d = QDialog(self)
                d.setModal(1)
                d.setWindowTitle(_("Enter Password"))
                pw = QLineEdit()