summaryrefslogtreecommitdiff
path: root/sw/source/filter
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2021-03-26 16:28:03 +0100
committerLászló Németh <nemeth@numbertext.org>2021-03-28 14:49:08 +0200
commite11c51eefe8c3210cef2b5850f401ba67a401d01 (patch)
treeda3c189d933082328da69654e0e8fd3ae57e9d7b /sw/source/filter
parent27377e3db2792d1bf6eb733492462701defdeffc (diff)
tdf#95806 tdf#125877 tdf#141172 DOCX: fix tables in footnotes
and endnotes by converting them to floating tables during the import, and removing floating at the DOCX export. Writer core doesn't support non-floating tables in footnotes and endnotes officially, (flowfrm:cxx: "Tables in footnotes are not truly supported"), so their DOCX import resulted serious problems: – missing table paint (tdf#95806); – table loss during saving to ODT (tdf#125877); – table loss during copying them or their footnotes and endnotes in the document (this resulted the regression of the optimized footnote and endnote import: tdf#141172); – table loss during changing the order of the chapters in the Navigator. Change-Id: Ife8af41936ae3ab003a3a9ad33b98c1d813e9c82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113162 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/source/filter')
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 4b9c72829c3b..f4688e5f6a01 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -3982,7 +3982,10 @@ void DocxAttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t
m_pSerializer->singleElementNS(XML_w, XML_tblLook, pAttributeList);
}
- else if (rGrabBagElement.first == "TablePosition" )
+ else if (rGrabBagElement.first == "TablePosition" &&
+ // skip empty table position (tables in footnotes converted to
+ // floating tables temporarily, don't export this)
+ rGrabBagElement.second != uno::Any() )
{
rtl::Reference<FastAttributeList> attrListTablePos = FastSerializerHelper::createAttrList( );
const uno::Sequence<beans::PropertyValue> aTablePosition = rGrabBagElement.second.get<uno::Sequence<beans::PropertyValue> >();