Fixes and initial work on security stage.

This commit is contained in:
2026-05-30 00:33:34 +02:00
parent f0a8e704c0
commit a503b2a36f
6 changed files with 229 additions and 13 deletions
+33 -3
View File
@@ -52,6 +52,7 @@ enum Views {
Locale(stages::locale::LocaleStage),
Keyboard(stages::keyboard::KeyboardStage),
Partition(stages::partition::PartitionStage),
Security(stages::security::SecurityStage),
}
enum Message {
@@ -63,6 +64,7 @@ enum Message {
Locale(stages::locale::Message),
Keyboard(stages::keyboard::Message),
Partition(stages::partition::Message),
Security(stages::security::Message),
}
struct KiraState {
@@ -111,6 +113,7 @@ fn view(k_state: &KiraState) -> Element<'_, Message> {
Views::Locale(locale_stage) => locale_stage.view().map(Message::Locale),
Views::Keyboard(keyboard_stage) => keyboard_stage.view().map(Message::Keyboard),
Views::Partition(partition_stage) => partition_stage.view().map(Message::Partition),
Views::Security(security_stage) => security_stage.view().map(Message::Security)
}
}
@@ -259,13 +262,14 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
} else {
Task::none()
}
}
},
Message::Partition(partition_msg) => {
if let Views::Partition(partition_view) = &mut k_state.current_view {
match partition_view.update(partition_msg) {
StageAction::Next(partition_res) => {
k_state.config.config_trail.push(partition_res);
iced::exit()
k_state.current_view = Views::Security(stages::security::SecurityStage::new());
Task::none()
}
StageAction::Back => {
k_state.config.config_trail.pop();
@@ -278,7 +282,33 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
} else {
Task::none()
}
}
},
Message::Security(security_msg) => {
if let Views::Security(security_view) = &mut k_state.current_view {
match security_view.update(security_msg) {
StageAction::Next(security_res) => {
k_state.config.config_trail.push(security_res);
Task::none()
}
StageAction::Back => {
k_state.config.config_trail.pop();
match stages::partition::PartitionStage::new(&k_state.toml_config) {
Ok(part_stage) => {
k_state.current_view = Views::Partition(part_stage);
}
Err(ex) => {
log::error!("Error, cannot init partition stage: {}", ex);
}
}
Task::none()
}
_ => Task::none(),
}
} else {
Task::none()
}
},
}
}