mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 08:46:37 -04:00
Add filter remove/rename actions to the sidebar
This commit is contained in:
parent
a4ec467284
commit
0fc4c21dcc
2 changed files with 32 additions and 5 deletions
|
@ -1487,16 +1487,33 @@ QTableView {{ gridline-color: {grid} }}
|
|||
self.col.set_config("savedFilters", conf)
|
||||
self.maybeRefreshSidebar()
|
||||
|
||||
def _onRemoveFilter(self):
|
||||
name = self._currentFilterIsSaved()
|
||||
def _onRemoveFilter(self) -> None:
|
||||
self.removeFilter(self._currentFilterIsSaved())
|
||||
|
||||
def removeFilter(self, name: str) -> None:
|
||||
if not askUser(tr(TR.BROWSING_REMOVE_FROM_YOUR_SAVED_SEARCHES, val=name)):
|
||||
return
|
||||
del self.col.conf["savedFilters"][name]
|
||||
self.col.setMod()
|
||||
conf = self.col.get_config("savedFilters")
|
||||
del conf[name]
|
||||
self.col.set_config("savedFilters", conf)
|
||||
self.maybeRefreshSidebar()
|
||||
|
||||
def renameFilter(self, old: str) -> None:
|
||||
conf = self.col.get_config("savedFilters")
|
||||
try:
|
||||
filt = conf[old]
|
||||
except KeyError:
|
||||
return
|
||||
new = getOnlyText(tr(TR.ACTIONS_NEW_NAME), default=old)
|
||||
if new == old or not new:
|
||||
return
|
||||
conf[new] = filt
|
||||
del conf[old]
|
||||
self.col.set_config("savedFilters", conf)
|
||||
self.maybeRefreshSidebar()
|
||||
|
||||
# returns name if found
|
||||
def _currentFilterIsSaved(self):
|
||||
def _currentFilterIsSaved(self) -> Optional[str]:
|
||||
filt = self.form.searchEdit.lineEdit().text()
|
||||
try:
|
||||
filt = self.col.backend.normalize_search(filt)
|
||||
|
|
|
@ -80,6 +80,10 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
|||
(tr(TR.ACTIONS_RENAME), self.rename_tag),
|
||||
(tr(TR.ACTIONS_DELETE), self.remove_tag),
|
||||
),
|
||||
SidebarItemType.FILTER: (
|
||||
(tr(TR.ACTIONS_RENAME), self.rename_filter),
|
||||
(tr(TR.ACTIONS_DELETE), self.remove_filter),
|
||||
),
|
||||
}
|
||||
|
||||
def onContextMenu(self, point: QPoint) -> None:
|
||||
|
@ -182,3 +186,9 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
|||
self.mw.checkpoint(tr(TR.DECKS_DELETE_DECK))
|
||||
self.browser.model.beginReset()
|
||||
self.mw.taskman.run_in_background(do_delete, on_done)
|
||||
|
||||
def remove_filter(self, item: "aqt.browser.SidebarItem") -> None:
|
||||
self.browser.removeFilter(item.name)
|
||||
|
||||
def rename_filter(self, item: "aqt.browser.SidebarItem") -> None:
|
||||
self.browser.renameFilter(item.name)
|
||||
|
|
Loading…
Reference in a new issue