make it clear to use why anki's suggesting a download

avoid showing the upload button to prevent accidental data loss; user
can add a card if they want to upload
This commit is contained in:
Damien Elmes 2017-01-08 22:21:58 +10:00
parent c653e39dbe
commit fe0954beba

View file

@ -229,7 +229,13 @@ enter your details below.""") %
return (u, p) return (u, p)
def _confirmFullSync(self): def _confirmFullSync(self):
diag = askUserDialog(_("""\ if self.thread.localIsEmpty:
diag = askUserDialog(
_("Local collection has no cards. Download from AnkiWeb?"),
[_("Download from AnkiWeb"), _("Cancel")])
diag.setDefault(1)
else:
diag = askUserDialog(_("""\
Your decks here and on AnkiWeb differ in such a way that they can't \ Your decks here and on AnkiWeb differ in such a way that they can't \
be merged together, so it's necessary to overwrite the decks on one \ be merged together, so it's necessary to overwrite the decks on one \
side with the decks from the other. side with the decks from the other.
@ -247,7 +253,7 @@ automatically."""),
[_("Upload to AnkiWeb"), [_("Upload to AnkiWeb"),
_("Download from AnkiWeb"), _("Download from AnkiWeb"),
_("Cancel")]) _("Cancel")])
diag.setDefault(2) diag.setDefault(2)
ret = diag.run() ret = diag.run()
if ret == _("Upload to AnkiWeb"): if ret == _("Upload to AnkiWeb"):
self.thread.fullSyncChoice = "upload" self.thread.fullSyncChoice = "upload"
@ -374,17 +380,14 @@ class SyncThread(QThread):
self._syncMedia() self._syncMedia()
def _fullSync(self): def _fullSync(self):
# if the local deck is empty, assume user is trying to download # tell the calling thread we need a decision on sync direction, and
if self.col.isEmpty(): # wait for a reply
f = "download" self.fullSyncChoice = False
else: self.localIsEmpty = self.col.isEmpty()
# tell the calling thread we need a decision on sync direction, and self.fireEvent("fullSync")
# wait for a reply while not self.fullSyncChoice:
self.fullSyncChoice = False time.sleep(0.1)
self.fireEvent("fullSync") f = self.fullSyncChoice
while not self.fullSyncChoice:
time.sleep(0.1)
f = self.fullSyncChoice
if f == "cancel": if f == "cancel":
return return
self.client = FullSyncer(self.col, self.hkey, self.server.client) self.client = FullSyncer(self.col, self.hkey, self.server.client)