From bedd9dadb175bef55b2addc7dd6194d6ad4bc86e Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 1 Jul 2020 11:35:24 +1000 Subject: [PATCH] add option to disable media syncing https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2 --- qt/aqt/main.py | 6 ++++-- qt/aqt/preferences.py | 2 ++ qt/aqt/profiles.py | 6 ++++++ qt/designer/preferences.ui | 9 +++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/qt/aqt/main.py b/qt/aqt/main.py index ffdf8f9cf..85f287ec0 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -1231,8 +1231,10 @@ Difference to correct time: %s.""" def on_autosync_timer(self): elap = self.media_syncer.seconds_since_last_sync() - # autosync if 15 minutes have elapsed since last sync - if elap > 15 * 60: + minutes = self.pm.auto_sync_media_minutes() + if not minutes: + return + if elap > minutes * 60: self.maybe_auto_sync_media() # Permanent libanki hooks diff --git a/qt/aqt/preferences.py b/qt/aqt/preferences.py index f390d33de..5e1ded7eb 100644 --- a/qt/aqt/preferences.py +++ b/qt/aqt/preferences.py @@ -169,6 +169,7 @@ class Preferences(QDialog): qconnect(self.form.media_log.clicked, self.on_media_log) self.form.syncOnProgramOpen.setChecked(self.prof["autoSync"]) self.form.syncMedia.setChecked(self.prof["syncMedia"]) + self.form.autoSyncMedia.setChecked(self.mw.pm.auto_sync_media_minutes() != 0) if not self.prof["syncKey"]: self._hideAuth() else: @@ -200,6 +201,7 @@ Not currently enabled; click the sync button in the main window to enable.""" def updateNetwork(self): self.prof["autoSync"] = self.form.syncOnProgramOpen.isChecked() self.prof["syncMedia"] = self.form.syncMedia.isChecked() + self.mw.pm.set_auto_sync_media_minutes(self.form.autoSyncMedia.isChecked() and 15 or 0) if self.form.fullSync.isChecked(): self.mw.col.modSchema(check=False) self.mw.col.setMod() diff --git a/qt/aqt/profiles.py b/qt/aqt/profiles.py index 8ca096c3f..bbf5da6f5 100644 --- a/qt/aqt/profiles.py +++ b/qt/aqt/profiles.py @@ -635,6 +635,12 @@ create table if not exists profiles self.profile["syncUser"] = None self.profile["hostNum"] = 0 + def auto_sync_media_minutes(self) -> int: + return self.profile.get("autoSyncMediaMinutes", 15) + + def set_auto_sync_media_minutes(self, val: int): + self.profile["autoSyncMediaMinutes"] = val + ###################################################################### def apply_profile_options(self) -> None: diff --git a/qt/designer/preferences.ui b/qt/designer/preferences.ui index 97a07dd48..f521993cb 100644 --- a/qt/designer/preferences.ui +++ b/qt/designer/preferences.ui @@ -363,6 +363,13 @@ + + + + Periodically sync media + + + @@ -581,6 +588,7 @@ + lang hwAccel showPlayButtons interrupt_audio @@ -600,6 +608,7 @@ timeLimit syncMedia syncOnProgramOpen + autoSyncMedia fullSync syncDeauth media_log