From 458520e6718b02db4066070bf82293757f83ffd5 Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Tue, 17 Apr 2018 12:24:07 +1200 Subject: [PATCH] use the new stretchy overlays for the layout toggle and the install confirmation --- subiquity/ui/views/filesystem/filesystem.py | 30 ++++++++-------- subiquity/ui/views/keyboard.py | 40 ++++++++++----------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/subiquity/ui/views/filesystem/filesystem.py b/subiquity/ui/views/filesystem/filesystem.py index a7d6e1b8..c0c67d5e 100644 --- a/subiquity/ui/views/filesystem/filesystem.py +++ b/subiquity/ui/views/filesystem/filesystem.py @@ -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)) diff --git a/subiquity/ui/views/keyboard.py b/subiquity/ui/views/keyboard.py index 753f325e..c5dfd709 100644 --- a/subiquity/ui/views/keyboard.py +++ b/subiquity/ui/views/keyboard.py @@ -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)