[Libreoffice-commits] core.git: sw/qa writerfilter/source
Miklos Vajna
vmiklos at collabora.co.uk
Tue Sep 19 14:19:25 UTC 2017
sw/qa/extras/ooxmlexport/data/tdf106953.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 7 +++++++
writerfilter/source/dmapper/NumberingManager.cxx | 3 +++
3 files changed, 10 insertions(+)
New commits:
commit c72a1a74b5b1064fc9cdf9994b11fce26d866e26
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Sep 19 09:17:25 2017 +0200
Related: tdf#112211 DOCX import: fix handling of missing first ind in <w:lvl>
Usually a DOCX numbering definition has multiple levels, each level
containing a <w:ind ... w:hanging="..."/> element. When this is missing,
we should default to the Word default, not to the Writer one.
This makes the DOCX version of tdf#106953 imported correctly, in
preparation of dropping the original fix that helped RTF only.
[ The DOC version of the bugdoc is still not imported correctly. ]
Change-Id: Ib7fc1de55316a73188c023665a585ac7056341f7
Reviewed-on: https://gerrit.libreoffice.org/42447
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Jenkins <ci at libreoffice.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf106953.docx b/sw/qa/extras/ooxmlexport/data/tdf106953.docx
new file mode 100644
index 000000000000..31dc0e28e42f
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf106953.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 57b41c224b84..3dd23fbf5eaf 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -845,6 +845,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf44986, "tdf44986.docx")
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators").getLength());
}
+DECLARE_OOXMLEXPORT_TEST(testTdf106953, "tdf106953.docx")
+{
+ uno::Reference<container::XIndexAccess> xRules = getProperty< uno::Reference<container::XIndexAccess> >(getStyles("NumberingStyles")->getByName("WWNum1"), "NumberingRules");
+ // This was -635, so the tab of the numbering expanded to a small value instead of matching Word's larger value.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), comphelper::SequenceAsHashMap(xRules->getByIndex(0))["FirstLineIndent"].get<sal_Int32>());
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 5da02b0004d4..2fe06c4d9508 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -304,6 +304,9 @@ uno::Sequence< beans::PropertyValue > ListLevel::GetLevelProperties( )
boost::optional<PropertyMap::Property> aProp = getProperty(rReadId);
if (aProp)
aNumberingProperties.emplace_back( getPropertyName(aProp->first), 0, aProp->second, beans::PropertyState_DIRECT_VALUE );
+ else if (rReadId == PROP_FIRST_LINE_INDENT)
+ // Writer default is -360 twips, Word default seems to be 0.
+ aNumberingProperties.emplace_back("FirstLineIndent", 0, uno::makeAny(static_cast<sal_Int32>(0)), beans::PropertyState_DIRECT_VALUE);
}
boost::optional<PropertyMap::Property> aPropFont = getProperty(PROP_CHAR_FONT_NAME);
More information about the Libreoffice-commits
mailing list