diff options
Diffstat (limited to 'svx/source/svdraw/svdocapt.cxx')
-rw-r--r-- | svx/source/svdraw/svdocapt.cxx | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/svx/source/svdraw/svdocapt.cxx b/svx/source/svdraw/svdocapt.cxx index 00cb7ded37ab..cd688f348842 100644 --- a/svx/source/svdraw/svdocapt.cxx +++ b/svx/source/svdraw/svdocapt.cxx @@ -189,16 +189,19 @@ sdr::contact::ViewContact* SdrCaptionObj::CreateObjectSpecificViewContact() } -SdrCaptionObj::SdrCaptionObj(): - SdrRectObj(OBJ_TEXT), +SdrCaptionObj::SdrCaptionObj(SdrModel& rSdrModel) +: SdrRectObj(rSdrModel, OBJ_TEXT), aTailPoly(3), // default size: 3 points = 2 lines mbSpecialTextBoxShadow(false), mbFixedTail(false) { } -SdrCaptionObj::SdrCaptionObj(const tools::Rectangle& rRect, const Point& rTail): - SdrRectObj(OBJ_TEXT,rRect), +SdrCaptionObj::SdrCaptionObj( + SdrModel& rSdrModel, + const tools::Rectangle& rRect, + const Point& rTail) +: SdrRectObj(rSdrModel, OBJ_TEXT,rRect), aTailPoly(3), // default size: 3 points = 2 lines mbSpecialTextBoxShadow(false), mbFixedTail(false) @@ -232,9 +235,23 @@ sal_uInt16 SdrCaptionObj::GetObjIdentifier() const return sal_uInt16(OBJ_CAPTION); } -SdrCaptionObj* SdrCaptionObj::Clone() const +SdrCaptionObj* SdrCaptionObj::Clone(SdrModel* pTargetModel) const { - return CloneHelper< SdrCaptionObj >(); + return CloneHelper< SdrCaptionObj >(pTargetModel); +} + +SdrCaptionObj& SdrCaptionObj::operator=(const SdrCaptionObj& rObj) +{ + if( this == &rObj ) + return *this; + SdrRectObj::operator=(rObj); + + aTailPoly = rObj.aTailPoly; + mbSpecialTextBoxShadow = rObj.mbSpecialTextBoxShadow; + mbFixedTail = rObj.mbFixedTail; + maFixedTailPos = rObj.maFixedTailPos; + + return *this; } OUString SdrCaptionObj::TakeObjNameSingul() const @@ -663,12 +680,6 @@ Point SdrCaptionObj::GetSnapPoint(sal_uInt32 /*i*/) const return Point(0,0); } -void SdrCaptionObj::SetModel(SdrModel* pNewModel) -{ - SdrRectObj::SetModel(pNewModel); - ImpRecalcTail(); -} - void SdrCaptionObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint) { SdrRectObj::Notify(rBC,rHint); @@ -706,8 +717,9 @@ SdrObject* SdrCaptionObj::DoConvertToPolyObj(bool bBezier, bool bAddText) const if (pOL!=nullptr) { pRet=pRect; bInsTail = false; } if (pOL==nullptr) pOL=pRect->GetSubList(); if (pOL!=nullptr) { pRet=pRect; bInsRect = false; } - if (pOL==nullptr) { - SdrObjGroup* pGrp=new SdrObjGroup; + if (pOL==nullptr) + { + SdrObjGroup* pGrp = new SdrObjGroup(getSdrModelFromSdrObject()); pOL=pGrp->GetSubList(); pRet=pGrp; } @@ -747,7 +759,8 @@ void SdrCaptionObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, cons handleNegativeScale(aScale, &fRotate); // force metric to pool metric - MapUnit eMapUnit = pModel->GetItemPool().GetMetric(0); + MapUnit eMapUnit(getSdrModelFromSdrObject().GetItemPool().GetMetric(0)); + if(eMapUnit != MapUnit::Map100thMM) { switch(eMapUnit) @@ -772,7 +785,7 @@ void SdrCaptionObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, cons } // if anchor is used, make position relative to it - if( pModel->IsWriter() ) + if(getSdrModelFromSdrObject().IsWriter()) { if(GetAnchorPos().X() || GetAnchorPos().Y()) { |