mostly convert file system views over

This commit is contained in:
Michael Hudson-Doyle 2017-09-15 10:56:22 +12:00
parent 91d57c50f2
commit 5dc950c927
4 changed files with 39 additions and 46 deletions

View File

@ -19,7 +19,7 @@ from urwid import Text
from subiquitycore.ui.lists import SimpleList from subiquitycore.ui.lists import SimpleList
from subiquitycore.ui.buttons import done_btn from subiquitycore.ui.buttons import done_btn
from subiquitycore.ui.container import Pile from subiquitycore.ui.container import Pile
from subiquitycore.ui.utils import Padding, Color from subiquitycore.ui.utils import Padding
from subiquitycore.view import BaseView from subiquitycore.view import BaseView
@ -40,12 +40,7 @@ class DiskInfoView(BaseView):
super().__init__(Padding.center_79(SimpleList(body))) super().__init__(Padding.center_79(SimpleList(body)))
def _build_buttons(self): def _build_buttons(self):
done = done_btn(on_press=self.done) return Pile([done_btn(on_press=self.done)])
buttons = [
Color.button(done),
]
return Pile(buttons)
def keypress(self, size, key): def keypress(self, size, key):
if key in ['tab', 'n', 'N', 'j', 'J']: if key in ['tab', 'n', 'N', 'j', 'J']:

View File

