sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 7 +++++++ writerfilter/source/dmapper/DomainMapper.cxx | 14 +++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-)
New commits: commit 5e44328c4a2ca748e1254c008ff6d84a58601cde Author: Tushar Bende <tushar.be...@synerzip.com> Date: Mon Mar 17 22:40:19 2014 +0530 fdo#72775 : LibreOffice hang while opening some documents Description: There was a problem for some documents, when opened in LibreOffice there was continuous increase in page numbers.And this was the reason for LO getting hang. The wrap property "NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_auto" was not handled in DomainMapper::lcl_attribute() and hence paragraph's wrap property was getting set to "text::WrapTextMode_NONE" this was the reason for increasing number of pages while opening doc in LO. added condition to handle NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_auto. *added test case to verify that the document is opening properly and checking it's page count. Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Reviewed on: https://gerrit.libreoffice.org/8632 Change-Id: Id24ebc8409e7fd53915e5130beb9ad6f8bb8571f diff --git a/sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx b/sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx new file mode 100644 index 0000000..6ad7fe0 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 1492cd9..e47a208 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1976,6 +1976,13 @@ DECLARE_OOXMLIMPORT_TEST(testSmartartStrict, "strict-smartart.docx") CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xGroup->getCount()); // 3 ellipses + 3 arrows } +DECLARE_OOXMLIMPORT_TEST(testLibreOfficeHang, "frame-wrap-auto.docx") +{ + // fdo#72775 + // This was text::WrapTextMode_NONE. + CPPUNIT_ASSERT_EQUAL(text::WrapTextMode_DYNAMIC, getProperty<text::WrapTextMode>(getShape(1), "Surround")); +} + DECLARE_OOXMLIMPORT_TEST(testI124106, "i124106.docx") { // This was 2. diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 435919e..4c18238 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -733,12 +733,16 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) break; case NS_ooxml::LN_CT_FramePr_wrap: { - //should be either LN_Value_wordprocessingml_ST_Wrap_notBeside or LN_Value_wordprocessingml_ST_Wrap_around + //should be either LN_Value_wordprocessingml_ST_Wrap_notBeside or LN_Value_wordprocessingml_ST_Wrap_around or LN_Value_wordprocessingml_ST_Wrap_auto OSL_ENSURE( sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_around || - sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_notBeside, - "wrap not around or not_Beside?"); - pParaProperties->SetWrap(sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_around ? - text::WrapTextMode_DYNAMIC : text::WrapTextMode_NONE ); + sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_notBeside || + sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_auto, + "wrap not around, not_Beside or auto?"); + if( sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_around || + sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_auto ) + pParaProperties->SetWrap ( text::WrapTextMode_DYNAMIC ) ; + else + pParaProperties->SetWrap ( text::WrapTextMode_NONE ) ; } break; case NS_ooxml::LN_CT_FramePr_w: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits