| 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 // Whether or not the PDF plugin supports all the capabilities needed for | 7 // Whether or not the PDF plugin supports all the capabilities needed for |
| 8 // print preview. | 8 // print preview. |
| 9 var hasCompatiblePDFPlugin = true; | 9 var hasCompatiblePDFPlugin = true; |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 // Timer id of the page range textfield. It is used to reset the timer whenever | 25 // Timer id of the page range textfield. It is used to reset the timer whenever |
| 26 // needed. | 26 // needed. |
| 27 var timerId; | 27 var timerId; |
| 28 | 28 |
| 29 // Indicates whether a preview has been requested but not received yet. | 29 // Indicates whether a preview has been requested but not received yet. |
| 30 var isPreviewStillLoading = false; | 30 var isPreviewStillLoading = false; |
| 31 | 31 |
| 32 // Currently selected printer capabilities. | 32 // Currently selected printer capabilities. |
| 33 var printerCapabilities; | 33 var printerCapabilities; |
| 34 | 34 |
| 35 // Store the last selected printer index. |
| 36 var lastSelectedPrinterIndex = 0; |
| 37 |
| 35 /** | 38 /** |
| 36 * Window onload handler, sets up the page and starts print preview by getting | 39 * Window onload handler, sets up the page and starts print preview by getting |
| 37 * the printer list. | 40 * the printer list. |
| 38 */ | 41 */ |
| 39 function onLoad() { | 42 function onLoad() { |
| 40 initializeAnimation(); | 43 initializeAnimation(); |
| 41 | 44 |
| 42 $('printer-list').disabled = true; | 45 $('printer-list').disabled = true; |
| 43 $('print-button').disabled = true; | 46 $('print-button').disabled = true; |
| 44 $('print-button').addEventListener('click', printFile); | 47 $('print-button').addEventListener('click', printFile); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 function updateControlsWithSelectedPrinterCapabilities() { | 98 function updateControlsWithSelectedPrinterCapabilities() { |
| 96 var printerList = $('printer-list'); | 99 var printerList = $('printer-list'); |
| 97 var selectedPrinter = printerList.selectedIndex; | 100 var selectedPrinter = printerList.selectedIndex; |
| 98 if (selectedPrinter < 0) | 101 if (selectedPrinter < 0) |
| 99 return; | 102 return; |
| 100 | 103 |
| 101 var printerName = printerList.options[selectedPrinter].textContent; | 104 var printerName = printerList.options[selectedPrinter].textContent; |
| 102 if (printerName == localStrings.getString('printToPDF')) { | 105 if (printerName == localStrings.getString('printToPDF')) { |
| 103 updateWithPrinterCapabilities({'disableColorOption': true, | 106 updateWithPrinterCapabilities({'disableColorOption': true, |
| 104 'setColorAsDefault': true}); | 107 'setColorAsDefault': true}); |
| 108 } else if (printerName == localStrings.getString('managePrinters')) { |
| 109 printerList.selectedIndex = lastSelectedPrinterIndex; |
| 110 chrome.send('managePrinters'); |
| 111 return; |
| 105 } else { | 112 } else { |
| 106 // This message will call back to 'updateWithPrinterCapabilities' | 113 // This message will call back to 'updateWithPrinterCapabilities' |
| 107 // function. | 114 // function. |
| 108 chrome.send('getPrinterCapabilities', [printerName]); | 115 chrome.send('getPrinterCapabilities', [printerName]); |
| 109 } | 116 } |
| 117 |
| 118 lastSelectedPrinterIndex = selectedPrinter; |
| 110 } | 119 } |
| 111 | 120 |
| 112 /** | 121 /** |
| 113 * Updates the controls with printer capabilities information. | 122 * Updates the controls with printer capabilities information. |
| 114 * @param {Object} settingInfo printer setting information. | 123 * @param {Object} settingInfo printer setting information. |
| 115 */ | 124 */ |
| 116 function updateWithPrinterCapabilities(settingInfo) { | 125 function updateWithPrinterCapabilities(settingInfo) { |
| 117 printerCapabilities = settingInfo; | 126 printerCapabilities = settingInfo; |
| 118 | 127 |
| 119 if (isPreviewStillLoading) | 128 if (isPreviewStillLoading) |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 } | 338 } |
| 330 | 339 |
| 331 /** | 340 /** |
| 332 * Fill the printer list drop down. | 341 * Fill the printer list drop down. |
| 333 * Called from PrintPreviewHandler::SendPrinterList(). | 342 * Called from PrintPreviewHandler::SendPrinterList(). |
| 334 * @param {Array} printers Array of printer names. | 343 * @param {Array} printers Array of printer names. |
| 335 * @param {number} defaultPrinterIndex The index of the default printer. | 344 * @param {number} defaultPrinterIndex The index of the default printer. |
| 336 */ | 345 */ |
| 337 function setPrinters(printers, defaultPrinterIndex) { | 346 function setPrinters(printers, defaultPrinterIndex) { |
| 338 var printerList = $('printer-list'); | 347 var printerList = $('printer-list'); |
| 339 for (var i = 0; i < printers.length; ++i) { | 348 for (var i = 0; i < printers.length; ++i) |
| 340 var option = document.createElement('option'); | 349 addDestinationListOption(printers[i], i == defaultPrinterIndex); |
| 341 option.textContent = printers[i]; | |
| 342 printerList.add(option); | |
| 343 if (i == defaultPrinterIndex) | |
| 344 option.selected = true; | |
| 345 } | |
| 346 | 350 |
| 347 // Adding option for saving PDF to disk. | 351 // Adding option for saving PDF to disk. |
| 348 var option = document.createElement('option'); | 352 addDestinationListOption(localStrings.getString('printToPDF'), false); |
| 349 option.textContent = localStrings.getString('printToPDF'); | 353 |
| 350 printerList.add(option); | 354 // Add an option to manage printers. |
| 355 addDestinationListOption(localStrings.getString('managePrinters'), false); |
| 356 |
| 351 printerList.disabled = false; | 357 printerList.disabled = false; |
| 352 | 358 |
| 353 updateControlsWithSelectedPrinterCapabilities(); | 359 updateControlsWithSelectedPrinterCapabilities(); |
| 354 | 360 |
| 355 // Once the printer list is populated, generate the initial preview. | 361 // Once the printer list is populated, generate the initial preview. |
| 356 requestPrintPreview(); | 362 requestPrintPreview(); |
| 357 } | 363 } |
| 358 | 364 |
| 359 /** | 365 /** |
| 366 * Adds an option to the printer destination list. |
| 367 * @param {String} optionText specifies the option text content. |
| 368 * @param {boolean} is_default is true if the option needs to be selected. |
| 369 */ |
| 370 function addDestinationListOption(optionText, is_default) { |
| 371 var option = document.createElement('option'); |
| 372 option.textContent = optionText; |
| 373 $('printer-list').add(option); |
| 374 if (is_default) |
| 375 option.selected = true; |
| 376 } |
| 377 |
| 378 /** |
| 360 * Sets the color mode for the PDF plugin. | 379 * Sets the color mode for the PDF plugin. |
| 361 * Called from PrintPreviewHandler::ProcessColorSetting(). | 380 * Called from PrintPreviewHandler::ProcessColorSetting(). |
| 362 * @param {boolean} color is true if the PDF plugin should display in color. | 381 * @param {boolean} color is true if the PDF plugin should display in color. |
| 363 */ | 382 */ |
| 364 function setColor(color) { | 383 function setColor(color) { |
| 365 if (!hasCompatiblePDFPlugin) { | 384 if (!hasCompatiblePDFPlugin) { |
| 366 return; | 385 return; |
| 367 } | 386 } |
| 368 var pdfViewer = $('pdf-viewer'); | 387 var pdfViewer = $('pdf-viewer'); |
| 369 if (!pdfViewer) { | 388 if (!pdfViewer) { |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 * Returns true if the contents of the two arrays are equal. | 748 * Returns true if the contents of the two arrays are equal. |
| 730 */ | 749 */ |
| 731 function areArraysEqual(array1, array2) { | 750 function areArraysEqual(array1, array2) { |
| 732 if (array1.length != array2.length) | 751 if (array1.length != array2.length) |
| 733 return false; | 752 return false; |
| 734 for (var i = 0; i < array1.length; i++) | 753 for (var i = 0; i < array1.length; i++) |
| 735 if(array1[i] != array2[i]) | 754 if(array1[i] != array2[i]) |
| 736 return false; | 755 return false; |
| 737 return true; | 756 return true; |
| 738 } | 757 } |
| OLD | NEW |