@ -14,12 +14,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging import logging
from urwid import BoxAdapter, connect_signal, Text from urwid import BoxAdapter, Text
from subiquitycore.ui.lists import SimpleList from subiquitycore.ui.lists import SimpleList
from subiquitycore.ui.buttons import done_btn, cancel_btn, menu_btn from subiquitycore.ui.buttons import done_btn, cancel_btn, menu_btn
from subiquitycore.ui.container import Columns, ListBox, Pile from subiquitycore.ui.container import Columns, ListBox, Pile
from subiquitycore.ui.utils import Padding, Color from subiquitycore.ui.utils import connect_signal, Padding
from subiquitycore.view import BaseView from subiquitycore.view import BaseView
from subiquity.models.filesystem import humanize_size from subiquity.models.filesystem import humanize_size
@ -48,8 +48,8 @@ class DiskPartitionView(BaseView):
done = done_btn(on_press=self.done) done = done_btn(on_press=self.done)
buttons = [ buttons = [
Color.button(done), done,
Color.amberbutton(cancel) cancel,
] ]
return Pile(buttons) return Pile(buttons)
@ -73,7 +73,7 @@ class DiskPartitionView(BaseView):
else: else:
connect_signal(part_btn, 'click', self._click_part, part) connect_signal(part_btn, 'click', self._click_part, part)
return Columns([ return Columns([
(25, Color.menu_button(part_btn)), (25, part_btn),
(9, Text(size, align="right")), (9, Text(size, align="right")),
Text(fstype), Text(fstype),
Text(mountpoint), Text(mountpoint),
@ -92,7 +92,7 @@ class DiskPartitionView(BaseView):
add_btn = menu_btn(label) add_btn = menu_btn(label)
connect_signal(add_btn, 'click', self.add_partition) connect_signal(add_btn, 'click', self.add_partition)
partitioned_disks.append(Columns([ partitioned_disks.append(Columns([
(25, Color.menu_button(add_btn)), (25, add_btn),
(9, Text(free_space, align="right")), (9, Text(free_space, align="right")),
Text("free space"), Text("free space"),
], 2)) ], 2))
@ -101,8 +101,8 @@ class DiskPartitionView(BaseView):
text = ("Format or create swap on entire " text = ("Format or create swap on entire "
"device (unusual, advanced)") "device (unusual, advanced)")
partitioned_disks.append(Text("")) partitioned_disks.append(Text(""))
partitioned_disks.append(Color.menu_button( partitioned_disks.append(
menu_btn(label=text, on_press=self.format_entire))) menu_btn(label=text, on_press=self.format_entire))
return BoxAdapter(SimpleList(partitioned_disks), return BoxAdapter(SimpleList(partitioned_disks),
height=len(partitioned_disks)) height=len(partitioned_disks))
@ -117,10 +117,9 @@ class DiskPartitionView(BaseView):
""" Runs hdparm against device and displays its output """ Runs hdparm against device and displays its output
""" """
text = ("Show disk information") text = ("Show disk information")
return Color.menu_button( return menu_btn(
menu_btn(
label=text, label=text,
on_press=self.show_disk_info)) on_press=self.show_disk_info)
def show_disk_info(self, result): def show_disk_info(self, result):
self.controller.show_disk_information(self.disk) self.controller.show_disk_information(self.disk)

View File

@ -21,7 +21,6 @@ configuration.
""" """
import logging import logging
from urwid import ( from urwid import (
connect_signal,
LineBox, LineBox,
Padding as UrwidPadding, Padding as UrwidPadding,
Text, Text,
@ -30,13 +29,13 @@ from urwid import (
from subiquitycore.ui.buttons import ( from subiquitycore.ui.buttons import (
cancel_btn, cancel_btn,
continue_btn, danger_btn,
done_btn, done_btn,
menu_btn, menu_btn,
reset_btn, reset_btn,
) )
from subiquitycore.ui.container import Columns, ListBox, Pile from subiquitycore.ui.container import Columns, ListBox, Pile
from subiquitycore.ui.utils import Padding, Color from subiquitycore.ui.utils import Color, connect_signal, Padding
from subiquitycore.view import BaseView from subiquitycore.view import BaseView
from subiquity.models.filesystem import humanize_size from subiquity.models.filesystem import humanize_size
@ -57,8 +56,8 @@ class FilesystemConfirmationView(WidgetWrap):
self.controller = controller self.controller = controller
pile = Pile([ pile = Pile([
UrwidPadding(Text(confirmation_text), left=2, right=2), UrwidPadding(Text(confirmation_text), left=2, right=2),
Padding.fixed_15(Color.amberbutton(cancel_btn(label="No", on_press=self.cancel))), Padding.fixed_15(cancel_btn(label="No", on_press=self.cancel)),
Padding.fixed_15(Color.button(continue_btn(on_press=self.ok))), Padding.fixed_15(danger_btn(label="Continue", on_press=self.ok)),
Text(""), Text(""),
]) ])
lb = LineBox(pile, title="Confirm destructive action") lb = LineBox(pile, title="Confirm destructive action")
@ -146,10 +145,10 @@ class FilesystemView(BaseView):
# don't enable done botton if we can't install # don't enable done botton if we can't install
if self.model.can_install(): if self.model.can_install():
buttons.append( buttons.append(
Color.button(done_btn(on_press=self.done))) done_btn(on_press=self.done))
buttons.append(Color.amberbutton(reset_btn(on_press=self.reset))) buttons.append(reset_btn(on_press=self.reset))
buttons.append(Color.redbutton(cancel_btn(on_press=self.cancel))) buttons.append(cancel_btn(on_press=self.cancel))
return Pile(buttons) return Pile(buttons)
@ -181,7 +180,7 @@ class FilesystemView(BaseView):
if fs_obj.label and fs_obj.is_mounted and not fs.mount(): if fs_obj.label and fs_obj.is_mounted and not fs.mount():
disk_btn = menu_btn(label=label) disk_btn = menu_btn(label=label)
connect_signal(disk_btn, 'click', self.click_disk, disk) connect_signal(disk_btn, 'click', self.click_disk, disk)
disk_btn = Color.menu_button(disk_btn) disk_btn = disk_btn
else: else:
disk_btn = Color.info_minor(Text(" " + label)) disk_btn = Color.info_minor(Text(" " + label))
col1(disk_btn) col1(disk_btn)
@ -199,7 +198,6 @@ class FilesystemView(BaseView):
if partition.available: if partition.available:
part_btn = menu_btn(label=label) part_btn = menu_btn(label=label)
connect_signal(part_btn, 'click', self.click_partition, partition) connect_signal(part_btn, 'click', self.click_partition, partition)
part_btn = Color.menu_button(part_btn)
col2(part_btn, size) col2(part_btn, size)
else: else:
part_btn = Color.info_minor(Text(" " + label)) part_btn = Color.info_minor(Text(" " + label))
@ -211,18 +209,15 @@ class FilesystemView(BaseView):
if disk.available and disk.used > 0 and percent > 0: if disk.available and disk.used > 0 and percent > 0:
disk_btn = menu_btn(label="ADD/EDIT PARTITIONS") disk_btn = menu_btn(label="ADD/EDIT PARTITIONS")
connect_signal(disk_btn, 'click', self.click_disk, disk) connect_signal(disk_btn, 'click', self.click_disk, disk)
disk_btn = Color.menu_button(disk_btn)
size = Text("{:>9} ({}%) free".format(humanize_size(free), percent)) size = Text("{:>9} ({}%) free".format(humanize_size(free), percent))
col2(disk_btn, size) col2(disk_btn, size)
elif disk.available and percent > 0: elif disk.available and percent > 0:
disk_btn = menu_btn(label="ADD FIRST PARTITION") disk_btn = menu_btn(label="ADD FIRST PARTITION")
connect_signal(disk_btn, 'click', self.click_disk, disk) connect_signal(disk_btn, 'click', self.click_disk, disk)
disk_btn = Color.menu_button(disk_btn)
col2(disk_btn, Text("")) col2(disk_btn, Text(""))
else: else:
disk_btn = menu_btn(label="EDIT PARTITIONS") disk_btn = menu_btn(label="EDIT PARTITIONS")
connect_signal(disk_btn, 'click', self.click_disk, disk) connect_signal(disk_btn, 'click', self.click_disk, disk)
disk_btn = Color.menu_button(disk_btn)
col2(disk_btn, Text("")) col2(disk_btn, Text(""))
if len(inputs) == 1: if len(inputs) == 1:
@ -252,10 +247,9 @@ class FilesystemView(BaseView):
for opt, sig in fs_menu: for opt, sig in fs_menu:
if len(avail_disks) > 1: if len(avail_disks) > 1:
opts.append(Color.menu_button( opts.append(menu_btn(label=opt,
menu_btn(label=opt,
on_press=self.on_fs_menu_press, on_press=self.on_fs_menu_press,
user_data=sig))) user_data=sig))
return Pile(opts) return Pile(opts)
def cancel(self, button=None): def cancel(self, button=None):

View File

@ -14,16 +14,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from urwid import ( from urwid import (
connect_signal,
Text, Text,
) )
from subiquitycore.ui.utils import Padding, Color from subiquitycore.ui.utils import Color, connect_signal, Padding
from subiquitycore.ui.buttons import ( from subiquitycore.ui.buttons import (
cancel_btn, cancel_btn,
menu_btn, menu_btn,
PlainButton, ok_btn,
) )
from subiquitycore.ui.container import ListBox, Pile from subiquitycore.ui.container import ListBox, Pile
from subiquitycore.view import BaseView from subiquitycore.view import BaseView
@ -40,15 +39,16 @@ class GuidedFilesystemView(BaseView):
def __init__(self, model, controller): def __init__(self, model, controller):
self.controller = controller self.controller = controller
guided = PlainButton(label="Guided") guided = ok_btn("Guided", on_press=self.guided)
connect_signal(guided, 'click', self.guided) manual = ok_btn("Manual", on_press=self.manual)
manual = PlainButton(label="Manual") cancel = cancel_btn(on_press=self.cancel)
connect_signal(manual, 'click', self.manual)
lb = ListBox([ lb = ListBox([
Padding.center_70(Text(text)), Padding.center_70(Text(text)),
Padding.center_70(Text("")), Padding.center_70(Text("")),
Padding.fixed_10(Color.button(guided)), Padding.fixed_10(guided),
Padding.fixed_10(Color.button(manual))]) Padding.fixed_10(manual),
Padding.fixed_10(cancel),
])
super().__init__(lb) super().__init__(lb)
def manual(self, btn): def manual(self, btn):
@ -57,24 +57,29 @@ class GuidedFilesystemView(BaseView):
def guided(self, btn): def guided(self, btn):
self.controller.guided() self.controller.guided()
def cancel(self, btn):
self.controller.cancel()
class GuidedDiskSelectionView(BaseView): class GuidedDiskSelectionView(BaseView):
def __init__(self, model, controller): def __init__(self, model, controller):
self.model = model self.model = model
self.controller = controller self.controller = controller
cancel = Color.amberbutton(cancel_btn(on_press=self.cancel)) cancel = cancel_btn(on_press=self.cancel)
disks = [] disks = []
for disk in self.model.all_disks(): for disk in self.model.all_disks():
if disk.available: if disk.available:
disk_btn = menu_btn("%-40s %s"%(disk.serial, humanize_size(disk.size).rjust(9))) disk_btn = menu_btn("%-40s %s"%(disk.serial, humanize_size(disk.size).rjust(9)))
connect_signal(disk_btn, 'click', self.choose_disk, disk) connect_signal(disk_btn, 'click', self.choose_disk, disk)
disks.append(Color.menu_button(disk_btn)) disks.append(disk_btn)
lb = ListBox([ lb = ListBox([
Padding.center_70(Text("Choose the disk to install to:")), Padding.center_70(Text("Choose the disk to install to:")),
Padding.center_70(Text("")), Padding.center_70(Text("")),
Padding.center_70(Pile(disks)), Padding.center_70(Pile(disks)),
Padding.center_70(Text("")), Padding.center_70(Text("")),
Padding.fixed_10(Color.button(cancel))]) Padding.fixed_10(cancel),
])
super().__init__(lb) super().__init__(lb)
def cancel(self, btn): def cancel(self, btn):