mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 20:57:13 -05:00
add delete_deck to sidebar context menu
This commit is contained in:
parent
f6f06986d0
commit
2a1b6f90ae
1 changed files with 25 additions and 2 deletions
|
|
@ -11,7 +11,7 @@ import aqt
|
||||||
from anki.errors import DeckRenameError
|
from anki.errors import DeckRenameError
|
||||||
from aqt.main import ResetReason
|
from aqt.main import ResetReason
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
from aqt.utils import TR, getOnlyText, showInfo, showWarning, tr
|
from aqt.utils import TR, askUser, getOnlyText, showInfo, showWarning, tr
|
||||||
|
|
||||||
|
|
||||||
class SidebarItemType(Enum):
|
class SidebarItemType(Enum):
|
||||||
|
|
@ -72,7 +72,10 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
||||||
self.setContextMenuPolicy(Qt.CustomContextMenu)
|
self.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||||
self.customContextMenuRequested.connect(self.onContextMenu) # type: ignore
|
self.customContextMenuRequested.connect(self.onContextMenu) # type: ignore
|
||||||
self.context_menus = {
|
self.context_menus = {
|
||||||
SidebarItemType.DECK: ((tr(TR.ACTIONS_RENAME), self.rename_deck),),
|
SidebarItemType.DECK: (
|
||||||
|
(tr(TR.ACTIONS_RENAME), self.rename_deck),
|
||||||
|
(tr(TR.ACTIONS_DELETE), self.delete_deck),
|
||||||
|
),
|
||||||
SidebarItemType.TAG: ((tr(TR.ACTIONS_RENAME), self.rename_tag),),
|
SidebarItemType.TAG: ((tr(TR.ACTIONS_RENAME), self.rename_tag),),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,3 +137,23 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
||||||
self.mw.checkpoint(tr(TR.ACTIONS_RENAME_TAG))
|
self.mw.checkpoint(tr(TR.ACTIONS_RENAME_TAG))
|
||||||
self.browser.model.beginReset()
|
self.browser.model.beginReset()
|
||||||
self.mw.taskman.run_in_background(do_rename, on_done)
|
self.mw.taskman.run_in_background(do_rename, on_done)
|
||||||
|
|
||||||
|
def delete_deck(self, item: "aqt.browser.SidebarItem") -> None:
|
||||||
|
self.browser.editor.saveNow(lambda: self._delete_deck(item))
|
||||||
|
|
||||||
|
def _delete_deck(self, item: "aqt.browser.SidebarItem") -> None:
|
||||||
|
did = item.id
|
||||||
|
if self.mw.deckBrowser.ask_delete_deck(did):
|
||||||
|
|
||||||
|
def do_delete():
|
||||||
|
return self.mw.col.decks.rem(did, True)
|
||||||
|
|
||||||
|
def on_done(fut: Future):
|
||||||
|
self.browser.search()
|
||||||
|
self.browser.model.endReset()
|
||||||
|
self.browser.maybeRefreshSidebar()
|
||||||
|
res = fut.result() # Required to check for errors
|
||||||
|
|
||||||
|
self.mw.checkpoint(tr(TR.DECKS_DELETE_DECK))
|
||||||
|
self.browser.model.beginReset()
|
||||||
|
self.mw.taskman.run_in_background(do_delete, on_done)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue