Browse Source

Merge pull request #5203 from Snuffleupagus/disableAutoFetch-loadingBar

Fix loadingBar hiding when disableAutoFetch is enabled (issue 3590)
Yury Delendik 11 years ago
parent
commit
e294c8883a
  1. 16
      web/ui_utils.js
  2. 4
      web/viewer.html
  3. 21
      web/viewer.js

16
web/ui_utils.js

@ -275,6 +275,7 @@ var ProgressBar = (function ProgressBarClosure() {
} }
function ProgressBar(id, opts) { function ProgressBar(id, opts) {
this.visible = true;
// Fetch the sub-elements for later. // Fetch the sub-elements for later.
this.div = document.querySelector(id + ' .progress'); this.div = document.querySelector(id + ' .progress');
@ -328,8 +329,21 @@ var ProgressBar = (function ProgressBarClosure() {
}, },
hide: function ProgressBar_hide() { hide: function ProgressBar_hide() {
if (!this.visible) {
return;
}
this.visible = false;
this.bar.classList.add('hidden'); this.bar.classList.add('hidden');
this.bar.removeAttribute('style'); document.body.classList.remove('loadingInProgress');
},
show: function ProgressBar_show() {
if (this.visible) {
return;
}
this.visible = true;
document.body.classList.add('loadingInProgress');
this.bar.classList.remove('hidden');
} }
}; };

4
web/viewer.html

@ -96,8 +96,8 @@ http://sourceforge.net/adobe/cmap/wiki/License/
</head> </head>
<body tabindex="1"> <body tabindex="1" class="loadingInProgress">
<div id="outerContainer" class="loadingInProgress"> <div id="outerContainer">
<div id="sidebarContainer"> <div id="sidebarContainer">
<div id="toolbarSidebar"> <div id="toolbarSidebar">

21
web/viewer.js

@ -35,6 +35,7 @@ var VIEW_HISTORY_MEMORY = 20;
var SCALE_SELECT_CONTAINER_PADDING = 8; var SCALE_SELECT_CONTAINER_PADDING = 8;
var SCALE_SELECT_PADDING = 22; var SCALE_SELECT_PADDING = 22;
var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
//#if B2G //#if B2G
//PDFJS.useOnlyCssZoom = true; //PDFJS.useOnlyCssZoom = true;
//PDFJS.disableTextLayer = true; //PDFJS.disableTextLayer = true;
@ -859,6 +860,24 @@ var PDFViewerApplication = {
// increases. // increases.
if (percent > this.loadingBar.percent || isNaN(percent)) { if (percent > this.loadingBar.percent || isNaN(percent)) {
this.loadingBar.percent = percent; this.loadingBar.percent = percent;
// When disableAutoFetch is enabled, it's not uncommon for the entire file
// to never be fetched (depends on e.g. the file structure). In this case
// the loading bar will not be completely filled, nor will it be hidden.
// To prevent displaying a partially filled loading bar permanently, we
// hide it when no data has been loaded during a certain amount of time.
if (PDFJS.disableAutoFetch && percent) {
if (this.disableAutoFetchLoadingBarTimeout) {
clearTimeout(this.disableAutoFetchLoadingBarTimeout);
this.disableAutoFetchLoadingBarTimeout = null;
}
this.loadingBar.show();
this.disableAutoFetchLoadingBarTimeout = setTimeout(function () {
this.loadingBar.hide();
this.disableAutoFetchLoadingBarTimeout = null;
}.bind(this), DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT);
}
} }
}, },
@ -877,8 +896,6 @@ var PDFViewerApplication = {
var downloadedPromise = pdfDocument.getDownloadInfo().then(function() { var downloadedPromise = pdfDocument.getDownloadInfo().then(function() {
self.downloadComplete = true; self.downloadComplete = true;
self.loadingBar.hide(); self.loadingBar.hide();
var outerContainer = document.getElementById('outerContainer');
outerContainer.classList.remove('loadingInProgress');
}); });
var pagesCount = pdfDocument.numPages; var pagesCount = pdfDocument.numPages;

Loading…
Cancel
Save