diff options
author | Philipp Lohmann <pl@openoffice.org> | 2009-09-08 16:36:29 +0000 |
---|---|---|
committer | Philipp Lohmann <pl@openoffice.org> | 2009-09-08 16:36:29 +0000 |
commit | 38287624c6dbe3d622a4e73e69db78a6412a6abd (patch) | |
tree | db28415088162797e84df5d1f083ec0bafe4bd63 /vcl/source/gdi/print3.cxx | |
parent | ea4051a25356bdb6ad9501cf1d17a6f726382fab (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.cxx | 18 |
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 { |