Merge pull request #4692 from Snuffleupagus/viewHistory-setMultiple

Add support for setting multiple values at once in ViewHistory
This commit is contained in:
Yury Delendik 2014-04-27 23:26:38 -05:00
commit 42ed9025ef
2 changed files with 31 additions and 17 deletions

View File

@ -86,30 +86,43 @@ var ViewHistory = (function ViewHistoryClosure() {
this.database = database;
},
set: function ViewHistory_set(name, val) {
if (!this.isInitializedPromiseResolved) {
return;
}
var file = this.file;
file[name] = val;
var database = JSON.stringify(this.database);
_writeToStorage: function ViewHistory_writeToStorage() {
var databaseStr = JSON.stringify(this.database);
//#if B2G
// asyncStorage.setItem('database', database);
// asyncStorage.setItem('database', databaseStr);
//#endif
//#if FIREFOX || MOZCENTRAL
// try {
// // See comment in try-catch block above.
// sessionStorage.setItem('pdfjsHistory', database);
// sessionStorage.setItem('pdfjsHistory', databaseStr);
// } catch (ex) {}
//#endif
//#if !(FIREFOX || MOZCENTRAL || B2G)
localStorage.setItem('database', database);
localStorage.setItem('database', databaseStr);
//#endif
},
set: function ViewHistory_set(name, val) {
if (!this.isInitializedPromiseResolved) {
return;
}
this.file[name] = val;
this._writeToStorage();
},
setMultiple: function ViewHistory_setMultiple(properties) {
if (!this.isInitializedPromiseResolved) {
return;
}
for (var name in properties) {
this.file[name] = properties[name];
}
this._writeToStorage();
},
get: function ViewHistory_get(name, defaultValue) {
if (!this.isInitializedPromiseResolved) {
return defaultValue;

View File

@ -1970,13 +1970,14 @@ function updateViewarea() {
PDFView.currentPosition = { page: pageNumber, left: intLeft, top: intTop };
}
var store = PDFView.store;
store.initializedPromise.then(function() {
store.set('exists', true);
store.set('page', pageNumber);
store.set('zoom', normalizedScaleValue);
store.set('scrollLeft', intLeft);
store.set('scrollTop', intTop);
PDFView.store.initializedPromise.then(function() {
PDFView.store.setMultiple({
'exists': true,
'page': pageNumber,
'zoom': normalizedScaleValue,
'scrollLeft': intLeft,
'scrollTop': intTop
});
});
var href = PDFView.getAnchorUrl(pdfOpenParams);
document.getElementById('viewBookmark').href = href;