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:
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()