Don't import models in gui_hooks to avoid circular import

This commit is contained in:
Henrik Giesel 2020-08-23 17:40:01 +02:00
parent ea787c73a5
commit 3287c42ace
2 changed files with 22 additions and 12 deletions

View file

@ -17,7 +17,6 @@ from anki.hooks import runFilter, runHook
from anki.models import NoteType
from aqt.qt import QDialog, QEvent, QMenu
from aqt.tagedit import TagEdit
from aqt.models import Models
# New hook/filter handling
##############################################################################
@ -1875,26 +1874,35 @@ class _ModelsDidInitButtonsFilter:
_hooks: List[
Callable[
[List[Tuple[str, Callable[[Models], None]]], Models],
List[Tuple[str, Callable[[Models], None]]],
[
"List[Tuple[str, Callable[[aqt.models.Models], None]]]",
"aqt.models.Models",
],
List[Tuple[str, Callable[[aqt.models.Models], None]]],
]
] = []
def append(
self,
cb: Callable[
[List[Tuple[str, Callable[[Models], None]]], Models],
List[Tuple[str, Callable[[Models], None]]],
[
"List[Tuple[str, Callable[[aqt.models.Models], None]]]",
"aqt.models.Models",
],
List[Tuple[str, Callable[[aqt.models.Models], None]]],
],
) -> None:
"""(buttons: List[Tuple[str, Callable[[Models], None]]], models: Models)"""
"""(buttons: List[Tuple[str, Callable[[aqt.models.Models], None]]], models: aqt.models.Models)"""
self._hooks.append(cb)
def remove(
self,
cb: Callable[
[List[Tuple[str, Callable[[Models], None]]], Models],
List[Tuple[str, Callable[[Models], None]]],
[
"List[Tuple[str, Callable[[aqt.models.Models], None]]]",
"aqt.models.Models",
],
List[Tuple[str, Callable[[aqt.models.Models], None]]],
],
) -> None:
if cb in self._hooks:
@ -1904,8 +1912,10 @@ class _ModelsDidInitButtonsFilter:
return len(self._hooks)
def __call__(
self, buttons: List[Tuple[str, Callable[[Models], None]]], models: Models
) -> List[Tuple[str, Callable[[Models], None]]]:
self,
buttons: List[Tuple[str, Callable[[aqt.models.Models], None]]],
models: aqt.models.Models,
) -> List[Tuple[str, Callable[[aqt.models.Models], None]]]:
for filter in self._hooks:
try:
buttons = filter(buttons, models)

View file

@ -688,8 +688,8 @@ hooks = [
Hook(name="models_advanced_will_show", args=["advanced: QDialog"],),
Hook(
name="models_did_init_buttons",
args=["buttons: List[Tuple[str, Callable[[Models], None]]]", "models: Models"],
return_type="List[Tuple[str, Callable[[Models], None]]]",
args=["buttons: List[Tuple[str, Callable[[aqt.models.Models], None]]]", "models: aqt.models.Models"],
return_type="List[Tuple[str, Callable[[aqt.models.Models], None]]]",
doc="""Allows adding buttons to the Model dialog""",
),
# Stats