diff options
Diffstat (limited to 'svx/source/svdraw/svdobj.cxx')
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 03f9f0f95739..6ea7dfe83839 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -868,6 +868,40 @@ OUString SdrObject::GetDescription() const return OUString(); } +void SdrObject::SetDecorative(bool const isDecorative) +{ + ImpForcePlusData(); + + if (m_pPlusData->isDecorative == isDecorative) + { + return; + } + + if (getSdrModelFromSdrObject().IsUndoEnabled()) + { + std::unique_ptr<SdrUndoAction> pUndoAction( + SdrUndoFactory::CreateUndoObjectDecorative( + *this, m_pPlusData->isDecorative)); + getSdrModelFromSdrObject().BegUndo(pUndoAction->GetComment()); + getSdrModelFromSdrObject().AddUndo(std::move(pUndoAction)); + } + + m_pPlusData->isDecorative = isDecorative; + + if (getSdrModelFromSdrObject().IsUndoEnabled()) + { + getSdrModelFromSdrObject().EndUndo(); + } + + SetChanged(); + BroadcastObjectChange(); +} + +bool SdrObject::IsDecorative() const +{ + return m_pPlusData == nullptr ? false : m_pPlusData->isDecorative; +} + sal_uInt32 SdrObject::GetOrdNum() const { if (SdrObjList* pParentList = getParentSdrObjListFromSdrObject()) |