diff options
author | Armin Le Grand <alg@apache.org> | 2013-10-08 15:40:15 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-10-08 21:26:47 +0100 |
commit | fdbe65e7a551e3935fc4c68145152f02e622a99d (patch) | |
tree | 5daf41c160081b731a1f2017543d4e872e87827b /sd | |
parent | CID#982700 silence coverity (diff) | |
download | core-fdbe65e7a551e3935fc4c68145152f02e622a99d.tar.gz core-fdbe65e7a551e3935fc4c68145152f02e622a99d.zip |
Resolves: #i119056# Added direct refreshes for objects dependent...
on HeaderFooterSettings
(cherry picked from commit b94437b6dfe60904f9c89608c15ed55dc3ce277d)
Change-Id: I4e21876f83fc160883c0ffdee5941ee7488e35c8
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/core/sdpage.cxx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 8e1e3395662a..18b4a25d9177 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -2719,9 +2719,56 @@ void SdPage::setHeaderFooterSettings( const sd::HeaderFooterSettings& rNewSettin } SetChanged(); + if(TRG_HasMasterPage()) { TRG_GetMasterPageDescriptorViewContact().ActionChanged(); + + // #i119056# For HeaderFooterSettings SdrObjects are used, but the properties + // used are not part of their model data, but kept in SD. This data is applied + // using a 'backdoor' on primitive creation. Thus, the normal mechanism to detect + // object changes does not work here. It is neccessary to trigger updates here + // directly. BroadcastObjectChange used for PagePreview invalidations, + // flushViewObjectContacts used to invalidate and flush all visualizations in + // edit views. + SdPage* pMasterPage = dynamic_cast< SdPage* >(&TRG_GetMasterPage()); + + if(pMasterPage) + { + SdrObject* pCandidate = 0; + + pCandidate = pMasterPage->GetPresObj( PRESOBJ_HEADER ); + + if(pCandidate) + { + pCandidate->BroadcastObjectChange(); + pCandidate->GetViewContact().flushViewObjectContacts(); + } + + pCandidate = pMasterPage->GetPresObj( PRESOBJ_DATETIME ); + + if(pCandidate) + { + pCandidate->BroadcastObjectChange(); + pCandidate->GetViewContact().flushViewObjectContacts(); + } + + pCandidate = pMasterPage->GetPresObj( PRESOBJ_FOOTER ); + + if(pCandidate) + { + pCandidate->BroadcastObjectChange(); + pCandidate->GetViewContact().flushViewObjectContacts(); + } + + pCandidate = pMasterPage->GetPresObj( PRESOBJ_SLIDENUMBER ); + + if(pCandidate) + { + pCandidate->BroadcastObjectChange(); + pCandidate->GetViewContact().flushViewObjectContacts(); + } + } } } |