Make grade_now() easier to use for add-ons

This commit is contained in:
Abdo 2025-12-08 04:53:35 +03:00
parent 2d4de33cf3
commit c4701f6362
2 changed files with 11 additions and 12 deletions

View file

@ -1133,15 +1133,16 @@ class Browser(QMainWindow):
(4, tr.studying_easy()), (4, tr.studying_easy()),
]: ]:
btn = QPushButton(label) btn = QPushButton(label)
def cb(ease: int) -> None:
grade_now(
parent=self, card_ids=self.selected_cards(), ease=ease
).run_in_background()
dialog.accept()
qconnect( qconnect(
btn.clicked, btn.clicked,
functools.partial( functools.partial(cb, ease=ease),
grade_now,
parent=self,
card_ids=self.selected_cards(),
ease=ease,
dialog=dialog,
),
) )
if key := aqt.mw.pm.get_answer_key(ease): if key := aqt.mw.pm.get_answer_key(ease):
QShortcut(key, dialog, activated=btn.click) # type: ignore QShortcut(key, dialog, activated=btn.click) # type: ignore

View file

@ -70,8 +70,7 @@ def grade_now(
parent: QWidget, parent: QWidget,
card_ids: Sequence[CardId], card_ids: Sequence[CardId],
ease: int, ease: int,
dialog: QDialog, ) -> CollectionOp[OpChanges]:
) -> None:
if ease == 1: if ease == 1:
rating = CardAnswer.AGAIN rating = CardAnswer.AGAIN
elif ease == 2: elif ease == 2:
@ -80,7 +79,7 @@ def grade_now(
rating = CardAnswer.GOOD rating = CardAnswer.GOOD
else: else:
rating = CardAnswer.EASY rating = CardAnswer.EASY
CollectionOp( return CollectionOp(
parent, parent,
lambda col: col._backend.grade_now( lambda col: col._backend.grade_now(
card_ids=card_ids, card_ids=card_ids,
@ -90,8 +89,7 @@ def grade_now(
lambda _: tooltip( lambda _: tooltip(
tr.scheduling_graded_cards_done(cards=len(card_ids)), parent=parent tr.scheduling_graded_cards_done(cards=len(card_ids)), parent=parent
) )
).run_in_background() )
dialog.accept()
def forget_cards( def forget_cards(