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
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user