Most work on keyboard stage is done.
This commit is contained in:
+23
-1
@@ -44,6 +44,7 @@ enum Views {
|
||||
Network(stages::network::NetworkStage),
|
||||
TimeZone(stages::timezone::TimeZoneStage),
|
||||
Locale(stages::locale::LocaleStage),
|
||||
Keyboard(stages::keyboard::KeyboardStage),
|
||||
}
|
||||
|
||||
enum Message {
|
||||
@@ -53,6 +54,7 @@ enum Message {
|
||||
Network(stages::network::Message),
|
||||
TimeZone(stages::timezone::Message),
|
||||
Locale(stages::locale::Message),
|
||||
Keyboard(stages::keyboard::Message),
|
||||
}
|
||||
|
||||
struct KiraState {
|
||||
@@ -100,6 +102,7 @@ fn view(k_state: &KiraState) -> Element<'_, Message> {
|
||||
Views::Network(network_stage) => network_stage.view().map(Message::Network),
|
||||
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),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,7 +208,8 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
|
||||
match locale_view.update(locale_msg) {
|
||||
StageAction::Next(locale_res) => {
|
||||
k_state.config.config_trail.push(locale_res);
|
||||
iced::exit()
|
||||
k_state.current_view = Views::Keyboard(stages::keyboard::KeyboardStage::new());
|
||||
Task::none()
|
||||
}
|
||||
StageAction::Back => {
|
||||
k_state.config.config_trail.pop();
|
||||
@@ -218,6 +222,24 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
|
||||
} else {
|
||||
Task::none()
|
||||
}
|
||||
},
|
||||
Message::Keyboard(keyboard_msg) => {
|
||||
if let Views::Keyboard(keyboard_view) = &mut k_state.current_view {
|
||||
match keyboard_view.update(keyboard_msg) {
|
||||
StageAction::Next(keyboard_res) => {
|
||||
k_state.config.config_trail.push(keyboard_res);
|
||||
iced::exit()
|
||||
}
|
||||
StageAction::Back => {
|
||||
k_state.config.config_trail.pop();
|
||||
k_state.current_view = Views::Locale(stages::locale::LocaleStage::new(&k_state.config));
|
||||
Task::none()
|
||||
}
|
||||
_ => Task::none(),
|
||||
}
|
||||
} else {
|
||||
Task::none()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user