mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
call onExpanded()
This commit is contained in:
parent
879db95148
commit
a45f029f3e
1 changed files with 25 additions and 7 deletions
|
@ -386,13 +386,13 @@ class SidebarItem:
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
name: str,
|
name: str,
|
||||||
icon: str,
|
icon: str,
|
||||||
onclick: Callable[[], None] = None,
|
onClick: Callable[[], None] = None,
|
||||||
oncollapse: Callable[[], None] = None,
|
onExpanded: Callable[[bool], None] = None,
|
||||||
expanded: bool = False) -> None:
|
expanded: bool = False) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.icon = icon
|
self.icon = icon
|
||||||
self.onclick = onclick
|
self.onClick = onClick
|
||||||
self.oncollapse = oncollapse
|
self.onExpanded = onExpanded
|
||||||
self.expanded = expanded
|
self.expanded = expanded
|
||||||
self.children: List["SidebarItem"] = []
|
self.children: List["SidebarItem"] = []
|
||||||
self.parentItem: Optional[SidebarItem] = None
|
self.parentItem: Optional[SidebarItem] = None
|
||||||
|
@ -927,12 +927,17 @@ by clicking on one on the left."""))
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
class SidebarTreeView(QTreeView):
|
class SidebarTreeView(QTreeView):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.expanded.connect(self.onExpansion)
|
||||||
|
self.collapsed.connect(self.onCollapse)
|
||||||
|
|
||||||
def onClickCurrent(self) -> None:
|
def onClickCurrent(self) -> None:
|
||||||
idx = self.currentIndex()
|
idx = self.currentIndex()
|
||||||
if idx.isValid():
|
if idx.isValid():
|
||||||
item: SidebarItem = idx.internalPointer()
|
item: SidebarItem = idx.internalPointer()
|
||||||
if item.onclick:
|
if item.onClick:
|
||||||
item.onclick()
|
item.onClick()
|
||||||
|
|
||||||
def mouseReleaseEvent(self, event: QMouseEvent) -> None:
|
def mouseReleaseEvent(self, event: QMouseEvent) -> None:
|
||||||
super().mouseReleaseEvent(event)
|
super().mouseReleaseEvent(event)
|
||||||
|
@ -944,6 +949,19 @@ by clicking on one on the left."""))
|
||||||
else:
|
else:
|
||||||
super().keyPressEvent(event)
|
super().keyPressEvent(event)
|
||||||
|
|
||||||
|
def onExpansion(self, idx: QModelIndex) -> None:
|
||||||
|
self._onExpansionChange(idx, True)
|
||||||
|
|
||||||
|
def onCollapse(self, idx: QModelIndex) -> None:
|
||||||
|
self._onExpansionChange(idx, False)
|
||||||
|
|
||||||
|
def _onExpansionChange(self, idx: QModelIndex, expanded: bool) -> None:
|
||||||
|
item: SidebarItem = idx.internalPointer()
|
||||||
|
if item.expanded != expanded:
|
||||||
|
item.expanded = expanded
|
||||||
|
if item.onExpanded:
|
||||||
|
item.onExpanded(expanded)
|
||||||
|
|
||||||
def setupSidebar(self) -> None:
|
def setupSidebar(self) -> None:
|
||||||
dw = self.sidebarDockWidget = QDockWidget(_("Sidebar"), self)
|
dw = self.sidebarDockWidget = QDockWidget(_("Sidebar"), self)
|
||||||
dw.setFeatures(QDockWidget.DockWidgetClosable)
|
dw.setFeatures(QDockWidget.DockWidgetClosable)
|
||||||
|
@ -1026,7 +1044,7 @@ by clicking on one on the left."""))
|
||||||
g[0],
|
g[0],
|
||||||
":/icons/deck.svg",
|
":/icons/deck.svg",
|
||||||
lambda g=g: self.setFilter("deck", head+g[0]),
|
lambda g=g: self.setFilter("deck", head+g[0]),
|
||||||
lambda g=g: self.mw.col.decks.collapseBrowser(g[1]),
|
lambda expanded, g=g: self.mw.col.decks.collapseBrowser(g[1]),
|
||||||
not self.mw.col.decks.get(g[1]).get('browserCollapsed', False))
|
not self.mw.col.decks.get(g[1]).get('browserCollapsed', False))
|
||||||
root.addChild(item)
|
root.addChild(item)
|
||||||
newhead = head + g[0]+"::"
|
newhead = head + g[0]+"::"
|
||||||
|
|
Loading…
Reference in a new issue