tdf#146346 DOCX import: fix table margins in footnotes

Paragraph of the anchoring point of the floating table
needs zero top and bottom margins, if the table was a
not floating table in the footnote originally, otherwise
docDefault (Standard) margins could result bigger vertical
spaces around the table.

Quasi regression from commit c46950fee11f5207fb8324947280cd565ae483e7
"tdf#143583 DOCX import: fix lost empty paragraphs of footnotes"
(before this commit, empty paragraphs at the end of the footnotes
were removed by accident, which hid the real problem fixed now).

See also commit e11c51eefe8c3210cef2b5850f401ba67a401d01
"tdf#95806 tdf#125877 tdf#141172 DOCX: fix tables in footnotes"
(Note: before this commit, only a single table was shown instead
of the eight tables of the eight footnotes.)

Change-Id: I4180a6f7d7c49faf0842637b23aa1c8c5680a76c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133752
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf146346.docx b/sw/qa/extras/ooxmlexport/data/tdf146346.docx
new file mode 100644
index 0000000..846a33e
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf146346.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
index c6c545b..8d7068e 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
@@ -1253,6 +1253,15 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf143583)
    assertXPath(pXml, "/w:footnotes/w:footnote[6]/w:p", 3);
}

// skip test for macOS (missing fonts?)
#if !defined(MACOSX)
DECLARE_OOXMLEXPORT_TEST(testTdf146346, "tdf146346.docx")
{
    // This was 2 (by bad docDefault vertical margins around tables in footnotes)
    CPPUNIT_ASSERT_EQUAL(1, getPages());
}
#endif

DECLARE_OOXMLEXPORT_TEST(testContSectBreakHeaderFooter, "cont-sect-break-header-footer.docx")
{
    // Load a document with a continuous section break on page 2.
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index 7b29266..80c30a5 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -1468,9 +1468,26 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
                    }
                }

                xBodyText->convertToTextFrame(rInfo.m_xStart, rInfo.m_xEnd,
                const uno::Reference< text::XTextContent >& xTextContent =
                        xBodyText->convertToTextFrame(rInfo.m_xStart, rInfo.m_xEnd,
                                              rInfo.m_aFrameProperties);

                // paragraph of the anchoring point of the floating table needs zero top and bottom
                // margins, if the table was a not floating table in the footnote, otherwise
                // docDefault margins could result bigger vertical spaces around the table
                if ( rInfo.m_bConvertToFloatingInFootnote && xTextContent.is() )
                {
                    uno::Reference<beans::XPropertySet> xParagraph(
                                    xTextContent->getAnchor(), uno::UNO_QUERY);
                    if ( xParagraph.is() )
                    {
                        xParagraph->setPropertyValue("ParaTopMargin",
                                    uno::makeAny(static_cast<sal_Int32>(0)));
                        xParagraph->setPropertyValue("ParaBottomMargin",
                                    uno::makeAny(static_cast<sal_Int32>(0)));
                    }
                }

                uno::Reference<text::XTextTablesSupplier> xTextDocument(rDM_Impl.GetTextDocument(), uno::UNO_QUERY);
                uno::Reference<container::XNameAccess> xTables = xTextDocument->getTextTables();
                for( size_t i = 0; i < aFramedRedlines.size(); i+=3)