mirror of
https://github.com/ankitects/anki.git
synced 2025-12-30 23:32:57 -05:00
fix backup not being taken before full download
This commit is contained in:
parent
5a54d5e07d
commit
0981d8d0de
2 changed files with 19 additions and 6 deletions
|
|
@ -557,6 +557,13 @@ class AnkiQt(QMainWindow):
|
||||||
if not corrupt and not self.restoringBackup:
|
if not corrupt and not self.restoringBackup:
|
||||||
self.backup()
|
self.backup()
|
||||||
|
|
||||||
|
def _close_for_full_download(self) -> None:
|
||||||
|
"Backup and prepare collection to be overwritten."
|
||||||
|
self.col.close(downgrade=False)
|
||||||
|
self.backup()
|
||||||
|
self.col.reopen(after_full_sync=False)
|
||||||
|
self.col.close_for_full_sync()
|
||||||
|
|
||||||
# Backup and auto-optimize
|
# Backup and auto-optimize
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
|
@ -577,6 +584,9 @@ class AnkiQt(QMainWindow):
|
||||||
z.close()
|
z.close()
|
||||||
|
|
||||||
def backup(self) -> None:
|
def backup(self) -> None:
|
||||||
|
"Read data into memory, and complete backup on a background thread."
|
||||||
|
assert not self.col or not self.col.db
|
||||||
|
|
||||||
nbacks = self.pm.profile["numBackups"]
|
nbacks = self.pm.profile["numBackups"]
|
||||||
if not nbacks or devMode:
|
if not nbacks or devMode:
|
||||||
return
|
return
|
||||||
|
|
@ -607,7 +617,8 @@ class AnkiQt(QMainWindow):
|
||||||
fname = backups.pop(0)
|
fname = backups.pop(0)
|
||||||
path = os.path.join(dir, fname)
|
path = os.path.join(dir, fname)
|
||||||
os.unlink(path)
|
os.unlink(path)
|
||||||
gui_hooks.backup_did_complete()
|
|
||||||
|
self.taskman.run_on_main(gui_hooks.backup_did_complete)
|
||||||
|
|
||||||
def maybeOptimize(self) -> None:
|
def maybeOptimize(self) -> None:
|
||||||
# have two weeks passed?
|
# have two weeks passed?
|
||||||
|
|
|
||||||
|
|
@ -172,16 +172,18 @@ def on_full_sync_timer(mw: aqt.main.AnkiQt) -> None:
|
||||||
|
|
||||||
|
|
||||||
def full_download(mw: aqt.main.AnkiQt, on_done: Callable[[], None]) -> None:
|
def full_download(mw: aqt.main.AnkiQt, on_done: Callable[[], None]) -> None:
|
||||||
mw.col.close_for_full_sync()
|
def on_timer() -> None:
|
||||||
|
|
||||||
def on_timer():
|
|
||||||
on_full_sync_timer(mw)
|
on_full_sync_timer(mw)
|
||||||
|
|
||||||
timer = QTimer(mw)
|
timer = QTimer(mw)
|
||||||
qconnect(timer.timeout, on_timer)
|
qconnect(timer.timeout, on_timer)
|
||||||
timer.start(150)
|
timer.start(150)
|
||||||
|
|
||||||
def on_future_done(fut):
|
def download() -> None:
|
||||||
|
mw._close_for_full_download()
|
||||||
|
mw.col.backend.full_download(mw.pm.sync_auth())
|
||||||
|
|
||||||
|
def on_future_done(fut) -> None:
|
||||||
timer.stop()
|
timer.stop()
|
||||||
mw.col.reopen(after_full_sync=True)
|
mw.col.reopen(after_full_sync=True)
|
||||||
mw.reset()
|
mw.reset()
|
||||||
|
|
@ -193,7 +195,7 @@ def full_download(mw: aqt.main.AnkiQt, on_done: Callable[[], None]) -> None:
|
||||||
return on_done()
|
return on_done()
|
||||||
|
|
||||||
mw.taskman.with_progress(
|
mw.taskman.with_progress(
|
||||||
lambda: mw.col.backend.full_download(mw.pm.sync_auth()),
|
download,
|
||||||
on_future_done,
|
on_future_done,
|
||||||
label=tr(TR.SYNC_DOWNLOADING_FROM_ANKIWEB),
|
label=tr(TR.SYNC_DOWNLOADING_FROM_ANKIWEB),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue