[Libreoffice-commits] core.git: oox/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Jul 19 15:44:19 UTC 2018


 oox/source/core/xmlfilterbase.cxx |   19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

New commits:
commit 049d436eaad05a3fbd2e64a558dfef3c03ce7448
Author:     László Németh <nemeth at numbertext.org>
AuthorDate: Thu Jul 19 15:05:45 2018 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Thu Jul 19 17:43:56 2018 +0200

    use sequenceToContainer and simplify iterator usage
    
    clean up commit 9a5c56a9c4e04589b0a6bb710573922e459d9685
    (OOXML import/export of setting "Open as read-only"),
    as suggested by Eike Rathke.
    
    Change-Id: I2a176261fa729038b5be4649b6a53d0bcc35840d
    Reviewed-on: https://gerrit.libreoffice.org/57726
    Tested-by: Jenkins
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 5168d81fb7fb..2121716dad4e 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -753,30 +753,23 @@ static void
 writeCustomProperties( XmlFilterBase& rSelf, const Reference< XDocumentProperties >& xProperties, bool bSecurityOptOpenReadOnly )
 {
     uno::Reference<beans::XPropertyAccess> xUserDefinedProperties( xProperties->getUserDefinedProperties(), uno::UNO_QUERY );
-    Sequence< PropertyValue > aprop( xUserDefinedProperties->getPropertyValues() );
-    sal_Int32 nbCustomProperties = aprop.getLength();
+    auto aprop = comphelper::sequenceToContainer< std::vector<beans::PropertyValue> >(xUserDefinedProperties->getPropertyValues());
+    sal_Int32 nbCustomProperties = aprop.size();
     // tdf#89791 : if no custom properties, no need to add docProps/custom.x
     // tdf#107690: except the case of read-only documents, because that
     // is handled by the _MarkAsFinal custom property in MSO.
     if (!nbCustomProperties && !bSecurityOptOpenReadOnly)
         return;
 
-    std::vector<PropertyValue> aprop2;
-    for ( sal_Int32 n = 0; n < nbCustomProperties; ++n )
-        aprop2.push_back(aprop[n]);
-
     if (bSecurityOptOpenReadOnly)
     {
         PropertyValue aPropertyValue;
         // MSO custom property for read-only documents
         aPropertyValue.Name = "_MarkAsFinal";
         aPropertyValue.Value <<= true;
-        aprop2.push_back(aPropertyValue);
+        aprop.push_back(aPropertyValue);
     }
 
-    if (!aprop2.size())
-        return;
-
     rSelf.addRelation(
             "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",
             "docProps/custom.xml" );
@@ -788,8 +781,7 @@ writeCustomProperties( XmlFilterBase& rSelf, const Reference< XDocumentPropertie
             FSNS( XML_xmlns, XML_vt ),  OUStringToOString(rSelf.getNamespaceURL(OOX_NS(officeDocPropsVT)), RTL_TEXTENCODING_UTF8).getStr(),
             FSEND );
 
-    auto aIt = aprop2.begin();
-    for ( size_t n = 0; n < aprop2.size(); ++n )
+    for (auto aIt = aprop.begin(); aIt != aprop.end(); ++aIt)
     {
         if ( !aIt->Name.isEmpty() )
         {
@@ -797,7 +789,7 @@ writeCustomProperties( XmlFilterBase& rSelf, const Reference< XDocumentPropertie
             // pid starts from 2 not from 1 as MS supports pid from 2
             pAppProps->startElement( XML_property ,
                 XML_fmtid,  "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",
-                XML_pid,    OString::number(n + 2),
+                XML_pid,    OString::number((aIt - aprop.begin()) + 2),
                 XML_name,   aName,
                 FSEND);
 
@@ -848,7 +840,6 @@ writeCustomProperties( XmlFilterBase& rSelf, const Reference< XDocumentPropertie
             }
             pAppProps->endElement( XML_property );
         }
-        ++aIt;
     }
     pAppProps->endElement( XML_Properties );
 }


More information about the Libreoffice-commits mailing list