update for gtk gui. fixes #673
This commit is contained in:
46
gui/gtk.py
46
gui/gtk.py
@@ -62,20 +62,16 @@ def numbify(entry, is_int = False):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def show_seed_dialog(wallet, password, parent):
|
def show_seed_dialog(seed, parent):
|
||||||
if not wallet.seed:
|
if not seed:
|
||||||
show_message("No seed")
|
show_message("No seed")
|
||||||
return
|
return
|
||||||
try:
|
|
||||||
mnemonic = wallet.get_mnemonic(password)
|
|
||||||
except Exception:
|
|
||||||
show_message("Incorrect password")
|
|
||||||
return
|
|
||||||
dialog = Gtk.MessageDialog(
|
dialog = Gtk.MessageDialog(
|
||||||
parent = parent,
|
parent = parent,
|
||||||
flags = Gtk.DialogFlags.MODAL,
|
flags = Gtk.DialogFlags.MODAL,
|
||||||
buttons = Gtk.ButtonsType.OK,
|
buttons = Gtk.ButtonsType.OK,
|
||||||
message_format = "Your wallet generation seed is:\n\n" + '"' + mnemonic + '"'\
|
message_format = "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" )
|
+ "\n\nPlease keep it in a safe place; if you lose it, you will not be able to restore your wallet.\n\n" )
|
||||||
dialog.set_title("Seed")
|
dialog.set_title("Seed")
|
||||||
dialog.show()
|
dialog.show()
|
||||||
@@ -87,7 +83,7 @@ def restore_create_dialog():
|
|||||||
# ask if the user wants to create a new wallet, or recover from a seed.
|
# ask if the user wants to create a new wallet, or recover from a seed.
|
||||||
# if he wants to recover, and nothing is found, do not create wallet
|
# if he wants to recover, and nothing is found, do not create wallet
|
||||||
dialog = Gtk.Dialog("electrum", parent=None,
|
dialog = Gtk.Dialog("electrum", parent=None,
|
||||||
flags=Gtk.DialogFlags.MODAL|Gtk.DialogFlags.NO_SEPARATOR,
|
flags=Gtk.DialogFlags.MODAL,
|
||||||
buttons= ("create", 0, "restore",1, "cancel",2) )
|
buttons= ("create", 0, "restore",1, "cancel",2) )
|
||||||
|
|
||||||
label = Gtk.Label("Wallet file not found.\nDo you want to create a new wallet,\n or to restore an existing one?" )
|
label = Gtk.Label("Wallet file not found.\nDo you want to create a new wallet,\n or to restore an existing one?" )
|
||||||
@@ -135,16 +131,11 @@ def run_recovery_dialog():
|
|||||||
if r==Gtk.ResponseType.CANCEL:
|
if r==Gtk.ResponseType.CANCEL:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
if Wallet.is_seed(seed):
|
||||||
seed.decode('hex')
|
return seed
|
||||||
except Exception:
|
|
||||||
print_error("Warning: Not hex, trying decode")
|
show_message("no seed")
|
||||||
seed = mnemonic.mn_decode( seed.split(' ') )
|
return False
|
||||||
if not seed:
|
|
||||||
show_message("no seed")
|
|
||||||
return False
|
|
||||||
|
|
||||||
return seed
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -515,7 +506,8 @@ class ElectrumWindow:
|
|||||||
password = password_dialog(self.window)
|
password = password_dialog(self.window)
|
||||||
if not password: return
|
if not password: return
|
||||||
else: password = None
|
else: password = None
|
||||||
show_seed_dialog(wallet, password, self.window)
|
seed = wallet.get_mnemonic(password)
|
||||||
|
show_seed_dialog(seed, self.window)
|
||||||
button = Gtk.Button('S')
|
button = Gtk.Button('S')
|
||||||
button.connect("clicked", seedb, self.wallet )
|
button.connect("clicked", seedb, self.wallet )
|
||||||
button.set_relief(Gtk.ReliefStyle.NONE)
|
button.set_relief(Gtk.ReliefStyle.NONE)
|
||||||
@@ -1316,21 +1308,23 @@ class ElectrumGui():
|
|||||||
wallet.gap_limit = gap
|
wallet.gap_limit = gap
|
||||||
wallet.storage.put('gap_limit', gap, True)
|
wallet.storage.put('gap_limit', gap, True)
|
||||||
|
|
||||||
|
|
||||||
if action == 'create':
|
if action == 'create':
|
||||||
wallet.init_seed(None)
|
seed = wallet.make_seed()
|
||||||
show_seed_dialog(wallet, None, None)
|
show_seed_dialog(seed, None)
|
||||||
r = change_password_dialog(False, None)
|
r = change_password_dialog(False, None)
|
||||||
password = r[2] if r else None
|
password = r[2] if r else None
|
||||||
wallet.save_seed(password)
|
wallet.add_seed(seed, password)
|
||||||
|
wallet.create_accounts(password)
|
||||||
wallet.synchronize() # generate first addresses offline
|
wallet.synchronize() # generate first addresses offline
|
||||||
|
|
||||||
elif action == 'restore':
|
elif action == 'restore':
|
||||||
seed = self.seed_dialog()
|
seed = self.seed_dialog()
|
||||||
wallet.init_seed(seed)
|
if not seed:
|
||||||
|
exit()
|
||||||
r = change_password_dialog(False, None)
|
r = change_password_dialog(False, None)
|
||||||
password = r[2] if r else None
|
password = r[2] if r else None
|
||||||
wallet.save_seed(password)
|
wallet.add_seed(seed, password)
|
||||||
|
wallet.create_accounts(password)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
exit()
|
exit()
|
||||||
|
|||||||
Reference in New Issue
Block a user