[Libreoffice-commits] core.git: sw/qa writerfilter/source
László Németh (via logerrit)
logerrit at kemper.freedesktop.org
Wed May 6 21:02:31 UTC 2020
sw/qa/extras/ooxmlexport/data/tdf122342.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 11 +++++++++++
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 15 +++++++++++++++
3 files changed, 26 insertions(+)
New commits:
commit 03c1b327b7a504c304c9f95727f9d43310d08ec1
Author: László Németh <nemeth at numbertext.org>
AuthorDate: Wed May 6 18:41:46 2020 +0200
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Wed May 6 23:01:59 2020 +0200
tdf#122342 DOCX import: fix bottom auto margin in lists
at paragraph style based numbering.
See also commit 1bf7f6a1a50ee9f24a3687240fe6ae390b905a6b
(tdf#106690 DOCX import: fix automatic spacing before/after
numbered para block).
Change-Id: I532181019ca97a86475c9bb0a1eea1c836705bab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93581
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth at numbertext.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf122342.docx b/sw/qa/extras/ooxmlexport/data/tdf122342.docx
new file mode 100644
index 000000000000..0c7ecd67a547
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf122342.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
index 37603bd407be..1baabd612269 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
@@ -180,6 +180,17 @@ DECLARE_OOXMLEXPORT_TEST(testTdf106690Cell, "tdf106690-cell.docx")
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(494), getProperty<sal_Int32>(getParagraphOfText(2, xCell->getText()), "ParaBottomMargin"));
}
+DECLARE_OOXMLEXPORT_TEST(testTdf122342, "tdf122342.docx")
+{
+ // These were 494, style based numbering rules with automatic spacing meant 0
+ // before/autospacing for all text nodes, even for ones at the start/end of
+ // a numbered text node block.
+ // TODO fix for ParaTopMargin, too.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), getProperty<sal_Int32>(getParagraph(1), "ParaBottomMargin"));
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), getProperty<sal_Int32>(getParagraph(2), "ParaBottomMargin"));
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), getProperty<sal_Int32>(getParagraph(3), "ParaBottomMargin"));
+}
+
DECLARE_OOXMLEXPORT_TEST(testTdf129575_directBefore, "tdf129575-directBefore.docx")
{
uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index bbef06695434..b538ba19f872 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1699,6 +1699,21 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con
{
m_xPreviousParagraph->setPropertyValue("ListId", uno::makeAny(listId));
}
+ else if (isNumberingViaStyle)
+ {
+ uno::Sequence<beans::PropertyValue> aPrevPropertiesSeq;
+ m_xPreviousParagraph->getPropertyValue("ParaInteropGrabBag") >>= aPrevPropertiesSeq;
+ auto aPrevProperties = comphelper::sequenceToContainer< std::vector<beans::PropertyValue> >(aPrevPropertiesSeq);
+ bool bPrevParaAutoAfter = std::any_of(aPrevProperties.begin(), aPrevProperties.end(), [](const beans::PropertyValue& rValue)
+ {
+ return rValue.Name == "ParaBottomMarginAfterAutoSpacing";
+ });
+ if (bPrevParaAutoAfter)
+ {
+ // Previous after spacing is set to auto, set previous after space to 0.
+ m_xPreviousParagraph->setPropertyValue("ParaBottomMargin", uno::makeAny(static_cast<sal_Int32>(0)));
+ }
+ }
}
if (pList->GetCurrentLevel())
{
More information about the Libreoffice-commits
mailing list