You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-n-up-printing-done-by-...

48 lines
2.2 KiB

From 2c37487470c7ea76d493eb0554cf2f9458ed5075 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 23 Sep 2014 10:20:06 +0100
Subject: [PATCH] n-up printing done by vcl, brochures by draw/impress
Change-Id: If38365d949ad91d50138798a0a386f9543eb4f22
---
sd/source/ui/view/DocumentRenderer.cxx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 723aa02e..1a903f7 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -1362,7 +1362,7 @@ private:
SdDrawDocument* pDocument = mrBase.GetMainViewShell()->GetDoc();
bool bIsDraw = pDocument->GetDocumentType() == DOCUMENT_TYPE_DRAW;
rInfo.meOrientation = ORIENTATION_PORTRAIT;
- bool bDoDodgyHeightWidthFit = !bIsDraw && !mpOptions->IsNotes();
+ bool bDoDodgyHeightWidthFit = mpOptions->IsBooklet() || (!bIsDraw && !mpOptions->IsNotes());
if( ! mpOptions->IsBooklet())
{
@@ -1371,7 +1371,8 @@ private:
else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height())
rInfo.meOrientation = ORIENTATION_LANDSCAPE;
- // Draw and Notes should abide by their specified paper size
+ // Draw and Notes should abide by their specified paper size, except
+ // for booklets
Size aPaperSize;
if (!bDoDodgyHeightWidthFit)
{
@@ -1448,8 +1449,8 @@ private:
if (mpOptions->IsTime())
aInfo.msTimeDate += GetSdrGlobalData().GetLocaleData()->getTime( Time( Time::SYSTEM ), false, false );
- // Draw should use specified paper size when printing
- if (mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_DRAW)
+ // Draw should use specified paper size when printing, except for booklets
+ if (!mpOptions->IsBooklet() && mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_DRAW)
{
aInfo.maPrintSize = mrBase.GetDocument()->GetSdPage(0, PK_STANDARD)->GetSize();
maPrintSize = awt::Size(aInfo.maPrintSize.Width(),
--
1.9.3