tdf#167075: init doc shell before pasting as png/bmp
Regression after
commit d8ab8992bd35aedfc1d2b0debebab0d623aa8d09
Author: Xisco Fauli <[email protected]>
Date: Mon May 26 11:06:06 2025 +0200
ScViewData: pass ScDocShell by ref
and
commit 52e3b2b040ac54c2a5661e3676b135170f028f50
Author: Xisco Fauli <[email protected]>
Date: Mon May 26 16:06:12 2025 +0200
ScViewData: simplify constructors
Change-Id: I0b70bd4efe6cd18ca3c7a13e92469e09b4ed7914
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189188
Reviewed-by: Xisco Fauli <[email protected]>
Tested-by: Jenkins
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index b210e8e..001979e 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -97,21 +97,18 @@
nCol = nMaxCol;
}
void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor,
void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor,
const ScRange& rBlock )
{
if (!rDoc.GetDocumentShell())
return;
tools::Rectangle aBound( Point(), pDev->GetOutputSize() ); //! use size from clip area?
ScViewData aViewData(*rDoc.GetDocumentShell(), nullptr);
ScViewData aViewData(rDocSh, nullptr);
aViewData.SetTabNo( rBlock.aEnd.Tab() );
aViewData.SetScreen( rBlock.aStart.Col(), rBlock.aStart.Row(),
rBlock.aEnd.Col(), rBlock.aEnd.Row() );
ScPrintFunc::DrawToDev( rDoc, pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ );
ScPrintFunc::DrawToDev( rDocSh.GetDocument(), pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ );
}
ScTransferObj::ScTransferObj( const std::shared_ptr<ScDocument>& pClipDoc, TransferableObjectDescriptor aDesc ) :
@@ -437,7 +434,8 @@
pVirtDev->SetOutputSizePixel(aPixelSize);
PaintToDev( pVirtDev, *m_pDoc, 1.0, aReducedBlock );
InitDocShell(true);
PaintToDev( pVirtDev, *m_aDocShellRef, 1.0, aReducedBlock );
pVirtDev->SetMapMode( MapMode( MapUnit::MapPixel, Point(), aScale, aScale ) );
BitmapEx aBmp( pVirtDev->GetBitmap( Point(), pVirtDev->GetOutputSize() ) );
diff --git a/sc/source/ui/inc/transobj.hxx b/sc/source/ui/inc/transobj.hxx
index 4ad4a93..d84f5cb 100644
--- a/sc/source/ui/inc/transobj.hxx
+++ b/sc/source/ui/inc/transobj.hxx
@@ -58,7 +58,7 @@
static void StripRefs( ScDocument& rDoc, SCCOL nStartX, SCROW nStartY,
SCCOL nEndX, SCROW nEndY,
ScDocument& rDestDoc );
static void PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPrintFactor,
static void PaintToDev( OutputDevice* pDev, ScDocShell& rDocSh, double nPrintFactor,
const ScRange& rBlock );
static void GetAreaSize( const ScDocument& rDoc, SCTAB nTab1, SCTAB nTab2, SCROW& nRow, SCCOL& nCol );