fixes for how install failures are presented

some of these have been around for a while :/
This commit is contained in:
Michael Hudson-Doyle 2020-09-21 14:01:23 +12:00
parent 8f8a87ad1c
commit 219360d12d
3 changed files with 9 additions and 4 deletions

View File

@ -150,11 +150,13 @@ class InstallProgressController(SubiquityTuiController):
ErrorReportKind.INSTALL_FAIL, "install failed", interrupt=False, ErrorReportKind.INSTALL_FAIL, "install failed", interrupt=False,
**kw) **kw)
self.progress_view.finish_all() self.progress_view.finish_all()
self.progress_view.set_status(('info_error', self.progress_view.set_status(
_("An error has occurred"))) ('info_error', _("An error has occurred")))
self.ui.set_body(self.make_ui()) if not self.showing:
self.app.controllers.index = self.controller_index - 1
self.app.next_screen()
if crash_report is not None: if crash_report is not None:
self.progress_view.show_error(crash_report) self.app.show_error_report(crash_report)
def logged_command(self, cmd): def logged_command(self, cmd):
return ['systemd-cat', '--level-prefix=false', return ['systemd-cat', '--level-prefix=false',

View File

@ -36,6 +36,8 @@ class SubiquityUI(SubiquityCoreUI):
return super().keypress(size, key) return super().keypress(size, key)
def set_body(self, widget): def set_body(self, widget):
if widget is self.body:
return
super().set_body(widget) super().set_body(widget)
if isinstance(widget, BaseView): if isinstance(widget, BaseView):
for overlay in self.app.global_overlays: for overlay in self.app.global_overlays:

View File

@ -41,6 +41,7 @@ class ControllerSet:
else: else:
inst = klass(*self.init_args) inst = klass(*self.init_args)
setattr(self, name, inst) setattr(self, name, inst)
inst.controller_index = len(self.instances)
self.instances.append(inst) self.instances.append(inst)
def load_all(self): def load_all(self):