sw/qa/extras/ooxmlexport/data/tdf116410.docx |binary sw/qa/extras/ooxmlexport/data/tdf116976.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 13 +++++++++++++ sw/qa/extras/ooxmlimport/data/tdf115719b.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 6 ++++++ writerfilter/source/dmapper/GraphicImport.cxx | 10 ++++++++-- writerfilter/source/dmapper/PropertyMap.cxx | 4 ++++ 7 files changed, 31 insertions(+), 2 deletions(-)
New commits: commit cba1897f3c063f8a535898bfd16a516c8de9ac21 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Apr 12 18:39:36 2018 +0200 tdf#116976 DOCX import: fix rel size of shape after bitmap We have a queue of these odd relative sizes (which are not XML attributes but text inside the XML element), if the bitmap doesn't pop the queue, the following shape won't get its size. Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport11.cxx Change-Id: I1602208c9509d8889bf0be254f3b25fb25fafca2 Reviewed-on: https://gerrit.libreoffice.org/52984 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/extras/ooxmlexport/data/tdf116976.docx b/sw/qa/extras/ooxmlexport/data/tdf116976.docx new file mode 100644 index 000000000000..70492a4af2f3 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf116976.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index 8ffe76e77f55..dd3b9759cf4b 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -716,6 +716,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf116410, "tdf116410.docx") CPPUNIT_ASSERT_EQUAL(1, getPages()); } +DECLARE_OOXMLEXPORT_TEST(testTdf116976, "tdf116976.docx") +{ + // This was 0, reltive size of shape after bitmap was ignored. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(40), + getProperty<sal_Int16>(getShape(1), "RelativeWidth")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx index e9826192143c..d6745f2dc162 100644 --- a/writerfilter/source/dmapper/GraphicImport.cxx +++ b/writerfilter/source/dmapper/GraphicImport.cxx @@ -1080,10 +1080,12 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) break; case NS_ooxml::LN_CT_SizeRelH_pctWidth: case NS_ooxml::LN_CT_SizeRelV_pctHeight: - if (m_xShape.is() && !m_pImpl->m_rPositivePercentages.empty()) + if (m_pImpl->m_rPositivePercentages.empty()) + break; + + if (m_xShape.is()) { sal_Int16 nPositivePercentage = rtl::math::round(m_pImpl->m_rPositivePercentages.front().toDouble() / oox::drawingml::PER_PERCENT); - m_pImpl->m_rPositivePercentages.pop(); if (nPositivePercentage) { @@ -1092,6 +1094,10 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) xPropertySet->setPropertyValue(aProperty, uno::makeAny(nPositivePercentage)); } } + + // Make sure the token is consumed even if xShape is an empty + // reference. + m_pImpl->m_rPositivePercentages.pop(); break; case NS_ooxml::LN_EG_WrapType_wrapNone: // 90944; - doesn't contain attributes //depending on the behindDoc attribute text wraps through behind or in front of the object commit 82f6da65acaf02bc3b9d6b2039a4c307d5593423 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Mar 26 21:52:05 2018 +0200 tdf#116410 DOCX import: restrict increased object spacing to multiple shapes This anchored object handling is just there to be bug-compatible with Word, it's not needed for the case when there is a single shape in the paragraph. (cherry picked from commit 2c4d84e93901571ead79c85aa3894ef4e10bf5af) Also: Related: tdf#115719 DOCX import: fix ignore of increased anchored obj spacing If there is only a single anchored object, then ignore only the current paragraph, not all paragraphs of the section. (cherry picked from commit 599ff05300599d4e4ce818092f18e76e738b921e) Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport11.cxx Change-Id: I5e3dc4ba9a4a6f459ec6217e8974ebc2d7303bcc Reviewed-on: https://gerrit.libreoffice.org/52981 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/extras/ooxmlexport/data/tdf116410.docx b/sw/qa/extras/ooxmlexport/data/tdf116410.docx new file mode 100644 index 000000000000..5352a233ed70 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf116410.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index f5553c5b7d1d..8ffe76e77f55 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -710,6 +710,12 @@ DECLARE_OOXMLEXPORT_TEST(testTdf115719, "tdf115719.docx") CPPUNIT_ASSERT_EQUAL(2, getPages()); } +DECLARE_OOXMLEXPORT_TEST(testTdf116410, "tdf116410.docx") +{ + // Opposite of the above, was 2 pages, should be 1 page. + CPPUNIT_ASSERT_EQUAL(1, getPages()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/extras/ooxmlimport/data/tdf115719b.docx b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx new file mode 100644 index 000000000000..551b9871fe60 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf115719b.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index d84bffd0f4cf..5e915c61803f 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -348,6 +348,12 @@ xray ThisComponent.StyleFamilies.PageStyles.Default.Width CPPUNIT_ASSERT( pos.X > width / 2 ); } +DECLARE_OOXMLIMPORT_TEST(testTdf115719b, "tdf115719b.docx") +{ + // This was 0, 4th (last) paragraph had no increased spacing. + CPPUNIT_ASSERT(getProperty<sal_Int32>(getParagraph(4), "ParaTopMargin") > 0); +} + DECLARE_OOXMLIMPORT_TEST(testN766477, "n766477.docx") { /* diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index c00e4bfec593..8c87c2c91286 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1135,6 +1135,10 @@ void SectionPropertyMap::HandleIncreasedAnchoredObjectSpacing(DomainMapper_Impl& std::vector<AnchoredObjectInfo>& rAnchoredObjectAnchors = rDM_Impl.m_aAnchoredObjectAnchors; for (auto& rAnchor : rAnchoredObjectAnchors) { + // Ignore this paragraph when there is a single shape only. + if (rAnchor.m_aAnchoredObjects.size() < 2) + continue; + // Analyze the anchored objects of this paragraph, now that we know the // page width. sal_Int32 nShapesWidth = 0; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits