diff options
| author | lukeflo | 2024-10-12 20:20:16 +0200 |
|---|---|---|
| committer | lukeflo | 2024-10-12 22:41:38 +0200 |
| commit | 84e80b4074a174163a4c57c59ff616356e0a4350 (patch) | |
| tree | ef4900673dcba99e8f61544ef6caf0b833e5b69c /src/frontend/keywords.rs | |
| parent | 2fa5f8193c2cf3b75f54a37f0f7c4b5ae9d7d665 (diff) | |
| download | bibiman-84e80b4074a174163a4c57c59ff616356e0a4350.tar.gz bibiman-84e80b4074a174163a4c57c59ff616356e0a4350.zip | |
search with intermediate saves
Diffstat (limited to 'src/frontend/keywords.rs')
| -rw-r--r-- | src/frontend/keywords.rs | 19 |
1 files changed, 14 insertions, 5 deletions
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); |
