diff options
Diffstat (limited to 'src/frontend')
| -rw-r--r-- | src/frontend/app.rs | 3 | ||||
| -rw-r--r-- | src/frontend/entries.rs | 6 | ||||
| -rw-r--r-- | src/frontend/keywords.rs | 19 | ||||
| -rw-r--r-- | src/frontend/ui.rs | 24 |
4 files changed, 23 insertions, 29 deletions
diff --git a/src/frontend/app.rs b/src/frontend/app.rs index ee2ab05..2f88ff2 100644 --- a/src/frontend/app.rs +++ b/src/frontend/app.rs @@ -161,7 +161,8 @@ impl App { if let CurrentArea::TagArea = self.current_area { self.tag_list.tag_list_state.select(Some(0)) } - self.search_struct.filtered_entry_list.clear(); + self.search_struct.filtered_entry_list_by_search.clear(); + self.search_struct.filtered_entry_list_by_tags.clear(); self.search_struct.filtered_tag_list.clear(); self.search_struct.inner_search = false; self.former_area = None diff --git a/src/frontend/entries.rs b/src/frontend/entries.rs index 081de4c..ac6d1b0 100644 --- a/src/frontend/entries.rs +++ b/src/frontend/entries.rs @@ -250,7 +250,7 @@ impl App { pub fn search_entries(&mut self) { let orig_list = { if self.search_struct.inner_search { - let orig_list = &self.search_struct.filtered_entry_list; + let orig_list = &self.search_struct.filtered_entry_list_by_tags; orig_list } else { let orig_list = &self.biblio_data.entry_list.bibentries; @@ -260,8 +260,8 @@ impl App { let filtered_list = BibiSearch::search_entry_list(&mut self.search_struct.search_string, orig_list.clone()); //search::search_entry_list(&self.search_string, orig_list.clone()); - // self.search_struct.filtered_entry_list = filtered_list.clone(); - self.entry_table = EntryTable::from_iter(filtered_list) + self.search_struct.filtered_entry_list_by_search = filtered_list.clone(); + self.entry_table = EntryTable::from_iter(filtered_list); } // Open file connected with entry through 'file' or 'pdf' field diff --git a/src/frontend/keywords.rs b/src/frontend/keywords.rs index 6aa4068..b4cc7e9 100644 --- a/src/frontend/keywords.rs +++ b/src/frontend/keywords.rs @@ -105,9 +105,17 @@ impl App { } pub fn filter_tags_by_entries(&mut self) { - if !self.search_struct.filtered_entry_list.is_empty() { + if !self.search_struct.filtered_entry_list_by_search.is_empty() + || !self.search_struct.filtered_entry_list_by_tags.is_empty() + { self.search_struct.filtered_tag_list.clear(); - let orig_list = self.search_struct.filtered_entry_list.clone(); + + let orig_list = if !self.search_struct.filtered_entry_list_by_search.is_empty() { + self.search_struct.filtered_entry_list_by_search.clone() + } else { + self.search_struct.filtered_entry_list_by_tags.clone() + }; + let mut filtered_keywords: Vec<String> = Vec::new(); for e in orig_list { @@ -135,7 +143,7 @@ impl App { pub fn filter_for_tags(&mut self) { let orig_list = { if self.search_struct.inner_search { - let orig_list = &self.search_struct.filtered_entry_list; + let orig_list = &self.search_struct.filtered_entry_list_by_search; orig_list } else { let orig_list = &self.biblio_data.entry_list.bibentries; @@ -144,8 +152,9 @@ impl App { }; let keyword = self.get_selected_tag(); let filtered_list = BibiSearch::filter_entries_by_tag(&keyword, &orig_list); - self.search_struct.filtered_entry_list = filtered_list; - self.entry_table = EntryTable::from_iter(self.search_struct.filtered_entry_list.clone()); + self.search_struct.filtered_entry_list_by_tags = filtered_list; + self.entry_table = + EntryTable::from_iter(self.search_struct.filtered_entry_list_by_tags.clone()); self.filter_tags_by_entries(); self.toggle_area(); self.former_area = Some(FormerArea::TagArea); diff --git a/src/frontend/ui.rs b/src/frontend/ui.rs index 7edcf43..a328df7 100644 --- a/src/frontend/ui.rs +++ b/src/frontend/ui.rs @@ -258,34 +258,18 @@ impl App { .add_modifier(Modifier::ITALIC) .fg(TEXT_FG_COLOR); let lines = { - let idx = self.entry_table.entry_table_state.selected().unwrap(); - let cur_entry = &self.entry_table.entry_table_items[idx]; // if self.entry_table.entry_table_items.len() > 0 { if self.entry_table.entry_table_state.selected().is_some() { + let idx = self.entry_table.entry_table_state.selected().unwrap(); + let cur_entry = &self.entry_table.entry_table_items[idx]; let mut lines = vec![]; lines.push(Line::from(vec![ Span::styled("Authors: ", style_value), - Span::styled( - // String::from(BibiEntry::get_authors( - // &self.get_selected_citekey(), - // &self.main_biblio.bibliography, - // )), - // Style::new().green(), - cur_entry.authors.clone(), - Style::new().green(), - ), + Span::styled(cur_entry.authors.clone(), Style::new().green()), ])); lines.push(Line::from(vec![ Span::styled("Title: ", style_value), - Span::styled( - // String::from(BibiEntry::get_title( - // &self.get_selected_citekey(), - // &self.main_biblio.bibliography, - // )), - // Style::new().magenta(), - cur_entry.title.clone(), - Style::new().magenta(), - ), + Span::styled(cur_entry.title.clone(), Style::new().magenta()), ])); lines.push(Line::from(vec