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
|
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.container import ListBox
|
||||||
from subiquitycore.ui.utils import screen
|
from subiquitycore.ui.utils import button_pile, rewrap, screen
|
||||||
from subiquitycore.view import BaseView
|
from subiquitycore.view import BaseView
|
||||||
|
|
||||||
log = logging.getLogger("subiquity.views.welcome")
|
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.
|
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):
|
class WelcomeView(BaseView):
|
||||||
title = "Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom!"
|
title = "Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom!"
|
||||||
|
@ -40,27 +49,55 @@ class WelcomeView(BaseView):
|
||||||
def __init__(self, model, controller):
|
def __init__(self, model, controller):
|
||||||
self.model = model
|
self.model = model
|
||||||
self.controller = controller
|
self.controller = controller
|
||||||
super().__init__(screen(
|
if controller.app.opts.run_on_serial:
|
||||||
self._build_model_inputs(),
|
s = self.make_serial_choices()
|
||||||
buttons=None,
|
else:
|
||||||
narrow_rows=True,
|
s = self.make_language_choices()
|
||||||
excerpt=_("Use UP, DOWN and ENTER keys to select your language.")))
|
super().__init__(s)
|
||||||
|
|
||||||
def _build_model_inputs(self):
|
def make_language_choices(self):
|
||||||
btns = []
|
btns = []
|
||||||
current_index = None
|
current_index = None
|
||||||
for i, (code, native) in enumerate(self.model.get_languages()):
|
for i, (code, native) in enumerate(self.model.get_languages()):
|
||||||
if code == self.model.selected_language:
|
if code == self.model.selected_language:
|
||||||
current_index = i
|
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))
|
user_arg=code))
|
||||||
|
|
||||||
lb = ListBox(btns)
|
lb = ListBox(btns)
|
||||||
if current_index is not None:
|
if current_index is not None:
|
||||||
lb.base_widget.focus_position = current_index
|
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)
|
log.debug('WelcomeView %s', code)
|
||||||
self.controller.done(code)
|
self.controller.done(code)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue