sw/source/core/edit/edfld.cxx | 10 ++-------- sw/source/core/fields/ddetbl.cxx | 6 +++++- sw/source/core/txtnode/atrfld.cxx | 6 ++++-- 3 files changed, 11 insertions(+), 11 deletions(-)
New commits: commit 30b69db070131190454342ce57c25383edf36f04 Author: Bjoern Michaelsen <bjoern.michael...@libreoffice.org> AuthorDate: Fri Nov 20 01:30:23 2020 +0100 Commit: Bjoern Michaelsen <bjoern.michael...@libreoffice.org> CommitDate: Sat Nov 21 16:23:13 2020 +0100 SwEditShell: remove SwIterator hack Change-Id: I27facf6490241e6978c848f80acb8e07d7b91144 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106210 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michael...@libreoffice.org> diff --git a/sw/source/core/edit/edfld.cxx b/sw/source/core/edit/edfld.cxx index a897232adcd7..c83f442b7160 100644 --- a/sw/source/core/edit/edfld.cxx +++ b/sw/source/core/edit/edfld.cxx @@ -130,14 +130,8 @@ void SwEditShell::FieldToText( SwFieldType const * pType ) StartUndo( SwUndoId::DELETE ); Push(); SwPaM* pPaM = GetCursor(); - // TODO: this is really hackish - SwFieldHint aHint(pPaM, GetLayout()); - SwIterator<SwClient,SwFieldType> aIter(*pType); - for( SwClient* pClient = aIter.First(); pClient; pClient = aIter.Next() ) - { - pPaM->DeleteMark(); - pClient->SwClientNotifyCall( *pType, aHint ); - } + const SwFieldHint aHint(pPaM, GetLayout()); + CallSwClientNotify(aHint); Pop(PopMode::DeleteCurrent); EndAllAction(); diff --git a/sw/source/core/fields/ddetbl.cxx b/sw/source/core/fields/ddetbl.cxx index 5e7f3f7e5023..53f6c2c3f7e7 100644 --- a/sw/source/core/fields/ddetbl.cxx +++ b/sw/source/core/fields/ddetbl.cxx @@ -31,6 +31,7 @@ #include <swtblfmt.hxx> #include <fieldhint.hxx> #include <osl/diagnose.h> +#include <pam.hxx> /// Ctor moves all lines/boxes from a SwTable into itself. /// Afterwards the SwTable is empty and must be deleted. @@ -92,9 +93,12 @@ void SwDDETable::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ) void SwDDETable::SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) { SwClient::SwClientNotify(rModify, rHint); - if(dynamic_cast<const SwFieldHint*>(&rHint)) + if(auto pFieldHint = dynamic_cast<const SwFieldHint*>(&rHint)) + { + pFieldHint->m_pPaM->DeleteMark(); // TODO: this is really hackish // replace DDETable by real table NoDDETable(); + } else if(const auto pLinkAnchorHint = dynamic_cast<const sw::LinkAnchorSearchHint*>(&rHint)) { if(pLinkAnchorHint->m_rpFoundNode) diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index 23363c6f3e3b..aa4dab94b8e5 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -224,11 +224,13 @@ void SwFormatField::SwClientNotify( const SwModify& rModify, const SfxHint& rHin SwClient::SwClientNotify(rModify, rHint); if (const auto pFieldHint = dynamic_cast<const SwFieldHint*>( &rHint )) { + // replace field content by text + SwPaM* pPaM = pFieldHint->m_pPaM; + pPaM->DeleteMark(); // TODO: this is really hackish + if( !mpTextField ) return; - // replace field content by text - SwPaM* pPaM = pFieldHint->m_pPaM; SwDoc& rDoc = pPaM->GetDoc(); const SwTextNode& rTextNode = mpTextField->GetTextNode(); pPaM->GetPoint()->nNode = rTextNode; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits