diff options
Diffstat (limited to 'svx/source/svdraw/svdoattr.cxx')
-rw-r--r-- | svx/source/svdraw/svdoattr.cxx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/svx/source/svdraw/svdoattr.cxx b/svx/source/svdraw/svdoattr.cxx index f33a47e63ee5..1f118f838f84 100644 --- a/svx/source/svdraw/svdoattr.cxx +++ b/svx/source/svdraw/svdoattr.cxx @@ -80,8 +80,7 @@ sdr::properties::BaseProperties* SdrAttrObj::CreateObjectSpecificProperties() } -SdrAttrObj::SdrAttrObj(SdrModel& rSdrModel) -: SdrObject(rSdrModel) +SdrAttrObj::SdrAttrObj() { } @@ -100,7 +99,26 @@ const tools::Rectangle& SdrAttrObj::GetSnapRect() const return maSnapRect; } +void SdrAttrObj::SetModel(SdrModel* pNewModel) +{ + SdrModel* pOldModel = pModel; + + // test for correct pool in ItemSet; move to new pool if necessary + if(pNewModel && &GetObjectItemPool() != &pNewModel->GetItemPool()) + { + MigrateItemPool(&GetObjectItemPool(), &pNewModel->GetItemPool(), pNewModel); + } + + // call parent + SdrObject::SetModel(pNewModel); + + // modify properties + GetProperties().SetModel(pOldModel, pNewModel); +} + + // syntactical sugar for ItemSet accesses + void SdrAttrObj::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint) { bool bDataChg(SfxHintId::DataChanged == rHint.GetId()); |