mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 23:42:23 -04:00
pass to SidebarItem its type
removed 'for in list' as mypy does not correctly infer its types
This commit is contained in:
parent
00cf4fc585
commit
56b6fad743
1 changed files with 31 additions and 10 deletions
|
@ -435,6 +435,17 @@ class SidebarStage(Enum):
|
||||||
TAGS = 5
|
TAGS = 5
|
||||||
|
|
||||||
|
|
||||||
|
class SidebarItemType(Enum):
|
||||||
|
ROOT = 0
|
||||||
|
COLLECTION = 1
|
||||||
|
CURRENT_DECK = 2
|
||||||
|
FILTER = 3
|
||||||
|
DECK = 4
|
||||||
|
NOTETYPE = 5
|
||||||
|
TAG = 6
|
||||||
|
CUSTOM = 7
|
||||||
|
|
||||||
|
|
||||||
class SidebarItem:
|
class SidebarItem:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
@ -443,9 +454,11 @@ class SidebarItem:
|
||||||
onClick: Callable[[], None] = None,
|
onClick: Callable[[], None] = None,
|
||||||
onExpanded: Callable[[bool], None] = None,
|
onExpanded: Callable[[bool], None] = None,
|
||||||
expanded: bool = False,
|
expanded: bool = False,
|
||||||
|
item_type: SidebarItemType = SidebarItemType.CUSTOM,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.icon = icon
|
self.icon = icon
|
||||||
|
self.item_type = item_type
|
||||||
self.onClick = onClick
|
self.onClick = onClick
|
||||||
self.onExpanded = onExpanded
|
self.onExpanded = onExpanded
|
||||||
self.expanded = expanded
|
self.expanded = expanded
|
||||||
|
@ -1091,7 +1104,7 @@ QTableView {{ gridline-color: {grid} }}
|
||||||
self.mw.progress.timer(10, deferredDisplay, False)
|
self.mw.progress.timer(10, deferredDisplay, False)
|
||||||
|
|
||||||
def buildTree(self) -> SidebarItem:
|
def buildTree(self) -> SidebarItem:
|
||||||
root = SidebarItem("", "")
|
root = SidebarItem("", "", item_type=SidebarItemType.ROOT)
|
||||||
|
|
||||||
handled = gui_hooks.browser_will_build_tree(
|
handled = gui_hooks.browser_will_build_tree(
|
||||||
False, root, SidebarStage.ROOT, self
|
False, root, SidebarStage.ROOT, self
|
||||||
|
@ -1116,12 +1129,18 @@ QTableView {{ gridline-color: {grid} }}
|
||||||
return root
|
return root
|
||||||
|
|
||||||
def _stdTree(self, root) -> None:
|
def _stdTree(self, root) -> None:
|
||||||
for name, filt, icon in [
|
|
||||||
[_("Whole Collection"), "", "collection"],
|
|
||||||
[_("Current Deck"), "deck:current", "deck"],
|
|
||||||
]:
|
|
||||||
item = SidebarItem(
|
item = SidebarItem(
|
||||||
name, ":/icons/{}.svg".format(icon), self._filterFunc(filt)
|
_("Whole Collection"),
|
||||||
|
":/icons/collection.svg",
|
||||||
|
self._filterFunc(""),
|
||||||
|
item_type=SidebarItemType.COLLECTION,
|
||||||
|
)
|
||||||
|
root.addChild(item)
|
||||||
|
item = SidebarItem(
|
||||||
|
_("Current Deck"),
|
||||||
|
":/icons/deck.svg",
|
||||||
|
self._filterFunc("deck:current"),
|
||||||
|
item_type=SidebarItemType.CURRENT_DECK,
|
||||||
)
|
)
|
||||||
root.addChild(item)
|
root.addChild(item)
|
||||||
|
|
||||||
|
@ -1133,6 +1152,7 @@ QTableView {{ gridline-color: {grid} }}
|
||||||
name,
|
name,
|
||||||
":/icons/heart.svg",
|
":/icons/heart.svg",
|
||||||
lambda s=filt: self.setFilter(s), # type: ignore
|
lambda s=filt: self.setFilter(s), # type: ignore
|
||||||
|
item_type=SidebarItemType.DECK,
|
||||||
)
|
)
|
||||||
root.addChild(item)
|
root.addChild(item)
|
||||||
|
|
||||||
|
@ -1140,7 +1160,7 @@ QTableView {{ gridline-color: {grid} }}
|
||||||
assert self.col
|
assert self.col
|
||||||
for t in self.col.tags.all():
|
for t in self.col.tags.all():
|
||||||
item = SidebarItem(
|
item = SidebarItem(
|
||||||
t, ":/icons/tag.svg", lambda t=t: self.setFilter("tag", t) # type: ignore
|
t, ":/icons/tag.svg", lambda t=t: self.setFilter("tag", t), item_type=SidebarItemType.TAG # type: ignore
|
||||||
)
|
)
|
||||||
root.addChild(item)
|
root.addChild(item)
|
||||||
|
|
||||||
|
@ -1165,6 +1185,7 @@ QTableView {{ gridline-color: {grid} }}
|
||||||
lambda baseName=baseName: self.setFilter("deck", head + baseName),
|
lambda baseName=baseName: self.setFilter("deck", head + baseName),
|
||||||
lambda expanded, did=did: self.mw.col.decks.collapseBrowser(did),
|
lambda expanded, did=did: self.mw.col.decks.collapseBrowser(did),
|
||||||
not self.mw.col.decks.get(did).get("browserCollapsed", False),
|
not self.mw.col.decks.get(did).get("browserCollapsed", False),
|
||||||
|
item_type=SidebarItemType.DECK,
|
||||||
)
|
)
|
||||||
root.addChild(item)
|
root.addChild(item)
|
||||||
newhead = head + baseName + "::"
|
newhead = head + baseName + "::"
|
||||||
|
|
Loading…
Reference in a new issue