diff options
author | Andras Becsi <andras.becsi@digia.com> | 2014-03-18 13:16:26 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-20 15:55:39 +0100 |
commit | 3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch) | |
tree | 92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/printing/printing_context_no_system_dialog.cc | |
parent | e90d7c4b152c56919d963987e2503f9909a666d2 (diff) | |
download | qtwebengine-chromium-3f0f86b0caed75241fa71c95a5d73bc0164348c5.tar.gz |
Update to new stable branch 1750
This also includes an updated ninja and chromium dependencies
needed on Windows.
Change-Id: Icd597d80ed3fa4425933c9f1334c3c2e31291c42
Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'chromium/printing/printing_context_no_system_dialog.cc')
-rw-r--r-- | chromium/printing/printing_context_no_system_dialog.cc | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/chromium/printing/printing_context_no_system_dialog.cc b/chromium/printing/printing_context_no_system_dialog.cc index 958d901700e..4768e4d3a3d 100644 --- a/chromium/printing/printing_context_no_system_dialog.cc +++ b/chromium/printing/printing_context_no_system_dialog.cc @@ -41,13 +41,16 @@ PrintingContext::Result PrintingContextNoSystemDialog::UseDefaultSettings() { DCHECK(!in_print_job_); ResetSettings(); - // TODO(abodenha): Fetch these settings from the OS where possible. See - // bug 102583. - // TODO(sanjeevr): We need a better feedback loop between the cloud print - // dialog and this code. - int dpi = 300; - gfx::Size physical_size_device_units; - gfx::Rect printable_area_device_units; + settings_.set_dpi(kDefaultPdfDpi); + gfx::Size physical_size = GetPdfPaperSizeDeviceUnits(); + // Assume full page is printable for now. + gfx::Rect printable_area(0, 0, physical_size.width(), physical_size.height()); + DCHECK_EQ(settings_.device_units_per_inch(), kDefaultPdfDpi); + settings_.SetPrinterPrintableArea(physical_size, printable_area, true); + return OK; +} + +gfx::Size PrintingContextNoSystemDialog::GetPdfPaperSizeDeviceUnits() { int32_t width = 0; int32_t height = 0; UErrorCode error = U_ZERO_ERROR; @@ -56,41 +59,27 @@ PrintingContext::Result PrintingContextNoSystemDialog::UseDefaultSettings() { // If the call failed, assume a paper size of 8.5 x 11 inches. LOG(WARNING) << "ulocdata_getPaperSize failed, using 8.5 x 11, error: " << error; - width = static_cast<int>(8.5 * dpi); - height = static_cast<int>(11 * dpi); + width = static_cast<int>( + kLetterWidthInch * settings_.device_units_per_inch()); + height = static_cast<int>( + kLetterHeightInch * settings_.device_units_per_inch()); } else { // ulocdata_getPaperSize returns the width and height in mm. // Convert this to pixels based on the dpi. - width = static_cast<int>(ConvertUnitDouble(width, 25.4, 1.0) * dpi); - height = static_cast<int>(ConvertUnitDouble(height, 25.4, 1.0) * dpi); + float multiplier = 100 * settings_.device_units_per_inch(); + multiplier /= kHundrethsMMPerInch; + width *= multiplier; + height *= multiplier; } - - physical_size_device_units.SetSize(width, height); - - // Assume full page is printable for now. - printable_area_device_units.SetRect(0, 0, width, height); - - settings_.set_dpi(dpi); - settings_.SetPrinterPrintableArea(physical_size_device_units, - printable_area_device_units, - dpi); - - return OK; + return gfx::Size(width, height); } PrintingContext::Result PrintingContextNoSystemDialog::UpdatePrinterSettings( - const base::DictionaryValue& job_settings, const PageRanges& ranges) { - bool landscape = false; - - if (!job_settings.GetBoolean(kSettingLandscape, &landscape)) - return OnError(); + bool external_preview) { if (settings_.dpi() == 0) UseDefaultSettings(); - settings_.SetOrientation(landscape); - settings_.ranges = ranges; - return OK; } @@ -104,7 +93,7 @@ PrintingContext::Result PrintingContextNoSystemDialog::InitWithSettings( } PrintingContext::Result PrintingContextNoSystemDialog::NewDocument( - const string16& document_name) { + const base::string16& document_name) { DCHECK(!in_print_job_); in_print_job_ = true; |