sc/source/core/data/documen2.cxx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
New commits: commit 820d0c06ba5de5ee42757c61048b4a56fa299268 Author: Andreas Heinisch <andreas.heini...@yahoo.de> AuthorDate: Mon Oct 23 23:13:51 2023 +0200 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Sun Jul 21 00:21:02 2024 +0200 tdf#157897 - Clear print ranges before adding additional ones Otherwise, additional print ranges will be added for linked files after the external link will be updated. cherry-picked from commit: e61f8a36220d6e8800dd0decf2a680db97c371c9 (tdf#157897 - Clear print ranges before adding additional ones) Change-Id: I0556fda6609d3e18f1ca992dc6a0399be01bc841 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158365 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170592 Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> Tested-by: allotropia jenkins <jenk...@allotropia.de> diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index dd76b6cc2dc3..85333d24b74c 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -962,6 +962,23 @@ sal_uLong ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos, maTabs[nDestPos]->SetTabNo(nDestPos); maTabs[nDestPos]->SetTabBgColor(pSrcDoc->maTabs[nSrcPos]->GetTabBgColor()); + if (pSrcDoc->IsPrintEntireSheet(nSrcPos)) + maTabs[nDestPos]->SetPrintEntireSheet(); + else + { + // tdf#157897 - clear print ranges before adding additional ones + maTabs[nDestPos]->ClearPrintRanges(); + const auto nPrintRangeCount = pSrcDoc->maTabs[nSrcPos]->GetPrintRangeCount(); + for (auto nPos = 0; nPos < nPrintRangeCount; nPos++) + { + // Adjust the tab for the print range at the new position + ScRange aSrcPrintRange(*pSrcDoc->maTabs[nSrcPos]->GetPrintRange(nPos)); + aSrcPrintRange.aStart.SetTab(nDestPos); + aSrcPrintRange.aEnd.SetTab(nDestPos); + maTabs[nDestPos]->AddPrintRange(aSrcPrintRange); + } + } + if ( !bResultsOnly ) { sc::RefUpdateContext aRefCxt(*this);