sw/inc/fldbas.hxx | 8 ++------ sw/inc/format.hxx | 1 + sw/source/core/attr/format.cxx | 5 +++++ sw/source/core/docnode/ndsect.cxx | 8 ++------ sw/source/core/docnode/section.cxx | 3 +-- sw/source/core/fields/fldbas.cxx | 12 ++++++++++++ sw/source/core/tox/tox.cxx | 5 ++--- sw/source/core/txtnode/atrfld.cxx | 5 ++--- sw/source/core/undo/undobj1.cxx | 5 +---- sw/source/core/undo/undraw.cxx | 30 ++++++++---------------------- sw/source/core/undo/untbl.cxx | 2 +- sw/source/core/view/viewsh.cxx | 11 +++-------- 12 files changed, 40 insertions(+), 55 deletions(-)
New commits: commit 4839756fcb381e37f7c4cc65e392d772b325c8b4 Author: Bjoern Michaelsen <[email protected]> AuthorDate: Mon Nov 2 12:18:46 2020 +0100 Commit: Bjoern Michaelsen <[email protected]> CommitDate: Mon Nov 2 15:06:04 2020 +0100 SwFieldType: ModifyNotification no more ... Change-Id: Idb6c0a6cca5df729037067f6def5594eed2cca19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105178 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <[email protected]> diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index 68cd955f97c0..82461033fe1b 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -271,7 +271,8 @@ public: SwFieldIds Which() const { return m_nWhich; } - inline void UpdateFields() const; + void UpdateFields() const; + void PrintHiddenPara(); virtual void dumpAsXml(xmlTextWriterPtr pWriter) const; SwFormatField* FindFormatForField(const SwField*) const; SwFormatField* FindFormatForPostItId(sal_uInt32 nPostItId) const; @@ -282,11 +283,6 @@ public: void GatherFields(std::vector<SwFormatField*>& rvFormatFields, bool bCollectOnlyInDocNodes=true) const; }; -inline void SwFieldType::UpdateFields() const -{ - const_cast<SwFieldType*>(this)->ModifyNotification( nullptr, nullptr ); -} - /** Base class of all fields. Type of field is queried via Which. Expanded content of field is queried via ExpandField(). */ diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx index ce63d378f3fd..2a8da69042cb 100644 --- a/sw/source/core/fields/fldbas.cxx +++ b/sw/source/core/fields/fldbas.cxx @@ -40,6 +40,7 @@ #include <authfld.hxx> #include <calbck.hxx> #include <viewsh.hxx> +#include <hints.hxx> using namespace ::com::sun::star; using namespace nsSwDocInfoSubType; @@ -144,6 +145,17 @@ void SwFieldType::PutValue( const uno::Any& , sal_uInt16 ) { } +void SwFieldType::UpdateFields() const +{ + const_cast<SwFieldType*>(this)->SwClientNotify(*this, sw::LegacyModifyHint(nullptr, nullptr)); +} + +void SwFieldType::PrintHiddenPara() +{ + const SwMsgPoolItem aHint(RES_HIDDENPARA_PRINT); + SwClientNotify(*this, sw::LegacyModifyHint(&aHint, nullptr)); +} + void SwFieldType::dumpAsXml(xmlTextWriterPtr pWriter) const { std::vector<SwFormatField*> vFields; diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index cac98fffaace..95129e6b90dc 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -940,10 +940,8 @@ void SwViewShell::SetEmptyDbFieldHidesPara(bool bEmptyDbFieldHidesPara) GetDoc()->getIDocumentState().SetModified(); for (auto const & pFieldType : *GetDoc()->getIDocumentFieldsAccess().GetFieldTypes()) { - if (pFieldType->Which() == SwFieldIds::Database) - { - pFieldType->ModifyNotification(nullptr, nullptr); - } + if(pFieldType->Which() == SwFieldIds::Database) + pFieldType->UpdateFields(); } EndAction(); } @@ -2172,10 +2170,7 @@ void SwViewShell::ImplApplyViewOptions( const SwViewOption &rOpt ) SwHiddenParaFieldType* pFieldType = static_cast<SwHiddenParaFieldType*>(GetDoc()-> getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::HiddenPara)); if( pFieldType && pFieldType->HasWriterListeners() ) - { - SwMsgPoolItem aHint( RES_HIDDENPARA_PRINT ); - pFieldType->ModifyNotification( &aHint, nullptr); - } + pFieldType->PrintHiddenPara(); bReformat = true; } if ( !bReformat && mpOpt->IsShowHiddenChar() != rOpt.IsShowHiddenChar() ) commit d0292dd0a3bd241ab073bea6f5a985b8be154d78 Author: Bjoern Michaelsen <[email protected]> AuthorDate: Mon Nov 2 10:41:44 2020 +0100 Commit: Bjoern Michaelsen <[email protected]> CommitDate: Mon Nov 2 15:05:55 2020 +0100 sw/source/core/undo: ModifyNotification no more ... - also: introduce SwFormat::RemoveAllUnos() as a member function, because that is where this belongs ... - ... and then also use it elsewhere if possible. Change-Id: I9cc073a41ef1077429f648309806fa433bdcec99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105173 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <[email protected]> diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx index de607a382da3..d04799bcf7fd 100644 --- a/sw/inc/format.hxx +++ b/sw/inc/format.hxx @@ -250,6 +250,7 @@ public: // Access to DrawingLayer FillAttributes in a preprocessed form for primitive usage virtual drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const; virtual bool supportsFullDrawingLayerFillAttributeSet() const; + void RemoveAllUnos(); }; #endif // INCLUDED_SW_INC_FORMAT_HXX diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx index 6713ae28f065..22430f84b125 100644 --- a/sw/source/core/attr/format.cxx +++ b/sw/source/core/attr/format.cxx @@ -779,4 +779,9 @@ drawinglayer::attribute::SdrAllFillAttributesHelperPtr SwFormat::getSdrAllFillAt return drawinglayer::attribute::SdrAllFillAttributesHelperPtr(); } +void SwFormat::RemoveAllUnos() +{ + SwPtrMsgPoolItem aMsgHint(RES_REMOVE_UNO_OBJECT, this); + SwClientNotify(*this, sw::LegacyModifyHint(&aMsgHint, &aMsgHint)); +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/docnode/ndsect.cxx b/sw/source/core/docnode/ndsect.cxx index 415334221392..19ab45f846db 100644 --- a/sw/source/core/docnode/ndsect.cxx +++ b/sw/source/core/docnode/ndsect.cxx @@ -561,10 +561,7 @@ void SwDoc::DelSectionFormat( SwSectionFormat *pFormat, bool bDelNodes ) return ; } - { - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, pFormat ); - pFormat->ModifyNotification( &aMsgHint, &aMsgHint ); - } + pFormat->RemoveAllUnos(); // A ClearRedo could result in a recursive call of this function and delete some section // formats, thus the position inside the SectionFormatTable could have changed @@ -1309,8 +1306,7 @@ void SwSectionNode::NodesArrChgd() if( !rNds.IsDocNodes() ) { - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, pFormat ); - pFormat->ModifyNotification( &aMsgHint, &aMsgHint ); + pFormat->RemoveAllUnos(); } pFormat->LockModify(); diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx index 55bc3aee8fe7..430e696c8ab1 100644 --- a/sw/source/core/docnode/section.cxx +++ b/sw/source/core/docnode/section.cxx @@ -258,8 +258,7 @@ SwSection::~SwSection() } // If the Section is the last Client in the Format we can delete it - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, pFormat ); - lcl_SwClientNotify(*pFormat, &aMsgHint); + pFormat->RemoveAllUnos(); if( !pFormat->HasWriterListeners() ) { // Do not add to the Undo. This should've happened earlier. diff --git a/sw/source/core/tox/tox.cxx b/sw/source/core/tox/tox.cxx index 0f9526488cb8..c94aa5dde16a 100644 --- a/sw/source/core/tox/tox.cxx +++ b/sw/source/core/tox/tox.cxx @@ -185,9 +185,8 @@ void SwTOXMark::Notify(const SfxHint& rHint) void SwTOXMark::InvalidateTOXMark() { - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, - &static_cast<SwModify&>(*this) ); // cast to base class! - NotifyClients(&aMsgHint, &aMsgHint); + const SwPtrMsgPoolItem aMsgHint(RES_REMOVE_UNO_OBJECT, &static_cast<SwModify&>(*this)); + CallSwClientNotify(sw::LegacyModifyHint(&aMsgHint, &aMsgHint)); } OUString SwTOXMark::GetText(SwRootFrame const*const pLayout) const diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index da3ef375c304..19114a8f4712 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -215,9 +215,8 @@ SwFormatField* SwFormatField::Clone( SfxItemPool* ) const void SwFormatField::InvalidateField() { - SwPtrMsgPoolItem const item(RES_REMOVE_UNO_OBJECT, - &static_cast<SwModify&>(*this)); // cast to base class (void*) - CallSwClientNotify(sw::LegacyModifyHint{ &item, &item }); + const SwPtrMsgPoolItem aItem(RES_REMOVE_UNO_OBJECT, &static_cast<SwModify&>(*this)); + CallSwClientNotify(sw::LegacyModifyHint{ &aItem, &aItem }); } void SwFormatField::SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) diff --git a/sw/source/core/undo/undobj1.cxx b/sw/source/core/undo/undobj1.cxx index 7e9233759240..15801bca46e2 100644 --- a/sw/source/core/undo/undobj1.cxx +++ b/sw/source/core/undo/undobj1.cxx @@ -202,10 +202,7 @@ void SwUndoFlyBase::DelFly( SwDoc* pDoc ) } // all Uno objects should now log themselves off - { - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, m_pFrameFormat ); - m_pFrameFormat->ModifyNotification( &aMsgHint, &aMsgHint ); - } + m_pFrameFormat->RemoveAllUnos(); if ( RES_DRAWFRMFMT != m_pFrameFormat->Which() ) { diff --git a/sw/source/core/undo/undraw.cxx b/sw/source/core/undo/undraw.cxx index 9ed78bd680a3..1a2ad32bb0e8 100644 --- a/sw/source/core/undo/undraw.cxx +++ b/sw/source/core/undo/undraw.cxx @@ -96,12 +96,6 @@ OUString SwSdrUndo::GetComment() const return m_pSdrUndo->GetComment(); } -static void lcl_SendRemoveToUno( SwFormat& rFormat ) -{ - SwPtrMsgPoolItem aMsgHint( RES_REMOVE_UNO_OBJECT, &rFormat ); - rFormat.ModifyNotification( &aMsgHint, &aMsgHint ); -} - static void lcl_SaveAnchor( SwFrameFormat* pFormat, sal_uLong& rNodePos ) { const SwFormatAnchor& rAnchor = pFormat->GetAnchor(); @@ -205,8 +199,7 @@ void SwUndoDrawGroup::UndoImpl(::sw::UndoRedoContext &) ::lcl_SaveAnchor( pFormat, m_pObjArray[0].nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); // remove from array SwDoc* pDoc = pFormat->GetDoc(); @@ -259,8 +252,7 @@ void SwUndoDrawGroup::RedoImpl(::sw::UndoRedoContext &) ::lcl_SaveAnchor( rSave.pFormat, rSave.nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *rSave.pFormat ); + rSave.pFormat->RemoveAllUnos(); rFlyFormats.erase( std::find( rFlyFormats.begin(), rFlyFormats.end(), rSave.pFormat )); } @@ -291,8 +283,7 @@ void SwUndoDrawGroup::AddObj( sal_uInt16 nPos, SwDrawFrameFormat* pFormat, SdrOb rSave.pFormat = pFormat; ::lcl_SaveAnchor( pFormat, rSave.nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); // remove from array SwFrameFormats& rFlyFormats = *pFormat->GetDoc()->GetSpzFrameFormats(); @@ -323,8 +314,7 @@ SwUndoDrawUnGroup::SwUndoDrawUnGroup( SdrObjGroup* pObj, const SwDoc& rDoc ) ::lcl_SaveAnchor( pFormat, m_pObjArray[0].nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); // remove from array SwFrameFormats& rFlyFormats = *pFormat->GetDoc()->GetSpzFrameFormats(); @@ -357,8 +347,7 @@ void SwUndoDrawUnGroup::UndoImpl(::sw::UndoRedoContext & rContext) ::lcl_SaveAnchor( rSave.pFormat, rSave.nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *rSave.pFormat ); + rSave.pFormat->RemoveAllUnos(); rFlyFormats.erase( std::find( rFlyFormats.begin(), rFlyFormats.end(), rSave.pFormat )); } @@ -392,8 +381,7 @@ void SwUndoDrawUnGroup::RedoImpl(::sw::UndoRedoContext &) ::lcl_SaveAnchor( pFormat, m_pObjArray[0].nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); // remove from array SwDoc* pDoc = pFormat->GetDoc(); @@ -529,8 +517,7 @@ void SwUndoDrawDelete::RedoImpl(::sw::UndoRedoContext & rContext) pContact->Changed( *pObj, SdrUserCallType::Delete, pObj->GetLastBoundRect() ); pObj->SetUserCall( nullptr ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); rFlyFormats.erase( std::find( rFlyFormats.begin(), rFlyFormats.end(), pFormat )); ::lcl_SaveAnchor( pFormat, rSave.nNodeIdx ); @@ -545,8 +532,7 @@ void SwUndoDrawDelete::AddObj( SwDrawFrameFormat* pFormat, rSave.pFormat = pFormat; ::lcl_SaveAnchor( pFormat, rSave.nNodeIdx ); - // notify UNO objects to decouple - ::lcl_SendRemoveToUno( *pFormat ); + pFormat->RemoveAllUnos(); // remove from array SwDoc* pDoc = pFormat->GetDoc(); diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index 21706baa9daa..8710d3148a5a 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -1117,7 +1117,7 @@ void SaveTable::NewFrameFormat( const SwTableLine* pTableLn, const SwTableBox* p const SfxPoolItem& rOld = pOldFormat->GetFormatAttr( RES_BOXATR_FORMAT ), & rNew = pFormat->GetFormatAttr( RES_BOXATR_FORMAT ); if( rOld != rNew ) - pFormat->ModifyNotification( &rOld, &rNew ); + pFormat->SwClientNotify(*pFormat, sw::LegacyModifyHint(&rOld, &rNew)); } if( !pOldFormat->HasWriterListeners() ) _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
