From be02ce71f2ee694fa2609a7a630853c24acfbfff Mon Sep 17 00:00:00 2001 From: Serge Krot Date: Fri, 16 Mar 2018 10:42:50 +0100 Subject: [PATCH] tdf#113182: DOCX filter: new values of wrap property in text box Added support of "none" and "through" values of the w:wrap poroperty in the text box. Change-Id: I83f0c9e8162e93bf457f228d49d3b426050d4dc6 Reviewed-on: https://gerrit.libreoffice.org/51396 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- sw/qa/extras/ooxmlimport/data/tdf113182.docx | Bin 0 -> 12561 bytes sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 8 ++++++++ writerfilter/source/dmapper/DomainMapper.cxx | 7 ++++++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 sw/qa/extras/ooxmlimport/data/tdf113182.docx diff --git a/sw/qa/extras/ooxmlimport/data/tdf113182.docx b/sw/qa/extras/ooxmlimport/data/tdf113182.docx new file mode 100755 index 0000000000000000000000000000000000000000..9f35ec3d4ebcfcb44aa41c7ea90c9a5aba50802b GIT binary patch literal 12561 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 literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 6e181a87a9b9..5563ce56dc1f 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1558,6 +1558,14 @@ DECLARE_OOXMLIMPORT_TEST(testTdf112443, "tdf112443.docx") } +// DOCX: Textbox wrap differs in MSO and LO +// Both should layout text regardless of existing text box +// and as result only one page should be generated. +DECLARE_OOXMLIMPORT_TEST(testTdf113182, "tdf113182.docx") +{ + CPPUNIT_ASSERT_EQUAL(getPages(), 1); +} + DECLARE_OOXMLIMPORT_TEST(testTdf113946, "tdf113946.docx") { OUString aTop = parseDump("/root/page/body/txt/anchored/SwAnchoredDrawObject/bounds", "top"); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 310bf761f3b7..6219b7c672e1 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -868,11 +868,16 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) //should be either LN_Value_doc_ST_Wrap_notBeside or LN_Value_doc_ST_Wrap_around or LN_Value_doc_ST_Wrap_auto OSL_ENSURE( sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_around || sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_notBeside || + sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_through || + sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_none || sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_auto, - "wrap not around, not_Beside or auto?"); + "wrap not around, not_Beside, through, none or auto?"); if( sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_around || + sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_through || sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_auto ) pParaProperties->SetWrap ( text::WrapTextMode_DYNAMIC ) ; + else if (sal::static_int_cast(nIntValue) == NS_ooxml::LN_Value_doc_ST_Wrap_none) + pParaProperties->SetWrap ( text::WrapTextMode_THROUGH ) ; else pParaProperties->SetWrap ( text::WrapTextMode_NONE ) ; }