[Pkg-javascript-commits] [pdf.js] 157/204: Add a page loading indicator to the page number input

David Prévot taffit at moszumanska.debian.org
Sat Oct 25 18:50:45 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository pdf.js.

commit b9ef80e1678d7d3ef239610b4e3e11d1ebc98534
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date:   Fri Jul 18 13:53:04 2014 +0200

    Add a page loading indicator to the page number input
---
 web/ui_utils.js |  1 -
 web/viewer.css  |  6 ++++++
 web/viewer.js   | 48 +++++++++++++++++++++++++++++++-----------------
 3 files changed, 37 insertions(+), 18 deletions(-)

diff --git a/web/ui_utils.js b/web/ui_utils.js
index 1779b60..6ed4c2d 100644
--- a/web/ui_utils.js
+++ b/web/ui_utils.js
@@ -355,4 +355,3 @@ var Cache = function cacheCache(size) {
     }
   };
 };
-
diff --git a/web/viewer.css b/web/viewer.css
index f202916..bf99f3c 100644
--- a/web/viewer.css
+++ b/web/viewer.css
@@ -1053,6 +1053,12 @@ html[dir='rtl'] .verticalToolbarSeparator {
   width: 40px;
 }
 
+.toolbarField.pageNumber.visiblePageIsLoading {
+  background-image: url(images/loading-small.png);
+  background-repeat: no-repeat;
+  background-position: 1px;
+}
+
 .toolbarField.pageNumber::-webkit-inner-spin-button,
 .toolbarField.pageNumber::-webkit-outer-spin-button {
     -webkit-appearance: none;
diff --git a/web/viewer.js b/web/viewer.js
index ccd2e01..ea07765 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -22,7 +22,7 @@
            DocumentProperties, DocumentOutlineView, DocumentAttachmentsView,
            OverlayManager, PDFFindController, PDFFindBar, getVisibleElements,
            watchScroll, PDFViewer, PDFRenderingQueue, PresentationModeState,
-           DEFAULT_SCALE, UNKNOWN_SCALE,
+           RenderingStates, DEFAULT_SCALE, UNKNOWN_SCALE,
            IGNORE_CURRENT_POSITION_ON_ZOOM: true */
 
 'use strict';
@@ -34,7 +34,7 @@ var MAX_SCALE = 10.0;
 var VIEW_HISTORY_MEMORY = 20;
 var SCALE_SELECT_CONTAINER_PADDING = 8;
 var SCALE_SELECT_PADDING = 22;
-
+var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
 //#if B2G
 //PDFJS.useOnlyCssZoom = true;
 //PDFJS.disableTextLayer = true;
@@ -878,13 +878,11 @@ var PDFViewerApplication = {
     });
 
     var pagesCount = pdfDocument.numPages;
-
-    var id = pdfDocument.fingerprint;
     document.getElementById('numPages').textContent =
       mozL10n.get('page_of', {pageCount: pagesCount}, 'of {{pageCount}}');
     document.getElementById('pageNumber').max = pagesCount;
 
-    this.documentFingerprint = id;
+    var id = this.documentFingerprint = pdfDocument.fingerprint;
     var store = this.store = new ViewHistory(id);
 
     var pdfViewer = this.pdfViewer;
@@ -1646,20 +1644,18 @@ function webViewerInitialized() {
       PDFViewerApplication.zoomOut();
     });
 
-  document.getElementById('pageNumber').addEventListener('click',
-    function() {
-      this.select();
-    });
+  document.getElementById('pageNumber').addEventListener('click', function() {
+    this.select();
+  });
 
-  document.getElementById('pageNumber').addEventListener('change',
-    function() {
-      // Handle the user inputting a floating point number.
-      PDFViewerApplication.page = (this.value | 0);
+  document.getElementById('pageNumber').addEventListener('change', function() {
+    // Handle the user inputting a floating point number.
+    PDFViewerApplication.page = (this.value | 0);
 
-      if (this.value !== (this.value | 0).toString()) {
-        this.value = PDFViewerApplication.page;
-      }
-    });
+    if (this.value !== (this.value | 0).toString()) {
+      this.value = PDFViewerApplication.page;
+    }
+  });
 
   document.getElementById('scaleSelect').addEventListener('change',
     function() {
@@ -1756,6 +1752,13 @@ document.addEventListener('pagerendered', function (e) {
 //  }));
 //});
 //#endif
+
+  // If the page is still visible when it has finished rendering,
+  // ensure that the page number input loading indicator is hidden.
+  if ((pageIndex + 1) === PDFViewerApplication.page) {
+    var pageNumberInput = document.getElementById('pageNumber');
+    pageNumberInput.classList.remove(PAGE_NUMBER_LOADING_INDICATOR);
+  }
 }, true);
 
 window.addEventListener('presentationmodechanged', function (e) {
@@ -1797,6 +1800,17 @@ window.addEventListener('updateviewarea', function () {
 
   // Update the current bookmark in the browsing history.
   PDFHistory.updateCurrentBookmark(location.pdfOpenParams, location.pageNumber);
+
+  // Show/hide the loading indicator in the page number input element.
+  var pageNumberInput = document.getElementById('pageNumber');
+  var currentPage =
+    PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1);
+
+  if (currentPage.renderingState === RenderingStates.FINISHED) {
+    pageNumberInput.classList.remove(PAGE_NUMBER_LOADING_INDICATOR);
+  } else {
+    pageNumberInput.classList.add(PAGE_NUMBER_LOADING_INDICATOR);
+  }
 }, true);
 
 window.addEventListener('resize', function webViewerResize(evt) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git



More information about the Pkg-javascript-commits mailing list