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.buttons import done_btn
from subiquitycore.ui.container import Pile
from subiquitycore.ui.utils import Padding, Color
from subiquitycore.ui.utils import Padding
from subiquitycore.view import BaseView
@ -40,12 +40,7 @@ class DiskInfoView(BaseView):
super().__init__(Padding.center_79(SimpleList(body)))
def _build_buttons(self):
done = done_btn(on_press=self.done)
buttons = [
Color.button(done),
]
return Pile(buttons)
return Pile([done_btn(on_press=self.done)])
def keypress(self, size, key):
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/>.
import logging
from urwid import BoxAdapter, connect_signal, Text
from urwid import BoxAdapter, Text
from subiquitycore.ui.lists import SimpleList
from subiquitycore.ui.buttons import done_btn, cancel_btn, menu_btn
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 subiquity.models.filesystem import humanize_size
@ -48,8 +48,8 @@ class DiskPartitionView(BaseView):
done = done_btn(on_press=self.done)
buttons = [
Color.button(done),
Color.amberbutton(cancel)
done,
cancel,
]
return Pile(buttons)
@ -73,7 +73,7 @@ class DiskPartitionView(BaseView):
else:
connect_signal(part_btn, 'click', self._click_part, part)
return Columns([
(25, Color.menu_button(part_btn)),
(25, part_btn),
(9, Text(size, align="right")),
Text(fstype),
Text(mountpoint),
@ -92,7 +92,7 @@ class DiskPartitionView(BaseView):
add_btn = menu_btn(label)
connect_signal(add_btn, 'click', self.add_partition)
partitioned_disks.append(Columns([
(25, Color.menu_button(add_btn)),
(25, add_btn),
(9, Text(free_space, align="right")),
Text("free space"),
], 2))
@ -101,8 +101,8 @@ class DiskPartitionView(BaseView):
text = ("Format or create swap on entire "
"device (unusual, advanced)")
partitioned_disks.append(Text(""))
partitioned_disks.append(Color.menu_button(
menu_btn(label=text, on_press=self.format_entire)))
partitioned_disks.append(
menu_btn(label=text, on_press=self.format_entire))
return BoxAdapter(SimpleList(partitioned_disks),
height=len(partitioned_disks))
@ -117,10 +117,9 @@ class DiskPartitionView(BaseView):
""" Runs hdparm against device and displays its output
"""
text = ("Show disk information")
return Color.menu_button(
menu_btn(
return menu_btn(
label=text,
on_press=self.show_disk_info))
on_press=self.show_disk_info)
def show_disk_info(self, result):
self.controller.show_disk_information(self.disk)

View File

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

View File

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