Rebased ref, commits from common ancestor:
commit 134d681f56f9e0c047c8f4fbf136e7accf8a7ef6
Author: Andras Timar <[email protected]>
AuthorDate: Thu Nov 21 09:37:15 2024 +0100
Commit: Andras Timar <[email protected]>
CommitDate: Thu Nov 21 11:04:46 2024 +0100
docx: export empty GrabBag elements as self-closing xml tags - 2
In 6cb711645b8d8f3cee0d3454e193cc7bf1cad305 the condition was not
good, because there is a special element called "attributes" which
is not a child element but contains attributes of the current element.
In the condition we should check for 0 elements that are not
"attributes".
Change-Id: I1d6995e13f288902c1cce85ac3b7d4e0da213df8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176907
Tested-by: Jenkins CollaboraOffice <[email protected]>
Reviewed-by: Miklos Vajna <[email protected]>
(cherry picked from commit ade846aa29a8dc06a12032702a4dae2158581e89)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176912
Reviewed-by: Andras Timar <[email protected]>
Tested-by: Andras Timar <[email protected]>
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx
b/sw/source/filter/ww8/docxattributeoutput.cxx
index b0026f53a4c0..8373c0c88f38 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -3497,6 +3497,7 @@ void lclProcessRecursiveGrabBag(sal_Int32 aElementId,
const css::uno::Sequence<c
{
css::uno::Sequence<css::beans::PropertyValue> aAttributes;
rtl::Reference<FastAttributeList> pAttributes =
FastSerializerHelper::createAttrList();
+ sal_Int32 nElements = 0;
for (const auto& rElement : rElements)
{
@@ -3504,6 +3505,10 @@ void lclProcessRecursiveGrabBag(sal_Int32 aElementId,
const css::uno::Sequence<c
{
rElement.Value >>= aAttributes;
}
+ else
+ {
+ ++nElements;
+ }
}
for (const auto& rAttribute : std::as_const(aAttributes))
@@ -3525,7 +3530,7 @@ void lclProcessRecursiveGrabBag(sal_Int32 aElementId,
const css::uno::Sequence<c
pAttributes->add(*aSubElementId, aValue);
}
- if (rElements.size() == 0)
+ if (nElements == 0)
{
pSerializer->singleElement(aElementId, pAttributes);
}