From 561a6e2d9b3af0544ea2961ecdd9b72eb4a60a20 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Fri, 14 Nov 2025 13:54:11 +0000 Subject: [PATCH] Added: Congratulations screen --- proto/anki/frontend.proto | 4 ++++ qt/aqt/mediasrv.py | 4 ++++ ts/routes/reviewer/reviewer.ts | 10 +++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/proto/anki/frontend.proto b/proto/anki/frontend.proto index 3058c2b1c..fa38f326a 100644 --- a/proto/anki/frontend.proto +++ b/proto/anki/frontend.proto @@ -59,8 +59,12 @@ message OpenReviewerMenuRequest { SetDueDate = 1; CardInfo = 2; CreateCopy = 3; + // Reset Forget = 4; + // Preset Options Options = 5; + // "Congratulations" + Overview = 6; }; ReviewerMenu menu = 1; diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index dd52dbded..66e09d1bf 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -718,6 +718,9 @@ def open_reviewer_menu(): reviewer._card_info.set_card(reviewer.card) reviewer.on_card_info() + def overview(): + aqt.mw.moveToState("overview") + REVIEWER_MENUS = { MENU_ENUM.EditCurrent: aqt.mw.onEditCurrent, MENU_ENUM.SetDueDate: reviewer.on_set_due, @@ -725,6 +728,7 @@ def open_reviewer_menu(): MENU_ENUM.CreateCopy: reviewer.on_create_copy, MENU_ENUM.Forget: reviewer.forget_current_card, MENU_ENUM.Options: reviewer.onOptions, + MENU_ENUM.Overview: overview, } req = OpenReviewerMenuRequest.FromString(request.data) diff --git a/ts/routes/reviewer/reviewer.ts b/ts/routes/reviewer/reviewer.ts index fda288828..07a13a4cf 100644 --- a/ts/routes/reviewer/reviewer.ts +++ b/ts/routes/reviewer/reviewer.ts @@ -134,6 +134,10 @@ export class ReviewerState { this.displayMenu(OpenReviewerMenuRequest_ReviewerMenu.Options); } + public displayOverview() { + this.displayMenu(OpenReviewerMenuRequest_ReviewerMenu.Overview); + } + public toggleMarked() { if (this._cardData && this.currentCard?.card?.noteId) { const noteIds = [this.currentCard.card.noteId]; @@ -290,7 +294,11 @@ export class ReviewerState { answer: answer || undefined, }); - // TODO: "Congratulation screen" logic + if (!resp.nextCard) { + this.displayOverview(); + return; + } + this._cardData = resp.nextCard; this.cardData.set(this._cardData); this.answerShown.set(false);