use the new stretchy overlays

for the layout toggle and the install confirmation
This commit is contained in:
Michael Hudson-Doyle 2018-04-17 12:24:07 +12:00
parent 7eafa420fb
commit 458520e671
2 changed files with 32 additions and 38 deletions

View File

@ -20,12 +20,7 @@ configuration.
"""
import logging
from urwid import (
LineBox,
Padding as UrwidPadding,
Text,
WidgetWrap,
)
from urwid import Text
from subiquitycore.ui.buttons import (
back_btn,
@ -36,6 +31,7 @@ from subiquitycore.ui.buttons import (
reset_btn,
)
from subiquitycore.ui.container import Columns, ListBox, Pile
from subiquitycore.ui.stretchy import Stretchy
from subiquitycore.ui.utils import button_pile, Color, Padding
from subiquitycore.view import BaseView
@ -52,22 +48,24 @@ result in the loss of data on the disks selected to be formatted.
You will not be able to return to this or a previous screen once \
the installation has started.
Are you sure you want to continue?
""")
Are you sure you want to continue?""")
class FilesystemConfirmationView(WidgetWrap):
class FilesystemConfirmation(Stretchy):
def __init__(self, parent, controller):
self.parent = parent
self.controller = controller
pile = Pile([
UrwidPadding(Text(confirmation_text), left=2, right=2),
widgets = [
Text(confirmation_text),
Text(""),
button_pile([
cancel_btn(_("No"), on_press=self.cancel),
danger_btn(_("Continue"), on_press=self.ok)]),
Text(""),
])
lb = LineBox(pile, title=_("Confirm destructive action"))
super().__init__(lb)
]
super().__init__(
_("Confirm destructive action"),
widgets,
stretchy_index=0,
focus_index=2)
def ok(self, sender):
self.controller.finish()
@ -275,4 +273,4 @@ class FilesystemView(BaseView):
self.controller.reset()
def done(self, button):
self.show_overlay(FilesystemConfirmationView(self, self.controller), min_width=0)
self.show_stretchy_overlay(FilesystemConfirmation(self, self.controller))

View File

@ -18,8 +18,6 @@ import logging
from urwid import (
connect_signal,
LineBox,
Padding as UrwidPadding,
SolidFill,
Text,
WidgetWrap,
)
@ -31,7 +29,6 @@ from subiquitycore.ui.buttons import (
)
from subiquitycore.ui.container import (
Columns,
ListBox,
Pile,
)
from subiquitycore.ui.form import (
@ -39,6 +36,9 @@ from subiquitycore.ui.form import (
Form,
)
from subiquitycore.ui.selector import Selector, Option
from subiquitycore.ui.stretchy import (
Stretchy,
)
from subiquitycore.ui.utils import button_pile, Color, Padding, screen
from subiquitycore.view import BaseView
@ -302,7 +302,7 @@ toggle_options = [
]
class ToggleQuestion(WidgetWrap):
class ToggleQuestion(Stretchy):
def __init__(self, parent, setting):
self.parent = parent
@ -315,28 +315,24 @@ class ToggleQuestion(WidgetWrap):
except AttributeError:
pass
pile = Pile([
ListBox([
Text(_(toggle_text)),
]),
(1, SolidFill(" ")),
('pack', Padding.center_79(Columns([
widgets = [
Text(_(toggle_text)),
Text(""),
Padding.center_79(Columns([
('pack', Text(_("Shortcut: "))),
Color.string_input(self.selector),
]))),
(1, SolidFill(" ")),
('pack', button_pile([
])),
Text(""),
button_pile([
ok_btn(label=_("OK"), on_press=self.ok),
cancel_btn(label=_("Cancel"), on_press=self.cancel),
])),
])
pile.focus_position = 4
]),
]
super().__init__(
LineBox(
UrwidPadding(
pile,
left=1, right=1),
_("Select layout toggle")))
_("Select layout toggle"),
widgets,
stretchy_index=0,
focus_index=4)
def ok(self, sender):
self.parent.remove_overlay()
@ -411,7 +407,7 @@ class KeyboardView(BaseView):
setting = KeyboardSetting(layout=layout, variant=variant)
new_setting = setting.latinizable()
if new_setting != setting:
self.show_overlay(ToggleQuestion(self, new_setting), height=('relative', 100))
self.show_stretchy_overlay(ToggleQuestion(self, new_setting))
return
self.really_done(setting)