diff --git a/electrum/gui/qt/wizard/wizard.py b/electrum/gui/qt/wizard/wizard.py index 211624fcd..6da8de692 100644 --- a/electrum/gui/qt/wizard/wizard.py +++ b/electrum/gui/qt/wizard/wizard.py @@ -143,6 +143,7 @@ class QEAbstractWizard(QDialog, MessageBoxMixin): comp = self.view_to_component(view) try: + self._logger.debug(f'load_next_component: {comp!r}') page = comp(self.main_widget, self) except Exception as e: self._logger.error(f'not a class: {comp!r}') @@ -151,13 +152,11 @@ class QEAbstractWizard(QDialog, MessageBoxMixin): page.params = params page.on_ready() # call before component emits any signals - self._logger.debug(f'load_next_component: {page=!r}') - page.updated.connect(self.on_page_updated) # add to stack and update wizard - self.main_widget.setCurrentIndex(self.main_widget.addWidget(page)) page.apply() + self.main_widget.setCurrentIndex(self.main_widget.addWidget(page)) self.update() @pyqtSlot(object) @@ -218,7 +217,11 @@ class QEAbstractWizard(QDialog, MessageBoxMixin): self.prev() # rollback the submit above else: view = self.submit(wd) - self.load_next_component(view.view, view.wizard_data, view.params) + try: + self.load_next_component(view.view, view.wizard_data, view.params) + except Exception as e: + self.prev() # rollback the submit above + raise e def start_wizard(self) -> 'WizardViewState': self.start()