mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 00:12:25 -04:00
Add select and search modes to sidebar
This commit is contained in:
parent
17afcb094f
commit
fd784adc31
1 changed files with 23 additions and 4 deletions
|
@ -262,6 +262,11 @@ class SidebarToolbar(QToolBar):
|
||||||
action.setCheckable(True)
|
action.setCheckable(True)
|
||||||
self._action_group.addAction(action)
|
self._action_group.addAction(action)
|
||||||
|
|
||||||
|
def _on_action_group_triggered(self, action) -> None:
|
||||||
|
tool = self._tools[self._action_group.actions().index(action)][0]
|
||||||
|
self.sidebar.tool = tool
|
||||||
|
|
||||||
|
|
||||||
class SidebarSearchBar(QLineEdit):
|
class SidebarSearchBar(QLineEdit):
|
||||||
def __init__(self, sidebar: SidebarTreeView) -> None:
|
def __init__(self, sidebar: SidebarTreeView) -> None:
|
||||||
QLineEdit.__init__(self, sidebar)
|
QLineEdit.__init__(self, sidebar)
|
||||||
|
@ -340,9 +345,6 @@ class SidebarTreeView(QTreeView):
|
||||||
self.setHeaderHidden(True)
|
self.setHeaderHidden(True)
|
||||||
self.setIndentation(15)
|
self.setIndentation(15)
|
||||||
self.setAutoExpandDelay(600)
|
self.setAutoExpandDelay(600)
|
||||||
# pylint: disable=no-member
|
|
||||||
# mode = QAbstractItemView.SelectionMode.ExtendedSelection # type: ignore
|
|
||||||
# self.setSelectionMode(mode)
|
|
||||||
self.setDragDropMode(QAbstractItemView.InternalMove)
|
self.setDragDropMode(QAbstractItemView.InternalMove)
|
||||||
self.setDragDropOverwriteMode(False)
|
self.setDragDropOverwriteMode(False)
|
||||||
|
|
||||||
|
@ -363,6 +365,23 @@ class SidebarTreeView(QTreeView):
|
||||||
|
|
||||||
self.setStyleSheet("QTreeView { %s }" % ";".join(styles))
|
self.setStyleSheet("QTreeView { %s }" % ";".join(styles))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def tool(self) -> SidebarTool:
|
||||||
|
return self._tool
|
||||||
|
|
||||||
|
@tool.setter
|
||||||
|
def tool(self, tool: SidebarTool) -> None:
|
||||||
|
if self._tool == tool:
|
||||||
|
return
|
||||||
|
self._tool = tool
|
||||||
|
if tool == SidebarTool.SELECT:
|
||||||
|
# pylint: disable=no-member
|
||||||
|
mode = QAbstractItemView.SelectionMode.ExtendedSelection # type: ignore
|
||||||
|
elif tool == SidebarTool.SEARCH:
|
||||||
|
# pylint: disable=no-member
|
||||||
|
mode = QAbstractItemView.SelectionMode.SingleSelection # type: ignore
|
||||||
|
self.setSelectionMode(mode)
|
||||||
|
|
||||||
def model(self) -> SidebarModel:
|
def model(self) -> SidebarModel:
|
||||||
return super().model()
|
return super().model()
|
||||||
|
|
||||||
|
@ -465,7 +484,7 @@ class SidebarTreeView(QTreeView):
|
||||||
|
|
||||||
def mouseReleaseEvent(self, event: QMouseEvent) -> None:
|
def mouseReleaseEvent(self, event: QMouseEvent) -> None:
|
||||||
super().mouseReleaseEvent(event)
|
super().mouseReleaseEvent(event)
|
||||||
if event.button() == Qt.LeftButton:
|
if self.tool == SidebarTool.SEARCH and event.button() == Qt.LeftButton:
|
||||||
idx = self.indexAt(event.pos())
|
idx = self.indexAt(event.pos())
|
||||||
self._on_click_index(idx)
|
self._on_click_index(idx)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue