From 846118c0be78e29752826a47cd09b3033dbd075f Mon Sep 17 00:00:00 2001 From: Regényi Balázs Date: Sat, 29 Aug 2020 09:11:46 +0200 Subject: tdf#97618 DOCX import: VML shape: fix missing square wrap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Szabolcs Tóth Change-Id: Ib9db4b0270ed7d4b3d47406f2384276cafdd7249 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101632 Tested-by: László Németh Reviewed-by: László Németh (cherry picked from commit 0d773f0b07798a59f7cf31207813aaf6bc9bb922) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104304 Tested-by: Gabor Kelemen Reviewed-by: Gabor Kelemen --- oox/source/vml/vmlshape.cxx | 4 ++++ .../data/tdf97618_testVmlShapeTextWordWrap.docx | Bin 0 -> 16115 bytes sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 13 +++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 sw/qa/extras/ooxmlexport/data/tdf97618_testVmlShapeTextWordWrap.docx diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx index c26d512ecd23..d4ac133718dd 100644 --- a/oox/source/vml/vmlshape.cxx +++ b/oox/source/vml/vmlshape.cxx @@ -790,6 +790,10 @@ Reference< XShape > SimpleShape::implConvertAndInsert( const Reference< XShapes eTextVerticalAdjust = drawing::TextVerticalAdjust_BOTTOM; PropertySet(xShape).setAnyProperty(PROP_TextVerticalAdjust, makeAny(eTextVerticalAdjust)); + // tdf#97618 + if(!maTypeModel.maWrapStyle.isEmpty()) + PropertySet(xShape).setAnyProperty(PROP_TextWordWrap, makeAny(maTypeModel.maWrapStyle == "square")); + PropertySet(xShape).setAnyProperty(PROP_TextAutoGrowHeight, makeAny(maTypeModel.mbAutoHeight)); diff --git a/sw/qa/extras/ooxmlexport/data/tdf97618_testVmlShapeTextWordWrap.docx b/sw/qa/extras/ooxmlexport/data/tdf97618_testVmlShapeTextWordWrap.docx new file mode 100644 index 000000000000..eb31a1244c01 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf97618_testVmlShapeTextWordWrap.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx index de2c3bb84568..29a3a3b54b5b 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx @@ -503,6 +503,19 @@ DECLARE_OOXMLEXPORT_TEST(testImageSpaceSettings, "tdf135047_ImageSpaceSettings.f assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:drawing/wp:anchor", "distR", "90170"); } +DECLARE_OOXMLEXPORT_TEST(testVmlShapeTextWordWrap, "tdf97618_testVmlShapeTextWordWrap.docx") +{ + // tdf#97618 The text wraping of a shape was not handled in a canvas. + // TODO: fix export too + if (mbExported) + return; + xmlDocPtr pXmlDoc = parseLayoutDump(); + if (!pXmlDoc) + return; + // The bound rect of shape will be wider if wrap does not work (the wrong value is 3167). + assertXPath(pXmlDoc, "//SwAnchoredDrawObject/bounds", "width", "2500"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit