Stop tracking the rotation in PDFViewerApplication and directly use PDFViewer.pagesRotation instead

Part of the rotation handling code, in what's now `web/app.js`, hasn't really changed since before the viewer was split into multiple files/components.

Similar to other properties, such as current page/scale, we should probably avoid tracking state in multiple places. Hence I'm suggesting that we don't store the rotation in `PDFViewerApplication`, and access the value in `PDFViewer` instead.

Since `PDFViewerApplication.pageRotation` has existed for a very long time, a getter was added to avoid outright breaking third-party code that may depend on it.
This commit is contained in:
Jonas Jenwald 2017-06-19 13:09:06 +02:00
parent 9bed695ebd
commit 83673a12d7

View File

@ -134,7 +134,6 @@ var PDFViewerApplication = {
eventBus: null, eventBus: null,
/** @type {IL10n} */ /** @type {IL10n} */
l10n: null, l10n: null,
pageRotation: 0,
isInitialViewSet: false, isInitialViewSet: false,
downloadComplete: false, downloadComplete: false,
viewerPrefs: { viewerPrefs: {
@ -451,6 +450,10 @@ var PDFViewerApplication = {
return this.pdfDocument ? this.pdfDocument.numPages : 0; return this.pdfDocument ? this.pdfDocument.numPages : 0;
}, },
get pageRotation() {
return this.pdfViewer.pagesRotation;
},
set page(val) { set page(val) {
this.pdfViewer.currentPageNumber = val; this.pdfViewer.currentPageNumber = val;
}, },
@ -601,7 +604,6 @@ var PDFViewerApplication = {
this.pdfDocumentProperties.setDocument(null, null); this.pdfDocumentProperties.setDocument(null, null);
} }
this.store = null; this.store = null;
this.pageRotation = 0;
this.isInitialViewSet = false; this.isInitialViewSet = false;
this.downloadComplete = false; this.downloadComplete = false;
@ -1244,14 +1246,16 @@ var PDFViewerApplication = {
if (!this.pdfDocument) { if (!this.pdfDocument) {
return; return;
} }
let pageNumber = this.page; let { pdfViewer, pdfThumbnailViewer, } = this;
this.pageRotation = (this.pageRotation + 360 + delta) % 360; let pageNumber = pdfViewer.currentPageNumber;
this.pdfViewer.pagesRotation = this.pageRotation; let newRotation = (pdfViewer.pagesRotation + 360 + delta) % 360;
this.pdfThumbnailViewer.pagesRotation = this.pageRotation;
pdfViewer.pagesRotation = newRotation;
pdfThumbnailViewer.pagesRotation = newRotation;
this.forceRendering(); this.forceRendering();
// Ensure that the active page doesn't change during rotation.
this.pdfViewer.currentPageNumber = pageNumber; pdfViewer.currentPageNumber = pageNumber;
}, },
requestPresentationMode: function pdfViewRequestPresentationMode() { requestPresentationMode: function pdfViewRequestPresentationMode() {