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 = -1; | 9 var totalPageCount = -1; |
10 | 10 |
(...skipping 12 matching lines...) Expand all Loading... |
23 // Used to disable some printing options when the preview is not modifiable. | 23 // Used to disable some printing options when the preview is not modifiable. |
24 var previewModifiable = false; | 24 var previewModifiable = false; |
25 | 25 |
26 // Destination list special value constants. | 26 // Destination list special value constants. |
27 const PRINT_TO_PDF = 'Print To PDF'; | 27 const PRINT_TO_PDF = 'Print To PDF'; |
28 const MANAGE_PRINTERS = 'Manage Printers'; | 28 const MANAGE_PRINTERS = 'Manage Printers'; |
29 | 29 |
30 // State of the print preview settings. | 30 // State of the print preview settings. |
31 var printSettings = new PrintSettings(); | 31 var printSettings = new PrintSettings(); |
32 | 32 |
| 33 // Preview UI identifier. |
| 34 var previewUIIdentifier = null; |
| 35 |
33 /** | 36 /** |
34 * Window onload handler, sets up the page and starts print preview by getting | 37 * Window onload handler, sets up the page and starts print preview by getting |
35 * the printer list. | 38 * the printer list. |
36 */ | 39 */ |
37 function onLoad() { | 40 function onLoad() { |
38 $('system-dialog-link').addEventListener('click', showSystemDialog); | 41 $('system-dialog-link').addEventListener('click', showSystemDialog); |
39 $('cancel-button').addEventListener('click', handleCancelButtonClick); | 42 $('cancel-button').addEventListener('click', handleCancelButtonClick); |
40 | 43 |
41 if (!checkCompatiblePluginExists()) { | 44 if (!checkCompatiblePluginExists()) { |
42 displayErrorMessage(localStrings.getString('noPlugin'), false); | 45 displayErrorMessage(localStrings.getString('noPlugin'), false); |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 updateCopiesButtonsState(); | 489 updateCopiesButtonsState(); |
487 } | 490 } |
488 | 491 |
489 /** | 492 /** |
490 * Update the print preview when new preview data is available. | 493 * Update the print preview when new preview data is available. |
491 * Create the PDF plugin as needed. | 494 * Create the PDF plugin as needed. |
492 * Called from PrintPreviewUI::PreviewDataIsAvailable(). | 495 * Called from PrintPreviewUI::PreviewDataIsAvailable(). |
493 * @param {number} pageCount The expected total pages count. | 496 * @param {number} pageCount The expected total pages count. |
494 * @param {string} jobTitle The print job title. | 497 * @param {string} jobTitle The print job title. |
495 * @param {boolean} modifiable If the preview is modifiable. | 498 * @param {boolean} modifiable If the preview is modifiable. |
496 * | 499 * @param {string} previewUIId Preview UI identifier. |
497 */ | 500 */ |
498 function updatePrintPreview(pageCount, jobTitle, modifiable) { | 501 function updatePrintPreview(pageCount, jobTitle, modifiable, previewUIId) { |
499 var tempPrintSettings = new PrintSettings(); | 502 var tempPrintSettings = new PrintSettings(); |
500 tempPrintSettings.save(); | 503 tempPrintSettings.save(); |
501 | |
502 previewModifiable = modifiable; | 504 previewModifiable = modifiable; |
503 | 505 |
504 if (totalPageCount == -1) | 506 if (totalPageCount == -1) |
505 totalPageCount = pageCount; | 507 totalPageCount = pageCount; |
506 | 508 |
507 if (previouslySelectedPages.length == 0) | 509 if (previouslySelectedPages.length == 0) |
508 for (var i = 0; i < totalPageCount; i++) | 510 for (var i = 0; i < totalPageCount; i++) |
509 previouslySelectedPages.push(i+1); | 511 previouslySelectedPages.push(i+1); |
510 | 512 |
511 if (printSettings.deviceName != tempPrintSettings.deviceName) { | 513 if (printSettings.deviceName != tempPrintSettings.deviceName) { |
(...skipping 10 matching lines...) Expand all Loading... |
522 return; | 524 return; |
523 } | 525 } |
524 } | 526 } |
525 | 527 |
526 if (getSelectedPagesValidityLevel() != 1) | 528 if (getSelectedPagesValidityLevel() != 1) |
527 pageRangesFieldChanged(); | 529 pageRangesFieldChanged(); |
528 | 530 |
529 // Update the current tab title. | 531 // Update the current tab title. |
530 document.title = localStrings.getStringF('printPreviewTitleFormat', jobTitle); | 532 document.title = localStrings.getStringF('printPreviewTitleFormat', jobTitle); |
531 | 533 |
| 534 // Store the preview tab identifier. |
| 535 previewUIIdentifier = previewUIId; |
| 536 |
532 createPDFPlugin(); | 537 createPDFPlugin(); |
533 updatePrintSummary(); | 538 updatePrintSummary(); |
534 updatePrintButtonState(); | 539 updatePrintButtonState(); |
535 addEventListeners(); | 540 addEventListeners(); |
536 } | 541 } |
537 | 542 |
538 /** | 543 /** |
539 * Create the PDF plugin or reload the existing one. | 544 * Create the PDF plugin or reload the existing one. |
540 */ | 545 */ |
541 function createPDFPlugin() { | 546 function createPDFPlugin() { |
(...skipping 12 matching lines...) Expand all Loading... |
554 pdfViewer.goToPage('0'); | 559 pdfViewer.goToPage('0'); |
555 } | 560 } |
556 pdfViewer.reload(); | 561 pdfViewer.reload(); |
557 pdfViewer.grayscale(!isColor()); | 562 pdfViewer.grayscale(!isColor()); |
558 return; | 563 return; |
559 } | 564 } |
560 | 565 |
561 var pdfPlugin = document.createElement('embed'); | 566 var pdfPlugin = document.createElement('embed'); |
562 pdfPlugin.setAttribute('id', 'pdf-viewer'); | 567 pdfPlugin.setAttribute('id', 'pdf-viewer'); |
563 pdfPlugin.setAttribute('type', 'application/pdf'); | 568 pdfPlugin.setAttribute('type', 'application/pdf'); |
564 pdfPlugin.setAttribute('src', 'chrome://print/print.pdf'); | 569 pdfPlugin.setAttribute('src', |
| 570 'chrome://print/print.pdf/' + previewUIIdentifier); |
565 var mainView = $('mainview'); | 571 var mainView = $('mainview'); |
566 mainView.appendChild(pdfPlugin); | 572 mainView.appendChild(pdfPlugin); |
567 pdfPlugin.onload('onPDFLoad()'); | 573 pdfPlugin.onload('onPDFLoad()'); |
568 | 574 |
569 // Older version of the PDF plugin may not have this method. | 575 // Older version of the PDF plugin may not have this method. |
570 // TODO(thestig) Eventually remove this check. | 576 // TODO(thestig) Eventually remove this check. |
571 if (pdfPlugin.removePrintButton) { | 577 if (pdfPlugin.removePrintButton) { |
572 pdfPlugin.removePrintButton(); | 578 pdfPlugin.removePrintButton(); |
573 } | 579 } |
574 | 580 |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 this.isLandscape = ''; | 991 this.isLandscape = ''; |
986 } | 992 } |
987 | 993 |
988 /** | 994 /** |
989 * Takes a snapshot of the print settings. | 995 * Takes a snapshot of the print settings. |
990 */ | 996 */ |
991 PrintSettings.prototype.save = function() { | 997 PrintSettings.prototype.save = function() { |
992 this.deviceName = getSelectedPrinterName(); | 998 this.deviceName = getSelectedPrinterName(); |
993 this.isLandscape = isLandscape(); | 999 this.isLandscape = isLandscape(); |
994 } | 1000 } |
OLD | NEW |