From e6e5a68f52f4e06b73f0ece3a3886f3bfc30f56d Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 25 Apr 2017 09:25:34 +0200 Subject: [PATCH] tdf#107104 DOCX drawingML import: fix invisible arrow shape This is the drawingML equivalent of commit 3d9ebded1358395ed81db7a63629b046aec2aeac (Misc improvements for docx VML import, 2010-10-06), which made sure that shapes are never invisible just because they have zero height or width. For this particular bugdoc the Word-produced WW8 equivalent width is 20 twips, but let's be consistent with the VML import and just round up to 1 mm100. Also fix two existing tests that wanted to test something else, but implicitly asserted that some shapes indeed have zero width/height. Change-Id: I9600424520d0a3deecc711b44622eccc041a59da Reviewed-on: https://gerrit.libreoffice.org/36927 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- sw/qa/extras/ooxmlexport/data/tdf107104.docx | Bin 0 -> 15648 bytes sw/qa/extras/ooxmlexport/ooxmlexport6.cxx | 4 +++- sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 7 +++++++ sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 4 ++-- writerfilter/source/dmapper/GraphicImport.cxx | 6 ++++++ 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/tdf107104.docx diff --git a/sw/qa/extras/ooxmlexport/data/tdf107104.docx b/sw/qa/extras/ooxmlexport/data/tdf107104.docx new file mode 100644 index 0000000000000000000000000000000000000000..2f8c87d8d3d5889e61f41d1f843482cd4223e1bd GIT binary patch literal 15648 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 literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx index 80f28f09875a..2891b3ff162f 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx @@ -909,7 +909,9 @@ DECLARE_OOXMLEXPORT_TEST(testExtentValue, "fdo74605.docx") xmlDocPtr pXmlDoc = parseExport(); if (!pXmlDoc) return; - assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:extent","cx","0"); + sal_Int32 nX = getXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:extent", "cx").toInt32(); + // This was negative. + CPPUNIT_ASSERT(nX >= 0); } // part of tdf#93676, word gives the frame in the exported .docx a huge height, diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index 3311f1b68184..15e1f05e629e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -457,6 +457,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf106492, "tdf106492.docx") assertXPath(pXmlDoc, "//w:sectPr", 3); } +DECLARE_OOXMLEXPORT_TEST(testTdf107104, "tdf107104.docx") +{ + CPPUNIT_ASSERT(getShape(1)->getSize().Width > 0); + // This failed: the second arrow was invisible because it had zero height. + CPPUNIT_ASSERT(getShape(2)->getSize().Width > 0); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 185ec428edff..741ee50fa336 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1199,8 +1199,8 @@ DECLARE_OOXMLIMPORT_TEST(testTdf96674, "tdf96674.docx") uno::Reference xShape(getShape(1), uno::UNO_QUERY); CPPUNIT_ASSERT(xShape.is()); awt::Size aActualSize(xShape->getSize()); - // This was 3493: the vertical line was horizontal. - CPPUNIT_ASSERT_EQUAL(static_cast(0), aActualSize.Width); + // Width was 3493: the vertical line was horizontal. + CPPUNIT_ASSERT(aActualSize.Width < aActualSize.Height); CPPUNIT_ASSERT(aActualSize.Height > 0); } diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index ac1451f5c7a1..22878b6121f1 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -536,6 +536,12 @@ void GraphicImport::lcl_attribute(Id nName, Value& rValue) case NS_ooxml::LN_CT_PositiveSize2D_cy: { sal_Int32 nDim = oox::drawingml::convertEmuToHmm(nIntValue); + // drawingML equivalent of oox::vml::ShapeType::getAbsRectangle(): + // make sure a shape isn't hidden implicitly just because it has + // zero height or width. + if (nDim == 0) + nDim = 1; + if( nName == NS_ooxml::LN_CT_PositiveSize2D_cx ) m_pImpl->setXSize(nDim); else