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

Unified Diff: printing/printing_context.cc

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.cc
diff --git a/printing/printing_context.cc b/printing/printing_context.cc
index edbcaa44e49d71325c3eb7c898d701e32fd7adbc..679a8b6464321e0b82c4383a67bc463df5b45427 100644
--- a/printing/printing_context.cc
+++ b/printing/printing_context.cc
@@ -9,9 +9,14 @@
#include "printing/page_setup.h"
#include "printing/page_size_margins.h"
#include "printing/print_settings_initializer.h"
+#include "printing/units.h"
namespace printing {
+namespace {
+const float kCloudPrintMarginInch = 0.25;
+}
+
PrintingContext::PrintingContext(const std::string& app_locale)
: dialog_box_dismissed_(false),
in_print_job_(false),
@@ -47,9 +52,6 @@ PrintingContext::Result PrintingContext::UpdatePrintSettings(
const PageRanges& ranges) {
ResetSettings();
- if (settings_.dpi() == 0)
- UseDefaultSettings();
-
if (!PrintSettingsInitializer::InitSettings(job_settings, ranges,
&settings_)) {
NOTREACHED();
@@ -69,9 +71,23 @@ PrintingContext::Result PrintingContext::UpdatePrintSettings(
bool open_in_external_preview =
job_settings.HasKey(kSettingOpenPDFInPreview);
- return UpdatePrinterSettings(
- print_to_pdf || is_cloud_dialog || print_to_cloud,
- open_in_external_preview);
+ if (!open_in_external_preview &&
+ (print_to_pdf || print_to_cloud || is_cloud_dialog)) {
+ settings_.set_dpi(kDefaultPdfDpi);
+ // Cloud print should get size and rect from capabilities received from
+ // server.
+ gfx::Size paper_size(GetPdfPaperSizeDeviceUnits());
+ gfx::Rect paper_rect(0, 0, paper_size.width(), paper_size.height());
+ if (print_to_cloud) {
+ paper_rect.Inset(
+ kCloudPrintMarginInch * settings_.device_units_per_inch(),
+ kCloudPrintMarginInch * settings_.device_units_per_inch());
+ }
+ settings_.SetPrinterPrintableArea(paper_size, paper_rect, true);
+ return OK;
+ }
+
+ return UpdatePrinterSettings(open_in_external_preview);
}
} // namespace printing

Powered by Google App Engine
This is Rietveld 408576698