mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
Add toolbar to sidebar
This commit is contained in:
parent
9d3da3b844
commit
17afcb094f
2 changed files with 27 additions and 1 deletions
|
@ -28,7 +28,7 @@ from aqt.previewer import BrowserPreviewer as PreviewDialog
|
|||
from aqt.previewer import Previewer
|
||||
from aqt.qt import *
|
||||
from aqt.scheduling import forget_cards, set_due_date_dialog
|
||||
from aqt.sidebar import SidebarSearchBar, SidebarTreeView
|
||||
from aqt.sidebar import SidebarSearchBar, SidebarToolbar, SidebarTreeView
|
||||
from aqt.theme import theme_manager
|
||||
from aqt.utils import (
|
||||
TR,
|
||||
|
@ -940,12 +940,14 @@ QTableView {{ gridline-color: {grid} }}
|
|||
self.sidebar = SidebarTreeView(self)
|
||||
self.sidebarTree = self.sidebar # legacy alias
|
||||
dw.setWidget(self.sidebar)
|
||||
self.sidebar.toolbar = toolbar = SidebarToolbar(self.sidebar)
|
||||
self.sidebar.searchBar = searchBar = SidebarSearchBar(self.sidebar)
|
||||
qconnect(
|
||||
self.form.actionSidebarFilter.triggered,
|
||||
self.focusSidebarSearchBar,
|
||||
)
|
||||
l = QVBoxLayout()
|
||||
l.addWidget(toolbar)
|
||||
l.addWidget(searchBar)
|
||||
l.addWidget(self.sidebar)
|
||||
l.setContentsMargins(0, 0, 0, 0)
|
||||
|
|
|
@ -29,6 +29,11 @@ from aqt.utils import (
|
|||
)
|
||||
|
||||
|
||||
class SidebarTool(Enum):
|
||||
SELECT = auto()
|
||||
SEARCH = auto()
|
||||
|
||||
|
||||
class SidebarItemType(Enum):
|
||||
ROOT = auto()
|
||||
SAVED_SEARCH_ROOT = auto()
|
||||
|
@ -238,6 +243,25 @@ class SidebarModel(QAbstractItemModel):
|
|||
return cast(Qt.ItemFlags, flags)
|
||||
|
||||
|
||||
class SidebarToolbar(QToolBar):
|
||||
_tools: Tuple[SidebarTool, str, str] = (
|
||||
(SidebarTool.SELECT, ":/icons/select.svg", "select"),
|
||||
(SidebarTool.SEARCH, ":/icons/magnifying_glass.svg", "search"),
|
||||
)
|
||||
|
||||
def __init__(self, sidebar: SidebarTreeView) -> None:
|
||||
super().__init__()
|
||||
self.sidebar = sidebar
|
||||
self._action_group = QActionGroup(self)
|
||||
qconnect(self._action_group.triggered, self._on_action_group_triggered)
|
||||
self._add_tools()
|
||||
|
||||
def _add_tools(self) -> None:
|
||||
for row in self._tools:
|
||||
action = self.addAction(theme_manager.icon_from_resources(row[1]), row[2])
|
||||
action.setCheckable(True)
|
||||
self._action_group.addAction(action)
|
||||
|
||||
class SidebarSearchBar(QLineEdit):
|
||||
def __init__(self, sidebar: SidebarTreeView) -> None:
|
||||
QLineEdit.__init__(self, sidebar)
|
||||
|
|
Loading…
Reference in a new issue