summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdobj.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw/svdobj.cxx')
-rw-r--r--svx/source/svdraw/svdobj.cxx34
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())