From cf87ac32af095a8be4cece0e28b2038338107009 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Sat, 8 Nov 2025 17:48:17 -0800 Subject: [PATCH] Update Modes for win-installer --- boot_diags/src/app.rs | 10 ++++++++-- core/src/state.rs | 4 ++++ deja_vu/src/app.rs | 20 ++++++++++++++++---- win_installer/src/app.rs | 28 ++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 6 deletions(-) diff --git a/boot_diags/src/app.rs b/boot_diags/src/app.rs index dc68ffb..d3e9e89 100644 --- a/boot_diags/src/app.rs +++ b/boot_diags/src/app.rs @@ -657,7 +657,10 @@ fn build_footer_string(cur_mode: Mode) -> String { | Mode::PEMenu | Mode::PreClone | Mode::PostClone - | Mode::SelectTableType => { + | Mode::ScanWinImages + | Mode::SelectTableType + | Mode::SelectWinImage + | Mode::SetUserName => { panic!("This shouldn't happen?") } } @@ -770,7 +773,10 @@ fn build_left_items(app: &App) -> Action { | Mode::Confirm | Mode::PreClone | Mode::Clone - | Mode::PostClone => { + | Mode::PostClone + | Mode::ScanWinImages + | Mode::SelectWinImage + | Mode::SetUserName => { panic!("This shouldn't happen?") } }; diff --git a/core/src/state.rs b/core/src/state.rs index d05eaf5..c0bcadd 100644 --- a/core/src/state.rs +++ b/core/src/state.rs @@ -42,6 +42,10 @@ pub enum Mode { Clone, SelectParts, PostClone, + // Windows Installer + ScanWinImages, + SelectWinImage, + SetUserName, // WinPE PEMenu, } diff --git a/deja_vu/src/app.rs b/deja_vu/src/app.rs index 34afb20..2b2d516 100644 --- a/deja_vu/src/app.rs +++ b/deja_vu/src/app.rs @@ -129,7 +129,10 @@ impl App { | Mode::LogView | Mode::PEMenu | Mode::Process - | Mode::SetBootMode => panic!("This shouldn't happen?"), + | Mode::ScanWinImages + | Mode::SelectWinImage + | Mode::SetBootMode + | Mode::SetUserName => panic!("This shouldn't happen?"), } } @@ -154,7 +157,10 @@ impl App { | Mode::LogView | Mode::PEMenu | Mode::Process - | Mode::SetBootMode => panic!("This shouldn't happen?"), + | Mode::ScanWinImages + | Mode::SelectWinImage + | Mode::SetBootMode + | Mode::SetUserName => panic!("This shouldn't happen?"), }; if new_mode == self.cur_mode { @@ -634,7 +640,10 @@ fn build_footer_string(cur_mode: Mode) -> String { | Mode::LogView | Mode::PEMenu | Mode::Process - | Mode::SetBootMode => panic!("This shouldn't happen?"), + | Mode::ScanWinImages + | Mode::SelectWinImage + | Mode::SetBootMode + | Mode::SetUserName => panic!("This shouldn't happen?"), } } @@ -707,7 +716,10 @@ fn build_left_items(app: &App, cur_mode: Mode) -> Action { | Mode::LogView | Mode::PEMenu | Mode::Process - | Mode::SetBootMode => panic!("This shouldn't happen?"), + | Mode::ScanWinImages + | Mode::SelectWinImage + | Mode::SetBootMode + | Mode::SetUserName => panic!("This shouldn't happen?"), }; Action::UpdateLeft(title, labels, items, select_type) } diff --git a/win_installer/src/app.rs b/win_installer/src/app.rs index d9f6e6b..aafa217 100644 --- a/win_installer/src/app.rs +++ b/win_installer/src/app.rs @@ -84,6 +84,34 @@ impl App<'_> { }) } + pub fn next_mode(&mut self) -> Mode { + match self.mode { + Mode::Home | Mode::InstallDrivers => Mode::ScanDisks, + Mode::ScanDisks => Mode::SelectDisks, + Mode::SelectDisks => Mode::SelectTableType, + Mode::SelectTableType => Mode::ScanWinImages, + Mode::ScanWinImages => Mode::SelectWinImage, + Mode::SelectWinImage => Mode::SetUserName, + Mode::SetUserName => Mode::Confirm, + Mode::Confirm => Mode::Process, // i.e. format, apply, etc + Mode::Process | Mode::Done => Mode::Done, + Mode::Failed => Mode::Failed, + // Invalid States + Mode::BootDiags + | Mode::BootScan + | Mode::BootSetup + | Mode::Clone + | Mode::DiagMenu + | Mode::InjectDrivers + | Mode::LogView + | Mode::PEMenu + | Mode::PreClone + | Mode::PostClone + | Mode::SelectParts + | Mode::SetBootMode => panic!("This shouldn't happen?"), + } + } + pub async fn run(&mut self) -> Result<()> { let mut tui = Tui::new()? // .mouse(true) // uncomment this line to enable mouse support