fix: impossible to remove directories

This commit is contained in:
2026-01-28 22:07:05 +03:00
parent f1d4ffd7fa
commit b0c670235e
4 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -337,7 +337,7 @@ impl SoundpadGui {
let delete_dir_button_response =
ui.add_sized([18.0, 18.0], delete_dir_button);
if delete_dir_button_response.clicked() {
self.remove_dir(&path.clone());
self.app_state.dirs_to_remove.insert(path.clone());
}
});
});
-12
View File
@@ -96,18 +96,6 @@ impl SoundpadGui {
}
}
pub fn remove_dir(&mut self, path: &PathBuf) {
self.app_state.dirs.retain(|x| x != path);
if let Some(current_dir) = &self.app_state.current_dir
&& current_dir == path
{
self.app_state.current_dir = None;
self.app_state.files.clear();
}
self.config.dirs = self.app_state.dirs.clone();
self.config.save_to_file().ok();
}
pub fn open_dir(&mut self, path: &PathBuf) {
self.app_state.current_dir = Some(path.clone());
match path.read_dir() {
+11
View File
@@ -9,6 +9,17 @@ use std::time::{Duration, Instant};
impl App for SoundpadGui {
fn update(&mut self, ctx: &Context, _frame: &mut EFrame) {
// Remove directories
for path in self.app_state.dirs_to_remove.drain() {
self.app_state.dirs.retain(|x| x != &path);
if let Some(current_dir) = &self.app_state.current_dir
&& current_dir == &path
{
self.app_state.current_dir = None;
self.app_state.files.clear();
}
}
// Save directories if changed
if !self.config.dirs.eq(&self.app_state.dirs) {
self.config.dirs = self.app_state.dirs.clone();
+1
View File
@@ -38,6 +38,7 @@ pub struct AppState {
pub current_dir: Option<PathBuf>,
pub dirs: Vec<PathBuf>,
pub dirs_to_remove: HashSet<PathBuf>,
pub selected_file: Option<PathBuf>,
pub files: HashSet<PathBuf>,