Browse Source

qt wizard: change wizard_dialog semantics to raise exceptions

Specifically GoBack and UserCancelled will not be suppressed anymore.
Previously, if 'run_next' raised GoBack, that would propagate out fully,
while if 'func' itself raised it would be suppressed. This was confusing.

somewhat related: #5334
regtest_lnd
SomberNight 6 years ago
parent
commit
7aaac2ee30
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 20
      electrum/gui/qt/installwizard.py

20
electrum/gui/qt/installwizard.py

@ -87,20 +87,20 @@ class CosignWidget(QWidget):
def wizard_dialog(func):
def func_wrapper(*args, **kwargs):
run_next = kwargs['run_next']
wizard = args[0]
wizard = args[0] # type: InstallWizard
wizard.back_button.setText(_('Back') if wizard.can_go_back() else _('Cancel'))
try:
out = func(*args, **kwargs)
if type(out) is not tuple:
out = (out,)
run_next(*out)
except GoBack:
wizard.go_back() if wizard.can_go_back() else wizard.close()
return
except UserCancelled:
return
#if out is None:
# out = ()
if type(out) is not tuple:
out = (out,)
run_next(*out)
if wizard.can_go_back():
wizard.go_back()
return
else:
wizard.close()
raise
return func_wrapper

Loading…
Cancel
Save