summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@cib.de>2018-04-06 22:32:24 +0200
committerArmin Le Grand <Armin.Le.Grand@cib.de>2018-04-06 22:32:24 +0200
commiteba4d5b2b76cefde90cb3d6638c736f435023a45 (patch)
tree43befa620475c11f3dde00e5ea141e1efd95a334 /filter
parent6c14c27c75a03e2363f2b363ddf0a6f2f46cfa91 (diff)
Revert "SOSAW080: Added first bunch of basic changes to helpers"
Diffstat (limited to 'filter')
-rw-r--r--filter/source/msfilter/escherex.cxx5
-rw-r--r--filter/source/msfilter/msdffimp.cxx86
-rw-r--r--filter/source/msfilter/svdfppt.cxx39
-rw-r--r--filter/source/svg/svgexport.cxx14
4 files changed, 53 insertions, 91 deletions
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 3b3fc0562bf5..0eb9efe66e86 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -3774,9 +3774,10 @@ bool EscherPropertyContainer::CreateBlipPropertiesforOLEControl(const uno::Refer
SdrObject* pShape = GetSdrObjectFromXShape( rXShape );
if ( pShape )
{
- const Graphic aGraphic(SdrExchangeView::GetObjGraphic(*pShape));
- const GraphicObject aGraphicObject(aGraphic);
+ SdrModel* pMod = pShape->GetModel();
+ Graphic aGraphic(SdrExchangeView::GetObjGraphic( pMod, pShape));
+ GraphicObject aGraphicObject(aGraphic);
if (!aGraphicObject.GetUniqueID().isEmpty())
{
if ( pGraphicProvider && pPicOutStrm && pShapeBoundRect )
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index e958c813068c..ac281e0bfdd1 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -3955,7 +3955,7 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons
}
if( !pRet )
{
- pRet = new SdrGrafObj(*pSdrModel);
+ pRet = new SdrGrafObj;
if( bGrfRead )
static_cast<SdrGrafObj*>(pRet)->SetGraphic( aGraf );
@@ -3997,6 +3997,7 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons
pRet->SetName( aFileName );
}
}
+ pRet->SetModel( pSdrModel ); // required for GraphicLink
pRet->SetLogicRect( rObjData.aBoundRect );
if ( dynamic_cast<const SdrGrafObj* >(pRet) != nullptr )
@@ -4306,7 +4307,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
if ( aObjData.nSpFlags & ShapeFlag::Group )
{
- pRet = new SdrObjGroup(*pSdrModel);
+ pRet = new SdrObjGroup;
/* After CWS aw033 has been integrated, an empty group object
cannot store its resulting bounding rectangle anymore. We have
to return this rectangle via rClientRect now, but only, if
@@ -4336,10 +4337,8 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
basegfx::B2DPolygon aPoly;
aPoly.append(basegfx::B2DPoint(aObjData.aBoundRect.Left(), aObjData.aBoundRect.Top()));
aPoly.append(basegfx::B2DPoint(aObjData.aBoundRect.Right(), aObjData.aBoundRect.Bottom()));
- pRet = new SdrPathObj(
- *pSdrModel,
- OBJ_LINE,
- basegfx::B2DPolyPolygon(aPoly));
+ pRet = new SdrPathObj(OBJ_LINE, basegfx::B2DPolyPolygon(aPoly));
+ pRet->SetModel( pSdrModel );
ApplyAttributes( rSt, aSet, aObjData );
pRet->SetMergedItemSet(aSet);
}
@@ -4350,7 +4349,8 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
ApplyAttributes( rSt, aSet, aObjData );
- pRet = new SdrObjCustomShape(*pSdrModel);
+ pRet = new SdrObjCustomShape();
+ pRet->SetModel( pSdrModel );
sal_uInt32 ngtextFStrikethrough = GetPropertyValue( DFF_Prop_gtextFStrikethrough, 0 );
bool bIsFontwork = ( ngtextFStrikethrough & 0x4000 ) != 0;
@@ -4471,7 +4471,9 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
{
SdrOutliner& rOutliner = static_cast<SdrObjCustomShape*>(pRet)->ImpGetDrawOutliner();
bool bOldUpdateMode = rOutliner.GetUpdateMode();
- rOutliner.SetStyleSheetPool(static_cast< SfxStyleSheetPool* >(pRet->getSdrModelFromSdrObject().GetStyleSheetPool()));
+ SdrModel* pModel = pRet->GetModel();
+ if ( pModel )
+ rOutliner.SetStyleSheetPool( static_cast<SfxStyleSheetPool*>(pModel->GetStyleSheetPool()) );
rOutliner.SetUpdateMode( false );
rOutliner.SetText( *pParaObj );
ScopedVclPtrInstance< VirtualDevice > pVirDev(DeviceFormat::BITMASK);
@@ -4733,7 +4735,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
basegfx::B2DPolyPolygon aPoly( static_cast<SdrObjCustomShape*>(pRet)->GetLineGeometry( true ) );
SdrObject::Free( pRet );
- pRet = new SdrEdgeObj(*pSdrModel);
+ pRet = new SdrEdgeObj();
ApplyAttributes( rSt, aSet, aObjData );
pRet->SetLogicRect( aObjData.aBoundRect );
pRet->SetMergedItemSet(aSet);
@@ -5233,10 +5235,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
}
}
- pTextObj = new SdrRectObj(
- *pSdrModel,
- OBJ_TEXT,
- rTextRect);
+ pTextObj = new SdrRectObj(OBJ_TEXT, rTextRect);
pTextImpRec = new SvxMSDffImportRec(*pImpRec);
bDeleteTextImpRec = true;
@@ -5365,6 +5364,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
}
pTextObj->SetMergedItemSet(aSet);
+ pTextObj->SetModel(pSdrModel);
if (bVerticalText)
pTextObj->SetVerticalWriting(true);
@@ -5397,7 +5397,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
{
if( pTextObj != pObj )
{
- SdrObject* pGroup = new SdrObjGroup(*pSdrModel);
+ SdrObject* pGroup = new SdrObjGroup;
pGroup->GetSubList()->NbcInsertObject( pObj );
pGroup->GetSubList()->NbcInsertObject( pTextObj );
if (pOrgObj == pObj)
@@ -5413,11 +5413,9 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
// simple rectangular objects are ignored by ImportObj() :-(
// this is OK for Draw but not for Calc and Writer
// cause here these objects have a default border
- pObj = new SdrRectObj(
- *pSdrModel,
- rTextRect);
-
+ pObj = new SdrRectObj(rTextRect);
pOrgObj = pObj;
+ pObj->SetModel( pSdrModel );
SfxItemSet aSet( pSdrModel->GetItemPool() );
ApplyAttributes( rSt, aSet, rObjData );
@@ -6617,19 +6615,9 @@ SdrObject* SvxMSDffManager::ImportOLE( sal_uInt32 nOLEId,
ErrCode nError = ERRCODE_NONE;
uno::Reference < embed::XStorage > xDstStg;
if( GetOLEStorageName( nOLEId, sStorageName, xSrcStg, xDstStg ))
- pRet = CreateSdrOLEFromStorage(
- *GetModel(),
- sStorageName,
- xSrcStg,
- xDstStg,
- rGrf,
- rBoundRect,
- rVisArea,
- pStData,
- nError,
- nSvxMSDffOLEConvFlags,
- embed::Aspects::MSOLE_CONTENT,
- maBaseURL);
+ pRet = CreateSdrOLEFromStorage( sStorageName, xSrcStg, xDstStg,
+ rGrf, rBoundRect, rVisArea, pStData, nError,
+ nSvxMSDffOLEConvFlags, embed::Aspects::MSOLE_CONTENT, maBaseURL);
return pRet;
}
@@ -7118,18 +7106,17 @@ css::uno::Reference < css::embed::XEmbeddedObject > SvxMSDffManager::CheckForCo
// TODO/MBA: code review and testing!
SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage(
- SdrModel& rSdrModel,
- const OUString& rStorageName,
- tools::SvRef<SotStorage> const & rSrcStorage,
- const uno::Reference < embed::XStorage >& xDestStorage,
- const Graphic& rGrf,
- const tools::Rectangle& rBoundRect,
- const tools::Rectangle& rVisArea,
- SvStream* pDataStrm,
- ErrCode& rError,
- sal_uInt32 nConvertFlags,
- sal_Int64 nRecommendedAspect,
- OUString const& rBaseURL)
+ const OUString& rStorageName,
+ tools::SvRef<SotStorage> const & rSrcStorage,
+ const uno::Reference < embed::XStorage >& xDestStorage,
+ const Graphic& rGrf,
+ const tools::Rectangle& rBoundRect,
+ const tools::Rectangle& rVisArea,
+ SvStream* pDataStrm,
+ ErrCode& rError,
+ sal_uInt32 nConvertFlags,
+ sal_Int64 nRecommendedAspect,
+ OUString const& rBaseURL)
{
sal_Int64 nAspect = nRecommendedAspect;
SdrOle2Obj* pRet = nullptr;
@@ -7197,12 +7184,7 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage(
aObj.SetGraphic( rGrf, OUString() );
// TODO/MBA: check setting of PersistName
- pRet = new SdrOle2Obj(
- rSdrModel,
- aObj,
- OUString(),
- rBoundRect);
-
+ pRet = new SdrOle2Obj( aObj, OUString(), rBoundRect);
// we have the Object, don't create another
bValidStorage = false;
}
@@ -7298,11 +7280,7 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage(
// TODO/LATER: need MediaType
aObj.SetGraphic( rGrf, OUString() );
- pRet = new SdrOle2Obj(
- rSdrModel,
- aObj,
- aDstStgName,
- rBoundRect);
+ pRet = new SdrOle2Obj( aObj, aDstStgName, rBoundRect);
}
}
}
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 5758ca606a1b..22d21cb1a74e 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -807,10 +807,7 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi
// replacing the object which we will return with a SdrPageObj
SdrObject::Free( pRet );
- pRet = new SdrPageObj(
- *pSdrModel,
- rObjData.aBoundRect,
- pSdrModel->GetPage(nPageNum - 1));
+ pRet = new SdrPageObj( rObjData.aBoundRect, pSdrModel->GetPage( nPageNum - 1 ) );
}
else
{
@@ -1072,9 +1069,8 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi
SdrObject::Free( pRet );
pRet = nullptr;
}
- pTObj = new SdrRectObj(
- *pSdrModel,
- eTextKind != OBJ_RECT ? eTextKind : OBJ_TEXT);
+ pTObj = new SdrRectObj( eTextKind != OBJ_RECT ? eTextKind : OBJ_TEXT );
+ pTObj->SetModel( pSdrModel );
SfxItemSet aSet( pSdrModel->GetItemPool() );
if ( !pRet )
ApplyAttributes( rSt, aSet, rObjData );
@@ -1201,7 +1197,7 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi
}
if ( pRet )
{
- SdrObject* pGroup = new SdrObjGroup(*pSdrModel);
+ SdrObject* pGroup = new SdrObjGroup;
pGroup->GetSubList()->NbcInsertObject( pRet );
pGroup->GetSubList()->NbcInsertObject( pTObj );
pRet = pGroup;
@@ -1884,11 +1880,7 @@ SdrObject* SdrPowerPointImport::ImportOLE( sal_uInt32 nOLEId,
// TODO/LATER: need MediaType for Graphic
aObj.SetGraphic( rGraf, OUString() );
- pRet = new SdrOle2Obj(
- *pSdrModel,
- aObj,
- aNm,
- rBoundRect);
+ pRet = new SdrOle2Obj( aObj, aNm, rBoundRect );
}
}
if ( !pRet && ( rOe.nType == PPT_PST_ExControl ) )
@@ -1951,11 +1943,7 @@ SdrObject* SdrPowerPointImport::ImportOLE( sal_uInt32 nOLEId,
// TODO/LATER: need MediaType for Graphic
aObj.SetGraphic( aGraphic, OUString() );
- pRet = new SdrOle2Obj(
- *pSdrModel,
- aObj,
- aNm,
- rBoundRect);
+ pRet = new SdrOle2Obj( aObj, aNm, rBoundRect );
}
}
}
@@ -3074,17 +3062,12 @@ SdrObject* SdrPowerPointImport::ImportPageBackgroundObject( const SdrPage& rPage
pSet->Put( XFillStyleItem( drawing::FillStyle_NONE ) );
}
pSet->Put( XLineStyleItem( drawing::LineStyle_NONE ) );
- tools::Rectangle aRect(
- rPage.GetLeftBorder(),
- rPage.GetUpperBorder(),
- rPage.GetWidth() - rPage.GetRightBorder(),
- rPage.GetHeight() - rPage.GetLowerBorder());
-
- pRet = new SdrRectObj(
- *pSdrModel,
- aRect);
+ tools::Rectangle aRect( rPage.GetLeftBorder(), rPage.GetUpperBorder(), rPage.GetWidth()-rPage.GetRightBorder(), rPage.GetHeight()-rPage.GetLowerBorder() );
+ pRet = new SdrRectObj( aRect );
+ pRet->SetModel( pSdrModel );
pRet->SetMergedItemSet(*pSet);
+
pRet->SetMarkProtect( true );
pRet->SetMoveProtect( true );
pRet->SetResizeProtect( true );
@@ -7589,7 +7572,7 @@ SdrObject* SdrPowerPointImport::CreateTable( SdrObject* pGroup, const sal_uInt32
if (aRows.empty())
return pRet;
- sdr::table::SdrTableObj* pTable = new sdr::table::SdrTableObj(*pSdrModel);
+ sdr::table::SdrTableObj* pTable = new sdr::table::SdrTableObj( pSdrModel );
pTable->uno_lock();
Reference< XTable > xTable( pTable->getTable() );
diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx
index 056c1c7fa5c9..e923eb92c021 100644
--- a/filter/source/svg/svgexport.cxx
+++ b/filter/source/svg/svgexport.cxx
@@ -560,9 +560,9 @@ bool SVGFilter::implExport( const Sequence< PropertyValue >& rDescriptor )
if( pSvxDrawPage )
{
mpDefaultSdrPage = pSvxDrawPage->GetSdrPage();
- mpSdrModel = &mpDefaultSdrPage->getSdrModelFromSdrPage();
+ mpSdrModel = mpDefaultSdrPage->GetModel();
- if( mpSdrModel ) // TTTT should be reference
+ if( mpSdrModel )
{
SdrOutliner& rOutl = mpSdrModel->GetDrawOutliner();
@@ -921,8 +921,8 @@ void SVGFilter::implGenerateMetaData()
if( pSvxDrawPage )
{
SdrPage* pSdrPage = pSvxDrawPage->GetSdrPage();
- SdrModel& rSdrModel(pSdrPage->getSdrModelFromSdrPage());
- nPageNumberingType = rSdrModel.GetPageNumType();
+ SdrModel* pSdrModel = pSdrPage->GetModel();
+ nPageNumberingType = pSdrModel->GetPageNumType();
// That is used by CalcFieldHdl method.
mVisiblePagePropSet.nPageNumberingType = nPageNumberingType;
@@ -1384,8 +1384,8 @@ void SVGFilter::implGetPagePropSet( const Reference< css::drawing::XDrawPage > &
if( pSvxDrawPage )
{
SdrPage* pSdrPage = pSvxDrawPage->GetSdrPage();
- SdrModel& rSdrModel(pSdrPage->getSdrModelFromSdrPage());
- mVisiblePagePropSet.nPageNumberingType = rSdrModel.GetPageNumType();
+ SdrModel* pSdrModel = pSdrPage->GetModel();
+ mVisiblePagePropSet.nPageNumberingType = pSdrModel->GetPageNumType();
}
}
}
@@ -1931,7 +1931,7 @@ bool SVGFilter::implCreateObjectsFromShape( const Reference< css::drawing::XDraw
if( pObj )
{
- const Graphic aGraphic(SdrExchangeView::GetObjGraphic(*pObj));
+ Graphic aGraphic( SdrExchangeView::GetObjGraphic( pObj->GetModel(), pObj ) );
if( aGraphic.GetType() != GraphicType::NONE )
{