show an unseen ui crash on startup

This commit is contained in:
Michael Hudson-Doyle 2019-11-04 16:09:59 +13:00
parent 009d0598d0
commit 615dc1b1dd
2 changed files with 16 additions and 7 deletions

View File

@ -116,6 +116,14 @@ class Subiquity(Application):
print("report saved to {}".format(report.path)) print("report saved to {}".format(report.path))
raise raise
def select_initial_screen(self, index):
super().select_initial_screen(index)
for report in self.error_controller.reports:
if report.kind == ErrorReportKind.UI and not report.seen:
log.debug("showing new error %r", report.base)
self.show_error_report(report)
return
def _network_change(self): def _network_change(self):
self.signal.emit_signal('snapd-network-change') self.signal.emit_signal('snapd-network-change')

View File

@ -596,6 +596,12 @@ class Application:
else: else:
return 0 return 0
def select_initial_screen(self, index):
try:
self.select_screen(index)
except Skip:
self.next_screen()
def run(self): def run(self):
log.debug("Application.run") log.debug("Application.run")
screen = make_screen(self.COLORS, self.is_linux_tty, self.opts.ascii) screen = make_screen(self.COLORS, self.is_linux_tty, self.opts.ascii)
@ -625,16 +631,11 @@ class Application:
if self.updated: if self.updated:
initial_controller_index = self.load_serialized_state() initial_controller_index = self.load_serialized_state()
def select_initial_screen(loop, index):
try:
self.select_screen(index)
except Skip:
self.next_screen()
self.loop.set_alarm_in( self.loop.set_alarm_in(
0.00, lambda loop, ud: tty.setraw(0)) 0.00, lambda loop, ud: tty.setraw(0))
self.loop.set_alarm_in( self.loop.set_alarm_in(
0.05, select_initial_screen, initial_controller_index) 0.05, lambda loop, ud: self.select_initial_screen(
initial_controller_index))
self._connect_base_signals() self._connect_base_signals()
self.start_controllers() self.start_controllers()