save and load is done
This commit is contained in:
9
saves/test_save.json
Normal file
9
saves/test_save.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"poly_frame": {
|
||||||
|
"teta": 3.7117934,
|
||||||
|
"polygons": []
|
||||||
|
},
|
||||||
|
"nb_sec_for_rev": 4.0,
|
||||||
|
"file_name": "test_save.json",
|
||||||
|
"show_save_panel": true
|
||||||
|
}
|
||||||
21
src/main.rs
21
src/main.rs
@@ -9,7 +9,7 @@ use std::fs;
|
|||||||
use iced::{
|
use iced::{
|
||||||
Color, Element, Length, Task, Theme,
|
Color, Element, Length, Task, Theme,
|
||||||
time::{self, Duration},
|
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};
|
use serde::{Deserialize, Serialize};
|
||||||
@@ -41,6 +41,7 @@ enum Message {
|
|||||||
ToggleSavePanel,
|
ToggleSavePanel,
|
||||||
Save,
|
Save,
|
||||||
Load,
|
Load,
|
||||||
|
FileNameChanged(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
@@ -195,6 +196,7 @@ impl MyApp {
|
|||||||
self.poly_frame.update();
|
self.poly_frame.update();
|
||||||
}
|
}
|
||||||
Message::ToggleSavePanel => self.show_save_panel = !self.show_save_panel,
|
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)
|
.on_press(Message::ToggleSavePanel)
|
||||||
.into(),
|
.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 {
|
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(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());
|
save_panel.push(button("Load").on_press(Message::Load).into());
|
||||||
}
|
}
|
||||||
column![
|
column![
|
||||||
|
|||||||
Reference in New Issue
Block a user