aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/entries.rs
diff options
context:
space:
mode:
authorlukeflo2024-10-17 23:24:51 +0200
committerlukeflo2024-10-17 23:24:51 +0200
commit917b9c522635a304ff7c70499f05903a694696a3 (patch)
tree3cc12f06bed4f991e4fa926b8bc16de24a38ed1e /src/frontend/entries.rs
parent8362f2a4272cf11e54c9384b19d5c878141bf76d (diff)
downloadbibiman-917b9c522635a304ff7c70499f05903a694696a3.tar.gz
bibiman-917b9c522635a304ff7c70499f05903a694696a3.zip
correct sorting function
Diffstat (limited to 'src/frontend/entries.rs')
-rw-r--r--src/frontend/entries.rs21
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(),