Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: chrome/browser/resources/print_preview/print_preview.js

Issue 7792085: Print Preview: Handling pending print to pdf requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updating unit test, adding comments Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 // Object holding all the header footer related settings. 66 // Object holding all the header footer related settings.
67 var headerFooterSettings; 67 var headerFooterSettings;
68 68
69 // Object holding all the color related settings. 69 // Object holding all the color related settings.
70 var colorSettings; 70 var colorSettings;
71 71
72 // True if the user has click 'Advanced...' in order to open the system print 72 // True if the user has click 'Advanced...' in order to open the system print
73 // dialog. 73 // dialog.
74 var showingSystemDialog = false; 74 var showingSystemDialog = false;
75 75
76 // True when there is a pending request to print to pdf. It means that the user
77 // has requested to save to pdf but the pdf file is not ready yet.
78 var hasPendingPrintToPdfRequest = false;
kmadhusu 2011/09/07 20:42:57 This variable is not required. You can reuse "has
dpapad 2011/09/07 23:42:39 I am using this variable so that I can keep displa
dpapad 2011/09/08 03:29:20 Done.
79
76 // The range of options in the printer dropdown controlled by cloud print. 80 // The range of options in the printer dropdown controlled by cloud print.
77 var firstCloudPrintOptionPos = 0; 81 var firstCloudPrintOptionPos = 0;
78 var lastCloudPrintOptionPos = firstCloudPrintOptionPos; 82 var lastCloudPrintOptionPos = firstCloudPrintOptionPos;
79 83
80 // Store the current previewUid. 84 // Store the current previewUid.
81 var currentPreviewUid = ''; 85 var currentPreviewUid = '';
82 86
83 // True if we need to generate draft preview data. 87 // True if we need to generate draft preview data.
84 var generateDraftData = true; 88 var generateDraftData = true;
85 89
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 /** 431 /**
428 * Asks the browser to print the preview PDF based on current print 432 * Asks the browser to print the preview PDF based on current print
429 * settings. If the preview is still loading, printPendingFile() will get 433 * settings. If the preview is still loading, printPendingFile() will get
430 * called once the preview loads. 434 * called once the preview loads.
431 */ 435 */
432 function requestToPrintDocument() { 436 function requestToPrintDocument() {
433 hasPendingPrintDocumentRequest = !isPrintReadyMetafileReady; 437 hasPendingPrintDocumentRequest = !isPrintReadyMetafileReady;
434 var printToPDF = getSelectedPrinterName() == PRINT_TO_PDF; 438 var printToPDF = getSelectedPrinterName() == PRINT_TO_PDF;
435 439
436 if (hasPendingPrintDocumentRequest) { 440 if (hasPendingPrintDocumentRequest) {
437 if (printToPDF) { 441 if (printToPDF) {
kmadhusu 2011/09/07 20:42:57 You need to disable the input controls as soon as
dpapad 2011/09/07 23:42:39 See my next comment.
438 // TODO(thestig) disable controls here. 442 sendPrintDocumentRequest();
439 } else { 443 } else {
440 isTabHidden = true; 444 isTabHidden = true;
441 chrome.send('hidePreview'); 445 chrome.send('hidePreview');
442 } 446 }
443 return; 447 return;
444 } 448 }
445 449
446 if (printToPDF) { 450 if (printToPDF) {
447 sendPrintDocumentRequest(); 451 sendPrintDocumentRequest();
448 } else { 452 } else {
449 window.setTimeout(function() { sendPrintDocumentRequest(); }, 1000); 453 window.setTimeout(function() { sendPrintDocumentRequest(); }, 1000);
450 } 454 }
451 } 455 }
452 456
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 536
533 /** 537 /**
534 * Called from PrintPreviewUI::OnFileSelectionCancelled to notify the print 538 * Called from PrintPreviewUI::OnFileSelectionCancelled to notify the print
535 * preview tab regarding the file selection cancel event. 539 * preview tab regarding the file selection cancel event.
536 */ 540 */
537 function fileSelectionCancelled() { 541 function fileSelectionCancelled() {
538 // TODO(thestig) re-enable controls here. 542 // TODO(thestig) re-enable controls here.
539 } 543 }
540 544
541 /** 545 /**
546 * Called from PrintPreviewUI::OnFileSelectionCompleted to notify the print
547 * preview tab regarding the file selection completed event.
548 */
549 function fileSelectionCompleted() {
550 // If the file selection is completed and the tab is not already closed it
551 // means that a pending print to pdf request exists.
552 disableInputElementsInSidebar();
kmadhusu 2011/09/07 20:42:57 Move the disableInput..() function call to line #4
dpapad 2011/09/07 23:42:39 If I disable the controls at line 442, and then th
kmadhusu 2011/09/08 00:04:33 I am not sure about the time it takes to show the
dpapad 2011/09/08 00:11:51 The main point of this CL is to make opening the f
553 hasPendingPrintToPdfRequest = true;
554 showCustomMessage(localStrings.getString('printingToPDFInProgress'));
555 }
556
557 /**
542 * Set the default printer. If there is one, generate a print preview. 558 * Set the default printer. If there is one, generate a print preview.
543 * @param {string} printer Name of the default printer. Empty if none. 559 * @param {string} printer Name of the default printer. Empty if none.
544 * @param {string} cloudPrintData Cloud print related data to restore if 560 * @param {string} cloudPrintData Cloud print related data to restore if
545 * the default printer is a cloud printer. 561 * the default printer is a cloud printer.
546 */ 562 */
547 function setDefaultPrinter(printer_name, cloudPrintData) { 563 function setDefaultPrinter(printer_name, cloudPrintData) {
548 // Add a placeholder value so the printer list looks valid. 564 // Add a placeholder value so the printer list looks valid.
549 addDestinationListOption('', '', true, true, true); 565 addDestinationListOption('', '', true, true, true);
550 if (printer_name) { 566 if (printer_name) {
551 defaultOrLastUsedPrinterName = printer_name; 567 defaultOrLastUsedPrinterName = printer_name;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 cloudprint.setColor(printerList[printerList.selectedIndex], color); 832 cloudprint.setColor(printerList[printerList.selectedIndex], color);
817 } 833 }
818 834
819 /** 835 /**
820 * Display an error message in the center of the preview area. 836 * Display an error message in the center of the preview area.
821 * @param {string} errorMessage The error message to be displayed. 837 * @param {string} errorMessage The error message to be displayed.
822 */ 838 */
823 function displayErrorMessage(errorMessage) { 839 function displayErrorMessage(errorMessage) {
824 $('print-button').disabled = true; 840 $('print-button').disabled = true;
825 $('overlay-layer').classList.remove('invisible'); 841 $('overlay-layer').classList.remove('invisible');
826 $('dancing-dots-text').classList.add('hidden'); 842 $('custom-message').innerHTML = errorMessage;
arv (Not doing code reviews) 2011/09/07 21:53:52 Add a var so you do not have to call $ multiple ti
arv (Not doing code reviews) 2011/09/07 21:53:52 Do you really need innerHTML here? Are you escapin
dpapad 2011/09/08 03:29:20 Done.
dpapad 2011/09/08 03:29:20 Done.
827 $('error-text').innerHTML = errorMessage; 843 $('custom-message').classList.remove('hidden');
arv (Not doing code reviews) 2011/09/07 21:53:52 $('custom-message').hidden = false;
dpapad 2011/09/08 03:29:20 Done.
828 $('error-text').classList.remove('hidden'); 844 $('custom-message-with-dots').innerHTML = '';
arv (Not doing code reviews) 2011/09/07 21:53:52 textContent = ''
dpapad 2011/09/08 03:29:20 In this case innerHTML is needed since the content
845 $('custom-message-with-dots').classList.add('hidden');
829 var pdfViewer = $('pdf-viewer'); 846 var pdfViewer = $('pdf-viewer');
830 if (pdfViewer) 847 if (pdfViewer)
831 $('mainview').removeChild(pdfViewer); 848 $('mainview').removeChild(pdfViewer);
832 849
833 if (isTabHidden) 850 if (isTabHidden)
834 cancelPendingPrintRequest(); 851 cancelPendingPrintRequest();
835 } 852 }
836 853
837 /** 854 /**
838 * Display an error message in the center of the preview area followed by a 855 * Display an error message in the center of the preview area followed by a
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 891
875 /** 892 /**
876 * Called when the PDF plugin loads its document. 893 * Called when the PDF plugin loads its document.
877 */ 894 */
878 function onPDFLoad() { 895 function onPDFLoad() {
879 if (previewModifiable) { 896 if (previewModifiable) {
880 setPluginPreviewPageCount(); 897 setPluginPreviewPageCount();
881 } 898 }
882 $('pdf-viewer').fitToHeight(); 899 $('pdf-viewer').fitToHeight();
883 cr.dispatchSimpleEvent(document, 'PDFLoaded'); 900 cr.dispatchSimpleEvent(document, 'PDFLoaded');
884 hideLoadingAnimation(); 901 hideOverlayLayer();
885 } 902 }
886 903
887 function setPluginPreviewPageCount() { 904 function setPluginPreviewPageCount() {
888 $('pdf-viewer').printPreviewPageCount( 905 $('pdf-viewer').printPreviewPageCount(
889 pageSettings.previouslySelectedPages.length); 906 pageSettings.previouslySelectedPages.length);
890 } 907 }
891 908
892 /** 909 /**
893 * Update the page count and check the page range. 910 * Update the page count and check the page range.
894 * Called from PrintPreviewUI::OnDidGetPreviewPageCount(). 911 * Called from PrintPreviewUI::OnDidGetPreviewPageCount().
(...skipping 24 matching lines...) Expand all
919 * @param {number} previewResponseId The preview request id that resulted in 936 * @param {number} previewResponseId The preview request id that resulted in
920 * this response. 937 * this response.
921 */ 938 */
922 function reloadPreviewPages(previewUid, previewResponseId) { 939 function reloadPreviewPages(previewUid, previewResponseId) {
923 if (!isExpectedPreviewResponse(previewResponseId)) 940 if (!isExpectedPreviewResponse(previewResponseId))
924 return; 941 return;
925 hasPendingPreviewRequest = false; 942 hasPendingPreviewRequest = false;
926 isPrintReadyMetafileReady = true; 943 isPrintReadyMetafileReady = true;
927 944
928 cr.dispatchSimpleEvent(document, 'updatePrintButton'); 945 cr.dispatchSimpleEvent(document, 'updatePrintButton');
929 hideLoadingAnimation(); 946 hideOverlayLayer();
930 var pageSet = pageSettings.previouslySelectedPages; 947 var pageSet = pageSettings.previouslySelectedPages;
931 for (var i = 0; i < pageSet.length; i++) 948 for (var i = 0; i < pageSet.length; i++)
932 $('pdf-viewer').loadPreviewPage(getPageSrcURL(previewUid, pageSet[i]-1), i); 949 $('pdf-viewer').loadPreviewPage(getPageSrcURL(previewUid, pageSet[i]-1), i);
933 // TODO(dpapad): handle pending print file requests. 950 // TODO(dpapad): handle pending print file requests.
934 } 951 }
935 952
936 /** 953 /**
937 * Notification that a print preview page has been rendered. 954 * Notification that a print preview page has been rendered.
938 * Check if the settings have changed and request a regeneration if needed. 955 * Check if the settings have changed and request a regeneration if needed.
939 * Called from PrintPreviewUI::OnDidPreviewPage(). 956 * Called from PrintPreviewUI::OnDidPreviewPage().
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1101 <include src="print_preview_animations.js"/> 1118 <include src="print_preview_animations.js"/>
1102 <include src="print_preview_cloud.js"/> 1119 <include src="print_preview_cloud.js"/>
1103 <include src="print_preview_utils.js"/> 1120 <include src="print_preview_utils.js"/>
1104 <include src="print_header.js"/> 1121 <include src="print_header.js"/>
1105 <include src="page_settings.js"/> 1122 <include src="page_settings.js"/>
1106 <include src="copies_settings.js"/> 1123 <include src="copies_settings.js"/>
1107 <include src="header_footer_settings.js"/> 1124 <include src="header_footer_settings.js"/>
1108 <include src="layout_settings.js"/> 1125 <include src="layout_settings.js"/>
1109 <include src="color_settings.js"/> 1126 <include src="color_settings.js"/>
1110 <include src="margin_settings.js"/> 1127 <include src="margin_settings.js"/>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698