Browse Source

fix crash when exporting private keys

3.1
Marcel O'Neil 7 years ago
parent
commit
fe982cf826
No known key found for this signature in database GPG Key ID: 216F074287B26D46
  1. 15
      gui/qt/main_window.py

15
gui/qt/main_window.py

@ -2269,14 +2269,16 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
private_keys = {}
addresses = self.wallet.get_addresses()
done = False
cancelled = False
def privkeys_thread():
for addr in addresses:
time.sleep(0.1)
if done:
if done or cancelled:
break
privkey = self.wallet.export_private_key(addr, password)[0]
private_keys[addr] = privkey
self.computing_privkeys_signal.emit()
if not cancelled:
self.computing_privkeys_signal.disconnect()
self.show_privkeys_signal.emit()
@ -2285,9 +2287,20 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
e.setText(s)
b.setEnabled(True)
self.show_privkeys_signal.disconnect()
nonlocal done
done = True
def on_dialog_closed(*args):
nonlocal done
nonlocal cancelled
if not done:
cancelled = True
self.computing_privkeys_signal.disconnect()
self.show_privkeys_signal.disconnect()
self.computing_privkeys_signal.connect(lambda: e.setText("Please wait... %d/%d"%(len(private_keys),len(addresses))))
self.show_privkeys_signal.connect(show_privkeys)
d.finished.connect(on_dialog_closed)
threading.Thread(target=privkeys_thread).start()
if not d.exec_():

Loading…
Cancel
Save