explain basic mode on initial screen
This commit is contained in:
parent
0d267b320e
commit
0950bf843e
|
@ -20,9 +20,11 @@ Welcome provides user with language selection
|
|||
"""
|
||||
import logging
|
||||
|
||||
from subiquitycore.ui.buttons import forward_btn
|
||||
from urwid import Text
|
||||
|
||||
from subiquitycore.ui.buttons import forward_btn, other_btn
|
||||
from subiquitycore.ui.container import ListBox
|
||||
from subiquitycore.ui.utils import screen
|
||||
from subiquitycore.ui.utils import button_pile, rewrap, screen
|
||||
from subiquitycore.view import BaseView
|
||||
|
||||
log = logging.getLogger("subiquity.views.welcome")
|
||||
|
@ -33,6 +35,13 @@ Select the language to use for the installer and to be configured in the
|
|||
installed system.
|
||||
""")
|
||||
|
||||
SERIAL_TEXT = """
|
||||
As the installer is running on a serial console, it has started in a
|
||||
very basic mode. If you are connecting from a terminal emulator such
|
||||
as gnome-terminal that supports unicode and rich colors you can switch
|
||||
to "rich mode" which uses colors and supports many languages.
|
||||
"""
|
||||
|
||||
|
||||
class WelcomeView(BaseView):
|
||||
title = "Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom!"
|
||||
|
@ -40,27 +49,55 @@ class WelcomeView(BaseView):
|
|||
def __init__(self, model, controller):
|
||||
self.model = model
|
||||
self.controller = controller
|
||||
super().__init__(screen(
|
||||
self._build_model_inputs(),
|
||||
buttons=None,
|
||||
narrow_rows=True,
|
||||
excerpt=_("Use UP, DOWN and ENTER keys to select your language.")))
|
||||
if controller.app.opts.run_on_serial:
|
||||
s = self.make_serial_choices()
|
||||
else:
|
||||
s = self.make_language_choices()
|
||||
super().__init__(s)
|
||||
|
||||
def _build_model_inputs(self):
|
||||
def make_language_choices(self):
|
||||
btns = []
|
||||
current_index = None
|
||||
for i, (code, native) in enumerate(self.model.get_languages()):
|
||||
if code == self.model.selected_language:
|
||||
current_index = i
|
||||
btns.append(forward_btn(label=native, on_press=self.confirm,
|
||||
btns.append(
|
||||
forward_btn(
|
||||
label=native,
|
||||
on_press=self.choose_language,
|
||||
user_arg=code))
|
||||
|
||||
lb = ListBox(btns)
|
||||
if current_index is not None:
|
||||
lb.base_widget.focus_position = current_index
|
||||
return lb
|
||||
return screen(
|
||||
lb, buttons=None, narrow_rows=True,
|
||||
excerpt=_("Use UP, DOWN and ENTER keys to select your language."))
|
||||
|
||||
def confirm(self, sender, code):
|
||||
def make_serial_choices(self):
|
||||
btns = [
|
||||
other_btn(
|
||||
label="Switch to rich mode",
|
||||
on_press=self.enable_rich),
|
||||
forward_btn(
|
||||
label="Continue in basic mode",
|
||||
on_press=self.choose_language,
|
||||
user_arg='C'),
|
||||
]
|
||||
widgets = [
|
||||
Text(""),
|
||||
Text(rewrap(SERIAL_TEXT)),
|
||||
Text(""),
|
||||
button_pile(btns),
|
||||
]
|
||||
lb = ListBox(widgets)
|
||||
return screen(lb, buttons=None)
|
||||
|
||||
def enable_rich(self, sender):
|
||||
self.controller.app.toggle_rich()
|
||||
self._w = self.make_language_choices()
|
||||
|
||||
def choose_language(self, sender, code):
|
||||
log.debug('WelcomeView %s', code)
|
||||
self.controller.done(code)
|
||||
|
||||
|
|
Loading…
Reference in New Issue