diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 00:44:37 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 00:44:37 +0000 |
commit | 97c29575ab1cc3b1bcb53449c3d9627ee1382d04 (patch) | |
tree | 1633e14bbcc4cdb0c451a93c1982ddcd3b03ecad /printing/printing_context_mac.mm | |
parent | 1bf1b92d64df4e58c7f9b17285fc67ad4025feb2 (diff) | |
download | chromium_src-97c29575ab1cc3b1bcb53449c3d9627ee1382d04.zip chromium_src-97c29575ab1cc3b1bcb53449c3d9627ee1382d04.tar.gz chromium_src-97c29575ab1cc3b1bcb53449c3d9627ee1382d04.tar.bz2 |
PrintPreview:[MAC] Added "Open PDF In Preview" option to open the pdf in native preview app.
BUG=101724
TEST=Preview a webpage. Click "Open PDF In Preview" option Observe that the pdf is displayed in native preview app. Complete the printing workflow by clicking "Print" or
"Cancel" button at the bottom of the preview app.
Review URL: http://codereview.chromium.org/8425008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110398 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/printing_context_mac.mm')
-rw-r--r-- | printing/printing_context_mac.mm | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm index 5b11c18..9c56ace 100644 --- a/printing/printing_context_mac.mm +++ b/printing/printing_context_mac.mm @@ -124,6 +124,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( } bool print_to_cloud = job_settings.HasKey(kSettingCloudPrintId); + bool open_pdf_in_preview = job_settings.HasKey(kSettingOpenPDFInPreview); if (!print_to_pdf && !print_to_cloud && !is_cloud_dialog) { if (!SetPrinter(device_name)) @@ -143,6 +144,11 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( if (!SetOutputColor(color)) return OnError(); } + if (open_pdf_in_preview) { + if (!SetPrintPreviewJob()) + return OnError(); + } + if (!UpdatePageFormatWithPaperInfo()) return OnError(); @@ -155,6 +161,16 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings( return OK; } +bool PrintingContextMac::SetPrintPreviewJob() { + PMPrintSession print_session = + static_cast<PMPrintSession>([print_info_.get() PMPrintSession]); + PMPrintSettings print_settings = + static_cast<PMPrintSettings>([print_info_.get() PMPrintSettings]); + return PMSessionSetDestination( + print_session, print_settings, kPMDestinationPreview, + NULL, NULL) == noErr; +} + void PrintingContextMac::InitPrintSettingsFromPrintInfo( const PageRanges& ranges) { PMPrintSession print_session = |