electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit bad90305544e3a07b243882d0411632dcb082d22
parent b0f7411a0a1f4fbe634fb28760c3eeba1542e444
Author: ThomasV <thomasv@gitorious>
Date:   Sun,  5 Jul 2015 17:56:55 +0200

Revert "Improved password wrapper."

This reverts commit c33175c31279e68d2375e97aae1e1f7acb3ebf7b.

Diffstat:
Mgui/qt/main_window.py | 55++++++++++++++++++++++++++-----------------------------
1 file changed, 26 insertions(+), 29 deletions(-)

diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py @@ -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(): @@ -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: @@ -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()