Browse Source

Merge pull request #5895 from Snuffleupagus/viewer-pref-init-refactor

Re-factor and clean-up some preference related code in viewer.js
Tim van der Meij 10 years ago
parent
commit
a7e6f6d4d0
  1. 71
      web/viewer.js

71
web/viewer.js

@ -111,6 +111,7 @@ var PDFViewerApplication = {
preferenceSidebarViewOnLoad: SidebarView.NONE, preferenceSidebarViewOnLoad: SidebarView.NONE,
preferencePdfBugEnabled: false, preferencePdfBugEnabled: false,
preferenceShowPreviousViewOnLoad: true, preferenceShowPreviousViewOnLoad: true,
preferenceDefaultZoomValue: '',
isViewerEmbedded: (window.parent !== window), isViewerEmbedded: (window.parent !== window),
url: '', url: '',
@ -231,9 +232,9 @@ var PDFViewerApplication = {
}), }),
Preferences.get('showPreviousViewOnLoad').then(function resolved(value) { Preferences.get('showPreviousViewOnLoad').then(function resolved(value) {
self.preferenceShowPreviousViewOnLoad = value; self.preferenceShowPreviousViewOnLoad = value;
if (!value && window.history.state) { }),
window.history.replaceState(null, ''); Preferences.get('defaultZoomValue').then(function resolved(value) {
} self.preferenceDefaultZoomValue = value;
}), }),
Preferences.get('disableTextLayer').then(function resolved(value) { Preferences.get('disableTextLayer').then(function resolved(value) {
if (PDFJS.disableTextLayer === true) { if (PDFJS.disableTextLayer === true) {
@ -259,7 +260,6 @@ var PDFViewerApplication = {
Preferences.get('useOnlyCssZoom').then(function resolved(value) { Preferences.get('useOnlyCssZoom').then(function resolved(value) {
PDFJS.useOnlyCssZoom = value; PDFJS.useOnlyCssZoom = value;
}) })
// TODO move more preferences and other async stuff here // TODO move more preferences and other async stuff here
]).catch(function (reason) { }); ]).catch(function (reason) { });
@ -881,48 +881,39 @@ var PDFViewerApplication = {
if (!PDFJS.disableHistory && !self.isViewerEmbedded) { if (!PDFJS.disableHistory && !self.isViewerEmbedded) {
// The browsing history is only enabled when the viewer is standalone, // The browsing history is only enabled when the viewer is standalone,
// i.e. not when it is embedded in a web page. // i.e. not when it is embedded in a web page.
if (!self.preferenceShowPreviousViewOnLoad && window.history.state) {
window.history.replaceState(null, '');
}
PDFHistory.initialize(self.documentFingerprint, self); PDFHistory.initialize(self.documentFingerprint, self);
} }
});
// Fetch the necessary preference values. store.initializedPromise.then(function resolved() {
var defaultZoomValue; var storedHash = null;
var defaultZoomValuePromise = if (self.preferenceShowPreviousViewOnLoad &&
Preferences.get('defaultZoomValue').then(function (prefValue) { store.get('exists', false)) {
defaultZoomValue = prefValue; var pageNum = store.get('page', '1');
}); var zoom = self.preferenceDefaultZoomValue ||
store.get('zoom', self.pdfViewer.currentScale);
var storePromise = store.initializedPromise; var left = store.get('scrollLeft', '0');
Promise.all([firstPagePromise, storePromise, defaultZoomValuePromise]).then( var top = store.get('scrollTop', '0');
function resolved() {
var storedHash = null; storedHash = 'page=' + pageNum + '&zoom=' + zoom + ',' +
if (PDFViewerApplication.preferenceShowPreviousViewOnLoad && left + ',' + top;
store.get('exists', false)) { } else if (self.preferenceDefaultZoomValue) {
var pageNum = store.get('page', '1'); storedHash = 'page=1&zoom=' + self.preferenceDefaultZoomValue;
var zoom = defaultZoomValue || }
store.get('zoom', self.pdfViewer.currentScale); self.setInitialView(storedHash, scale);
var left = store.get('scrollLeft', '0');
var top = store.get('scrollTop', '0');
storedHash = 'page=' + pageNum + '&zoom=' + zoom + ',' +
left + ',' + top;
} else if (defaultZoomValue) {
storedHash = 'page=1&zoom=' + defaultZoomValue;
}
self.setInitialView(storedHash, scale);
// Make all navigation keys work on document load, // Make all navigation keys work on document load,
// unless the viewer is embedded in a web page. // unless the viewer is embedded in a web page.
if (!self.isViewerEmbedded) { if (!self.isViewerEmbedded) {
self.pdfViewer.focus(); self.pdfViewer.focus();
//#if (FIREFOX || MOZCENTRAL) //#if (FIREFOX || MOZCENTRAL)
// self.pdfViewer.blur(); // self.pdfViewer.blur();
//#endif //#endif
} }
}, function rejected(reason) { }, function rejected(reason) {
console.error(reason); console.error(reason);
firstPagePromise.then(function () {
self.setInitialView(null, scale); self.setInitialView(null, scale);
}); });
}); });

Loading…
Cancel
Save