tqt wizard: change wizard_dialog semantics to raise exceptions - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 7aaac2ee307ea64b22cf3ad88305fe45e19ae439 DIR parent 099315013e4f112adbceed3e2f104458d0866826 HTML Author: SomberNight <somber.night@protonmail.com> Date: Tue, 14 May 2019 15:31:33 +0200 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 Diffstat: M electrum/gui/qt/installwizard.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) --- DIR diff --git a/electrum/gui/qt/installwizard.py b/electrum/gui/qt/installwizard.py t@@ -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