From 55b49f1acee336ee06a8206054070df1af758123 Mon Sep 17 00:00:00 2001 From: Antoine Gersant Date: Tue, 27 Jun 2017 21:27:45 -0700 Subject: [PATCH] Fixed a bug where browse results were not sorted alphabetically --- src/db/mod.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/db/mod.rs b/src/db/mod.rs index b453b00..a051181 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -128,21 +128,23 @@ impl DB { let real_path = self.vfs.virtual_to_real(virtual_path)?; let real_path_string = real_path.as_path().to_string_lossy().into_owned(); - let real_songs: Vec = songs::table - .filter(songs::columns::parent.eq(&real_path_string)) - .load(connection)?; - let virtual_songs = real_songs - .into_iter() - .filter_map(|s| self.virtualize_song(s)); - output.extend(virtual_songs.map(|s| CollectionFile::Song(s))); - let real_directories: Vec = directories::table .filter(directories::columns::parent.eq(&real_path_string)) + .order(directories::columns::path) .load(connection)?; let virtual_directories = real_directories .into_iter() .filter_map(|s| self.virtualize_directory(s)); output.extend(virtual_directories.map(|d| CollectionFile::Directory(d))); + + let real_songs: Vec = songs::table + .filter(songs::columns::parent.eq(&real_path_string)) + .order(songs::columns::path) + .load(connection)?; + let virtual_songs = real_songs + .into_iter() + .filter_map(|s| self.virtualize_song(s)); + output.extend(virtual_songs.map(|s| CollectionFile::Song(s))); } Ok(output)