Chromium Code Reviews| Index: printing/printing_context.cc |
| diff --git a/printing/printing_context.cc b/printing/printing_context.cc |
| index 4e9d03a8469418ead6a83561434bfcb1a3e8db11..05e3e86a061adee508787664da4c3d0450d64db1 100644 |
| --- a/printing/printing_context.cc |
| +++ b/printing/printing_context.cc |
| @@ -5,6 +5,7 @@ |
| #include "printing/printing_context.h" |
| #include "base/values.h" |
| +#include "printing/page_setup.h" |
| #include "printing/print_settings_initializer.h" |
| namespace printing { |
| @@ -37,6 +38,51 @@ PrintingContext::Result PrintingContext::OnError() { |
| PrintingContext::Result PrintingContext::UpdatePrintSettings( |
| const base::DictionaryValue& job_settings, |
| const PageRanges& ranges) { |
| + ResetSettings(); |
|
Lei Zhang
2011/10/08 02:02:05
I see you removed a ResetSettings() call in printi
vandebo (ex-Chrome)
2011/10/15 00:42:50
The previous ResetSettings happened after I set th
|
| + if (!job_settings.GetBoolean(printing::kSettingHeaderFooterEnabled, |
|
Lei Zhang
2011/10/08 02:02:05
this block is not needed. It's already in PrintSet
vandebo (ex-Chrome)
2011/10/15 00:42:50
The value needs to be set for PrintSettings::SetPr
|
| + &settings_.display_header_footer)) { |
| + NOTREACHED(); |
| + } |
| + bool default_margins; |
| + if (!job_settings.GetBoolean(printing::kSettingDefaultMarginsSelected, |
| + &default_margins)) { |
| + NOTREACHED(); |
| + default_margins = true; |
| + } |
| + if (!default_margins) { |
| + double top_margin_in_points = 0; |
| + double bottom_margin_in_points = 0; |
| + double left_margin_in_points = 0; |
| + double right_margin_in_points = 0; |
| + DictionaryValue* custom_margins; |
| + if (!job_settings.GetDictionary(printing::kSettingMargins, |
| + &custom_margins) || |
| + !custom_margins->GetDouble(printing::kSettingMarginTop, |
| + &top_margin_in_points) || |
| + !custom_margins->GetDouble(printing::kSettingMarginBottom, |
| + &bottom_margin_in_points) || |
| + !custom_margins->GetDouble(printing::kSettingMarginLeft, |
| + &left_margin_in_points) || |
| + !custom_margins->GetDouble(printing::kSettingMarginRight, |
| + &right_margin_in_points)) { |
| + NOTREACHED(); |
| + } |
| + PageMargins margins_in_points; |
| + margins_in_points.Clear(); |
| + margins_in_points.top = top_margin_in_points; |
| + margins_in_points.bottom = bottom_margin_in_points; |
| + margins_in_points.left = left_margin_in_points; |
| + margins_in_points.right = right_margin_in_points; |
| + |
| + PageMargins empty; |
| + empty.Clear(); |
|
Lei Zhang
2011/10/08 02:02:05
Not needed. Better yet, let's add an is_empty meth
vandebo (ex-Chrome)
2011/10/15 00:42:50
Fixed otherwise.
|
| + if (margins_in_points.Equals(empty)) { |
| + settings_.margin_type = NO_MARGINS; |
| + } else { |
| + settings_.SetCustomMargins(margins_in_points); |
| + } |
| + } |
| + |
| PrintingContext::Result result = UpdatePrinterSettings(job_settings, ranges); |
| printing::PrintSettingsInitializer::InitHeaderFooterStrings(job_settings, |
| &settings_); |