Merge pull request #7640 from timvandermeij/interactive-forms-rm-global
Interactive forms: remove global PDFJS usage
This commit is contained in:
commit
ab1b4cec5d
@ -243,13 +243,6 @@
|
||||
PDFJS.isEvalSupported = (PDFJS.isEvalSupported === undefined ?
|
||||
true : PDFJS.isEvalSupported);
|
||||
|
||||
/**
|
||||
* Renders interactive form elements.
|
||||
* @var {boolean}
|
||||
*/
|
||||
PDFJS.renderInteractiveForms = (PDFJS.renderInteractiveForms === undefined ?
|
||||
false : PDFJS.renderInteractiveForms);
|
||||
|
||||
//#if !MOZCENTRAL
|
||||
var savedOpenExternalLinksInNewWindow = PDFJS.openExternalLinksInNewWindow;
|
||||
delete PDFJS.openExternalLinksInNewWindow;
|
||||
|
@ -36,6 +36,7 @@ var SimpleLinkService = pdfLinkService.SimpleLinkService;
|
||||
* @typedef {Object} AnnotationLayerBuilderOptions
|
||||
* @property {HTMLDivElement} pageDiv
|
||||
* @property {PDFPage} pdfPage
|
||||
* @property {boolean} renderInteractiveForms
|
||||
* @property {IPDFLinkService} linkService
|
||||
* @property {DownloadManager} downloadManager
|
||||
*/
|
||||
@ -51,6 +52,7 @@ var AnnotationLayerBuilder = (function AnnotationLayerBuilderClosure() {
|
||||
function AnnotationLayerBuilder(options) {
|
||||
this.pageDiv = options.pageDiv;
|
||||
this.pdfPage = options.pdfPage;
|
||||
this.renderInteractiveForms = options.renderInteractiveForms;
|
||||
this.linkService = options.linkService;
|
||||
this.downloadManager = options.downloadManager;
|
||||
|
||||
@ -77,9 +79,9 @@ var AnnotationLayerBuilder = (function AnnotationLayerBuilderClosure() {
|
||||
div: self.div,
|
||||
annotations: annotations,
|
||||
page: self.pdfPage,
|
||||
renderInteractiveForms: self.renderInteractiveForms,
|
||||
linkService: self.linkService,
|
||||
downloadManager: self.downloadManager,
|
||||
renderInteractiveForms: pdfjsLib.PDFJS.renderInteractiveForms,
|
||||
};
|
||||
|
||||
if (self.div) {
|
||||
@ -126,12 +128,15 @@ DefaultAnnotationLayerFactory.prototype = {
|
||||
/**
|
||||
* @param {HTMLDivElement} pageDiv
|
||||
* @param {PDFPage} pdfPage
|
||||
* @param {boolean} renderInteractiveForms
|
||||
* @returns {AnnotationLayerBuilder}
|
||||
*/
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage) {
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage,
|
||||
renderInteractiveForms) {
|
||||
return new AnnotationLayerBuilder({
|
||||
pageDiv: pageDiv,
|
||||
pdfPage: pdfPage,
|
||||
renderInteractiveForms: renderInteractiveForms,
|
||||
linkService: new SimpleLinkService(),
|
||||
});
|
||||
}
|
||||
|
@ -211,6 +211,7 @@ var PDFViewerApplication = {
|
||||
linkService: pdfLinkService,
|
||||
downloadManager: downloadManager,
|
||||
enhanceTextSelection: false,
|
||||
renderInteractiveForms: false,
|
||||
});
|
||||
pdfRenderingQueue.setViewer(this.pdfViewer);
|
||||
pdfLinkService.setViewer(this.pdfViewer);
|
||||
@ -371,7 +372,10 @@ var PDFViewerApplication = {
|
||||
PDFJS.externalLinkTarget = value;
|
||||
}),
|
||||
Preferences.get('renderInteractiveForms').then(function resolved(value) {
|
||||
PDFJS.renderInteractiveForms = value;
|
||||
// TODO: Like the `enhanceTextSelection` preference, move the
|
||||
// initialization and fetching of `Preferences` to occur
|
||||
// before the various viewer components are initialized.
|
||||
self.pdfViewer.renderInteractiveForms = value;
|
||||
}),
|
||||
// TODO move more preferences and other async stuff here
|
||||
]).catch(function (reason) { });
|
||||
|
@ -113,7 +113,9 @@ IPDFAnnotationLayerFactory.prototype = {
|
||||
/**
|
||||
* @param {HTMLDivElement} pageDiv
|
||||
* @param {PDFPage} pdfPage
|
||||
* @param {boolean} renderInteractiveForms
|
||||
* @returns {AnnotationLayerBuilder}
|
||||
*/
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage) {}
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage,
|
||||
renderInteractiveForms) {}
|
||||
};
|
||||
|
@ -52,6 +52,8 @@ var TEXT_LAYER_RENDER_DELAY = 200; // ms
|
||||
* @property {IPDFAnnotationLayerFactory} annotationLayerFactory
|
||||
* @property {boolean} enhanceTextSelection - Turns on the text selection
|
||||
* enhancement. The default is `false`.
|
||||
* @property {boolean} renderInteractiveForms - Turns on rendering of
|
||||
* interactive form elements. The default is `false`.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -72,6 +74,7 @@ var PDFPageView = (function PDFPageViewClosure() {
|
||||
var textLayerFactory = options.textLayerFactory;
|
||||
var annotationLayerFactory = options.annotationLayerFactory;
|
||||
var enhanceTextSelection = options.enhanceTextSelection || false;
|
||||
var renderInteractiveForms = options.renderInteractiveForms || false;
|
||||
|
||||
this.id = id;
|
||||
this.renderingId = 'page' + id;
|
||||
@ -82,6 +85,7 @@ var PDFPageView = (function PDFPageViewClosure() {
|
||||
this.pdfPageRotate = defaultViewport.rotation;
|
||||
this.hasRestrictedScaling = false;
|
||||
this.enhanceTextSelection = enhanceTextSelection;
|
||||
this.renderInteractiveForms = renderInteractiveForms;
|
||||
|
||||
this.eventBus = options.eventBus || domEvents.getGlobalEventBus();
|
||||
this.renderingQueue = renderingQueue;
|
||||
@ -498,7 +502,7 @@ var PDFPageView = (function PDFPageViewClosure() {
|
||||
canvasContext: ctx,
|
||||
transform: transform,
|
||||
viewport: this.viewport,
|
||||
renderInteractiveForms: pdfjsLib.PDFJS.renderInteractiveForms,
|
||||
renderInteractiveForms: this.renderInteractiveForms,
|
||||
// intent: 'default', // === 'display'
|
||||
};
|
||||
var renderTask = this.renderTask = this.pdfPage.render(renderContext);
|
||||
@ -524,7 +528,8 @@ var PDFPageView = (function PDFPageViewClosure() {
|
||||
if (this.annotationLayerFactory) {
|
||||
if (!this.annotationLayer) {
|
||||
this.annotationLayer = this.annotationLayerFactory.
|
||||
createAnnotationLayerBuilder(div, this.pdfPage);
|
||||
createAnnotationLayerBuilder(div, this.pdfPage,
|
||||
this.renderInteractiveForms);
|
||||
}
|
||||
this.annotationLayer.render(this.viewport, 'display');
|
||||
}
|
||||
|
@ -78,6 +78,8 @@ var DEFAULT_CACHE_SIZE = 10;
|
||||
* around the pages. The default is false.
|
||||
* @property {boolean} enhanceTextSelection - (optional) Enables the improved
|
||||
* text selection behaviour. The default is `false`.
|
||||
* @property {boolean} renderInteractiveForms - (optional) Enables rendering of
|
||||
* interactive form elements. The default is `false`.
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -130,6 +132,7 @@ var PDFViewer = (function pdfViewer() {
|
||||
this.downloadManager = options.downloadManager || null;
|
||||
this.removePageBorders = options.removePageBorders || false;
|
||||
this.enhanceTextSelection = options.enhanceTextSelection || false;
|
||||
this.renderInteractiveForms = options.renderInteractiveForms || false;
|
||||
|
||||
this.defaultRenderingQueue = !options.renderingQueue;
|
||||
if (this.defaultRenderingQueue) {
|
||||
@ -357,6 +360,7 @@ var PDFViewer = (function pdfViewer() {
|
||||
textLayerFactory: textLayerFactory,
|
||||
annotationLayerFactory: this,
|
||||
enhanceTextSelection: this.enhanceTextSelection,
|
||||
renderInteractiveForms: this.renderInteractiveForms,
|
||||
});
|
||||
bindOnAfterAndBeforeDraw(pageView);
|
||||
this._pages.push(pageView);
|
||||
@ -856,12 +860,15 @@ var PDFViewer = (function pdfViewer() {
|
||||
/**
|
||||
* @param {HTMLDivElement} pageDiv
|
||||
* @param {PDFPage} pdfPage
|
||||
* @param {boolean} renderInteractiveForms
|
||||
* @returns {AnnotationLayerBuilder}
|
||||
*/
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage) {
|
||||
createAnnotationLayerBuilder: function (pageDiv, pdfPage,
|
||||
renderInteractiveForms) {
|
||||
return new AnnotationLayerBuilder({
|
||||
pageDiv: pageDiv,
|
||||
pdfPage: pdfPage,
|
||||
renderInteractiveForms: renderInteractiveForms,
|
||||
linkService: this.linkService,
|
||||
downloadManager: this.downloadManager
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user