Add posibility clear an image

This commit is contained in:
Philip Kristoffersen
2022-04-28 23:56:13 +02:00
parent 8e9cbd8652
commit 3d68192933
+20
View File
@@ -77,6 +77,7 @@ enum UserAction {
UserSelected(SteamUsersInfo), UserSelected(SteamUsersInfo),
ShortcutSelected(ShortcutOwned), ShortcutSelected(ShortcutOwned),
ImageTypeSelected(ImageType), ImageTypeSelected(ImageType),
ImageTypeCleared(ImageType),
ImageSelected(PossibleImage), ImageSelected(PossibleImage),
GridIdChanged(usize), GridIdChanged(usize),
BackButton, BackButton,
@@ -165,6 +166,10 @@ impl MyEguiApp {
) -> Option<UserAction> { ) -> Option<UserAction> {
ui.heading(image_type.name()); ui.heading(image_type.name());
if ui.small_button("Clear image?").on_hover_text("Click here to clear the image").clicked(){
return Some(UserAction::ImageTypeCleared(image_type.clone()));
}
match &*state.image_options.borrow() { match &*state.image_options.borrow() {
FetcStatus::Fetched(images) => { FetcStatus::Fetched(images) => {
for image in images { for image in images {
@@ -282,9 +287,24 @@ impl MyEguiApp {
UserAction::CorrectGridId => { UserAction::CorrectGridId => {
self.handle_correct_grid_request(); self.handle_correct_grid_request();
} }
UserAction::ImageTypeCleared(image_type) => {
self.handle_image_type_clear(image_type);
},
}; };
} }
fn handle_image_type_clear(&mut self, image_type: ImageType) {
let data_folder = &self.image_selected_state.steam_user.as_ref().unwrap().steam_user_data_folder;
let file_name = image_type.file_name(self.image_selected_state.selected_shortcut.as_ref().unwrap().app_id);
let path = Path::new(data_folder).join("config").join("grid").join(&file_name);
if path.exists(){
let _ = std::fs::remove_file(&path);
}
let key = path.to_string_lossy().to_string();
self.image_selected_state.image_handles.remove(&key);
self.image_selected_state.image_type_selected = None;
}
fn handle_correct_grid_request(&mut self) { fn handle_correct_grid_request(&mut self) {
let app_name = self let app_name = self
.image_selected_state .image_selected_state