sw/source/core/fields/expfld.cxx | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-)
New commits: commit eb17993e235e6cec9342a77756851992295da9db Author: Bjoern Michaelsen <bjoern.michael...@libreoffice.org> AuthorDate: Sun Mar 15 14:01:40 2020 +0100 Commit: Björn Michaelsen <bjoern.michael...@libreoffice.org> CommitDate: Sun Mar 15 15:36:20 2020 +0100 expfld.cxx: SwIterator no more ... Change-Id: Ibf84841f5a74c0420c8fdb544e674d883af9b667 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90522 Tested-by: Jenkins Reviewed-by: Björn Michaelsen <bjoern.michael...@libreoffice.org> diff --git a/sw/source/core/fields/expfld.cxx b/sw/source/core/fields/expfld.cxx index efeca5aff94b..2872101dcada 100644 --- a/sw/source/core/fields/expfld.cxx +++ b/sw/source/core/fields/expfld.cxx @@ -553,9 +553,10 @@ void SwSetExpFieldType::Modify( const SfxPoolItem*, const SfxPoolItem* ) void SwSetExpFieldType::SetSeqFormat(sal_uLong nFormat) { - SwIterator<SwFormatField,SwFieldType> aIter(*this); - for( SwFormatField* pFormatField = aIter.First(); pFormatField; pFormatField = aIter.Next() ) - pFormatField->GetField()->ChangeFormat( nFormat ); + std::vector<SwFormatField*> vFields; + GatherFields(vFields, false); + for(auto pFormatField: vFields) + pFormatField->GetField()->ChangeFormat(nFormat); } sal_uLong SwSetExpFieldType::GetSeqFormat() const @@ -563,8 +564,9 @@ sal_uLong SwSetExpFieldType::GetSeqFormat() const if( !HasWriterListeners() ) return SVX_NUM_ARABIC; - const SwField *pField = SwIterator<SwFormatField,SwSetExpFieldType>(*this).First()->GetField(); - return pField->GetFormat(); + std::vector<SwFormatField*> vFields; + GatherFields(vFields, false); + return vFields.front()->GetField()->GetFormat(); } void SwSetExpFieldType::SetSeqRefNo( SwSetExpField& rField ) @@ -575,17 +577,11 @@ void SwSetExpFieldType::SetSeqRefNo( SwSetExpField& rField ) std::vector<sal_uInt16> aArr; // check if number is already used and if a new one needs to be created - SwIterator<SwFormatField,SwFieldType> aIter( *this ); - for( SwFormatField* pF = aIter.First(); pF; pF = aIter.Next() ) - { - const SwTextNode* pNd; - if( pF->GetField() != &rField && pF->GetTextField() && - nullptr != ( pNd = pF->GetTextField()->GetpTextNode() ) && - pNd->GetNodes().IsDocNodes() ) - { - InsertSort( aArr, static_cast<SwSetExpField*>(pF->GetField())->GetSeqNumber() ); - } - } + std::vector<SwFormatField*> vFields; + GatherFields(vFields); + for(SwFormatField* pF: vFields) + if(pF->GetField() != &rField) + InsertSort(aArr, static_cast<SwSetExpField*>(pF->GetField())->GetSeqNumber()); // check first if number already exists sal_uInt16 nNum = rField.GetSeqNumber(); @@ -622,13 +618,12 @@ size_t SwSetExpFieldType::GetSeqFieldList(SwSeqFieldList& rList, IDocumentRedlineAccess const& rIDRA(GetDoc()->getIDocumentRedlineAccess()); - SwIterator<SwFormatField,SwFieldType> aIter( *this ); - for( SwFormatField* pF = aIter.First(); pF; pF = aIter.Next() ) + std::vector<SwFormatField*> vFields; + GatherFields(vFields); + for(SwFormatField* pF: vFields) { const SwTextNode* pNd; - if( pF->GetTextField() && - nullptr != ( pNd = pF->GetTextField()->GetpTextNode() ) && - pNd->GetNodes().IsDocNodes() + if( nullptr != ( pNd = pF->GetTextField()->GetpTextNode() ) && (!pLayout || !pLayout->IsHideRedlines() || !sw::IsFieldDeletedInModel(rIDRA, *pF->GetTextField()))) { @@ -638,7 +633,6 @@ size_t SwSetExpFieldType::GetSeqFieldList(SwSeqFieldList& rList, rList.InsertSort( aNew ); } } - return rList.Count(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits