sort by directories in directory browser

This commit is contained in:
krolxon 2024-04-29 15:52:27 +05:30
parent 4993431186
commit c61b0503c7
1 changed files with 17 additions and 9 deletions

View File

@ -46,15 +46,23 @@ impl FileBrowser {
pub fn update_directory(&mut self, conn: &mut Connection) -> AppResult<()> { pub fn update_directory(&mut self, conn: &mut Connection) -> AppResult<()> {
self.filetree.clear(); self.filetree.clear();
self.filetree = conn let mut file_vec: Vec<(String, String)> = vec![];
.conn let mut dir_vec: Vec<(String, String)> = vec![];
.listfiles(self.path.as_str())? for (t, f) in conn.conn.listfiles(self.path.as_str())?.into_iter() {
.into_iter() if t == "directory" {
.filter(|(f, l)| { dir_vec.push((t, f));
f == "directory" } else if t == "file"
|| f == "file" && Path::new(l).has_extension(&["mp3", "ogg", "flac", "m4a", "wav", "aac" ,"opus", "ape", "wma", "mpc", "aiff", "dff", "mp2", "mka"]) && Path::new(&f).has_extension(&[
}) "mp3", "ogg", "flac", "m4a", "wav", "aac", "opus", "ape", "wma", "mpc", "aiff",
.collect::<Vec<(String, String)>>(); "dff", "mp2", "mka",
])
{
file_vec.push((t, f));
}
}
dir_vec.extend(file_vec);
self.filetree = dir_vec;
self.songs.clear(); self.songs.clear();
for (t, song) in self.filetree.iter() { for (t, song) in self.filetree.iter() {