Working on TimeZone stage.
This commit is contained in:
+23
-3
@@ -20,7 +20,6 @@
|
||||
stages loading, switching between stages, and stuff.
|
||||
*/
|
||||
|
||||
|
||||
use iced::widget;
|
||||
use std::process::ExitCode;
|
||||
|
||||
@@ -42,6 +41,7 @@ enum Views {
|
||||
Welcome(welcome::WelcomeStage),
|
||||
License(license::LicenseStage),
|
||||
Network(stages::network::NetworkStage),
|
||||
TimeZone(stages::timezone::TimeZoneStage),
|
||||
}
|
||||
|
||||
enum Message {
|
||||
@@ -49,6 +49,7 @@ enum Message {
|
||||
Welcome(welcome::Message),
|
||||
License(license::Message),
|
||||
Network(stages::network::Message),
|
||||
TimeZone(stages::timezone::Message),
|
||||
}
|
||||
|
||||
struct KiraState {
|
||||
@@ -105,6 +106,7 @@ fn view(k_state: &KiraState) -> Element<'_, Message> {
|
||||
Views::Welcome(wellcome_stage) => wellcome_stage.view().map(Message::Welcome),
|
||||
Views::License(license_stage) => license_stage.view().map(Message::License),
|
||||
Views::Network(network_stage) => network_stage.view().map(Message::Network),
|
||||
Views::TimeZone(timezone_stage) => timezone_stage.view().map(Message::TimeZone),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +160,9 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
|
||||
network::UpdateResult::StageAction(action) => match action {
|
||||
StageAction::Next(network_res) => {
|
||||
k_state.config.config_trail.push(network_res);
|
||||
iced::exit()
|
||||
k_state.current_view =
|
||||
Views::TimeZone(stages::timezone::TimeZoneStage::new());
|
||||
Task::none()
|
||||
}
|
||||
StageAction::Back => {
|
||||
k_state.current_view = Views::License(license::LicenseStage {});
|
||||
@@ -171,6 +175,22 @@ fn update(k_state: &mut KiraState, message: Message) -> Task<Message> {
|
||||
Task::none()
|
||||
}
|
||||
}
|
||||
Message::TimeZone(timezone_message) => {
|
||||
if let Views::TimeZone(timezone_view) = &mut k_state.current_view {
|
||||
let action = timezone_view.update(timezone_message);
|
||||
match action {
|
||||
StageAction::Next(tz_res) => {
|
||||
k_state.config.config_trail.push(tz_res);
|
||||
iced::exit()
|
||||
}
|
||||
StageAction::Abort(_) => iced::exit(),
|
||||
StageAction::Back => iced::exit(),
|
||||
StageAction::None => Task::none(),
|
||||
}
|
||||
} else {
|
||||
Task::none()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +207,7 @@ pub fn main() -> ExitCode {
|
||||
let iced_result = iced::application(KiraState::boot, update, view)
|
||||
.window(iced::window::Settings {
|
||||
icon: Some(
|
||||
iced::window::icon::from_file_data(include_bytes!("icon.png"), None)
|
||||
iced::window::icon::from_file_data(include_bytes!("media/icon.png"), None)
|
||||
.expect("icon should be a valid PNG"),
|
||||
),
|
||||
..Default::default()
|
||||
|
||||
Reference in New Issue
Block a user