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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Jan 10 16:27:59 UTC 2019


 oox/source/vml/vmlshapecontext.cxx           |    4 +++-
 sw/qa/extras/ooxmlexport/data/tdf122563.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport12.cxx   |   11 +++++++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

New commits:
commit bdb0177b550d27a541cdfc0668714b2e9ac28540
Author:     László Németh <nemeth at numbertext.org>
AuthorDate: Wed Jan 9 22:15:26 2019 +0100
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Thu Jan 10 17:27:27 2019 +0100

    tdf#122563 DOCX import: fix OLE size after roundtrip
    
    Embedded XLSX spreadsheets and other OLE objects
    became small in Writer after a roundtrip between
    LibO and MSO, caused by the empty drawing path of
    OLE shapes.
    
    Change-Id: I4cd39d4bcd6707cc5a3b8e40dde8c6148a20cabc
    Reviewed-on: https://gerrit.libreoffice.org/66053
    Tested-by: Jenkins
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/oox/source/vml/vmlshapecontext.cxx b/oox/source/vml/vmlshapecontext.cxx
index f5f4bf884e31..621f20d29895 100644
--- a/oox/source/vml/vmlshapecontext.cxx
+++ b/oox/source/vml/vmlshapecontext.cxx
@@ -240,7 +240,9 @@ ContextHandlerRef ShapeContextBase::createShapeContext( ContextHandler2Helper co
         case VML_TOKEN( group ):
             return new GroupShapeContext( rParent, rShapes.createShape< GroupShape >(), rAttribs );
         case VML_TOKEN( shape ):
-            if (rAttribs.hasAttribute(XML_path))
+            if (rAttribs.hasAttribute(XML_path) &&
+                    // tdf#122563 skip in the case of empty path
+                    !rAttribs.getString(XML_path, "").isEmpty())
                 return new ShapeContext( rParent, rShapes.createShape< BezierShape >(), rAttribs );
             else
                 return new ShapeContext( rParent, rShapes.createShape< ComplexShape >(), rAttribs );
diff --git a/sw/qa/extras/ooxmlexport/data/tdf122563.docx b/sw/qa/extras/ooxmlexport/data/tdf122563.docx
new file mode 100644
index 000000000000..69168a382623
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf122563.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
index 3e90ed1b4d9d..a91fe0c3b67b 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
@@ -936,6 +936,17 @@ DECLARE_OOXMLEXPORT_TEST(testTdf99631, "tdf99631.docx")
     assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:object[1]", "dyaOrig", "768");
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf122563, "tdf122563.docx")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+    if (!pXmlDoc)
+        return;
+    assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r/w:object", 1);
+    // Size of the embedded OLE spreadsheet was the bad "width:28.35pt;height:28.35pt"
+    assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:object/v:shape", "style",
+                "width:255.75pt;height:63.75pt");
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list