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

Unified Diff: printing/printing_context_mac.mm

Issue 46623002: Move settings setup for PDF and cloud print into single location in PrintingContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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: printing/printing_context_mac.mm
diff --git a/printing/printing_context_mac.mm b/printing/printing_context_mac.mm
index 9ed31dd4e51b1b16cfeaedefedfa6e42fe709469..d91ce6f09d0466ecb023f7e74809f27b2867abfa 100644
--- a/printing/printing_context_mac.mm
+++ b/printing/printing_context_mac.mm
@@ -18,6 +18,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "printing/print_settings_initializer_mac.h"
+#include "printing/units.h"
namespace printing {
@@ -106,6 +107,25 @@ void PrintingContextMac::AskUserForSettings(
}
}
+gfx::Size PrintingContextMac::GetPdfPaperSizeDeviceUnits() {
+ // NOTE: Reset |print_info_| with a copy of |sharedPrintInfo| so as to start
+ // with a clean slate.
+ print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]);
+ UpdatePageFormatWithPaperInfo();
+
+ PMPageFormat page_format =
+ static_cast<PMPageFormat>([print_info_.get() PMPageFormat]);
+ PMRect paper_rect;
+ PMGetAdjustedPaperRect(page_format, &paper_rect);
+
+ // Device units are in points. Units per inch is 72.
+ gfx::Size physical_size_device_units(
+ (paper_rect.right - paper_rect.left),
+ (paper_rect.bottom - paper_rect.top));
+ DCHECK(settings_.device_units_per_inch() == kPointsPerInch);
Lei Zhang 2013/11/01 18:27:13 nit: DCHECK_EQ
Vitaly Buka (NO REVIEWS) 2013/11/01 19:46:29 Done.
+ return physical_size_device_units;
+}
+
PrintingContext::Result PrintingContextMac::UseDefaultSettings() {
DCHECK(!in_print_job_);
@@ -117,7 +137,6 @@ PrintingContext::Result PrintingContextMac::UseDefaultSettings() {
}
PrintingContext::Result PrintingContextMac::UpdatePrinterSettings(
- bool target_is_pdf,
bool external_preview) {
DCHECK(!in_print_job_);
@@ -125,7 +144,11 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings(
// with a clean slate.
print_info_.reset([[NSPrintInfo sharedPrintInfo] copy]);
- if (!target_is_pdf) {
+ if (external_preview) {
+ if (!SetPrintPreviewJob())
+ return OnError();
+ } else {
+ // Don't need this for preview.
if (!SetPrinter(UTF16ToUTF8(settings_.device_name())) ||
!SetCopiesInPrintSettings(settings_.copies()) ||
!SetCollateInPrintSettings(settings_.collate()) ||
@@ -135,8 +158,7 @@ PrintingContext::Result PrintingContextMac::UpdatePrinterSettings(
}
}
- if ((external_preview && !SetPrintPreviewJob()) ||
- !UpdatePageFormatWithPaperInfo() ||
+ if (!UpdatePageFormatWithPaperInfo() ||
!SetOrientationIsLandscape(settings_.landscape())) {
return OnError();
}

Powered by Google App Engine
This is Rietveld 408576698