mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 07:22:23 -04:00
Merge pull request #935 from abdnh/sidebar-nt
Add manage note types menu item to the sidebar
This commit is contained in:
commit
0c35d30979
3 changed files with 26 additions and 2 deletions
|
@ -1230,6 +1230,7 @@ QTableView {{ gridline-color: {grid} }}
|
|||
":/icons/notetype.svg",
|
||||
self._note_filter(m.name),
|
||||
item_type=SidebarItemType.NOTETYPE,
|
||||
id=m.id,
|
||||
)
|
||||
root.addChild(item)
|
||||
|
||||
|
|
|
@ -28,10 +28,17 @@ from aqt.utils import (
|
|||
|
||||
|
||||
class Models(QDialog):
|
||||
def __init__(self, mw: AnkiQt, parent=None, fromMain=False):
|
||||
def __init__(
|
||||
self,
|
||||
mw: AnkiQt,
|
||||
parent=None,
|
||||
fromMain=False,
|
||||
selected_notetype_id: Optional[int] = None,
|
||||
):
|
||||
self.mw = mw
|
||||
parent = parent or mw
|
||||
self.fromMain = fromMain
|
||||
self.selected_notetype_id = selected_notetype_id
|
||||
QDialog.__init__(self, parent, Qt.Window)
|
||||
self.col = mw.col.weakref()
|
||||
assert self.col
|
||||
|
@ -51,6 +58,15 @@ class Models(QDialog):
|
|||
# Models
|
||||
##########################################################################
|
||||
|
||||
def maybe_select_provided_notetype(self):
|
||||
if not self.selected_notetype_id:
|
||||
self.form.modelsList.setCurrentRow(0)
|
||||
return
|
||||
for i, m in enumerate(self.models):
|
||||
if m.id == self.selected_notetype_id:
|
||||
self.form.modelsList.setCurrentRow(i)
|
||||
break
|
||||
|
||||
def setupModels(self) -> None:
|
||||
self.model = None
|
||||
f = self.form
|
||||
|
@ -80,9 +96,9 @@ class Models(QDialog):
|
|||
|
||||
def on_done(fut) -> None:
|
||||
self.updateModelsList(fut.result())
|
||||
self.maybe_select_provided_notetype()
|
||||
|
||||
self.mw.taskman.with_progress(self.col.models.all_use_counts, on_done, self)
|
||||
f.modelsList.setCurrentRow(0)
|
||||
maybeHideClose(box)
|
||||
|
||||
def onRename(self) -> None:
|
||||
|
|
|
@ -9,6 +9,7 @@ from enum import Enum
|
|||
import aqt
|
||||
from anki.errors import DeckRenameError
|
||||
from aqt.main import ResetReason
|
||||
from aqt.models import Models
|
||||
from aqt.qt import *
|
||||
from aqt.utils import TR, getOnlyText, showInfo, showWarning, tr
|
||||
|
||||
|
@ -84,6 +85,7 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
|||
(tr(TR.ACTIONS_RENAME), self.rename_filter),
|
||||
(tr(TR.ACTIONS_DELETE), self.remove_filter),
|
||||
),
|
||||
SidebarItemType.NOTETYPE: ((tr(TR.ACTIONS_MANAGE), self.manage_notetype),),
|
||||
}
|
||||
|
||||
def onContextMenu(self, point: QPoint) -> None:
|
||||
|
@ -192,3 +194,8 @@ class NewSidebarTreeView(SidebarTreeViewBase):
|
|||
|
||||
def rename_filter(self, item: "aqt.browser.SidebarItem") -> None:
|
||||
self.browser.renameFilter(item.name)
|
||||
|
||||
def manage_notetype(self, item: "aqt.browser.SidebarItem") -> None:
|
||||
Models(
|
||||
self.mw, parent=self.browser, fromMain=True, selected_notetype_id=item.id
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue