Part 1: Refine manual parting UI
This commit is contained in:
parent
8daf435472
commit
12936391d4
@ -14,7 +14,8 @@
|
|||||||
"manual_method_button_label": "Manually Partition The Drive",
|
"manual_method_button_label": "Manually Partition The Drive",
|
||||||
"automatic_method_button_label": "Automatically Partition\nThe Drive",
|
"automatic_method_button_label": "Automatically Partition\nThe Drive",
|
||||||
"manual_partitioning_page_title": "Manual Disk Partitioning",
|
"manual_partitioning_page_title": "Manual Disk Partitioning",
|
||||||
"manual_partitioning_page_subtitle": "Use This Page to Create a Custom Filesystem Table for PikaOS to install into.\nInstructions:\n 1 - Use The Partitioning Utility to Create New Partitions or Reformat and Reuse Existing Ones. \n 2 - The Mandatory System Partitons are:\n\t* 512MB+ Fat32/vfat Partition for /boot/efi (An Existing EFI Partition Can be Left Unformated and Used for /boot/efi in Order to Achieve Dual-Boot).\n\t* 1000MB+ EXT4 Partition for /boot (Can NOT Be Shared... Format MANDATORY!).\n\t* 26GB+ EXT4/BTRFS/XFS/F2FS Partition for / (a.k.a Root) (Can NOT Be Shared... Format MANDATORY!).\n 3 - This Installer Doesn't Erase Any Data Automatically, Format Your Drives MANUALLY Via The Partitioning Utility.\n 4 - Once All The Required Partitions are Present, Go Through The Systematic Filesystem Entries List, and Select The Correct Partition for The Entry\n 5 - Additional Mount Options Can be Left Empty.\n 6 - If a Filesystem Entry's Additional Mount Options Contain subvol, Duplicate Usage Checks for That Entry's Partition Will be Disabled, Allowing use of SUBVOLS.\n 7 - The User Can Add Additional Filesystem Entries in The Custom User Filesystem Entries List\n\tProvided He Defines A Mountpoint such as /home\n 8 - In Order To Add a linux-swap Partition Set Mountpoint to [SWAP]\n 9 - To Add LUKS Encrypted Partitions or Any Kind of Partition That Uses Mapper\n\tUse The Partitioning Utility to Map/Unlock Them, Then Their Mapping Will be Shown as Partition Selections.\n 10 - Once All That is Done Press The Validate Filesystem Table Button, If All is Well, It Will Allow You To Begin Installation.",
|
"manual_partitioning_page_subtitle": "Use This Page to Create a Custom Filesystem Table for PikaOS to install into.",
|
||||||
|
"manual_partitioning_help_dialog_textview_buffer_text": "Instructions:\n 1 - Use The Partitioning Utility to Create New Partitions or Reformat and Reuse Existing Ones. \n 2 - The Mandatory System Partitons are:\n\t* 512MB+ Fat32/vfat Partition for /boot/efi (An Existing EFI Partition Can be Left Unformated and Used for /boot/efi in Order to Achieve Dual-Boot).\n\t* 1000MB+ EXT4 Partition for /boot (Can NOT Be Shared... Format MANDATORY!).\n\t* 26GB+ EXT4/BTRFS/XFS/F2FS Partition for / (a.k.a Root) (Can NOT Be Shared... Format MANDATORY!).\n 3 - This Installer Doesn't Erase Any Data Automatically, Format Your Drives MANUALLY Via The Partitioning Utility.\n 4 - Once All The Required Partitions are Present, Go Through The Systematic Filesystem Entries List, and Select The Correct Partition for The Entry\n 5 - Additional Mount Options Can be Left Empty.\n 6 - If a Filesystem Entry's Additional Mount Options Contain subvol, Duplicate Usage Checks for That Entry's Partition Will be Disabled, Allowing use of SUBVOLS.\n 7 - The User Can Add Additional Filesystem Entries in The Custom User Filesystem Entries List\n\tProvided He Defines A Mountpoint such as /home\n 8 - In Order To Add a linux-swap Partition Set Mountpoint to [SWAP]\n 9 - To Add LUKS Encrypted Partitions or Any Kind of Partition That Uses Mapper,\n\tUse The Partitioning Utility to Map/Unlock Them, Then Their Mapping Will be Shown as Partition Selections.\n 10 - Once All That is Done Press The Validate Filesystem Table Button, If All is Well, It Will Allow You To Begin Installation.",
|
||||||
"partition_row_subtitle_needs_mapper": "This partition needs a mapper!",
|
"partition_row_subtitle_needs_mapper": "This partition needs a mapper!",
|
||||||
"language_page_title": "Select a Language",
|
"language_page_title": "Select a Language",
|
||||||
"language_page_subtitle": "Please Select a Locale for The System to Use",
|
"language_page_subtitle": "Please Select a Locale for The System to Use",
|
||||||
@ -141,5 +142,7 @@
|
|||||||
"drive_mount_row_title_root": "Root Filesystem Entry",
|
"drive_mount_row_title_root": "Root Filesystem Entry",
|
||||||
"drive_mount_row_subtitle_root": "This Entry's Partition Mounted at (/) Will Store The All The System Files and Applications. (Must Be Formatted)",
|
"drive_mount_row_subtitle_root": "This Entry's Partition Mounted at (/) Will Store The All The System Files and Applications. (Must Be Formatted)",
|
||||||
"drive_mount_row_title_custom": "Custom User Filesystem Entry (ID: {ID})",
|
"drive_mount_row_title_custom": "Custom User Filesystem Entry (ID: {ID})",
|
||||||
"drive_mount_row_subtitle_custom": "A Custom Filesystem Entry Added by You"
|
"drive_mount_row_subtitle_custom": "A Custom Filesystem Entry Added by You",
|
||||||
|
"manual_partitioning_help_dialog_label": "OK",
|
||||||
|
"manual_partitioning_help_button_label": "Need Help?"
|
||||||
}
|
}
|
||||||
|
@ -289,8 +289,8 @@ pub fn automatic_partitioning_page(
|
|||||||
|
|
||||||
let devices_selection_button_row_dialog = adw::AlertDialog::builder()
|
let devices_selection_button_row_dialog = adw::AlertDialog::builder()
|
||||||
.extra_child(&devices_selection_button_row_viewport)
|
.extra_child(&devices_selection_button_row_viewport)
|
||||||
.width_request(400)
|
.width_request(600)
|
||||||
.height_request(400)
|
.height_request(600)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
devices_selection_button_row_dialog.add_response(
|
devices_selection_button_row_dialog.add_response(
|
||||||
|
@ -220,8 +220,8 @@ impl ObjectImpl for DriveMountRow {
|
|||||||
|
|
||||||
let partition_button_row_dialog = adw::AlertDialog::builder()
|
let partition_button_row_dialog = adw::AlertDialog::builder()
|
||||||
.extra_child(&partition_button_row_dialog_extra_child)
|
.extra_child(&partition_button_row_dialog_extra_child)
|
||||||
.width_request(400)
|
.width_request(600)
|
||||||
.height_request(400)
|
.height_request(600)
|
||||||
.title(t!("devices_selection_button_row_dialog_manual_title"))
|
.title(t!("devices_selection_button_row_dialog_manual_title"))
|
||||||
.body(t!("devices_selection_button_row_dialog_manual_body"))
|
.body(t!("devices_selection_button_row_dialog_manual_body"))
|
||||||
.build();
|
.build();
|
||||||
|
@ -3,7 +3,7 @@ use crate::{
|
|||||||
config::{MINIMUM_BOOT_BYTE_SIZE, MINIMUM_EFI_BYTE_SIZE, MINIMUM_ROOT_BYTE_SIZE},
|
config::{MINIMUM_BOOT_BYTE_SIZE, MINIMUM_EFI_BYTE_SIZE, MINIMUM_ROOT_BYTE_SIZE},
|
||||||
drive_mount_row::DriveMountRow,
|
drive_mount_row::DriveMountRow,
|
||||||
};
|
};
|
||||||
use adw::{prelude::*, ExpanderRow};
|
use adw::{prelude::*};
|
||||||
use glib::{clone, closure_local};
|
use glib::{clone, closure_local};
|
||||||
use gtk::{gio, glib};
|
use gtk::{gio, glib};
|
||||||
use std::{cell::RefCell, rc::Rc};
|
use std::{cell::RefCell, rc::Rc};
|
||||||
@ -61,8 +61,6 @@ pub fn create_efi_row(
|
|||||||
|
|
||||||
row.set_mountpoint("/boot/efi");
|
row.set_mountpoint("/boot/efi");
|
||||||
|
|
||||||
row.set_expanded(true);
|
|
||||||
|
|
||||||
row.set_id(0);
|
row.set_id(0);
|
||||||
|
|
||||||
let null_checkbutton = gtk::CheckButton::builder().build();
|
let null_checkbutton = gtk::CheckButton::builder().build();
|
||||||
@ -301,8 +299,6 @@ pub fn create_boot_row(
|
|||||||
|
|
||||||
row.set_id(1);
|
row.set_id(1);
|
||||||
|
|
||||||
row.set_expanded(true);
|
|
||||||
|
|
||||||
let null_checkbutton = gtk::CheckButton::builder().build();
|
let null_checkbutton = gtk::CheckButton::builder().build();
|
||||||
|
|
||||||
for partition in partition_array {
|
for partition in partition_array {
|
||||||
@ -539,8 +535,6 @@ pub fn create_root_row(
|
|||||||
|
|
||||||
row.set_id(2);
|
row.set_id(2);
|
||||||
|
|
||||||
row.set_expanded(true);
|
|
||||||
|
|
||||||
let null_checkbutton = gtk::CheckButton::builder().build();
|
let null_checkbutton = gtk::CheckButton::builder().build();
|
||||||
|
|
||||||
for partition in partition_array {
|
for partition in partition_array {
|
||||||
@ -793,8 +787,6 @@ pub fn create_mount_row(
|
|||||||
|
|
||||||
(*extra_mount_id_refcell.borrow_mut()) += 1;
|
(*extra_mount_id_refcell.borrow_mut()) += 1;
|
||||||
|
|
||||||
row.set_expanded(true);
|
|
||||||
|
|
||||||
let null_checkbutton = gtk::CheckButton::builder().build();
|
let null_checkbutton = gtk::CheckButton::builder().build();
|
||||||
|
|
||||||
for partition in partition_array {
|
for partition in partition_array {
|
||||||
|
@ -56,6 +56,70 @@ pub fn manual_partitioning_page(
|
|||||||
.vexpand(true)
|
.vexpand(true)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog_button_listbox = gtk::ListBox::builder()
|
||||||
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
|
.hexpand(true)
|
||||||
|
.halign(gtk::Align::End)
|
||||||
|
.margin_top(15)
|
||||||
|
.margin_bottom(15)
|
||||||
|
.margin_start(15)
|
||||||
|
.margin_end(15)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
manual_partitioning_help_dialog_button_listbox.add_css_class("boxed-list");
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog_button = adw::ButtonRow::builder()
|
||||||
|
.start_icon_name("dialog-question-symbolic")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
manual_partitioning_help_dialog_button_listbox.append(&manual_partitioning_help_dialog_button);
|
||||||
|
manual_partitioning_help_dialog_button_listbox.add_css_class("accent-blink");
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog_textview_buffer = gtk::TextBuffer::builder().build();
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog_textview = gtk::TextView::with_buffer(&manual_partitioning_help_dialog_textview_buffer);
|
||||||
|
|
||||||
|
/*let manual_partitioning_help_dialog_viewport_box = gtk::ListBox::builder()
|
||||||
|
.selection_mode(gtk::SelectionMode::None)
|
||||||
|
.build();
|
||||||
|
manual_partitioning_help_dialog_viewport_box.add_css_class("boxed-list");
|
||||||
|
manual_partitioning_help_dialog_viewport_box.add_css_class("no-round-borders");
|
||||||
|
|
||||||
|
manual_partitioning_help_dialog_viewport_box.append(&manual_partitioning_help_dialog_textview);*/
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog_viewport = gtk::ScrolledWindow::builder()
|
||||||
|
.vexpand(true)
|
||||||
|
.hexpand(true)
|
||||||
|
.has_frame(true)
|
||||||
|
.overflow(gtk::Overflow::Hidden)
|
||||||
|
.child(&manual_partitioning_help_dialog_textview)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
let manual_partitioning_help_dialog = adw::AlertDialog::builder()
|
||||||
|
.extra_child(&manual_partitioning_help_dialog_viewport)
|
||||||
|
.width_request(600)
|
||||||
|
.height_request(500)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
manual_partitioning_help_dialog.add_response(
|
||||||
|
"manual_partitioning_help_dialog",
|
||||||
|
"manual_partitioning_help_dialog_label",
|
||||||
|
);
|
||||||
|
|
||||||
|
manual_partitioning_help_dialog_button.connect_activated(clone!(
|
||||||
|
#[strong]
|
||||||
|
window,
|
||||||
|
#[strong]
|
||||||
|
manual_partitioning_help_dialog,
|
||||||
|
move |_| {
|
||||||
|
manual_partitioning_help_dialog.present(Some(&window));
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
let system_drive_mounts_adw_listbox_label = gtk::Label::builder()
|
let system_drive_mounts_adw_listbox_label = gtk::Label::builder()
|
||||||
.hexpand(true)
|
.hexpand(true)
|
||||||
.halign(gtk::Align::Start)
|
.halign(gtk::Align::Start)
|
||||||
@ -66,6 +130,7 @@ pub fn manual_partitioning_page(
|
|||||||
|
|
||||||
let system_drive_mounts_adw_listbox = gtk::ListBox::builder()
|
let system_drive_mounts_adw_listbox = gtk::ListBox::builder()
|
||||||
//.selection_mode(gtk::SelectionMode::None)
|
//.selection_mode(gtk::SelectionMode::None)
|
||||||
|
.show_separators(true)
|
||||||
.build();
|
.build();
|
||||||
system_drive_mounts_adw_listbox.add_css_class("boxed-list");
|
system_drive_mounts_adw_listbox.add_css_class("boxed-list");
|
||||||
system_drive_mounts_adw_listbox.add_css_class("no-round-borders");
|
system_drive_mounts_adw_listbox.add_css_class("no-round-borders");
|
||||||
@ -82,6 +147,7 @@ pub fn manual_partitioning_page(
|
|||||||
|
|
||||||
let custom_drive_mounts_adw_listbox = gtk::ListBox::builder()
|
let custom_drive_mounts_adw_listbox = gtk::ListBox::builder()
|
||||||
//.selection_mode(gtk::SelectionMode::None)
|
//.selection_mode(gtk::SelectionMode::None)
|
||||||
|
.show_separators(true)
|
||||||
.build();
|
.build();
|
||||||
custom_drive_mounts_adw_listbox.add_css_class("boxed-list");
|
custom_drive_mounts_adw_listbox.add_css_class("boxed-list");
|
||||||
custom_drive_mounts_adw_listbox.add_css_class("no-round-borders");
|
custom_drive_mounts_adw_listbox.add_css_class("no-round-borders");
|
||||||
@ -454,6 +520,7 @@ pub fn manual_partitioning_page(
|
|||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
|
content_box.append(&manual_partitioning_help_dialog_button_listbox);
|
||||||
content_box.append(&system_drive_mounts_adw_listbox_label);
|
content_box.append(&system_drive_mounts_adw_listbox_label);
|
||||||
content_box.append(&system_drive_mounts_viewport);
|
content_box.append(&system_drive_mounts_viewport);
|
||||||
content_box.append(&custom_drive_mounts_adw_listbox_label);
|
content_box.append(&custom_drive_mounts_adw_listbox_label);
|
||||||
@ -531,12 +598,25 @@ pub fn manual_partitioning_page(
|
|||||||
system_drive_mounts_adw_listbox_label,
|
system_drive_mounts_adw_listbox_label,
|
||||||
#[weak]
|
#[weak]
|
||||||
custom_drive_mounts_adw_listbox_label,
|
custom_drive_mounts_adw_listbox_label,
|
||||||
|
#[weak]
|
||||||
|
manual_partitioning_help_dialog,
|
||||||
|
#[weak]
|
||||||
|
manual_partitioning_help_dialog_button,
|
||||||
|
#[strong]
|
||||||
|
manual_partitioning_help_dialog_textview_buffer,
|
||||||
move |_, _| {
|
move |_, _| {
|
||||||
manual_partitioning_page.set_page_title(t!("manual_partitioning_page_title"));
|
manual_partitioning_page.set_page_title(t!("manual_partitioning_page_title"));
|
||||||
manual_partitioning_page.set_page_subtitle(t!("manual_partitioning_page_subtitle"));
|
manual_partitioning_page.set_page_subtitle(t!("manual_partitioning_page_subtitle"));
|
||||||
manual_partitioning_page.set_back_tooltip_label(t!("back"));
|
manual_partitioning_page.set_back_tooltip_label(t!("back"));
|
||||||
manual_partitioning_page.set_next_tooltip_label(t!("next"));
|
manual_partitioning_page.set_next_tooltip_label(t!("next"));
|
||||||
//
|
//
|
||||||
|
manual_partitioning_help_dialog.set_response_label(
|
||||||
|
"manual_partitioning_help_dialog",
|
||||||
|
&t!("manual_partitioning_help_dialog_label"),
|
||||||
|
);
|
||||||
|
manual_partitioning_help_dialog_textview_buffer.set_text(&t!("manual_partitioning_help_dialog_textview_buffer_text"));
|
||||||
|
manual_partitioning_help_dialog_button.set_title(&t!("manual_partitioning_help_button_label"));
|
||||||
|
//
|
||||||
system_drive_mounts_adw_listbox_label.set_label(&t!(
|
system_drive_mounts_adw_listbox_label.set_label(&t!(
|
||||||
"system_drive_mounts_adw_listbox_label_label"
|
"system_drive_mounts_adw_listbox_label_label"
|
||||||
));
|
));
|
||||||
@ -671,7 +751,7 @@ fn set_crypttab_entries(
|
|||||||
//.transient_for(&window)
|
//.transient_for(&window)
|
||||||
//.hide_on_close(true)
|
//.hide_on_close(true)
|
||||||
.extra_child(&crypttab_password_child_box)
|
.extra_child(&crypttab_password_child_box)
|
||||||
.width_request(400)
|
.width_request(600)
|
||||||
.height_request(200)
|
.height_request(200)
|
||||||
.heading(
|
.heading(
|
||||||
strfmt::strfmt(
|
strfmt::strfmt(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user