commit 744eee68586bcfe7608448f5fdf3482438219d07
parent 58c6518b30189ca7579cee951800071951d4928c
Author: ThomasV <thomasv@gitorious>
Date: Tue, 26 Aug 2014 16:23:24 +0200
wizard integration
Diffstat:
3 files changed, 23 insertions(+), 37 deletions(-)
diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
@@ -33,6 +33,7 @@ class InstallWizard(QDialog):
self.network = network
self.storage = storage
self.setMinimumSize(575, 400)
+ self.setMaximumSize(575, 400)
self.setWindowTitle('Electrum')
self.connect(self, QtCore.SIGNAL('accept'), self.accept)
@@ -313,16 +314,19 @@ class InstallWizard(QDialog):
return None
- def question(self, msg, icon=None):
+ def question(self, msg, yes_label=_('OK'), no_label=_('Cancel'), icon=None):
vbox = QVBoxLayout()
self.set_layout(vbox)
if icon:
logo = QLabel()
logo.setPixmap(icon)
vbox.addWidget(logo)
- vbox.addWidget(QLabel(msg))
+
+ label = QLabel(msg)
+ label.setWordWrap(True)
+ vbox.addWidget(label)
vbox.addStretch(1)
- vbox.addLayout(ok_cancel_buttons(self, _('OK')))
+ vbox.addLayout(ok_cancel_buttons(self, yes_label, no_label))
if not self.exec_():
return None
return True
@@ -343,29 +347,6 @@ class InstallWizard(QDialog):
return run_password_dialog(self, None, self)[2]
- def create_cold_seed(self, wallet):
- from electrum.bitcoin import mnemonic_to_seed, bip32_root
- msg = _('You are about to generate the cold storage seed of your wallet.') + '\n' \
- + _('For safety, you should do this on an offline computer.')
- icon = QPixmap( ':icons/cold_seed.png').scaledToWidth(56)
- if not self.question(msg, icon):
- return
-
- cold_seed = wallet.make_seed()
- if not self.show_seed(cold_seed, 'cold'):
- return
- if not self.verify_seed(cold_seed, 'cold'):
- return
-
- hex_seed = mnemonic_to_seed(cold_seed,'').encode('hex')
- xpriv, xpub = bip32_root(hex_seed)
- wallet.add_master_public_key('cold/', xpub)
-
- msg = _('Your master public key was saved in your wallet file.') + '\n'\
- + _('Your cold seed must be stored on paper; it is not in the wallet file.')+ '\n\n' \
- + _('This program is about to close itself.') + '\n'\
- + _('You will need to reopen your wallet on an online computer, in order to complete the creation of your wallet')
- self.show_message(msg)
@@ -429,14 +410,13 @@ class InstallWizard(QDialog):
return
self.waiting_dialog(wallet.synchronize)
- elif action == 'create_cold_seed':
- self.create_cold_seed(wallet)
- return
-
else:
- r = run_hook('install_wizard_action', self, wallet, action)
- if not r:
- raise BaseException('unknown wizard action', action)
+ f = run_hook('get_wizard_action', self, wallet, action)
+ if not f:
+ raise BaseException('unknown wizard action', action)
+ r = f(wallet, self)
+ if not r:
+ return
# next action
action = wallet.get_action()
diff --git a/gui/qt/util.py b/gui/qt/util.py
@@ -94,10 +94,10 @@ def close_button(dialog, label=_("Close") ):
b.setDefault(True)
return hbox
-def ok_cancel_buttons2(dialog, ok_label=_("OK") ):
+def ok_cancel_buttons2(dialog, ok_label=_("OK"), cancel_label=_('Cancel')):
hbox = QHBoxLayout()
hbox.addStretch(1)
- b = QPushButton(_("Cancel"))
+ b = QPushButton(cancel_label)
hbox.addWidget(b)
b.clicked.connect(dialog.reject)
b = QPushButton(ok_label)
@@ -106,8 +106,8 @@ def ok_cancel_buttons2(dialog, ok_label=_("OK") ):
b.setDefault(True)
return hbox, b
-def ok_cancel_buttons(dialog, ok_label=_("OK") ):
- hbox, b = ok_cancel_buttons2(dialog, ok_label)
+def ok_cancel_buttons(dialog, ok_label=_("OK"), cancel_label=_('Cancel')):
+ hbox, b = ok_cancel_buttons2(dialog, ok_label, cancel_label)
return hbox
def line_dialog(parent, title, label, ok_label, default=None):
diff --git a/lib/wallet.py b/lib/wallet.py
@@ -1464,6 +1464,12 @@ class Wallet_2of2(BIP39_Wallet):
self.add_master_public_key(name, xpub)
self.add_master_private_key(name, xprv, password)
+ def add_cosigner_xpub(self, seed, name):
+ # store only master xpub
+ xprv, xpub = bip32_root(mnemonic_to_seed(seed,''))
+ xprv, xpub = bip32_private_derivation(xprv, "m/", self.root_derivation)
+ self.add_master_public_key(name, xpub)
+
class Wallet_2of3(Wallet_2of2):