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

Side by Side Diff: printing/printing_context_mac.mm

Issue 8425008: PrintPreview:[MAC] Added "Open PDF In Preview" option to open the pdf in native preview app. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Added a check to fix the TestErrorMessage unit test Created 9 years, 1 month 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
« no previous file with comments | « printing/printing_context_mac.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "printing/printing_context_mac.h" 5 #include "printing/printing_context_mac.h"
6 6
7 #import <ApplicationServices/ApplicationServices.h> 7 #import <ApplicationServices/ApplicationServices.h>
8 #import <AppKit/AppKit.h> 8 #import <AppKit/AppKit.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 !job_settings.GetInteger(kSettingColor, &color) || 117 !job_settings.GetInteger(kSettingColor, &color) ||
118 !job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) || 118 !job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) ||
119 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) || 119 !job_settings.GetInteger(kSettingDuplexMode, &duplex_mode) ||
120 !job_settings.GetInteger(kSettingCopies, &copies) || 120 !job_settings.GetInteger(kSettingCopies, &copies) ||
121 !job_settings.GetString(kSettingDeviceName, &device_name) || 121 !job_settings.GetString(kSettingDeviceName, &device_name) ||
122 !job_settings.GetBoolean(kSettingCloudPrintDialog, &is_cloud_dialog)) { 122 !job_settings.GetBoolean(kSettingCloudPrintDialog, &is_cloud_dialog)) {
123 return OnError(); 123 return OnError();
124 } 124 }
125 125
126 bool print_to_cloud = job_settings.HasKey(kSettingCloudPrintId); 126 bool print_to_cloud = job_settings.HasKey(kSettingCloudPrintId);
127 bool open_pdf_in_preview = job_settings.HasKey(kSettingOpenPDFInPreview);
127 128
128 if (!print_to_pdf && !print_to_cloud && !is_cloud_dialog) { 129 if (!print_to_pdf && !print_to_cloud && !is_cloud_dialog) {
129 if (!SetPrinter(device_name)) 130 if (!SetPrinter(device_name))
130 return OnError(); 131 return OnError();
131 132
132 if (!SetCopiesInPrintSettings(copies)) 133 if (!SetCopiesInPrintSettings(copies))
133 return OnError(); 134 return OnError();
134 135
135 if (!SetCollateInPrintSettings(collate)) 136 if (!SetCollateInPrintSettings(collate))
136 return OnError(); 137 return OnError();
137 138
138 if (!SetDuplexModeInPrintSettings( 139 if (!SetDuplexModeInPrintSettings(
139 static_cast<DuplexMode>(duplex_mode))) { 140 static_cast<DuplexMode>(duplex_mode))) {
140 return OnError(); 141 return OnError();
141 } 142 }
142 143
143 if (!SetOutputColor(color)) 144 if (!SetOutputColor(color))
144 return OnError(); 145 return OnError();
145 } 146 }
147 if (open_pdf_in_preview) {
148 if (!SetPrintPreviewJob())
149 return OnError();
150 }
151
146 if (!UpdatePageFormatWithPaperInfo()) 152 if (!UpdatePageFormatWithPaperInfo())
147 return OnError(); 153 return OnError();
148 154
149 if (!SetOrientationIsLandscape(landscape)) 155 if (!SetOrientationIsLandscape(landscape))
150 return OnError(); 156 return OnError();
151 157
152 [print_info_.get() updateFromPMPrintSettings]; 158 [print_info_.get() updateFromPMPrintSettings];
153 159
154 InitPrintSettingsFromPrintInfo(ranges); 160 InitPrintSettingsFromPrintInfo(ranges);
155 return OK; 161 return OK;
156 } 162 }
157 163
164 bool PrintingContextMac::SetPrintPreviewJob() {
165 PMPrintSession print_session =
166 static_cast<PMPrintSession>([print_info_.get() PMPrintSession]);
167 PMPrintSettings print_settings =
168 static_cast<PMPrintSettings>([print_info_.get() PMPrintSettings]);
169 return PMSessionSetDestination(
170 print_session, print_settings, kPMDestinationPreview,
171 NULL, NULL) == noErr;
172 }
173
158 void PrintingContextMac::InitPrintSettingsFromPrintInfo( 174 void PrintingContextMac::InitPrintSettingsFromPrintInfo(
159 const PageRanges& ranges) { 175 const PageRanges& ranges) {
160 PMPrintSession print_session = 176 PMPrintSession print_session =
161 static_cast<PMPrintSession>([print_info_.get() PMPrintSession]); 177 static_cast<PMPrintSession>([print_info_.get() PMPrintSession]);
162 PMPageFormat page_format = 178 PMPageFormat page_format =
163 static_cast<PMPageFormat>([print_info_.get() PMPageFormat]); 179 static_cast<PMPageFormat>([print_info_.get() PMPageFormat]);
164 PMPrinter printer; 180 PMPrinter printer;
165 PMSessionGetCurrentPrinter(print_session, &printer); 181 PMSessionGetCurrentPrinter(print_session, &printer);
166 PrintSettingsInitializerMac::InitPrintSettings( 182 PrintSettingsInitializerMac::InitPrintSettings(
167 printer, page_format, ranges, false, &settings_); 183 printer, page_format, ranges, false, &settings_);
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 void PrintingContextMac::ReleaseContext() { 489 void PrintingContextMac::ReleaseContext() {
474 print_info_.reset(); 490 print_info_.reset();
475 context_ = NULL; 491 context_ = NULL;
476 } 492 }
477 493
478 gfx::NativeDrawingContext PrintingContextMac::context() const { 494 gfx::NativeDrawingContext PrintingContextMac::context() const {
479 return context_; 495 return context_;
480 } 496 }
481 497
482 } // namespace printing 498 } // namespace printing
OLDNEW
« no previous file with comments | « printing/printing_context_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698