[Libreoffice-commits] core.git: sw/source
Bjoern Michaelsen (via logerrit)
logerrit at kemper.freedesktop.org
Sat Mar 14 17:44:34 UTC 2020
sw/source/core/doc/doc.cxx | 40 ++++++++++++----------------------------
1 file changed, 12 insertions(+), 28 deletions(-)
New commits:
commit 913a281eee9ede04aa37af5309e1d4106a49d592
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Sat Mar 14 15:27:30 2020 +0100
Commit: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Sat Mar 14 18:43:58 2020 +0100
sw_GetPostIts(): SwIterator no more ...
Change-Id: I4a8465e2109b3703d0491aaf0578b61e8c00eb6b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90490
Tested-by: Jenkins
Reviewed-by: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index ad27eafd802f..26e47a48725f 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -511,39 +511,23 @@ sal_uInt16 PostItField_::GetPageNo(
return 0;
}
-bool sw_GetPostIts(
- IDocumentFieldsAccess const * pIDFA,
- SetGetExpFields * pSrtLst )
+bool sw_GetPostIts(IDocumentFieldsAccess const* pIDFA, SetGetExpFields* pSrtLst)
{
- bool bHasPostIts = false;
-
- SwFieldType* pFieldType = pIDFA->GetSysFieldType( SwFieldIds::Postit );
+ SwFieldType* pFieldType = pIDFA->GetSysFieldType(SwFieldIds::Postit);
assert(pFieldType);
- if( pFieldType->HasWriterListeners() )
- {
- // Found modify object; insert all fields into the array
- SwIterator<SwFormatField,SwFieldType> aIter( *pFieldType );
- for( SwFormatField* pField = aIter.First(); pField; pField = aIter.Next() )
+ std::vector<SwFormatField*> vFields;
+ pFieldType->GatherFields(vFields);
+ if(pSrtLst)
+ for(auto pField: vFields)
{
- const SwTextField* pTextField;
- if( nullptr != ( pTextField = pField->GetTextField() ) &&
- pTextField->GetTextNode().GetNodes().IsDocNodes() )
- {
- bHasPostIts = true;
- if (pSrtLst)
- {
- SwNodeIndex aIdx( pTextField->GetTextNode() );
- std::unique_ptr<PostItField_> pNew(new PostItField_( aIdx, pTextField ));
- pSrtLst->insert( std::move(pNew) );
- }
- else
- break; // we just wanted to check for the existence of postits ...
- }
- }
- }
+ auto pTextField = pField->GetTextField();
+ SwNodeIndex aIdx(pTextField->GetTextNode());
+ std::unique_ptr<PostItField_> pNew(new PostItField_(aIdx, pTextField));
+ pSrtLst->insert(std::move(pNew));
- return bHasPostIts;
+ }
+ return vFields.size()>0;
}
static void lcl_FormatPostIt(
More information about the Libreoffice-commits
mailing list