summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEilidh McAdam <eilidh@lanedo.com>2014-06-23 20:55:21 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-08-20 08:40:03 +0200
commita7eed1e17cfb101210db8aa839171f00d0730582 (patch)
treee26c1b35c2e42c5476d9a81f861f4f02b9477c6d
parentdac4825abef1c9a4d970dab7dbec26673126342a (diff)
Make Draw use paper size when printing - fdo#63905
Previously, Draw/Impress use the default size from the printer. Now Draw uses the paper size (specified in page formatting). Impress still uses the old method - not sure if this is correct but printing handouts etc probably complicate print/paper size. Change-Id: If90bae4ac59cd95dd50fcd8deb25fd900756193e Reviewed-on: https://gerrit.libreoffice.org/9866 Reviewed-by: Matúš Kukan <matus.kukan@collabora.com> Tested-by: Matúš Kukan <matus.kukan@collabora.com> (cherry picked from commit 7b31e45ec7106d2cfbdbb7915d97667ba710f81c)
-rw-r--r--sd/source/ui/view/DocumentRenderer.cxx33
1 files changed, 28 insertions, 5 deletions
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx
index 59106a7454e7..7080e9d401c3 100644
--- a/sd/source/ui/view/DocumentRenderer.cxx
+++ b/sd/source/ui/view/DocumentRenderer.cxx
@@ -1418,7 +1418,19 @@ private:
else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height())
rInfo.meOrientation = ORIENTATION_LANDSCAPE;
- const Size aPaperSize (rInfo.mpPrinter->GetPaperSize());
+ // Draw should abide by specified paper size
+ Size aPaperSize;
+ if (mpOptions->IsDraw())
+ {
+ aPaperSize.setWidth(rInfo.maPageSize.Width());
+ aPaperSize.setHeight(rInfo.maPageSize.Height());
+ }
+ else
+ {
+ aPaperSize.setWidth(rInfo.mpPrinter->GetPaperSize().Width());
+ aPaperSize.setHeight(rInfo.mpPrinter->GetPaperSize().Height());
+ }
+
if( (rInfo.meOrientation == ORIENTATION_LANDSCAPE &&
(aPaperSize.Width() < aPaperSize.Height()))
||
@@ -1483,10 +1495,21 @@ private:
if (mpOptions->IsTime())
aInfo.msTimeDate += GetSdrGlobalData().GetLocaleData()->getTime( Time( Time::SYSTEM ), false, false );
- aInfo.maPrintSize = aInfo.mpPrinter->GetOutputSize();
- maPrintSize = awt::Size(
- aInfo.mpPrinter->GetPaperSize().Width(),
- aInfo.mpPrinter->GetPaperSize().Height());
+
+ // Draw should use specified paper size when printing
+ if (mpOptions->IsDraw())
+ {
+ aInfo.maPrintSize = mrBase.GetDocument()->GetSdPage(0, PK_STANDARD)->GetSize();
+ maPrintSize = awt::Size(aInfo.maPrintSize.Width(),
+ aInfo.maPrintSize.Height());
+ }
+ else
+ {
+ aInfo.maPrintSize = aInfo.mpPrinter->GetOutputSize();
+ maPrintSize = awt::Size(
+ aInfo.mpPrinter->GetPaperSize().Width(),
+ aInfo.mpPrinter->GetPaperSize().Height());
+ }
switch (mpOptions->GetOutputQuality())
{