added active window check for sync success

This commit is contained in:
junlu592 2025-11-03 15:17:30 +01:00
parent dac26ce671
commit 66026623eb
4 changed files with 21 additions and 2 deletions

View file

@ -254,6 +254,7 @@ nav1s <nav1s@proton.me>
Ranjit Odedra <ranjitodedra.dev@gmail.com>
Eltaurus <https://github.com/Eltaurus-Lt>
jariji
Junia Mannervik <junia.mannervik@gmail.com>
********************

@ -1 +1 @@
Subproject commit ec5e4cad6242e538cacf52265243668f0de5da80
Subproject commit 5897ef3a4589c123b7fa4c7fbd67f84d0b7ee13e

@ -1 +1 @@
Subproject commit 0b7c530233390d73b706f012bbe7489539925c7d
Subproject commit dad4e2736a2b53dcdb52d79b5703dd464c05d666

View file

@ -121,6 +121,24 @@ def sync_collection(mw: aqt.main.AnkiQt, on_done: Callable[[], None]) -> None:
showText(out.server_message, parent=mw)
if out.required == out.NO_CHANGES:
tooltip(parent=mw, msg=tr.sync_collection_complete())
# Monitor window focus and close tooltip if window loses focus
def check_focus() -> None:
from aqt.utils import closeTooltip
# Close tooltip if window loses focus, becomes invisible, or is minimized
if not mw.isActiveWindow() or not mw.isVisible() or (mw.windowState() & Qt.WindowState.WindowMinimized):
closeTooltip()
focus_timer.stop()
focus_timer = QTimer(mw)
qconnect(focus_timer.timeout, check_focus)
focus_timer.start(100) # Check every 100ms
# Stop monitoring after tooltip's natural expiry time
def stop_monitoring() -> None:
focus_timer.stop()
QTimer.singleShot(3000, stop_monitoring)
# all done; track media progress
mw.media_syncer.start_monitoring()
return on_done()