summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@libreoffice.org>2020-02-25 21:51:19 +0100
committerBjörn Michaelsen <bjoern.michaelsen@libreoffice.org>2020-02-26 20:56:23 +0100
commit15bb789b231fb723a679b4565e49b4decbe6d34e (patch)
tree32239ad973d85705b9e774c6f991e84a22bf8499
parentcaaf7f9651325e15ab6da4342a653b0fe6e2af3d (diff)
use GatherFields
Change-Id: Ie15add04d66458493476bcbdc9a4f4a1034575e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89487 Tested-by: Jenkins Reviewed-by: Björn Michaelsen <bjoern.michaelsen@libreoffice.org>
-rw-r--r--sw/source/core/unocore/unofield.cxx27
1 files changed, 6 insertions, 21 deletions
diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index c58b1cd936b1..064d86e78a8b 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -826,27 +826,12 @@ SwXFieldMaster::getPropertyValue(const OUString& rPropertyName)
else if(rPropertyName == UNO_NAME_DEPENDENT_TEXT_FIELDS)
{
//fill all text fields into a sequence
- std::vector<SwFormatField*> aFieldArr;
- SwIterator<SwFormatField,SwFieldType> aIter( *pType );
- SwFormatField* pField = aIter.First();
- while(pField)
- {
- if(pField->IsFieldInDoc())
- aFieldArr.push_back(pField);
- pField = aIter.Next();
- }
-
- uno::Sequence<uno::Reference <text::XDependentTextField> > aRetSeq(aFieldArr.size());
- uno::Reference<text::XDependentTextField>* pRetSeq = aRetSeq.getArray();
- for(size_t i = 0; i < aFieldArr.size(); ++i)
- {
- pField = aFieldArr[i];
- uno::Reference<text::XTextField> const xField =
- SwXTextField::CreateXTextField(m_pImpl->m_pDoc, pField);
-
- pRetSeq[i].set(xField, uno::UNO_QUERY);
- }
- aRet <<= aRetSeq;
+ std::vector<SwFormatField*> vpFields;
+ pType->GatherFields(vpFields);
+ uno::Sequence<uno::Reference <text::XDependentTextField> > aSeq(vpFields.size());
+ std::transform(vpFields.begin(), vpFields.end(), aSeq.begin(),
+ [this](SwFormatField* pF) { return uno::Reference<text::XDependentTextField>(SwXTextField::CreateXTextField(m_pImpl->m_pDoc, pF), uno::UNO_QUERY); });
+ aRet <<= aSeq;
}
else
{