import PyQt4.QtCore as QtCore
from electrum.i18n import _
from electrum import mnemonic
-from qrcodewidget import QRCodeWidget
+from qrcodewidget import QRCodeWidget, QRDialog
from util import close_button
+from qrtextedit import QRTextEdit
class SeedDialog(QDialog):
def __init__(self, parent, seed, imported_keys):
QDialog.__init__(self, parent)
self.setModal(1)
+ self.setMinimumWidth(400)
self.setWindowTitle('Electrum' + ' - ' + _('Seed'))
- self.parent = parent
-
- vbox = make_seed_dialog(seed, imported_keys)
+ vbox = show_seed_box(seed)
+ if imported_keys:
+ vbox.addWidget(QLabel("<b>"+_("WARNING")+":</b> " + _("Your wallet contains imported keys. These keys cannot be recovered from seed.") + "</b><p>"))
vbox.addLayout(close_button(self))
self.setLayout(vbox)
-
-class PrivateKeysDialog(QDialog):
- def __init__(self, parent, private_keys):
- QDialog.__init__(self, parent)
- self.setModal(1)
- self.setWindowTitle('Electrum' + ' - ' + _('Master Private Keys'))
- self.parent = parent
- vbox = QVBoxLayout(self)
- vbox.addWidget(QLabel(_("The seed has been removed from the wallet. It contains the following master private keys")+ ":"))
- for k,v in sorted(private_keys.items()):
- vbox.addWidget(QLabel(k))
- vbox.addWidget(QLineEdit(v))
-
- vbox.addLayout(close_button(self))
-
-
-
+def icon_filename(sid):
+ if sid == 'cold':
+ return ":icons/cold_seed.png"
+ elif sid == 'hot':
+ return ":icons/hot_seed.png"
+ else:
+ return ":icons/seed.png"
+
-def make_seed_dialog(seed, imported_keys):
- words = mnemonic.mn_encode(seed)
- brainwallet = ' '.join(words)
+def show_seed_box(seed, sid=None):
- label1 = QLabel(_("Your wallet generation seed is")+ ":")
+ save_msg = _("Please save these %d words on paper (order is important).")%len(seed.split()) + " "
+ qr_msg = _("Your seed is also displayed as QR code, in case you want to transfer it to a mobile phone.") + "<p>"
+ warning_msg = "<b>"+_("WARNING")+":</b> " + _("Never disclose your seed. Never type it on a website.") + "</b><p>"
- seed_text = QTextEdit(brainwallet)
- seed_text.setReadOnly(True)
- seed_text.setMaximumHeight(130)
+ if sid is None:
+ msg = _("Your wallet generation seed is")
+ msg2 = save_msg + " " \
+ + _("This seed will allow you to recover your wallet in case of computer failure.") + "<br/>" \
+ + warning_msg
- msg2 = _("Please write down or memorize these %d words (order is important).")%len(words) + " " \
- + _("This seed will allow you to recover your wallet in case of computer failure.") + " " \
- + _("Your seed is also displayed as QR code, in case you want to transfer it to a mobile phone.") + "<p>" \
- + "<b>"+_("WARNING")+":</b> " + _("Never disclose your seed. Never type it on a website.") + "</b><p>"
- if imported_keys:
- msg2 += "<b>"+_("WARNING")+":</b> " + _("Your wallet contains imported keys. These keys cannot be recovered from seed.") + "</b><p>"
- label2 = QLabel(msg2)
- label2.setWordWrap(True)
-
- logo = QLabel()
- logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(56))
- logo.setMaximumWidth(60)
-
- qrw = QRCodeWidget(seed)
-
- grid = QGridLayout()
-
- grid.addWidget(logo, 0, 0)
- grid.addWidget(label1, 0, 1)
-
- grid.addWidget(seed_text, 1, 0, 1, 2)
-
- grid.addWidget(qrw, 0, 2, 2, 1)
-
- vbox = QVBoxLayout()
- vbox.addLayout(grid)
- vbox.addWidget(label2)
-
- return vbox
+ elif sid == 'cold':
+ msg = _("Your cold storage seed is")
+ msg2 = save_msg + " " \
+ + _("This seed will be permanently deleted from your wallet file. Make sure you have saved it before you press 'next'") + " " \
+
+ elif sid == 'hot':
+ msg = _("Your hot seed is")
+ msg2 = save_msg + " " \
+ + _("If you ever need to recover your wallet from seed, you will need both this seed and your cold seed.") + " " \
+
+ label1 = QLabel(msg+ ":")
+ seed_text = QRTextEdit(seed)
+ seed_text.setReadOnly(True)
+ seed_text.setMaximumHeight(130)
+
+ label2 = QLabel(msg2)
+ label2.setWordWrap(True)
+
+ logo = QLabel()
+
+ logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
+ logo.setMaximumWidth(60)
+
+ grid = QGridLayout()
+ grid.addWidget(logo, 0, 0)
+ grid.addWidget(label1, 0, 1)
+ grid.addWidget(seed_text, 1, 0, 1, 2)
+ #qrw = QRCodeWidget(seed)
+ #grid.addWidget(qrw, 0, 2, 2, 1)
+ vbox = QVBoxLayout()
+ vbox.addLayout(grid)
+ vbox.addWidget(label2)
+ vbox.addStretch(1)
+
+ return vbox
+
+
+def enter_seed_box(msg, sid=None):
+
+ vbox = QVBoxLayout()
+ logo = QLabel()
+ logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
+ logo.setMaximumWidth(60)
+
+ label = QLabel(msg)
+ label.setWordWrap(True)
+
+ seed_e = QRTextEdit()
+ seed_e.setMaximumHeight(100)
+ seed_e.setTabChangesFocus(True)
+
+ vbox.addWidget(label)
+
+ grid = QGridLayout()
+ grid.addWidget(logo, 0, 0)
+ grid.addWidget(seed_e, 0, 1)
+
+ vbox.addLayout(grid)
+ return vbox, seed_e