diff options
| author | lukeflo | 2024-10-17 14:01:34 +0200 |
|---|---|---|
| committer | lukeflo | 2024-10-17 14:01:34 +0200 |
| commit | 2983a94911b4ba76891ae3beaefcb5033bfc6ddd (patch) | |
| tree | 08e5fd6f0c1d76698ed0bfdef8ec8798b482ef28 /src/frontend | |
| parent | 374dd9b36dec8d122078cb7ef10dd912fef32460 (diff) | |
| download | bibiman-2983a94911b4ba76891ae3beaefcb5033bfc6ddd.tar.gz bibiman-2983a94911b4ba76891ae3beaefcb5033bfc6ddd.zip | |
make scrollbars adapt to lists filtered by search
Diffstat (limited to 'src/frontend')
| -rw-r--r-- | src/frontend/entries.rs | 4 | ||||
| -rw-r--r-- | src/frontend/keywords.rs | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/frontend/entries.rs b/src/frontend/entries.rs index 95f6f84..fb80b46 100644 --- a/src/frontend/entries.rs +++ b/src/frontend/entries.rs @@ -288,6 +288,10 @@ 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; + self.entry_table.entry_scroll_state = ScrollbarState::content_length( + self.entry_table.entry_scroll_state, + self.entry_table.entry_table_items.len(), + ); } // Open file connected with entry through 'file' or 'pdf' field diff --git a/src/frontend/keywords.rs b/src/frontend/keywords.rs index 9432752..98c4222 100644 --- a/src/frontend/keywords.rs +++ b/src/frontend/keywords.rs @@ -118,6 +118,10 @@ impl App { let filtered_list = BibiSearch::search_tag_list(&self.search_struct.search_string, orig_list.clone()); self.tag_list.tag_list_items = filtered_list; + self.tag_list.tag_scroll_state = ScrollbarState::content_length( + self.tag_list.tag_scroll_state, + self.tag_list.tag_list_items.len(), + ); // self.tag_list = TagList::from_iter(filtered_list) } @@ -143,6 +147,10 @@ impl App { self.search_struct.filtered_tag_list = filtered_keywords.clone(); self.tag_list.tag_list_items = filtered_keywords; + self.tag_list.tag_scroll_state = ScrollbarState::content_length( + self.tag_list.tag_scroll_state, + self.tag_list.tag_list_items.len(), + ); } // Filter the entry list by tags when hitting enter @@ -154,6 +162,11 @@ impl App { let filtered_list = BibiSearch::filter_entries_by_tag(&keyword, &orig_list); self.tag_list.selected_keyword = keyword.to_string(); self.entry_table.entry_table_items = filtered_list; + // Update scrollbar state with new lenght of itemlist + self.entry_table.entry_scroll_state = ScrollbarState::content_length( + self.entry_table.entry_scroll_state, + self.entry_table.entry_table_items.len(), + ); self.filter_tags_by_entries(); self.toggle_area(); self.entry_table.entry_table_state.select(Some(0)); |
