| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var localStrings = new LocalStrings(); | 5 var localStrings = new LocalStrings(); |
| 6 | 6 |
| 7 // The total page count of the previewed document regardless of which pages the | 7 // The total page count of the previewed document regardless of which pages the |
| 8 // user has selected. | 8 // user has selected. |
| 9 var totalPageCount; | 9 var totalPageCount; |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 // True when preview tab has some error. | 42 // True when preview tab has some error. |
| 43 var hasError = false; | 43 var hasError = false; |
| 44 | 44 |
| 45 // True when preview tab is hidden. | 45 // True when preview tab is hidden. |
| 46 var isTabHidden = false; | 46 var isTabHidden = false; |
| 47 | 47 |
| 48 // True when draft preview data is requested for preview. | 48 // True when draft preview data is requested for preview. |
| 49 var draftDocument = true; | 49 var draftDocument = true; |
| 50 | 50 |
| 51 // True if the user has click 'Advanced...' in order to open the system print |
| 52 // dialog. |
| 53 var showingSystemDialog = false; |
| 54 |
| 51 /** | 55 /** |
| 52 * Window onload handler, sets up the page and starts print preview by getting | 56 * Window onload handler, sets up the page and starts print preview by getting |
| 53 * the printer list. | 57 * the printer list. |
| 54 */ | 58 */ |
| 55 function onLoad() { | 59 function onLoad() { |
| 56 cr.enablePlatformSpecificCSSRules(); | 60 cr.enablePlatformSpecificCSSRules(); |
| 57 | 61 |
| 58 $('cancel-button').addEventListener('click', handleCancelButtonClick); | 62 $('cancel-button').addEventListener('click', handleCancelButtonClick); |
| 59 | 63 |
| 60 if (!checkCompatiblePluginExists()) { | 64 if (!checkCompatiblePluginExists()) { |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 */ | 166 */ |
| 163 function removeEventListeners() { | 167 function removeEventListeners() { |
| 164 clearTimeout(timerId); | 168 clearTimeout(timerId); |
| 165 setDefaultHandlersForPagesAndCopiesControls(); | 169 setDefaultHandlersForPagesAndCopiesControls(); |
| 166 | 170 |
| 167 // Controls that require preview rendering | 171 // Controls that require preview rendering |
| 168 $('landscape').onclick = null; | 172 $('landscape').onclick = null; |
| 169 $('portrait').onclick = null; | 173 $('portrait').onclick = null; |
| 170 $('printer-list').onchange = null; | 174 $('printer-list').onchange = null; |
| 171 | 175 |
| 172 // Controls that dont require preview rendering. | 176 // Controls that don't require preview rendering. |
| 173 $('two-sided').onclick = null; | 177 $('two-sided').onclick = null; |
| 174 $('color').onclick = null; | 178 $('color').onclick = null; |
| 175 $('bw').onclick = null; | 179 $('bw').onclick = null; |
| 176 } | 180 } |
| 177 | 181 |
| 178 /** | 182 /** |
| 183 * Disables the input elements in the controls pane. |
| 184 */ |
| 185 function disableInputElements() { |
| 186 var els = document.querySelectorAll('input, button, select'); |
| 187 for (var i = 0; i < els.length; i++) |
| 188 els[i].disabled = true; |
| 189 } |
| 190 |
| 191 /** |
| 179 * Asks the browser to close the preview tab. | 192 * Asks the browser to close the preview tab. |
| 180 */ | 193 */ |
| 181 function handleCancelButtonClick() { | 194 function handleCancelButtonClick() { |
| 182 chrome.send('closePrintPreviewTab'); | 195 chrome.send('closePrintPreviewTab'); |
| 183 } | 196 } |
| 184 | 197 |
| 185 /** | 198 /** |
| 186 * Asks the browser to show the native print dialog for printing. | 199 * Asks the browser to show the native print dialog for printing. |
| 187 */ | 200 */ |
| 188 function showSystemDialog() { | 201 function showSystemDialog() { |
| 202 showingSystemDialog = true; |
| 203 disableInputElements(); |
| 204 $('system-dialog-throbber').classList.remove('hidden'); |
| 189 chrome.send('showSystemDialog'); | 205 chrome.send('showSystemDialog'); |
| 190 } | 206 } |
| 191 | 207 |
| 192 /** | 208 /** |
| 193 * Disables the controls which need the initiator tab to generate preview | 209 * Disables the controls which need the initiator tab to generate preview |
| 194 * data. This function is called when the initiator tab is closed. | 210 * data. This function is called when the initiator tab is closed. |
| 195 * @param {string} initiatorTabURL The URL of the initiator tab. | 211 * @param {string} initiatorTabURL The URL of the initiator tab. |
| 196 */ | 212 */ |
| 197 function onInitiatorTabClosed(initiatorTabURL) { | 213 function onInitiatorTabClosed(initiatorTabURL) { |
| 198 displayErrorMessageWithButton( | 214 displayErrorMessageWithButton( |
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 | 665 |
| 650 if (hasPendingPrintFileRequest) | 666 if (hasPendingPrintFileRequest) |
| 651 printFile(); | 667 printFile(); |
| 652 } | 668 } |
| 653 | 669 |
| 654 /** | 670 /** |
| 655 * Create the PDF plugin or reload the existing one. | 671 * Create the PDF plugin or reload the existing one. |
| 656 * @param {string} previewUid Preview unique identifier. | 672 * @param {string} previewUid Preview unique identifier. |
| 657 */ | 673 */ |
| 658 function createPDFPlugin(previewUid) { | 674 function createPDFPlugin(previewUid) { |
| 659 // Enable the print button. | |
| 660 if (!$('printer-list').disabled) | |
| 661 $('print-button').disabled = false; | |
| 662 | |
| 663 var pdfViewer = $('pdf-viewer'); | 675 var pdfViewer = $('pdf-viewer'); |
| 664 if (pdfViewer) { | 676 if (pdfViewer) { |
| 665 // Need to call this before the reload(), where the plugin resets its | 677 // Need to call this before the reload(), where the plugin resets its |
| 666 // internal page count. | 678 // internal page count. |
| 667 pdfViewer.goToPage('0'); | 679 pdfViewer.goToPage('0'); |
| 668 | 680 |
| 669 pdfViewer.reload(); | 681 pdfViewer.reload(); |
| 670 pdfViewer.grayscale(!isColor()); | 682 pdfViewer.grayscale(!isColor()); |
| 671 return; | 683 return; |
| 672 } | 684 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 693 dummyPlugin.removePrintButton); | 705 dummyPlugin.removePrintButton); |
| 694 } | 706 } |
| 695 | 707 |
| 696 /** | 708 /** |
| 697 * Updates the state of print button depending on the user selection. | 709 * Updates the state of print button depending on the user selection. |
| 698 * The button is enabled only when the following conditions are true. | 710 * The button is enabled only when the following conditions are true. |
| 699 * 1) The selected page ranges are valid. | 711 * 1) The selected page ranges are valid. |
| 700 * 2) The number of copies is valid (if applicable). | 712 * 2) The number of copies is valid (if applicable). |
| 701 */ | 713 */ |
| 702 function updatePrintButtonState() { | 714 function updatePrintButtonState() { |
| 715 if (showingSystemDialog) |
| 716 return; |
| 717 |
| 703 if (getSelectedPrinterName() == PRINT_TO_PDF) { | 718 if (getSelectedPrinterName() == PRINT_TO_PDF) { |
| 704 $('print-button').disabled = !isSelectedPagesValid(); | 719 $('print-button').disabled = !isSelectedPagesValid(); |
| 705 } else { | 720 } else { |
| 706 $('print-button').disabled = (!isNumberOfCopiesValid() || | 721 $('print-button').disabled = (!isNumberOfCopiesValid() || |
| 707 !isSelectedPagesValid()); | 722 !isSelectedPagesValid()); |
| 708 } | 723 } |
| 709 } | 724 } |
| 710 | 725 |
| 711 window.addEventListener('DOMContentLoaded', onLoad); | 726 window.addEventListener('DOMContentLoaded', onLoad); |
| 712 | 727 |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 967 this.isLandscape = ''; | 982 this.isLandscape = ''; |
| 968 } | 983 } |
| 969 | 984 |
| 970 /** | 985 /** |
| 971 * Takes a snapshot of the print settings. | 986 * Takes a snapshot of the print settings. |
| 972 */ | 987 */ |
| 973 PrintSettings.prototype.save = function() { | 988 PrintSettings.prototype.save = function() { |
| 974 this.deviceName = getSelectedPrinterName(); | 989 this.deviceName = getSelectedPrinterName(); |
| 975 this.isLandscape = isLandscape(); | 990 this.isLandscape = isLandscape(); |
| 976 } | 991 } |
| OLD | NEW |