diff --git a/qt/aqt/browser/sidebar/tree.py b/qt/aqt/browser/sidebar/tree.py index f331d5f0c..af029d439 100644 --- a/qt/aqt/browser/sidebar/tree.py +++ b/qt/aqt/browser/sidebar/tree.py @@ -711,12 +711,12 @@ class SidebarTreeView(QTreeView): collapse_key=Config.Bool.COLLAPSE_TAGS, type=SidebarItemType.TAG_ROOT, ) - root.search_node = SearchNode(negated=SearchNode(tag="none")) + root.search_node = SearchNode(tag="_*") root.add_simple( name=tr.browsing_sidebar_untagged(), icon=icon, type=SidebarItemType.TAG_NONE, - search_node=SearchNode(tag="none"), + search_node=SearchNode(negated=SearchNode(tag="_*")), ) render(root, tree.children) @@ -763,7 +763,7 @@ class SidebarTreeView(QTreeView): collapse_key=Config.Bool.COLLAPSE_DECKS, type=SidebarItemType.DECK_ROOT, ) - root.search_node = SearchNode(deck="*") + root.search_node = SearchNode(deck="_*") current = root.add_simple( name=tr.browsing_current_deck(), icon=icon, @@ -786,6 +786,7 @@ class SidebarTreeView(QTreeView): collapse_key=Config.Bool.COLLAPSE_NOTETYPES, type=SidebarItemType.NOTETYPE_ROOT, ) + root.search_node = SearchNode(note="_*") for nt in sorted(self.col.models.all(), key=lambda nt: nt["name"].lower()): item = SidebarItem( diff --git a/rslib/src/backend/search/search_node.rs b/rslib/src/backend/search/search_node.rs index d1f9da9ab..b2d9c50d1 100644 --- a/rslib/src/backend/search/search_node.rs +++ b/rslib/src/backend/search/search_node.rs @@ -23,11 +23,7 @@ impl TryFrom for Node { Ok(if let Some(filter) = msg.filter { match filter { Filter::Tag(s) => Node::Search(SearchNode::Tag(escape_anki_wildcards(&s))), - Filter::Deck(s) => Node::Search(SearchNode::Deck(if s == "*" { - s - } else { - escape_anki_wildcards(&s) - })), + Filter::Deck(s) => Node::Search(SearchNode::Deck(escape_anki_wildcards(&s))), Filter::Note(s) => Node::Search(SearchNode::Notetype(escape_anki_wildcards(&s))), Filter::Template(u) => { Node::Search(SearchNode::CardTemplate(TemplateKind::Ordinal(u as u16))) diff --git a/rslib/src/text.rs b/rslib/src/text.rs index ae110119d..0bb4ce81c 100644 --- a/rslib/src/text.rs +++ b/rslib/src/text.rs @@ -399,10 +399,14 @@ pub(crate) fn to_text(txt: &str) -> Cow { /// Escape Anki wildcards and the backslash for escaping them: \*_ pub(crate) fn escape_anki_wildcards(txt: &str) -> String { - lazy_static! { - static ref RE: Regex = Regex::new(r"[\\*_]").unwrap(); + if txt == "_*" { + txt.to_string() + } else { + lazy_static! { + static ref RE: Regex = Regex::new(r"[\\*_]").unwrap(); + } + RE.replace_all(&txt, r"\$0").into() } - RE.replace_all(&txt, r"\$0").into() } /// Compare text with a possible glob, folding case.