mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
Don't import models in gui_hooks to avoid circular import
This commit is contained in:
parent
ea787c73a5
commit
3287c42ace
2 changed files with 22 additions and 12 deletions
|
@ -17,7 +17,6 @@ from anki.hooks import runFilter, runHook
|
||||||
from anki.models import NoteType
|
from anki.models import NoteType
|
||||||
from aqt.qt import QDialog, QEvent, QMenu
|
from aqt.qt import QDialog, QEvent, QMenu
|
||||||
from aqt.tagedit import TagEdit
|
from aqt.tagedit import TagEdit
|
||||||
from aqt.models import Models
|
|
||||||
|
|
||||||
# New hook/filter handling
|
# New hook/filter handling
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -1875,26 +1874,35 @@ class _ModelsDidInitButtonsFilter:
|
||||||
|
|
||||||
_hooks: List[
|
_hooks: List[
|
||||||
Callable[
|
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(
|
def append(
|
||||||
self,
|
self,
|
||||||
cb: Callable[
|
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:
|
) -> 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)
|
self._hooks.append(cb)
|
||||||
|
|
||||||
def remove(
|
def remove(
|
||||||
self,
|
self,
|
||||||
cb: Callable[
|
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:
|
) -> None:
|
||||||
if cb in self._hooks:
|
if cb in self._hooks:
|
||||||
|
@ -1904,8 +1912,10 @@ class _ModelsDidInitButtonsFilter:
|
||||||
return len(self._hooks)
|
return len(self._hooks)
|
||||||
|
|
||||||
def __call__(
|
def __call__(
|
||||||
self, buttons: List[Tuple[str, Callable[[Models], None]]], models: Models
|
self,
|
||||||
) -> List[Tuple[str, Callable[[Models], None]]]:
|
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:
|
for filter in self._hooks:
|
||||||
try:
|
try:
|
||||||
buttons = filter(buttons, models)
|
buttons = filter(buttons, models)
|
||||||
|
|
|
@ -688,8 +688,8 @@ hooks = [
|
||||||
Hook(name="models_advanced_will_show", args=["advanced: QDialog"],),
|
Hook(name="models_advanced_will_show", args=["advanced: QDialog"],),
|
||||||
Hook(
|
Hook(
|
||||||
name="models_did_init_buttons",
|
name="models_did_init_buttons",
|
||||||
args=["buttons: List[Tuple[str, Callable[[Models], None]]]", "models: Models"],
|
args=["buttons: List[Tuple[str, Callable[[aqt.models.Models], None]]]", "models: aqt.models.Models"],
|
||||||
return_type="List[Tuple[str, Callable[[Models], None]]]",
|
return_type="List[Tuple[str, Callable[[aqt.models.Models], None]]]",
|
||||||
doc="""Allows adding buttons to the Model dialog""",
|
doc="""Allows adding buttons to the Model dialog""",
|
||||||
),
|
),
|
||||||
# Stats
|
# Stats
|
||||||
|
|
Loading…
Reference in a new issue