mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
Merge pull request #966 from RumovZ/noarg-filters
Remove protobuf filters whole_col and current_deck
This commit is contained in:
commit
a85698d792
4 changed files with 57 additions and 55 deletions
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -294,54 +294,58 @@ impl From<pb::SearchTerm> 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue