Store name prefix of sidebar items

This commit is contained in:
RumovZ 2021-03-10 16:38:29 +01:00
parent e1db8e1da1
commit bc7043c384

View file

@ -3,7 +3,6 @@
from __future__ import annotations from __future__ import annotations
import re
from concurrent.futures import Future from concurrent.futures import Future
from enum import Enum, auto from enum import Enum, auto
from typing import Dict, Iterable, List, Optional, Tuple, cast from typing import Dict, Iterable, List, Optional, Tuple, cast
@ -102,12 +101,11 @@ class SidebarItem:
expanded: bool = False, expanded: bool = False,
item_type: SidebarItemType = SidebarItemType.CUSTOM, item_type: SidebarItemType = SidebarItemType.CUSTOM,
id: int = 0, id: int = 0,
full_name: str = None, name_prefix: str = "",
) -> None: ) -> None:
self.name = name self.name = name
if not full_name: self.name_prefix = name_prefix
full_name = name self.full_name = name_prefix + name
self.full_name = full_name
self.icon = icon self.icon = icon
self.item_type = item_type self.item_type = item_type
self.id = id self.id = id
@ -917,7 +915,7 @@ class SidebarTreeView(QTreeView):
on_expanded=toggle_expand(), on_expanded=toggle_expand(),
expanded=node.expanded, expanded=node.expanded,
item_type=SidebarItemType.TAG, item_type=SidebarItemType.TAG,
full_name=head + node.name, name_prefix=head,
) )
root.add_child(item) root.add_child(item)
newhead = f"{head + node.name}::" newhead = f"{head + node.name}::"
@ -964,7 +962,7 @@ class SidebarTreeView(QTreeView):
expanded=not node.collapsed, expanded=not node.collapsed,
item_type=SidebarItemType.DECK, item_type=SidebarItemType.DECK,
id=node.deck_id, id=node.deck_id,
full_name=head + node.name, name_prefix=head,
) )
root.add_child(item) root.add_child(item)
newhead = f"{head + node.name}::" newhead = f"{head + node.name}::"
@ -1019,7 +1017,7 @@ class SidebarTreeView(QTreeView):
SearchNode(note=nt["name"]), SearchNode(template=c) SearchNode(note=nt["name"]), SearchNode(template=c)
), ),
item_type=SidebarItemType.NOTETYPE_TEMPLATE, item_type=SidebarItemType.NOTETYPE_TEMPLATE,
full_name=f"{nt['name']}::{tmpl['name']}", name_prefix=f"{nt['name']}::",
id=tmpl["ord"], id=tmpl["ord"],
) )
item.add_child(child) item.add_child(child)
@ -1130,10 +1128,7 @@ class SidebarTreeView(QTreeView):
def rename_deck(self, item: SidebarItem, new_name: str) -> None: def rename_deck(self, item: SidebarItem, new_name: str) -> None:
deck = self.mw.col.decks.get(item.id) deck = self.mw.col.decks.get(item.id)
old_name = deck["name"] new_name = item.name_prefix + new_name
new_name = re.sub(
re.escape(item.name) + "$", new_name.replace("\\", r"\\"), old_name
)
self.mw.checkpoint(tr(TR.ACTIONS_RENAME_DECK)) self.mw.checkpoint(tr(TR.ACTIONS_RENAME_DECK))
try: try:
self.mw.col.decks.rename(deck, new_name) self.mw.col.decks.rename(deck, new_name)
@ -1176,9 +1171,7 @@ class SidebarTreeView(QTreeView):
def _rename_tag(self, item: SidebarItem, new_name: str) -> None: def _rename_tag(self, item: SidebarItem, new_name: str) -> None:
old_name = item.full_name old_name = item.full_name
new_name = re.sub( new_name = item.name_prefix + new_name
re.escape(item.name) + "$", new_name.replace("\\", r"\\"), old_name
)
def do_rename() -> int: def do_rename() -> int:
self.mw.col.tags.remove(old_name) self.mw.col.tags.remove(old_name)