summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-10-18 09:19:50 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-10-18 08:57:33 +0000
commitc486e875de7c8e845594f5043a37ee8800865782 (patch)
tree321aa0a09cbf02b2d4a0e6a1c1e8ba7f03d27eab
parentfdd8686987ca4ee693f5f194c8eb482daa69cfef (diff)
tdf#95031 DOCX import: auto spacing inside numbering means no spacing
The WW8 import has code for this in SwWW8ImplReader::AppendTextNode(), with lots of corner-cases. Not all of that is implemented here yet, but the bullet list in the bugdoc already looks correct now. Change-Id: I9499bfa4d8d7fcc425d7b95e64987258c099f7f2 Reviewed-on: https://gerrit.libreoffice.org/29989 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf95031.docxbin0 -> 14024 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport9.cxx6
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx6
3 files changed, 12 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf95031.docx b/sw/qa/extras/ooxmlexport/data/tdf95031.docx
new file mode 100644
index 000000000000..ef082f752038
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf95031.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
index 31c9b9f7c1ff..0a637881ebbf 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
@@ -39,6 +39,12 @@ DECLARE_OOXMLEXPORT_TEST(testTdf92045, "tdf92045.docx")
CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(getRun(getParagraph(1), 1), "CharFlash"));
}
+DECLARE_OOXMLEXPORT_TEST(testTdf95031, "tdf95031.docx")
+{
+ // This was 494, in-numbering paragraph's automating spacing was handled as visible spacing, while it should not.
+ 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), "ParaTopMargin"));
+}
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 1933b42d892d..b93a96511449 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -613,6 +613,9 @@ void DomainMapper::lcl_attribute(Id nName, Value & val)
}
if (nIntValue) // If auto spacing is set, then only store set value in InteropGrabBag
{
+ if (m_pImpl->GetTopContext()->isSet(PROP_NUMBERING_RULES))
+ // Numbering is set -> auto space is 0.
+ default_spacing = 0;
m_pImpl->GetTopContext()->Insert( PROP_PARA_TOP_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(default_spacing) ) );
}
else
@@ -635,6 +638,9 @@ void DomainMapper::lcl_attribute(Id nName, Value & val)
}
if (nIntValue) // If auto spacing is set, then only store set value in InteropGrabBag
{
+ if (m_pImpl->GetTopContext()->isSet(PROP_NUMBERING_RULES))
+ // Numbering is set -> auto space is 0.
+ default_spacing = 0;
m_pImpl->GetTopContext()->Insert( PROP_PARA_BOTTOM_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(default_spacing) ) );
}
else