pass to SidebarItem its type

removed 'for in list' as mypy does not correctly infer its types
This commit is contained in:
BlueGreenMagick 2020-04-26 11:27:25 +09:00
parent 00cf4fc585
commit 56b6fad743

View file

@ -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,14 +1129,20 @@ QTableView {{ gridline-color: {grid} }}
return root return root
def _stdTree(self, root) -> None: def _stdTree(self, root) -> None:
for name, filt, icon in [ item = SidebarItem(
[_("Whole Collection"), "", "collection"], _("Whole Collection"),
[_("Current Deck"), "deck:current", "deck"], ":/icons/collection.svg",
]: self._filterFunc(""),
item = SidebarItem( item_type=SidebarItemType.COLLECTION,
name, ":/icons/{}.svg".format(icon), self._filterFunc(filt) )
) root.addChild(item)
root.addChild(item) item = SidebarItem(
_("Current Deck"),
":/icons/deck.svg",
self._filterFunc("deck:current"),
item_type=SidebarItemType.CURRENT_DECK,
)
root.addChild(item)
def _favTree(self, root) -> None: def _favTree(self, root) -> None:
assert self.col assert self.col
@ -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 + "::"