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()