From 13c6921da1572326b4a57c090cba893ff6755516 Mon Sep 17 00:00:00 2001 From: RumovZ Date: Sun, 31 Jan 2021 11:12:49 +0100 Subject: [PATCH] Remove protobuf filters whole_col and current_deck --- qt/aqt/browser.py | 2 +- qt/aqt/sidebar.py | 4 +- rslib/backend.proto | 8 ++-- rslib/src/backend/mod.rs | 98 +++++++++++++++++++++------------------- 4 files changed, 57 insertions(+), 55 deletions(-) diff --git a/qt/aqt/browser.py b/qt/aqt/browser.py index 2465191da..4554e2499 100644 --- a/qt/aqt/browser.py +++ b/qt/aqt/browser.py @@ -609,7 +609,7 @@ class Browser(QMainWindow): tr(TR.BROWSING_SEARCH_BAR_HINT) ) self.form.searchEdit.addItems(self.mw.pm.profile["searchHistory"]) - self.search_for(self.col.build_search_string(SearchTerm(current_deck=True)), "") + self.search_for(self.col.build_search_string(SearchTerm(deck="current")), "") self.form.searchEdit.setFocus() # search triggered by user diff --git a/qt/aqt/sidebar.py b/qt/aqt/sidebar.py index d3c3e1ee5..2767487ee 100644 --- a/qt/aqt/sidebar.py +++ b/qt/aqt/sidebar.py @@ -462,14 +462,14 @@ class SidebarTreeView(QTreeView): item = SidebarItem( tr(TR.BROWSING_WHOLE_COLLECTION), ":/icons/collection.svg", - self._filter_func(SearchTerm(whole_collection=True)), + self._filter_func(), item_type=SidebarItemType.COLLECTION, ) root.addChild(item) item = SidebarItem( tr(TR.BROWSING_CURRENT_DECK), ":/icons/deck.svg", - self._filter_func(SearchTerm(current_deck=True)), + self._filter_func(SearchTerm(deck="current")), item_type=SidebarItemType.CURRENT_DECK, ) root.addChild(item) diff --git a/rslib/backend.proto b/rslib/backend.proto index d45414cb0..ef2730ecc 100644 --- a/rslib/backend.proto +++ b/rslib/backend.proto @@ -811,11 +811,9 @@ message SearchTerm { Rated rated = 8; uint32 added_in_days = 9; int32 due_in_days = 10; - bool whole_collection = 11; - bool current_deck = 12; - Flag flag = 13; - CardState card_state = 14; - IdList nids = 15; + Flag flag = 11; + CardState card_state = 12; + IdList nids = 13; } } diff --git a/rslib/src/backend/mod.rs b/rslib/src/backend/mod.rs index b8d25c09f..2f5894080 100644 --- a/rslib/src/backend/mod.rs +++ b/rslib/src/backend/mod.rs @@ -294,54 +294,58 @@ impl From for Node<'_> { fn from(msg: pb::SearchTerm) -> Self { use pb::search_term::Filter; use pb::search_term::Flag; - match msg.filter.unwrap_or(Filter::WholeCollection(true)) { - Filter::Tag(s) => Node::Search(SearchNode::Tag( - escape_anki_wildcards(&s).into_owned().into(), - )), - Filter::Deck(s) => Node::Search(SearchNode::Deck( - escape_anki_wildcards(&s).into_owned().into(), - )), - Filter::Note(s) => Node::Search(SearchNode::NoteType( - escape_anki_wildcards(&s).into_owned().into(), - )), - Filter::Template(u) => { - Node::Search(SearchNode::CardTemplate(TemplateKind::Ordinal(u as u16))) + if let Some(filter) = msg.filter { + match filter { + Filter::Tag(s) => Node::Search(SearchNode::Tag( + escape_anki_wildcards(&s).into_owned().into(), + )), + Filter::Deck(s) => Node::Search(SearchNode::Deck( + escape_anki_wildcards(&s).into_owned().into(), + )), + Filter::Note(s) => Node::Search(SearchNode::NoteType( + escape_anki_wildcards(&s).into_owned().into(), + )), + Filter::Template(u) => { + Node::Search(SearchNode::CardTemplate(TemplateKind::Ordinal(u as u16))) + } + Filter::Nid(nid) => Node::Search(SearchNode::NoteIDs(nid.to_string().into())), + Filter::Nids(nids) => { + Node::Search(SearchNode::NoteIDs(nids.into_id_string().into())) + } + Filter::Dupe(dupe) => Node::Search(SearchNode::Duplicates { + note_type_id: dupe.notetype_id.into(), + text: dupe.first_field.into(), + }), + Filter::FieldName(s) => Node::Search(SearchNode::SingleField { + field: escape_anki_wildcards(&s).into_owned().into(), + text: "*".to_string().into(), + is_re: false, + }), + Filter::Rated(rated) => Node::Search(SearchNode::Rated { + days: rated.days, + ease: rated.rating().into(), + }), + Filter::AddedInDays(u) => Node::Search(SearchNode::AddedInDays(u)), + Filter::DueInDays(i) => Node::Search(SearchNode::Property { + operator: "<=".to_string(), + kind: PropertyKind::Due(i), + }), + Filter::CardState(state) => Node::Search(SearchNode::State( + pb::search_term::CardState::from_i32(state) + .unwrap_or_default() + .into(), + )), + Filter::Flag(flag) => match Flag::from_i32(flag).unwrap_or(Flag::Any) { + Flag::None => Node::Search(SearchNode::Flag(0)), + Flag::Any => Node::Not(Box::new(Node::Search(SearchNode::Flag(0)))), + Flag::Red => Node::Search(SearchNode::Flag(1)), + Flag::Orange => Node::Search(SearchNode::Flag(2)), + Flag::Green => Node::Search(SearchNode::Flag(3)), + Flag::Blue => Node::Search(SearchNode::Flag(4)), + }, } - Filter::Nid(nid) => Node::Search(SearchNode::NoteIDs(nid.to_string().into())), - Filter::Nids(nids) => Node::Search(SearchNode::NoteIDs(nids.into_id_string().into())), - Filter::Dupe(dupe) => Node::Search(SearchNode::Duplicates { - note_type_id: dupe.notetype_id.into(), - text: dupe.first_field.into(), - }), - Filter::FieldName(s) => Node::Search(SearchNode::SingleField { - field: escape_anki_wildcards(&s).into_owned().into(), - text: "*".to_string().into(), - is_re: false, - }), - Filter::Rated(rated) => Node::Search(SearchNode::Rated { - days: rated.days, - ease: rated.rating().into(), - }), - Filter::AddedInDays(u) => Node::Search(SearchNode::AddedInDays(u)), - Filter::DueInDays(i) => Node::Search(SearchNode::Property { - operator: "<=".to_string(), - kind: PropertyKind::Due(i), - }), - Filter::WholeCollection(_) => Node::Search(SearchNode::WholeCollection), - Filter::CurrentDeck(_) => Node::Search(SearchNode::Deck("current".into())), - Filter::CardState(state) => Node::Search(SearchNode::State( - pb::search_term::CardState::from_i32(state) - .unwrap_or_default() - .into(), - )), - Filter::Flag(flag) => match Flag::from_i32(flag).unwrap_or(Flag::Any) { - Flag::None => Node::Search(SearchNode::Flag(0)), - Flag::Any => Node::Not(Box::new(Node::Search(SearchNode::Flag(0)))), - Flag::Red => Node::Search(SearchNode::Flag(1)), - Flag::Orange => Node::Search(SearchNode::Flag(2)), - Flag::Green => Node::Search(SearchNode::Flag(3)), - Flag::Blue => Node::Search(SearchNode::Flag(4)), - }, + } else { + Node::Search(SearchNode::WholeCollection) } } }