oox/source/vml/vmlshape.cxx | 14 ++++++++++---- sw/qa/extras/ooxmlexport/data/tdf123622.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 15 ++++++++++++++- 3 files changed, 24 insertions(+), 5 deletions(-)
New commits: commit 52442a4c0192cbedafe7b77459dd2c3d1cf3614b Author: Tibor Nagy <nagy.tib...@nisz.hu> AuthorDate: Fri May 8 10:32:09 2020 +0200 Commit: László Németh <nem...@numbertext.org> CommitDate: Mon May 18 10:51:03 2020 +0200 tdf#123622 DOCX VML import: fix relative horizontal alignment Margin (left, right, inner, outer) alignments of VML shapes weren't handled. Co-authored-by: Attila Bakos (NISZ) Change-Id: I5f8ece64707a2d699b71d6151887db05ac39c4f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93723 Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx index a6687ab65100..55eb9020ae11 100644 --- a/oox/source/vml/vmlshape.cxx +++ b/oox/source/vml/vmlshape.cxx @@ -632,10 +632,16 @@ static void lcl_SetAnchorType(PropertySet& rPropSet, const ShapeTypeModel& rType if ( rTypeModel.maPositionHorizontalRelative == "page" ) rPropSet.setAnyProperty(PROP_HoriOrientRelation, makeAny(text::RelOrientation::PAGE_FRAME)); - else if ( rTypeModel.maPositionVerticalRelative == "margin" ) - rPropSet.setProperty(PROP_VertOrientRelation, text::RelOrientation::PAGE_PRINT_AREA); - else if ( rTypeModel.maPositionVerticalRelative == "text" ) - rPropSet.setProperty(PROP_VertOrientRelation, text::RelOrientation::FRAME); + else if ( rTypeModel.maPositionHorizontalRelative == "margin" ) + rPropSet.setProperty(PROP_HoriOrientRelation, text::RelOrientation::PAGE_PRINT_AREA); + else if (rTypeModel.maPositionHorizontalRelative == "right-margin-area" || + rTypeModel.maPositionHorizontalRelative == "inner-margin-area") + rPropSet.setProperty(PROP_HoriOrientRelation, text::RelOrientation::PAGE_RIGHT); + else if (rTypeModel.maPositionHorizontalRelative == "left-margin-area" || + rTypeModel.maPositionHorizontalRelative == "outer-margin-area") + rPropSet.setProperty(PROP_HoriOrientRelation, text::RelOrientation::PAGE_LEFT); + else if ( rTypeModel.maPositionHorizontalRelative == "text" ) + rPropSet.setProperty(PROP_HoriOrientRelation, text::RelOrientation::FRAME); if ( rTypeModel.maPositionVertical == "center" ) rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::CENTER)); diff --git a/sw/qa/extras/ooxmlexport/data/tdf123622.docx b/sw/qa/extras/ooxmlexport/data/tdf123622.docx new file mode 100644 index 000000000000..54ef0cbd7670 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123622.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx index cf6d3f6e2671..a591a3caa8fe 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx @@ -44,7 +44,7 @@ protected: } }; -DECLARE_OOXMLIMPORT_TEST(Tdf130907,"tdf130907.docx") +DECLARE_OOXMLIMPORT_TEST(Tdf130907, "tdf130907.docx") { uno::Reference<text::XTextRange> xPara1 = getParagraph(2); CPPUNIT_ASSERT(xPara1.is()); @@ -74,6 +74,19 @@ DECLARE_OOXMLIMPORT_TEST(Tdf130907,"tdf130907.docx") sal_Int16(style::ParagraphAdjust::ParagraphAdjust_RIGHT), nHOri3); } +DECLARE_OOXMLIMPORT_TEST(testTdf123622, "tdf123622.docx") +{ + uno::Reference<beans::XPropertySet> XPropsRight(getShape(1),uno::UNO_QUERY); + sal_Int16 nRelativePosR = 0; + XPropsRight->getPropertyValue("HoriOrientRelation")>>=nRelativePosR; + CPPUNIT_ASSERT_EQUAL_MESSAGE("Shape inside the margin", sal_Int16(4), nRelativePosR); + + uno::Reference<beans::XPropertySet> XPropsLeft(getShape(2), uno::UNO_QUERY); + sal_Int16 nRelativePosL = 0; + XPropsLeft->getPropertyValue("HoriOrientRelation") >>= nRelativePosL; + CPPUNIT_ASSERT_EQUAL_MESSAGE("Shape inside the margin", sal_Int16(3), nRelativePosL); +} + DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf78749, "tdf78749.docx") { //Shape lost the background image before, now check if it still has... _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits