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

Unified Diff: chrome/browser/resources/print_preview/print_preview.js

Issue 480303002: Use document from preview for System Dialog printing on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tue Aug 26 01:11:31 PDT 2014 Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/print_preview.js
diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js
index 7e25e2290cad3e8ec4a1a9a74ac6017ad66e5ef1..6c165379f7df20a034556467d554474e9b9592b8 100644
--- a/chrome/browser/resources/print_preview/print_preview.js
+++ b/chrome/browser/resources/print_preview/print_preview.js
@@ -231,6 +231,13 @@ cr.define('print_preview', function() {
this.isInAppKioskMode_ = false;
/**
+ * Whether Print with System Dialog option is available.
+ * @type {boolean}
+ * @private
+ */
+ this.isSystemDialogAvailable_ = false;
+
+ /**
* State of the print preview UI.
* @type {print_preview.PrintPreview.UiState_}
* @private
@@ -243,6 +250,13 @@ cr.define('print_preview', function() {
* @private
*/
this.isPreviewGenerationInProgress_ = true;
+
+ /**
+ * Whether to show system dialog before next printing.
+ * @type {boolean}
+ * @private
+ */
+ this.showSystemDialogBeforeNextPrint_ = false;
};
/**
@@ -538,7 +552,9 @@ cr.define('print_preview', function() {
this.printTicketStore_,
this.cloudPrintInterface_,
this.documentInfo_,
- this.uiState_ == PrintPreview.UiState_.OPENING_PDF_PREVIEW);
+ this.uiState_ == PrintPreview.UiState_.OPENING_PDF_PREVIEW,
+ this.showSystemDialogBeforeNextPrint_);
+ this.showSystemDialogBeforeNextPrint_ = false;
}
return PrintPreview.PrintAttemptResult_.PRINTED;
},
@@ -558,6 +574,13 @@ cr.define('print_preview', function() {
* @private
*/
openSystemPrintDialog_: function() {
+ if (!this.shouldShowSystemDialogLink_())
+ return;
+ if (cr.isWindows) {
+ this.showSystemDialogBeforeNextPrint_ = true;
+ this.printDocumentOrOpenPdfPreview_(false /*isPdfPreview*/);
+ return;
+ }
setIsVisible($('system-dialog-throbber'), true);
this.setIsEnabled_(false);
this.uiState_ = PrintPreview.UiState_.OPENING_NATIVE_PRINT_DIALOG;
@@ -599,9 +622,9 @@ cr.define('print_preview', function() {
this.appState_.setInitialized();
$('document-title').innerText = settings.documentTitle;
- setIsVisible($('system-dialog-link'),
- !settings.hidePrintWithSystemDialogLink &&
- !settings.isInAppKioskMode);
+ this.isSystemDialogAvailable_ = !settings.hidePrintWithSystemDialogLink &&
+ !settings.isInAppKioskMode;
+ setIsVisible($('system-dialog-link'), this.shouldShowSystemDialogLink_());
},
/**
@@ -1081,6 +1104,23 @@ cr.define('print_preview', function() {
},
/**
+ * Returns true if "Print using system dialog" link should be shown for
+ * current destination.
+ * @return {boolean} Returns true if link should be shown.
+ */
+ shouldShowSystemDialogLink_: function() {
+ if (!this.isSystemDialogAvailable_)
+ return false;
+ if (!cr.isWindows)
+ return true;
+ var selectedDest = this.destinationStore_.selectedDestination;
+ return selectedDest &&
+ selectedDest.origin == print_preview.Destination.Origin.LOCAL &&
+ selectedDest.id !=
+ print_preview.Destination.GooglePromotedId.SAVE_AS_PDF;
+ },
+
+ /**
* Called when the open-cloud-print-dialog link is clicked. Opens the Google
* Cloud Print web dialog.
* @private
@@ -1105,6 +1145,9 @@ cr.define('print_preview', function() {
setIsVisible(
$('cloud-print-dialog-link'),
selectedDest && !cr.isChromeOS && !selectedDest.isLocal);
+ setIsVisible(
+ $('system-dialog-link'),
+ this.shouldShowSystemDialogLink_());
if (selectedDest && this.isInKioskAutoPrintMode_) {
this.onPrintButtonClick_();
}
« no previous file with comments | « chrome/browser/resources/print_preview/native_layer.js ('k') | chrome/browser/ui/webui/print_preview/print_preview_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698