summaryrefslogtreecommitdiff
path: root/chromium/printing/printing_context_no_system_dialog.cc
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-03-18 13:16:26 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-20 15:55:39 +0100
commit3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch)
tree92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/printing/printing_context_no_system_dialog.cc
parente90d7c4b152c56919d963987e2503f9909a666d2 (diff)
downloadqtwebengine-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.cc53
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;