Refactors PDFFindBar and FirefoxCom find events.
This commit is contained in:
		
							parent
							
								
									7fd3db9977
								
							
						
					
					
						commit
						3e6e294fd4
					
				
							
								
								
									
										22
									
								
								web/app.js
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								web/app.js
									
									
									
									
									
								
							@ -248,7 +248,6 @@ var PDFViewerApplication = {
 | 
			
		||||
        this.findBar.updateUIState(state, previous, matchCount);
 | 
			
		||||
      }
 | 
			
		||||
    }.bind(this);
 | 
			
		||||
    this.findController.listenWindowEvents();
 | 
			
		||||
 | 
			
		||||
    this.pdfViewer.setFindController(this.findController);
 | 
			
		||||
 | 
			
		||||
@ -1249,6 +1248,7 @@ var PDFViewerApplication = {
 | 
			
		||||
    eventBus.on('pagemode', webViewerPageMode);
 | 
			
		||||
    eventBus.on('namedaction', webViewerNamedAction);
 | 
			
		||||
    eventBus.on('presentationmodechanged', webViewerPresentationModeChanged);
 | 
			
		||||
    eventBus.on('find', webViewerFind);
 | 
			
		||||
//#if GENERIC
 | 
			
		||||
    eventBus.on('fileinputchange', webViewerFileInputChange);
 | 
			
		||||
//#endif
 | 
			
		||||
@ -1827,6 +1827,15 @@ function webViewerLocalized() {
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function webViewerFind(e) {
 | 
			
		||||
  PDFViewerApplication.findController.executeCommand('find' + e.type, {
 | 
			
		||||
    query: e.query,
 | 
			
		||||
    caseSensitive: e.caseSensitive,
 | 
			
		||||
    highlightAll: e.highlightAll,
 | 
			
		||||
    findPrevious: e.findPrevious
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function webViewerScaleChange(e) {
 | 
			
		||||
  var appConfig = PDFViewerApplication.appConfig;
 | 
			
		||||
  appConfig.toolbar.zoomOut.disabled = (e.scale === MIN_SCALE);
 | 
			
		||||
@ -1961,8 +1970,15 @@ window.addEventListener('keydown', function keydown(evt) {
 | 
			
		||||
        break;
 | 
			
		||||
      case 71: // g
 | 
			
		||||
        if (!PDFViewerApplication.supportsIntegratedFind) {
 | 
			
		||||
          PDFViewerApplication.eventBus.dispatch('findagain',
 | 
			
		||||
                                                 cmd === 5 || cmd === 12);
 | 
			
		||||
          var findState = PDFViewerApplication.findController.state;
 | 
			
		||||
          if (findState) {
 | 
			
		||||
            PDFViewerApplication.findController.executeCommand('findagain', {
 | 
			
		||||
              query: findState.query,
 | 
			
		||||
              caseSensitive: findState.caseSensitive,
 | 
			
		||||
              highlightAll: findState.highlightAll,
 | 
			
		||||
              findPrevious: cmd === 5 || cmd === 12
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
          handled = true;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,9 @@
 | 
			
		||||
      e.source.container.dispatchEvent(event);
 | 
			
		||||
    });
 | 
			
		||||
    eventBus.on('find', function (e) {
 | 
			
		||||
      if (e.source === window) {
 | 
			
		||||
        return; // event comes from FirefoxCom, no need to replicate
 | 
			
		||||
      }
 | 
			
		||||
      var event = document.createEvent('CustomEvent');
 | 
			
		||||
      event.initCustomEvent('find' + e.type, true, true, {
 | 
			
		||||
        query: e.query,
 | 
			
		||||
 | 
			
		||||
@ -148,6 +148,32 @@ Preferences._readFromStorage = function (prefObj) {
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
(function listenFindEvents() {
 | 
			
		||||
  var events = [
 | 
			
		||||
    'find',
 | 
			
		||||
    'findagain',
 | 
			
		||||
    'findhighlightallchange',
 | 
			
		||||
    'findcasesensitivitychange'
 | 
			
		||||
  ];
 | 
			
		||||
  var handleEvent = function (evt) {
 | 
			
		||||
    if (!PDFViewerApplication.initialized) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    PDFViewerApplication.eventBus.dispatch('find', {
 | 
			
		||||
      source: window,
 | 
			
		||||
      type: evt.type.substring('find'.length),
 | 
			
		||||
      query: evt.detail.query,
 | 
			
		||||
      caseSensitive: !!evt.detail.caseSensitive,
 | 
			
		||||
      highlightAll: !!evt.detail.highlightAll,
 | 
			
		||||
      findPrevious: !!evt.detail.findPrevious
 | 
			
		||||
    });
 | 
			
		||||
  }.bind(this);
 | 
			
		||||
 | 
			
		||||
  for (var i = 0, len = events.length; i < len; i++) {
 | 
			
		||||
    window.addEventListener(events[i], handleEvent);
 | 
			
		||||
  }
 | 
			
		||||
})();
 | 
			
		||||
 | 
			
		||||
function FirefoxComDataRangeTransport(length, initialData) {
 | 
			
		||||
  pdfjsLib.PDFDataRangeTransport.call(this, length, initialData);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -71,22 +71,6 @@ var PDFFindController = (function PDFFindControllerClosure() {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  PDFFindController.prototype = {
 | 
			
		||||
    listenWindowEvents: function PDFFindController_listenWindowEvents() {
 | 
			
		||||
      var events = [
 | 
			
		||||
        'find',
 | 
			
		||||
        'findagain',
 | 
			
		||||
        'findhighlightallchange',
 | 
			
		||||
        'findcasesensitivitychange'
 | 
			
		||||
      ];
 | 
			
		||||
      var handleEvent = function (e) {
 | 
			
		||||
        this.executeCommand(e.type, e.detail);
 | 
			
		||||
      }.bind(this);
 | 
			
		||||
 | 
			
		||||
      for (var i = 0, len = events.length; i < len; i++) {
 | 
			
		||||
        window.addEventListener(events[i], handleEvent);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    reset: function PDFFindController_reset() {
 | 
			
		||||
      this.startedTextExtraction = false;
 | 
			
		||||
      this.extractTextPromises = [];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user