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

Side by Side 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, 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.h ('k') | printing/printing_context_android.h » ('j') | 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.h" 5 #include "printing/printing_context.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "printing/page_setup.h" 9 #include "printing/page_setup.h"
10 #include "printing/page_size_margins.h" 10 #include "printing/page_size_margins.h"
11 #include "printing/print_settings_initializer.h" 11 #include "printing/print_settings_initializer.h"
12 #include "printing/units.h"
12 13
13 namespace printing { 14 namespace printing {
14 15
16 namespace {
17 const float kCloudPrintMarginInch = 0.25;
18 }
19
15 PrintingContext::PrintingContext(const std::string& app_locale) 20 PrintingContext::PrintingContext(const std::string& app_locale)
16 : dialog_box_dismissed_(false), 21 : dialog_box_dismissed_(false),
17 in_print_job_(false), 22 in_print_job_(false),
18 abort_printing_(false), 23 abort_printing_(false),
19 app_locale_(app_locale) { 24 app_locale_(app_locale) {
20 } 25 }
21 26
22 PrintingContext::~PrintingContext() { 27 PrintingContext::~PrintingContext() {
23 } 28 }
24 29
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 if (!job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) || 64 if (!job_settings.GetBoolean(kSettingPrintToPDF, &print_to_pdf) ||
60 !job_settings.GetBoolean(kSettingCloudPrintDialog, &is_cloud_dialog)) { 65 !job_settings.GetBoolean(kSettingCloudPrintDialog, &is_cloud_dialog)) {
61 NOTREACHED(); 66 NOTREACHED();
62 return OnError(); 67 return OnError();
63 } 68 }
64 69
65 bool print_to_cloud = job_settings.HasKey(kSettingCloudPrintId); 70 bool print_to_cloud = job_settings.HasKey(kSettingCloudPrintId);
66 bool open_in_external_preview = 71 bool open_in_external_preview =
67 job_settings.HasKey(kSettingOpenPDFInPreview); 72 job_settings.HasKey(kSettingOpenPDFInPreview);
68 73
69 return UpdatePrinterSettings( 74 if (!open_in_external_preview &&
70 print_to_pdf || is_cloud_dialog || print_to_cloud, 75 (print_to_pdf || print_to_cloud || is_cloud_dialog)) {
71 open_in_external_preview); 76 settings_.set_dpi(kDefaultPdfDpi);
77 // Cloud print should get size and rect from capabilities received from
78 // server.
79 gfx::Size paper_size(GetPdfPaperSizeDeviceUnits());
80 gfx::Rect paper_rect(0, 0, paper_size.width(), paper_size.height());
81 if (print_to_cloud) {
82 paper_rect.Inset(
83 kCloudPrintMarginInch * settings_.device_units_per_inch(),
84 kCloudPrintMarginInch * settings_.device_units_per_inch());
85 }
86 DCHECK_EQ(settings_.device_units_per_inch(), kDefaultPdfDpi);
87 settings_.SetPrinterPrintableArea(paper_size, paper_rect, true);
88 return OK;
89 }
90
91 return UpdatePrinterSettings(open_in_external_preview);
72 } 92 }
73 93
74 } // namespace printing 94 } // namespace printing
OLDNEW
« no previous file with comments | « printing/printing_context.h ('k') | printing/printing_context_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698