diff options
| author | lukeflo | 2024-10-17 23:24:51 +0200 |
|---|---|---|
| committer | lukeflo | 2024-10-17 23:24:51 +0200 |
| commit | 917b9c522635a304ff7c70499f05903a694696a3 (patch) | |
| tree | 3cc12f06bed4f991e4fa926b8bc16de24a38ed1e /src/frontend/entries.rs | |
| parent | 8362f2a4272cf11e54c9384b19d5c878141bf76d (diff) | |
| download | bibiman-917b9c522635a304ff7c70499f05903a694696a3.tar.gz bibiman-917b9c522635a304ff7c70499f05903a694696a3.zip | |
correct sorting function
Diffstat (limited to 'src/frontend/entries.rs')
| -rw-r--r-- | src/frontend/entries.rs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/frontend/entries.rs b/src/frontend/entries.rs index 38b1852..63a2a1b 100644 --- a/src/frontend/entries.rs +++ b/src/frontend/entries.rs @@ -76,35 +76,37 @@ impl EntryTable { // Sort entry table by specific column. // Toggle sorting by hitting same key again - pub fn sort_entry_table(&mut self, sorting: &str) { + pub fn sort_entry_table(&mut self, sorting: &str, toggle: bool) { + if toggle { + self.entry_table_reversed_sort = !self.entry_table_reversed_sort; + } if self.entry_table_reversed_sort { match sorting { "author" => self .entry_table_items - .sort_by(|a, b| a.authors.to_lowercase().cmp(&b.authors.to_lowercase())), + .sort_by(|a, b| b.authors.to_lowercase().cmp(&a.authors.to_lowercase())), "title" => self .entry_table_items - .sort_by(|a, b| a.title.to_lowercase().cmp(&b.title.to_lowercase())), + .sort_by(|a, b| b.title.to_lowercase().cmp(&a.title.to_lowercase())), "year" => self .entry_table_items - .sort_by(|a, b| a.year.to_lowercase().cmp(&b.year.to_lowercase())), + .sort_by(|a, b| b.year.to_lowercase().cmp(&a.year.to_lowercase())), _ => {} } } else if !self.entry_table_reversed_sort { match sorting { "author" => self .entry_table_items - .sort_by(|a, b| b.authors.to_lowercase().cmp(&a.authors.to_lowercase())), + .sort_by(|a, b| a.authors.to_lowercase().cmp(&b.authors.to_lowercase())), "title" => self .entry_table_items - .sort_by(|a, b| b.title.to_lowercase().cmp(&a.title.to_lowercase())), + .sort_by(|a, b| a.title.to_lowercase().cmp(&b.title.to_lowercase())), "year" => self .entry_table_items - .sort_by(|a, b| b.year.to_lowercase().cmp(&a.year.to_lowercase())), + .sort_by(|a, b| a.year.to_lowercase().cmp(&b.year.to_lowercase())), _ => {} } } - self.entry_table_reversed_sort = !self.entry_table_reversed_sort; } } @@ -276,6 +278,9 @@ impl App { let filtered_list = BibiSearch::search_entry_list(&mut self.search_struct.search_string, orig_list.clone()); self.entry_table.entry_table_items = filtered_list; + if self.entry_table.entry_table_reversed_sort { + self.entry_table.sort_entry_table("author", false); + } self.entry_table.entry_scroll_state = ScrollbarState::content_length( self.entry_table.entry_scroll_state, self.entry_table.entry_table_items.len(), |
