[Libreoffice-commits] core.git: filter/source sw/qa

Szabolcs (via logerrit) logerrit at kemper.freedesktop.org
Mon Apr 20 09:13:33 UTC 2020


 filter/source/msfilter/escherex.cxx                      |    5 +++++
 sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport3.cxx                |   12 ++++++++++++
 3 files changed, 17 insertions(+)

New commits:
commit 68531e459e7a922319e6bfe8b7a5282ba0320182
Author:     Szabolcs <szabolcs450 at gmail.com>
AuthorDate: Mon Mar 30 17:12:05 2020 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Mon Apr 20 11:12:59 2020 +0200

    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 at numbertext.org>
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 2abe567fdbeb..443d533ecadb 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -887,6 +887,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
new file mode 100644
index 000000000000..770bab263d7b
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123346_ArrowMarker.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
index fbd0552b479d..447bbb1236e8 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
@@ -1123,6 +1123,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: */


More information about the Libreoffice-commits mailing list