summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/print3.cxx
diff options
context:
space:
mode:
authorPhilipp Lohmann <pl@openoffice.org>2009-09-08 16:36:29 +0000
committerPhilipp Lohmann <pl@openoffice.org>2009-09-08 16:36:29 +0000
commit38287624c6dbe3d622a4e73e69db78a6412a6abd (patch)
treedb28415088162797e84df5d1f083ec0bafe4bd63 /vcl/source/gdi/print3.cxx
parentea4051a25356bdb6ad9501cf1d17a6f726382fab (diff)
#i104662# reverse page order affects sheets now instead of doc pages
Diffstat (limited to 'vcl/source/gdi/print3.cxx')
-rw-r--r--vcl/source/gdi/print3.cxx18
1 files changed, 11 insertions, 7 deletions
diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx
index f8bf4aa6df80..2d8cb6f96f19 100644
--- a/vcl/source/gdi/print3.cxx
+++ b/vcl/source/gdi/print3.cxx
@@ -741,6 +741,13 @@ PrinterController::PageSize PrinterController::getFilteredPageFile( int i_nFilte
if( nSubPages < 1 )
nSubPages = 1;
+ // reverse sheet order
+ if( mpImplData->mbReversePageOrder )
+ {
+ int nDocPages = getFilteredPageCount();
+ i_nFilteredPage = nDocPages - 1 - i_nFilteredPage;
+ }
+
// there is no filtering to be done (and possibly the page size of the
// original page is to be set), when N-Up is "neutral" that is there is
// only one subpage and the margins are 0
@@ -748,11 +755,6 @@ PrinterController::PageSize PrinterController::getFilteredPageFile( int i_nFilte
rMPS.nLeftMargin == 0 && rMPS.nRightMargin == 0 &&
rMPS.nTopMargin == 0 && rMPS.nBottomMargin == 0 )
{
- if( mpImplData->mbReversePageOrder )
- {
- int nDocPages = getPageCountProtected();
- i_nFilteredPage = nDocPages - 1 - i_nFilteredPage;
- }
PrinterController::PageSize aPageSize = getPageFile( i_nFilteredPage, o_rMtf, i_bMayUseCache );
Size aPaperSize = mpImplData->getRealPaperSize( aPageSize.aSize );
if( aPaperSize != aPageSize.aSize )
@@ -802,9 +804,11 @@ PrinterController::PageSize PrinterController::getFilteredPageFile( int i_nFilte
int nPage = (i_nFilteredPage * nSubPages + nSubPage) / rMPS.nRepeat;
if( mpImplData->mbReversePageOrder )
{
- nPage = nDocPages - 1 - nPage;
- if( nPage == 0 )
+ if( nSubPage == nSubPages-1 ||
+ nPage == nDocPages-1 )
+ {
mpImplData->mbLastPage = bIsLastPage;
+ }
}
else
{