diff options
author | Szabolcs <szabolcs450@gmail.com> | 2020-03-30 17:12:05 +0200 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2020-04-21 18:44:25 +0200 |
commit | a01bcc88af9d1ac47af64abab95f9048b4870740 (patch) | |
tree | 0c06fdaffa62060c87bb31edf38ec0abb57911a0 | |
parent | 85fa2caa8e8b28b9b3a85fc66db9645828ac7f31 (diff) |
tdf#123346 DOCX VML shape export: fix arrow marker
In some cases at import there are extra space separated
numbers at the end of the names of arrow objects.
Remove these extra numbers before they could interfere
with the choice of markers.
See commit 2d3b7a07c02c90d2d64a630ab84886ef3096edfc
(tdf#100491 fix DOCX import shape line with arrow marker).
Co_Author: Balázs Regényi
Change-Id: I2156502b0ce5cd755a731359398a40edabb603a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91375
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 68531e459e7a922319e6bfe8b7a5282ba0320182)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92535
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
-rw-r--r-- | filter/source/msfilter/escherex.cxx | 5 | ||||
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx | bin | 0 -> 12804 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport3.cxx | 12 |
3 files changed, 17 insertions, 0 deletions
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx index 0279bc6684e7..f04043e9156a 100644 --- a/filter/source/msfilter/escherex.cxx +++ b/filter/source/msfilter/escherex.cxx @@ -894,6 +894,11 @@ bool EscherPropertyContainer::GetLineArrow( const bool bLineStart, OUString aArrowStartName = *o3tl::doAccess<OUString>(aAny); sal_uInt16 nWhich = bLineStart ? sal_uInt16(XATTR_LINESTART) : sal_uInt16(XATTR_LINEEND); + // remove extra space separated number + sal_Int32 nPos = aArrowStartName.lastIndexOf(' '); + if (nPos > -1 && aArrowStartName.lastIndexOf(' ', nPos) > -1) + aArrowStartName = aArrowStartName.copy(0, nPos); + OUString aApiName = SvxUnogetApiNameForItem(nWhich, aArrowStartName); bool bIsMapped = true; if ( !aApiName.isEmpty() ) diff --git a/sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx b/sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx Binary files differnew file mode 100644 index 000000000000..770bab263d7b --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx index 8e79024c90f0..7e9bcb639012 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx @@ -1106,6 +1106,18 @@ DECLARE_OOXMLEXPORT_TEST(testArrowPosition, "tdf104565_ArrowPosition.docx") "/wp:positionV/wp:posOffset", "516255"); } +DECLARE_OOXMLEXPORT_TEST(testArrowMarker, "tdf123346_ArrowMarker.docx") +{ + // tdf#123346: Check arrow marker. + + xmlDocPtr pXmlDocument = parseExport("word/document.xml"); + if (!pXmlDocument) + return; + + assertXPath(pXmlDocument, "/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor" + "/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:ln/a:tailEnd", "type", "arrow"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |