aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/keywords.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/keywords.rs')
-rw-r--r--src/frontend/keywords.rs32
1 files changed, 14 insertions, 18 deletions
diff --git a/src/frontend/keywords.rs b/src/frontend/keywords.rs
index 9432752..ba74b02 100644
--- a/src/frontend/keywords.rs
+++ b/src/frontend/keywords.rs
@@ -42,23 +42,6 @@ impl TagListItem {
}
}
-// impl FromIterator<String> for TagList {
-// fn from_iter<I: IntoIterator<Item = String>>(iter: I) -> Self {
-// let tag_list_items: Vec<TagListItem> = iter
-// .into_iter()
-// .map(|info| TagListItem::new(&info))
-// .collect();
-// let tag_list_state = ListState::default(); // for preselection: .with_selected(Some(0));
-// let tag_scroll_state = ScrollbarState::new(tag_list_items.len());
-// Self {
-// tag_list_items,
-// tag_list_state,
-// tag_scroll_state,
-// selected_keyword: String::new(),
-// }
-// }
-// }
-
impl TagList {
pub fn new(keyword_list: Vec<String>) -> Self {
let tag_list_items = keyword_list;
@@ -118,7 +101,11 @@ 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 = TagList::from_iter(filtered_list)
+ // Update scrollbar length after filtering list
+ self.tag_list.tag_scroll_state = ScrollbarState::content_length(
+ self.tag_list.tag_scroll_state,
+ self.tag_list.tag_list_items.len(),
+ );
}
pub fn filter_tags_by_entries(&mut self) {
@@ -143,6 +130,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 +145,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));