From ef71d544c11f14bdb98daff8cc18050cbee98077 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Wed, 18 Apr 2012 23:04:32 -0400 Subject: [PATCH] Fixes #62, Show sync progress bar only for longer syncs Shows the progress bar only if sync takes longer than 100ms --- chrome/content/zotero/xpcom/sync.js | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/chrome/content/zotero/xpcom/sync.js b/chrome/content/zotero/xpcom/sync.js index 8221f981f..2a1c4b259 100644 --- a/chrome/content/zotero/xpcom/sync.js +++ b/chrome/content/zotero/xpcom/sync.js @@ -1463,21 +1463,12 @@ Zotero.Sync.Server = new function () { Zotero.suppressUIUpdates = true; _updatesInProgress = true; - var progressMeter = true; - if (progressMeter) { - Zotero.showZoteroPaneProgressMeter( - Zotero.getString('sync.status.processingUpdatedData'), - false, - "chrome://zotero/skin/arrow_rotate_animated.png" - ); - } - var errorHandler = function (e) { Zotero.DB.rollbackTransaction(); Zotero.UnresponsiveScriptIndicator.enable(); - if (progressMeter) { + if (Zotero.locked) { Zotero.hideZoteroPaneOverlay(); } Zotero.suppressUIUpdates = false; @@ -1495,7 +1486,7 @@ Zotero.Sync.Server = new function () { function (xmlstr) { Zotero.UnresponsiveScriptIndicator.enable(); - if (progressMeter) { + if (Zotero.locked) { Zotero.hideZoteroPaneOverlay(); } Zotero.suppressUIUpdates = false; @@ -2559,15 +2550,26 @@ Zotero.Sync.Server.Data = new function() { } function _timeToYield() { - if (progressMeter && Date.now() - lastRepaint > repaintTime) { + if (!progressMeter) { + if (Date.now() - start > progressMeterThreshold) { + Zotero.showZoteroPaneProgressMeter( + Zotero.getString('sync.status.processingUpdatedData'), + false, + "chrome://zotero/skin/arrow_rotate_animated.png" + ); + progressMeter = true; + } + } + else if (Date.now() - lastRepaint > repaintTime) { lastRepaint = Date.now(); return true; } - return false; } - var progressMeter = Zotero.locked; + var progressMeter = false; + var progressMeterThreshold = 100; + var start = Date.now(); var repaintTime = 100; var lastRepaint = Date.now();