Split off part of PrintingContext::UpdatePrintSettings().
Move the code that sets the printable area for virtual printers into its own method. Change-Id: Ic0b3d7716755f9c0a659934162a832dd0281977e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3763754 Reviewed-by: Alan Screen <awscreen@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#1025856}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
f65c865695
commit
1e637b88a5
@ -91,6 +91,21 @@ mojom::ResultCode PrintingContext::OnError() {
|
||||
return result;
|
||||
}
|
||||
|
||||
void PrintingContext::SetDefaultPrintableAreaForVirtualPrinters() {
|
||||
gfx::Size paper_size(GetPdfPaperSizeDeviceUnits());
|
||||
if (!settings_->requested_media().size_microns.IsEmpty()) {
|
||||
float device_microns_per_device_unit = static_cast<float>(kMicronsPerInch) /
|
||||
settings_->device_units_per_inch();
|
||||
paper_size = gfx::Size(settings_->requested_media().size_microns.width() /
|
||||
device_microns_per_device_unit,
|
||||
settings_->requested_media().size_microns.height() /
|
||||
device_microns_per_device_unit);
|
||||
}
|
||||
gfx::Rect paper_rect(0, 0, paper_size.width(), paper_size.height());
|
||||
settings_->SetPrinterPrintableArea(paper_size, paper_rect,
|
||||
/*landscape_needs_flip=*/true);
|
||||
}
|
||||
|
||||
void PrintingContext::UsePdfSettings() {
|
||||
base::Value::Dict pdf_settings;
|
||||
pdf_settings.Set(kSettingHeaderFooterEnabled, false);
|
||||
@ -153,21 +168,11 @@ mojom::ResultCode PrintingContext::UpdatePrintSettings(
|
||||
if (!open_in_external_preview &&
|
||||
(printer_type == mojom::PrinterType::kPdf ||
|
||||
printer_type == mojom::PrinterType::kExtension)) {
|
||||
gfx::Size paper_size(GetPdfPaperSizeDeviceUnits());
|
||||
if (!settings_->requested_media().size_microns.IsEmpty()) {
|
||||
float device_microns_per_device_unit =
|
||||
static_cast<float>(kMicronsPerInch) /
|
||||
settings_->device_units_per_inch();
|
||||
paper_size =
|
||||
gfx::Size(settings_->requested_media().size_microns.width() /
|
||||
device_microns_per_device_unit,
|
||||
settings_->requested_media().size_microns.height() /
|
||||
device_microns_per_device_unit);
|
||||
}
|
||||
gfx::Rect paper_rect(0, 0, paper_size.width(), paper_size.height());
|
||||
settings_->SetPrinterPrintableArea(paper_size, paper_rect, true);
|
||||
SetDefaultPrintableAreaForVirtualPrinters();
|
||||
return mojom::ResultCode::kSuccess;
|
||||
}
|
||||
DCHECK(open_in_external_preview ||
|
||||
printer_type == mojom::PrinterType::kLocal);
|
||||
|
||||
PrinterSettings printer_settings {
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
|
@ -202,6 +202,8 @@ class COMPONENT_EXPORT(PRINTING) PrintingContext {
|
||||
// Does bookkeeping when an error occurs.
|
||||
virtual mojom::ResultCode OnError();
|
||||
|
||||
void SetDefaultPrintableAreaForVirtualPrinters();
|
||||
|
||||
// Complete print context settings.
|
||||
std::unique_ptr<PrintSettings> settings_;
|
||||
|
||||
|
Reference in New Issue
Block a user