Initial work on partition stage.

This commit is contained in:
2026-05-09 21:50:46 +02:00
parent 75ef50bed1
commit 2684c12e73
4 changed files with 246 additions and 3 deletions
+23 -1
View File
@@ -45,6 +45,7 @@ enum Views {
TimeZone(stages::timezone::TimeZoneStage),
Locale(stages::locale::LocaleStage),
Keyboard(stages::keyboard::KeyboardStage),
Partition(stages::partition::PartitionStage),
}
enum Message {
@@ -55,6 +56,7 @@ enum Message {
TimeZone(stages::timezone::Message),
Locale(stages::locale::Message),
Keyboard(stages::keyboard::Message),
Partition(stages::partition::Message),
}
struct KiraState {
@@ -103,6 +105,7 @@ fn view(k_state: &KiraState) -> Element<'_, Message> {
Views::TimeZone(timezone_stage) => timezone_stage.view().map(Message::TimeZone),
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),
}
}
@@ -228,7 +231,8 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
match keyboard_view.update(keyboard_msg) {
StageAction::Next(keyboard_res) => {
k_state.config.config_trail.push(keyboard_res);
iced::exit()
k_state.current_view = Views::Partition(stages::partition::PartitionStage::new());
Task::none()
}
StageAction::Back => {
k_state.config.config_trail.pop();
@@ -240,6 +244,24 @@ 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()
}
StageAction::Back => {
k_state.config.config_trail.pop();
k_state.current_view = Views::Keyboard(stages::keyboard::KeyboardStage::new());
Task::none()
}
_ => Task::none(),
}
} else {
Task::none()
}
}
}
}