diff --git a/ankiqt/ui/sync.py b/ankiqt/ui/sync.py index de878a12d..0b7402839 100644 --- a/ankiqt/ui/sync.py +++ b/ankiqt/ui/sync.py @@ -93,6 +93,7 @@ class Sync(QThread): # need to do anything? start = time.time() if client.prepareSync(): + changes = True # summary self.setStatus(_("Fetching summary from server..."), 0) sums = client.summaries() @@ -115,11 +116,14 @@ class Sync(QThread): self.deck.s.flush() self.deck.s.commit() else: + changes = False self.setStatus(_("No changes found.")) # check sources + srcChanged = False if self.sourcesToCheck: start = time.time() self.setStatus(_("

Checking deck subscriptions...")) + srcChanged = False for source in self.sourcesToCheck: proxy.deckName = str(source) msg = "%s:" % client.syncOneWayDeckName() @@ -129,6 +133,7 @@ class Sync(QThread): if not client.prepareOneWaySync(): self.setStatus(_(" * %s no changes found.") % msg) continue + srcChanged = True self.setStatus(_(" * %s fetching payload...") % msg) payload = proxy.genOneWayPayload(client.deck.lastSync) self.setStatus(msg + _(" applied %d modified cards.") % @@ -142,8 +147,10 @@ class Sync(QThread): # close and send signal to main thread self.deck.close() taken = time.time() - start - if taken < 2.5: + if changes or srcChanged and taken < 2.5: time.sleep(2.5 - taken) + else: + time.sleep(0.25) self.emit(SIGNAL("syncFinished")) except Exception, e: traceback.print_exc()