diff --git a/console_conf/ui/views/identity.py b/console_conf/ui/views/identity.py index a0b69253..a7bdc959 100644 --- a/console_conf/ui/views/identity.py +++ b/console_conf/ui/views/identity.py @@ -19,7 +19,7 @@ from urwid import Text from subiquitycore.ui.buttons import done_btn, cancel_btn from subiquitycore.ui.container import Columns, ListBox, Pile from subiquitycore.ui.interactive import EmailEditor -from subiquitycore.ui.utils import Padding, Color +from subiquitycore.ui.utils import Padding, Color, button_pile from subiquitycore.view import BaseView log = logging.getLogger("console_conf.views.identity") @@ -59,16 +59,22 @@ class IdentityView(BaseView): self.progress = Text("", align="center") body = [ - Padding.center_90(self._build_model_inputs()), - Padding.line_break(""), - Padding.center_79(Color.info_minor(Text("If you do not have an account, visit https://login.ubuntu.com to create one."))), - Padding.line_break(""), - Padding.center_90(Color.info_error(self.error)), - Padding.center_90(self.progress), - Padding.line_break(""), - Padding.fixed_10(self._build_buttons()), - ] - super().__init__(ListBox(body)) + ('pack', Text("")), + ListBox([ + self._build_model_inputs(), + Padding.line_break(""), + Padding.center_79(Color.info_minor(Text("If you do not have an account, visit https://login.ubuntu.com to create one."))), + Padding.line_break(""), + Padding.center_90(Color.info_error(self.error)), + Padding.center_90(self.progress), + ]), + ('pack', Pile([ + ('pack', Text("")), + button_pile(self._build_buttons()), + ('pack', Text("")), + ])), + ] + super().__init__(Pile(body)) def keypress(self, size, key): key = super().keypress(size, key) @@ -79,23 +85,21 @@ class IdentityView(BaseView): return key def _build_model_inputs(self): - sl = [ - Columns( + sl = Padding.center_79(Columns( [ ("weight", 0.2, Text("Email address:", align="right")), ("weight", 0.3, Color.string_input(self.email)), ], dividechars=4 - ), - ] - return Pile(sl) + )) + return sl def _build_buttons(self): buttons = [ done_btn("Done", on_press=self.done), cancel_btn("Cancel", on_press=self.cancel), ] - return Pile(buttons) + return buttons def cancel(self, button=None): self.controller.cancel() diff --git a/console_conf/ui/views/login.py b/console_conf/ui/views/login.py index 05a24d25..76313347 100644 --- a/console_conf/ui/views/login.py +++ b/console_conf/ui/views/login.py @@ -24,7 +24,7 @@ from urwid import Text from subiquitycore.ui.buttons import done_btn from subiquitycore.ui.container import ListBox, Pile -from subiquitycore.ui.utils import Padding +from subiquitycore.ui.utils import button_pile, Padding from subiquitycore.view import BaseView log = logging.getLogger("subiquitycore.views.login") @@ -37,18 +37,23 @@ class LoginView(BaseView): self.controller = controller self.netdevs = netdevs self.items = [] - self.body = [ - Padding.center_79(self._build_model_inputs()), - Padding.line_break(""), - Padding.fixed_10(self._build_buttons()) - ] - super().__init__(ListBox(self.body)) + + super().__init__( + Pile([ + ('pack', Text("")), + Padding.center_79(ListBox(self._build_model_inputs())), + ('pack', Pile([ + ('pack', Text("")), + button_pile(self._build_buttons()), + ('pack', Text("")), + ])), + ])) + def _build_buttons(self): - self.buttons = [ + return [ done_btn("Done", on_press=self.done), ] - return Pile(self.buttons) def _build_model_inputs(self): local_tpl = ( @@ -78,7 +83,7 @@ class LoginView(BaseView): ssh_iface = " ssh %s@%s" % (user.username, ip) sl.append(Text(ssh_iface)) - return Pile(sl) + return sl def confirm(self, result): self.done() diff --git a/console_conf/ui/views/welcome.py b/console_conf/ui/views/welcome.py index 44455409..b106bd19 100644 --- a/console_conf/ui/views/welcome.py +++ b/console_conf/ui/views/welcome.py @@ -19,9 +19,12 @@ Welcome provides user with language selection """ import logging + +from urwid import Text + from subiquitycore.ui.buttons import ok_btn from subiquitycore.ui.container import ListBox, Pile -from subiquitycore.ui.utils import Padding +from subiquitycore.ui.utils import button_pile from subiquitycore.view import BaseView log = logging.getLogger("console_conf.views.welcome") @@ -30,16 +33,11 @@ log = logging.getLogger("console_conf.views.welcome") class WelcomeView(BaseView): def __init__(self, controller): self.controller = controller - self.body = [ - Padding.fixed_10(self._build_buttons()) - ] - super().__init__(ListBox(self.body)) - - def _build_buttons(self): - self.buttons = [ - ok_btn("OK", on_press=self.confirm), - ] - return Pile(self.buttons) + super().__init__(Pile([ + ListBox([Text('')]), # need to have a listbox or something else "stretchy" here or urwid complains. + ('pack', button_pile([ok_btn("OK", on_press=self.confirm)])), + ('pack', Text("")), + ], focus_item=1)) def confirm(self, result): self.controller.done()