Update Modes for win-installer

This commit is contained in:
2Shirt 2025-11-08 17:48:17 -08:00
parent 69c3feb838
commit cf87ac32af
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
4 changed files with 56 additions and 6 deletions

View file

@ -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?")
}
};

View file

@ -42,6 +42,10 @@ pub enum Mode {
Clone,
SelectParts,
PostClone,
// Windows Installer
ScanWinImages,
SelectWinImage,
SetUserName,
// WinPE
PEMenu,
}

View file

@ -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)
}

View file

@ -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