commit 8cc5ffc10aebfe9cf8c794e2b81bd0de461417df
parent 892aabc7aea89e188bde8be6d3c6c4af4247592e
Author: thomasv <thomasv@gitorious>
Date: Mon, 13 Feb 2012 15:11:31 +0100
password dialog
Diffstat:
M | client/gui_qt.py | | | 65 | ++++++++++++++++++++++++++++++++++++++++++++++++++--------------- |
1 file changed, 50 insertions(+), 15 deletions(-)
diff --git a/client/gui_qt.py b/client/gui_qt.py
@@ -393,24 +393,59 @@ class ElectrumWindow(QMainWindow):
def show_seed_dialog(self):
import mnemonic
- pw, ok = QtGui.QInputDialog.getText(self, 'Password', 'Password:')
- if ok:
- try:
- seed = self.wallet.pw_decode( self.wallet.seed, str(pw))
- except:
- QMessageBox.warning(self, 'Error', 'Invalid Password', 'OK')
- return
-
- msg = "Your wallet generation seed is:\n\n" + seed \
- + "\n\nPlease keep it in a safe place; if you lose it, you will not be able to restore your wallet.\n\n" \
- + "Equivalently, your wallet seed can be stored and recovered with the following mnemonic code:\n\n\"" \
- + ' '.join(mnemonic.mn_encode(seed)) + "\""
- QMessageBox.information(self, 'Seed', msg, 'OK')
+ if self.wallet.use_encryption:
+ password = self.password_dialog()
+ if not password: return
+ else:
+ password = None
+
+ try:
+ seed = self.wallet.pw_decode( self.wallet.seed, password)
+ except:
+ QMessageBox.warning(self, 'Error', 'Invalid Password', 'OK')
+ return
- def change_password_dialog(self):
+ msg = "Your wallet generation seed is:\n\n" + seed \
+ + "\n\nPlease keep it in a safe place; if you lose it, you will not be able to restore your wallet.\n\n" \
+ + "Equivalently, your wallet seed can be stored and recovered with the following mnemonic code:\n\n\"" \
+ + ' '.join(mnemonic.mn_encode(seed)) + "\""
+
+ QMessageBox.information(self, 'Seed', msg, 'OK')
+
+
+ def password_dialog(self):
d = QDialog(self)
d.setModal(1)
+ pw = QLineEdit()
+ pw.setEchoMode(2)
+
+ grid = QGridLayout()
+ grid.setSpacing(8)
+
+ msg = 'Please enter your password'
+
+ grid.addWidget(QLabel(msg), 0, 0, 1, 2)
+
+ grid.addWidget(QLabel('Password'), 1, 0)
+ grid.addWidget(pw, 1, 1)
+
+ b = QPushButton("Cancel")
+ grid.addWidget(b, 5, 1)
+ b.clicked.connect(d.reject)
+
+ b = QPushButton("OK")
+ grid.addWidget(b, 5, 2)
+ b.clicked.connect(d.accept)
+
+ d.setLayout(grid)
+
+ if not d.exec_(): return
+ return str(pw.text())
+
+ def change_password_dialog(self):
+ d = QDialog(self)
+ d.setModal(1)
pw = QLineEdit()
pw.setEchoMode(2)
@@ -422,7 +457,7 @@ class ElectrumWindow(QMainWindow):
grid = QGridLayout()
grid.setSpacing(8)
- msg = 'Your wallet is encrypted. Use this dialog to change the password.\n To disable wallet encryption, enter an empty new password.' if self.wallet.use_encryption else 'Your wallet keys are not encrypted'
+ msg = 'Your wallet is encrypted. Use this dialog to change your password.\nTo disable wallet encryption, enter an empty new password.' if self.wallet.use_encryption else 'Your wallet keys are not encrypted'
grid.addWidget(QLabel(msg), 0, 0, 1, 2)
if self.wallet.use_encryption: