mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
Rewrite 'Preferences' to make it async
This commit is contained in:
parent
bd11111465
commit
c920372ff2
3 changed files with 173 additions and 92 deletions
|
@ -140,6 +140,8 @@ var PDFView = {
|
|||
this.watchScroll(thumbnailContainer, this.thumbnailViewScroll,
|
||||
this.renderHighestPriority.bind(this));
|
||||
|
||||
Preferences.initialize();
|
||||
|
||||
PDFFindBar.initialize({
|
||||
bar: document.getElementById('findbar'),
|
||||
toggleButton: document.getElementById('viewFind'),
|
||||
|
@ -583,6 +585,9 @@ var PDFView = {
|
|||
pdfDataRangeTransport, args) {
|
||||
if (this.pdfDocument) {
|
||||
this.close();
|
||||
|
||||
// Reload the preferences if a document was previously opened.
|
||||
Preferences.reload();
|
||||
}
|
||||
|
||||
var parameters = {password: password};
|
||||
|
@ -904,7 +909,6 @@ var PDFView = {
|
|||
mozL10n.get('page_of', {pageCount: pagesCount}, 'of {{pageCount}}');
|
||||
document.getElementById('pageNumber').max = pagesCount;
|
||||
|
||||
var prefs = PDFView.prefs = new Preferences();
|
||||
PDFView.documentFingerprint = id;
|
||||
var store = PDFView.store = new ViewHistory(id);
|
||||
|
||||
|
@ -973,15 +977,26 @@ var PDFView = {
|
|||
PDFView.loadingBar.setWidth(container);
|
||||
|
||||
PDFFindController.resolveFirstPage();
|
||||
|
||||
// Initialize the browsing history.
|
||||
PDFHistory.initialize(self.documentFingerprint);
|
||||
});
|
||||
|
||||
var prefsPromise = prefs.initializedPromise;
|
||||
var storePromise = store.initializedPromise;
|
||||
Promise.all([firstPagePromise, prefsPromise, storePromise]).
|
||||
then(function() {
|
||||
var showPreviousViewOnLoad = prefs.get('showPreviousViewOnLoad');
|
||||
var defaultZoomValue = prefs.get('defaultZoomValue');
|
||||
// Fetch the necessary preference values.
|
||||
var showPreviousViewOnLoad;
|
||||
var showPreviousViewOnLoadPromise =
|
||||
Preferences.get('showPreviousViewOnLoad').then(function (prefValue) {
|
||||
showPreviousViewOnLoad = prefValue;
|
||||
});
|
||||
var defaultZoomValue;
|
||||
var defaultZoomValuePromise =
|
||||
Preferences.get('defaultZoomValue').then(function (prefValue) {
|
||||
defaultZoomValue = prefValue;
|
||||
});
|
||||
|
||||
var storePromise = store.initializedPromise;
|
||||
Promise.all([firstPagePromise, storePromise, showPreviousViewOnLoadPromise,
|
||||
defaultZoomValuePromise]).then(function resolved() {
|
||||
var storedHash = null;
|
||||
if (showPreviousViewOnLoad && store.get('exists', false)) {
|
||||
var pageNum = store.get('page', '1');
|
||||
|
@ -994,9 +1009,6 @@ var PDFView = {
|
|||
} else if (defaultZoomValue) {
|
||||
storedHash = 'page=1&zoom=' + defaultZoomValue;
|
||||
}
|
||||
// Initialize the browsing history.
|
||||
PDFHistory.initialize(self.documentFingerprint);
|
||||
|
||||
self.setInitialView(storedHash, scale);
|
||||
|
||||
// Make all navigation keys work on document load,
|
||||
|
@ -1007,6 +1019,12 @@ var PDFView = {
|
|||
// self.container.blur();
|
||||
//#endif
|
||||
}
|
||||
}, function rejected(errorMsg) {
|
||||
console.error(errorMsg);
|
||||
|
||||
firstPagePromise.then(function () {
|
||||
self.setInitialView(null, scale);
|
||||
});
|
||||
});
|
||||
|
||||
pagesPromise.then(function() {
|
||||
|
@ -1045,11 +1063,16 @@ var PDFView = {
|
|||
self.outline = new DocumentOutlineView(outline);
|
||||
document.getElementById('viewOutline').disabled = !outline;
|
||||
|
||||
if (outline && prefs.get('ifAvailableShowOutlineOnLoad')) {
|
||||
if (!self.sidebarOpen) {
|
||||
document.getElementById('sidebarToggle').click();
|
||||
}
|
||||
self.switchSidebarView('outline');
|
||||
if (outline) {
|
||||
Preferences.get('ifAvailableShowOutlineOnLoad').then(
|
||||
function (prefValue) {
|
||||
if (prefValue) {
|
||||
if (!self.sidebarOpen) {
|
||||
document.getElementById('sidebarToggle').click();
|
||||
}
|
||||
self.switchSidebarView('outline');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue