sw/qa/extras/odfexport/data/tdf137199.docx |binary sw/qa/extras/odfexport/odfexport.cxx | 11 +++++++++++ xmloff/source/style/xmlnume.cxx | 19 ++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-)
New commits: commit 911383c83fcdea23f19895e6857a86521c23f448 Author: Vasily Melenchuk <vasily.melenc...@cib.de> AuthorDate: Fri May 28 09:10:35 2021 +0300 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Mon May 31 14:45:36 2021 +0200 tdf#137199: sw: convert list format string to prefix/suffix for ODF Since internally LO is able right now to use list level format strings and prefixes/suffixes only for backward compatibility, there is a need for conversion from format string (like "%1.") to prefix ("") and suffix (".") still used by ODT. Change-Id: If4b459e1b25b7f0ce511e6ac2de0824bb2c43d05 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116288 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116316 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116363 Tested-by: Thorsten Behrens <thorsten.behr...@allotropia.de> diff --git a/sw/qa/extras/odfexport/data/tdf137199.docx b/sw/qa/extras/odfexport/data/tdf137199.docx new file mode 100644 index 000000000000..25b52977beca Binary files /dev/null and b/sw/qa/extras/odfexport/data/tdf137199.docx differ diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index 321ce301fb9c..3045586f991f 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -112,6 +112,17 @@ DECLARE_ODFEXPORT_TEST(testMathObjectFlatExport, "2_MathType3.docx") CPPUNIT_ASSERT_EQUAL(OUString(" size 12{2+2=4} {}"), formula2); } +DECLARE_ODFEXPORT_TEST(testTdf137199, "tdf137199.docx") +{ + CPPUNIT_ASSERT_EQUAL(OUString(">1<"), getProperty<OUString>(getParagraph(1), "ListLabelString")); + + CPPUNIT_ASSERT_EQUAL(OUString("1)"), getProperty<OUString>(getParagraph(2), "ListLabelString")); + + CPPUNIT_ASSERT_EQUAL(OUString("HELLO1WORLD!"), getProperty<OUString>(getParagraph(3), "ListLabelString")); + + CPPUNIT_ASSERT_EQUAL(OUString("HELLO2WORLD!"), getProperty<OUString>(getParagraph(4), "ListLabelString")); +} + static void testTdf43569_CheckIfFieldParse() { { diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx index 0f5a45dc40da..b549f447eb0c 100644 --- a/xmloff/source/style/xmlnume.cxx +++ b/xmloff/source/style/xmlnume.cxx @@ -119,7 +119,24 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, { rProp.Value >>= sSuffix; } - else if( rProp.Name == "BulletChar" ) + else if (rProp.Name == "ListFormat") + { + OUString sListFormat; + rProp.Value >>= sListFormat; + + // Since we have no support for entire format string it should be converted + // to prefix and suffix. Of course, it is not so flexible as format string, + // but it is the only option + sal_Int32 nFirstReplacement = sListFormat.indexOf('%'); + sal_Int32 nLastReplacement = sListFormat.lastIndexOf('%') + 1; + if (nFirstReplacement > 0) + // Everything before first '%' will be prefix + sPrefix = sListFormat.copy(0, nFirstReplacement); + if (nLastReplacement >= 0 && nLastReplacement < sListFormat.getLength() -1 ) + // Everything beyond last '%' (+1 for follow up id) is a suffix + sSuffix = sListFormat.copy(nLastReplacement + 1); + } + else if (rProp.Name == "BulletChar") { OUString sValue; rProp.Value >>= sValue; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits