sc/source/ui/unoobj/docuno.cxx | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-)
New commits: commit d7bd0b2d010b4fa64dd6773ad63f864e13fffb29 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Sep 23 16:06:36 2019 +0100 Commit: Xisco Faulí <xiscofa...@libreoffice.org> CommitDate: Tue Sep 24 09:24:41 2019 +0200 Resolves: tdf#127682 out_of_range thrown on print empty calc doc when odd/even pages requested and print is cancelled the abort procedure will ask for page 0 to be rendered on cancel, which doesn't exist since the odd/even support. Let the print of an empty page to ahead in the abort scenario Change-Id: Id8dfde57fca891ba3eb220cf6e495585abf4c918 Reviewed-on: https://gerrit.libreoffice.org/79414 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org> diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index 7443bf3ba018..c2f3b3e97be5 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -1837,16 +1837,16 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32 } MultiSelection aPage; - if ( nContent == 2 || nContent == 3 ) // even pages or odd pages - { - aPage.SetTotalRange( Range(0,RANGE_MAX) ); - aPage.Select( maValidPages.at( nRenderer ) ); - } + aPage.SetTotalRange( Range(0,RANGE_MAX) ); + + bool bOddOrEven = nContent == 2 || nContent == 3; // even pages or odd pages + // tdf#127682 when odd/even allow nRenderer of 0 even when maValidPages is empty + // to allow PrinterController::abortJob to spool an empty page as part of + // its abort procedure + if (bOddOrEven && !maValidPages.empty()) + aPage.Select( maValidPages.at(nRenderer) ); else - { - aPage.SetTotalRange( Range(0,RANGE_MAX) ); aPage.Select( nRenderer+1 ); - } long nDisplayStart = pPrintFuncCache->GetDisplayStart( nTab ); long nTabStart = pPrintFuncCache->GetTabStart( nTab ); @@ -2021,16 +2021,16 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, const uno::Any& aSelec } MultiSelection aPage; - if ( nContent == 2 || nContent == 3 ) // even pages or odd pages - { - aPage.SetTotalRange( Range(0,RANGE_MAX) ); + aPage.SetTotalRange( Range(0,RANGE_MAX) ); + + bool bOddOrEven = nContent == 2 || nContent == 3; // even pages or odd pages + // tdf#127682 when odd/even allow nRenderer of 0 even when maValidPages is empty + // to allow PrinterController::abortJob to spool an empty page as part of + // its abort procedure + if (bOddOrEven && !maValidPages.empty()) aPage.Select( maValidPages.at( nRenderer ) ); - } else - { - aPage.SetTotalRange( Range(0,RANGE_MAX) ); aPage.Select( nRenderer+1 ); - } long nDisplayStart = pPrintFuncCache->GetDisplayStart( nTab ); long nTabStart = pPrintFuncCache->GetTabStart( nTab ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits