commit 8251c5b6d9cca735e91770433c7082013f73135c
parent 50fed3dce59196aeee29e63c737f25357b0a5a01
Author: ThomasV <thomasv@gitorious>
Date: Mon, 20 Apr 2015 10:33:32 +0200
fix #1057
Diffstat:
3 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
@@ -160,8 +160,12 @@ class ElectrumGui:
return
wizard = installwizard.InstallWizard(self.config, self.network, storage)
wizard.show()
+ if action == 'new':
+ action, wallet_type = wizard.restore_or_create()
+ else:
+ wallet_type = None
try:
- wallet = wizard.run(action)
+ wallet = wizard.run(action, wallet_type)
except BaseException as e:
traceback.print_exc(file=sys.stdout)
QMessageBox.information(None, _('Error'), str(e), _('OK'))
diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
@@ -314,13 +314,9 @@ class InstallWizard(QDialog):
return run_password_dialog(self, None, self)[2]
+ def run(self, action, wallet_type):
-
-
- def run(self, action):
-
- if action == 'new':
- action, wallet_type = self.restore_or_create()
+ if action in ['create', 'restore']:
if wallet_type == 'multisig':
wallet_type = self.choice(_("Multi Signature Wallet"), 'Select wallet type', [('2of2', _("2 of 2")),('2of3',_("2 of 3"))])
if not wallet_type:
@@ -332,7 +328,6 @@ class InstallWizard(QDialog):
return
elif wallet_type == 'twofactor':
wallet_type = '2fa'
-
if action == 'create':
self.storage.put('wallet_type', wallet_type, False)
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -274,11 +274,12 @@ class ElectrumWindow(QMainWindow):
# run wizard
if action is not None:
wallet = self.gui_object.run_wizard(storage, action)
- if not wallet:
- self.show()
- return
else:
wallet.start_threads(self.network)
+ # keep current wallet
+ if not wallet:
+ self.show()
+ return
# close current wallet
self.close_wallet()
# load new wallet in gui
@@ -329,11 +330,19 @@ class ElectrumWindow(QMainWindow):
self.hide()
wizard = installwizard.InstallWizard(self.config, self.network, storage)
- wallet = wizard.run('new')
+ action, wallet_type = wizard.restore_or_create()
+ if not action:
+ self.show()
+ return
+ # close current wallet, but keep a reference to it
+ self.close_wallet()
+ wallet = wizard.run(action, wallet_type)
if wallet:
- if self.wallet:
- self.close_wallet()
self.load_wallet(wallet)
+ else:
+ self.wallet.start_threads()
+ self.load_wallet(self.wallet)
+
self.show()