diff options
author | Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org> | 2020-03-15 14:01:40 +0100 |
---|---|---|
committer | Björn Michaelsen <bjoern.michaelsen@libreoffice.org> | 2020-03-15 15:36:20 +0100 |
commit | eb17993e235e6cec9342a77756851992295da9db (patch) | |
tree | acee913eace1196cf458030462e50a8a7f681919 /sw | |
parent | 87c2d3a3d9d91c18ff8c32760a3c34a99c629c1a (diff) |
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.michaelsen@libreoffice.org>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/fields/expfld.cxx | 38 |
1 files changed, 16 insertions, 22 deletions
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(); } |