Chromium Code Reviews| 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 // require: cr/ui/print_preview_cloud.js | 5 // require: cr/ui/print_preview_cloud.js |
| 6 | 6 |
| 7 var localStrings = new LocalStrings(); | 7 var localStrings = new LocalStrings(); |
| 8 | 8 |
| 9 // If useCloudPrint is true we attempt to connect to cloud print | 9 // If useCloudPrint is true we attempt to connect to cloud print |
| 10 // and populate the list of printers with cloud print printers. | 10 // and populate the list of printers with cloud print printers. |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 109 showLoadingAnimation(); | 109 showLoadingAnimation(); |
| 110 chrome.send('getDefaultPrinter'); | 110 chrome.send('getDefaultPrinter'); |
| 111 } | 111 } |
| 112 | 112 |
| 113 /** | 113 /** |
| 114 * Adds event listeners to the settings controls. | 114 * Adds event listeners to the settings controls. |
| 115 */ | 115 */ |
| 116 function addEventListeners() { | 116 function addEventListeners() { |
| 117 // Controls that require preview rendering. | 117 // Controls that require preview rendering. |
| 118 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities; | 118 $('printer-list').onchange = updateControlsWithSelectedPrinterCapabilities; |
| 119 $('header-footer').onclick = onHeaderFooterChanged; | |
| 119 } | 120 } |
| 120 | 121 |
| 121 /** | 122 /** |
| 122 * Removes event listeners from the settings controls. | 123 * Removes event listeners from the settings controls. |
| 123 */ | 124 */ |
| 124 function removeEventListeners() { | 125 function removeEventListeners() { |
| 125 if (pageSettings) | 126 if (pageSettings) |
| 126 clearTimeout(pageSettings.timerId_); | 127 clearTimeout(pageSettings.timerId_); |
| 127 | 128 |
| 128 // Controls that require preview rendering | 129 // Controls that require preview rendering |
| 129 $('printer-list').onchange = null; | 130 $('printer-list').onchange = null; |
| 131 $('header-footer').onclick = null; | |
| 130 } | 132 } |
| 131 | 133 |
| 132 /** | 134 /** |
| 133 * Disables the input elements in the sidebar. | 135 * Disables the input elements in the sidebar. |
| 134 */ | 136 */ |
| 135 function disableInputElementsInSidebar() { | 137 function disableInputElementsInSidebar() { |
| 136 var els = $('sidebar').querySelectorAll('input, button, select'); | 138 var els = $('sidebar').querySelectorAll('input, button, select'); |
| 137 for (var i = 0; i < els.length; i++) | 139 for (var i = 0; i < els.length; i++) |
| 138 els[i].disabled = true; | 140 els[i].disabled = true; |
| 139 } | 141 } |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 286 * | 288 * |
| 287 * @return {boolean} true if settings are valid, false if not. | 289 * @return {boolean} true if settings are valid, false if not. |
| 288 */ | 290 */ |
| 289 function areSettingsValid() { | 291 function areSettingsValid() { |
| 290 return pageSettings.isPageSelectionValid() && | 292 return pageSettings.isPageSelectionValid() && |
| 291 (copiesSettings.isValid() || | 293 (copiesSettings.isValid() || |
| 292 getSelectedPrinterName() == PRINT_TO_PDF); | 294 getSelectedPrinterName() == PRINT_TO_PDF); |
| 293 } | 295 } |
| 294 | 296 |
| 295 /** | 297 /** |
| 298 * Checks whether the Headers and Footers checkbox is checked or not. | |
| 299 * | |
| 300 * @return {boolean} true if Headers and Footers are checked. | |
| 301 */ | |
| 302 function hasHeaderFooter() { | |
| 303 return $('header-footer').checked; | |
| 304 } | |
| 305 | |
| 306 /** | |
| 296 * Creates an object based on the values in the printer settings. | 307 * Creates an object based on the values in the printer settings. |
| 297 * | 308 * |
| 298 * @return {Object} Object containing print job settings. | 309 * @return {Object} Object containing print job settings. |
| 299 */ | 310 */ |
| 300 function getSettings() { | 311 function getSettings() { |
| 301 var deviceName = getSelectedPrinterName(); | 312 var deviceName = getSelectedPrinterName(); |
| 302 var printToPDF = (deviceName == PRINT_TO_PDF); | 313 var printToPDF = (deviceName == PRINT_TO_PDF); |
| 303 | 314 |
| 304 var settings = | 315 var settings = |
| 305 {'deviceName': deviceName, | 316 {'deviceName': deviceName, |
| 306 'pageRange': pageSettings.selectedPageRanges, | 317 'pageRange': pageSettings.selectedPageRanges, |
| 307 'printAll': pageSettings.allPagesRadioButton.checked, | 318 'printAll': pageSettings.allPagesRadioButton.checked, |
| 308 'duplex': copiesSettings.duplexMode, | 319 'duplex': copiesSettings.duplexMode, |
| 309 'copies': copiesSettings.numberOfCopies, | 320 'copies': copiesSettings.numberOfCopies, |
| 310 'collate': copiesSettings.isCollated(), | 321 'collate': copiesSettings.isCollated(), |
| 311 'landscape': layoutSettings.isLandscape(), | 322 'landscape': layoutSettings.isLandscape(), |
| 312 'color': colorSettings.isColor(), | 323 'color': colorSettings.isColor(), |
| 313 'printToPDF': printToPDF, | 324 'printToPDF': printToPDF, |
| 325 'headerFooter': hasHeaderFooter(), | |
| 314 'requestID': 0}; | 326 'requestID': 0}; |
| 315 | 327 |
| 316 var printerList = $('printer-list'); | 328 var printerList = $('printer-list'); |
| 317 var selectedPrinter = printerList.selectedIndex; | 329 var selectedPrinter = printerList.selectedIndex; |
| 318 if (cloudprint.isCloudPrint(printerList.options[selectedPrinter])) { | 330 if (cloudprint.isCloudPrint(printerList.options[selectedPrinter])) { |
| 319 settings['cloudPrintID'] = | 331 settings['cloudPrintID'] = |
| 320 printerList.options[selectedPrinter].value; | 332 printerList.options[selectedPrinter].value; |
| 321 } | 333 } |
| 322 return settings; | 334 return settings; |
| 323 } | 335 } |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 770 | 782 |
| 771 /** | 783 /** |
| 772 * Called when the PDF plugin loads its document. | 784 * Called when the PDF plugin loads its document. |
| 773 */ | 785 */ |
| 774 function onPDFLoad() { | 786 function onPDFLoad() { |
| 775 if (previewModifiable) { | 787 if (previewModifiable) { |
| 776 setPluginPreviewPageCount(); | 788 setPluginPreviewPageCount(); |
| 777 cr.dispatchSimpleEvent(document, 'updateSummary'); | 789 cr.dispatchSimpleEvent(document, 'updateSummary'); |
| 778 } | 790 } |
| 779 $('pdf-viewer').fitToHeight(); | 791 $('pdf-viewer').fitToHeight(); |
| 792 if (!previewModifiable) | |
| 793 fadeOutElement($('options-option')); | |
|
kmadhusu
2011/07/28 20:31:20
Can you add line #793 in the else block of line #7
Aayush Kumar
2011/07/29 00:21:46
Done.
| |
| 780 cr.dispatchSimpleEvent(document, 'PDFLoaded'); | 794 cr.dispatchSimpleEvent(document, 'PDFLoaded'); |
| 781 hideLoadingAnimation(); | 795 hideLoadingAnimation(); |
| 782 } | 796 } |
| 783 | 797 |
| 784 function setPluginPreviewPageCount() { | 798 function setPluginPreviewPageCount() { |
| 785 $('pdf-viewer').printPreviewPageCount( | 799 $('pdf-viewer').printPreviewPageCount( |
| 786 pageSettings.previouslySelectedPages.length); | 800 pageSettings.previouslySelectedPages.length); |
| 787 } | 801 } |
| 788 | 802 |
| 789 /** | 803 /** |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 884 tempPrintSettings.save(); | 898 tempPrintSettings.save(); |
| 885 | 899 |
| 886 if (printSettings.deviceName != tempPrintSettings.deviceName) { | 900 if (printSettings.deviceName != tempPrintSettings.deviceName) { |
| 887 updateControlsWithSelectedPrinterCapabilities(); | 901 updateControlsWithSelectedPrinterCapabilities(); |
| 888 return true; | 902 return true; |
| 889 } | 903 } |
| 890 if (printSettings.isLandscape != tempPrintSettings.isLandscape) { | 904 if (printSettings.isLandscape != tempPrintSettings.isLandscape) { |
| 891 setDefaultValuesAndRegeneratePreview(); | 905 setDefaultValuesAndRegeneratePreview(); |
| 892 return true; | 906 return true; |
| 893 } | 907 } |
| 908 if (printSettings.hasHeaderFooter != tempPrintSettings.hasHeaderFooter) { | |
| 909 requestPrintPreview(); | |
| 910 return true; | |
| 911 } | |
| 894 if (pageSettings.requestPrintPreviewIfNeeded()) | 912 if (pageSettings.requestPrintPreviewIfNeeded()) |
| 895 return true; | 913 return true; |
| 896 | 914 |
| 897 return false; | 915 return false; |
| 898 } | 916 } |
| 899 | 917 |
| 900 /** | 918 /** |
| 901 * Create the PDF plugin or reload the existing one. | 919 * Create the PDF plugin or reload the existing one. |
| 902 * @param {string} previewUid Preview unique identifier. | 920 * @param {string} previewUid Preview unique identifier. |
| 903 */ | 921 */ |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 936 return !!(dummyPlugin.onload && | 954 return !!(dummyPlugin.onload && |
| 937 dummyPlugin.goToPage && | 955 dummyPlugin.goToPage && |
| 938 dummyPlugin.removePrintButton && | 956 dummyPlugin.removePrintButton && |
| 939 dummyPlugin.loadPreviewPage && | 957 dummyPlugin.loadPreviewPage && |
| 940 dummyPlugin.printPreviewPageCount); | 958 dummyPlugin.printPreviewPageCount); |
| 941 } | 959 } |
| 942 | 960 |
| 943 window.addEventListener('DOMContentLoaded', onLoad); | 961 window.addEventListener('DOMContentLoaded', onLoad); |
| 944 | 962 |
| 945 /** | 963 /** |
| 964 * When the user selects or de-selects the headers and footers option then a | |
| 965 * new preview is requested. | |
| 966 */ | |
| 967 function onHeaderFooterChanged() { | |
| 968 requestPrintPreview(); | |
| 969 } | |
| 970 | |
| 971 /** | |
| 946 * Sets the default values and sends a request to regenerate preview data. | 972 * Sets the default values and sends a request to regenerate preview data. |
| 947 */ | 973 */ |
| 948 function setDefaultValuesAndRegeneratePreview() { | 974 function setDefaultValuesAndRegeneratePreview() { |
| 949 pageSettings.resetState(); | 975 pageSettings.resetState(); |
| 950 requestPrintPreview(); | 976 requestPrintPreview(); |
| 951 } | 977 } |
| 952 | 978 |
| 953 /** | 979 /** |
| 954 * Class that represents the state of the print settings. | 980 * Class that represents the state of the print settings. |
| 955 */ | 981 */ |
| 956 function PrintSettings() { | 982 function PrintSettings() { |
| 957 this.deviceName = ''; | 983 this.deviceName = ''; |
| 958 this.isLandscape = ''; | 984 this.isLandscape = ''; |
| 985 this.hasHeaderFooter = ''; | |
| 959 } | 986 } |
| 960 | 987 |
| 961 /** | 988 /** |
| 962 * Takes a snapshot of the print settings. | 989 * Takes a snapshot of the print settings. |
| 963 */ | 990 */ |
| 964 PrintSettings.prototype.save = function() { | 991 PrintSettings.prototype.save = function() { |
| 965 this.deviceName = getSelectedPrinterName(); | 992 this.deviceName = getSelectedPrinterName(); |
| 966 this.isLandscape = layoutSettings.isLandscape(); | 993 this.isLandscape = layoutSettings.isLandscape(); |
| 994 this.hasHeaderFooter = hasHeaderFooter(); | |
| 967 } | 995 } |
| 968 | 996 |
| OLD | NEW |