save and load is done
This commit is contained in:
21
src/main.rs
21
src/main.rs
@@ -9,7 +9,7 @@ use std::fs;
|
||||
use iced::{
|
||||
Color, Element, Length, Task, Theme,
|
||||
time::{self, Duration},
|
||||
widget::{Column, button, canvas, column, container, pick_list, row, slider, text},
|
||||
widget::{Column, TextInput, button, canvas, column, container, pick_list, row, slider, text},
|
||||
};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -41,6 +41,7 @@ enum Message {
|
||||
ToggleSavePanel,
|
||||
Save,
|
||||
Load,
|
||||
FileNameChanged(String),
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
@@ -195,6 +196,7 @@ impl MyApp {
|
||||
self.poly_frame.update();
|
||||
}
|
||||
Message::ToggleSavePanel => self.show_save_panel = !self.show_save_panel,
|
||||
Message::FileNameChanged(s) => self.file_name = s,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,9 +268,26 @@ impl MyApp {
|
||||
.on_press(Message::ToggleSavePanel)
|
||||
.into(),
|
||||
];
|
||||
let mut entries_saves: Vec<String> = fs::read_dir("./saves")
|
||||
.unwrap()
|
||||
.filter_map(|res| res.ok())
|
||||
.map(|e| e.path().file_name().unwrap().to_str().unwrap().to_string())
|
||||
.collect();
|
||||
|
||||
if self.show_save_panel {
|
||||
save_panel.push(
|
||||
TextInput::new("Name File", &self.file_name)
|
||||
.on_input(|new_value| Message::FileNameChanged(new_value))
|
||||
.into(),
|
||||
);
|
||||
save_panel.push(button("Save").on_press(Message::Save).into());
|
||||
save_panel.push(
|
||||
pick_list(entries_saves, Some(&self.file_name), move |s| {
|
||||
Message::FileNameChanged(s)
|
||||
})
|
||||
.into(),
|
||||
);
|
||||
|
||||
save_panel.push(button("Load").on_press(Message::Load).into());
|
||||
}
|
||||
column![
|
||||
|
||||
Reference in New Issue
Block a user