From 0ce9b3f0a13df7a9541cf2f03940376b2f65e5c2 Mon Sep 17 00:00:00 2001 From: Abdo Date: Sat, 21 Oct 2023 05:18:01 +0300 Subject: [PATCH] Refresh reviewer as the day rolls over (#2756) --- qt/aqt/main.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/qt/aqt/main.py b/qt/aqt/main.py index e4cb3b30e..9f1dfadaa 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -505,6 +505,24 @@ class AnkiQt(QMainWindow): self.maybe_auto_sync_on_open_close(_onsuccess) + last_day_cutoff = self.col.sched.day_cutoff + + def refresh_reviewer_on_day_rollover_change(): + from aqt.reviewer import RefreshNeeded + + nonlocal last_day_cutoff + if self.state == "review" and last_day_cutoff != self.col.sched.day_cutoff: + last_day_cutoff = self.col.sched.day_cutoff + self.reviewer._refresh_needed = RefreshNeeded.QUEUES + self.reviewer.refresh_if_needed() + + self._reviewer_refresh_timer = self.progress.timer( + 1000, + refresh_reviewer_on_day_rollover_change, + repeat=True, + parent=self, + ) + def unloadProfile(self, onsuccess: Callable) -> None: def callback() -> None: self._unloadProfile() @@ -524,6 +542,7 @@ class AnkiQt(QMainWindow): # at this point there should be no windows left self._checkForUnclosedWidgets() + self._reviewer_refresh_timer.deleteLater() def _checkForUnclosedWidgets(self) -> None: for w in self.app.topLevelWidgets():