make initial setup of rich mode less confusing

This commit is contained in:
Michael Hudson-Doyle 2023-08-08 14:07:10 +12:00
parent e072ad0615
commit ce9a130f37
1 changed files with 10 additions and 12 deletions

View File

@ -77,9 +77,7 @@ class TuiApplication(Application):
if not opts.dry_run: if not opts.dry_run:
open("/run/casper-no-prompt", "w").close() open("/run/casper-no-prompt", "w").close()
# Set rich_mode to the opposite of what we want, so we can self.rich_mode = None
# call toggle_rich to get the right things set up.
self.rich_mode = opts.run_on_serial
self.urwid_loop = None self.urwid_loop = None
self.cur_screen = None self.cur_screen = None
self.fg_proc = None self.fg_proc = None
@ -256,21 +254,21 @@ class TuiApplication(Application):
def set_rich(self, rich): def set_rich(self, rich):
if rich == self.rich_mode: if rich == self.rich_mode:
return return
self.toggle_rich() if rich:
def toggle_rich(self):
if self.rich_mode:
urwid.util.set_encoding("ascii")
new_palette = PALETTE_MONO
self.rich_mode = False
else:
urwid.util.set_encoding("utf-8") urwid.util.set_encoding("utf-8")
new_palette = PALETTE_COLOR new_palette = PALETTE_COLOR
self.rich_mode = True self.rich_mode = True
else:
urwid.util.set_encoding("ascii")
new_palette = PALETTE_MONO
self.rich_mode = False
urwid.CanvasCache.clear() urwid.CanvasCache.clear()
self.urwid_loop.screen.register_palette(new_palette) self.urwid_loop.screen.register_palette(new_palette)
self.urwid_loop.screen.clear() self.urwid_loop.screen.clear()
def toggle_rich(self):
self.set_rich(not self.rich_mode)
def unhandled_input(self, key): def unhandled_input(self, key):
if self.opts.dry_run and key == "ctrl x": if self.opts.dry_run and key == "ctrl x":
self.exit() self.exit()
@ -301,7 +299,7 @@ class TuiApplication(Application):
**self.extra_urwid_loop_args(), **self.extra_urwid_loop_args(),
) )
extend_dec_special_charmap() extend_dec_special_charmap()
self.toggle_rich() self.set_rich(not self.opts.run_on_serial)
self.urwid_loop.start() self.urwid_loop.start()
self.select_initial_screen() self.select_initial_screen()