diff options
author | Eilidh McAdam <eilidh@lanedo.com> | 2014-06-23 20:55:21 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-08-23 07:42:53 -0700 |
commit | 8ecff2710f0ea19c9048900e7d5399471e262c47 (patch) | |
tree | cf6368ffc9ae75d85720d95f3677d6bd2e29ef38 | |
parent | 4d2ac2d24e3ad85733928e48e34885eb038720bc (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.
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)
Conflicts:
sd/source/ui/view/DocumentRenderer.cxx
Change-Id: If90bae4ac59cd95dd50fcd8deb25fd900756193e
-rw-r--r-- | sd/source/ui/view/DocumentRenderer.cxx | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 4136e89d8762..52aa9c5b9912 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 ), sal_False, sal_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()) { |