[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.3' - sw/qa writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Tue May 22 16:08:11 UTC 2018


 sw/qa/extras/ooxmlexport/data/tdf116976.docx  |binary
 sw/qa/extras/ooxmlexport/ooxmlexport9.cxx     |    7 +++++++
 writerfilter/source/dmapper/GraphicImport.cxx |   10 ++++++++--
 3 files changed, 15 insertions(+), 2 deletions(-)

New commits:
commit e6f39221b5ce652c78cc675c8dd0a662332ecacc
Author: Miklos Vajna <vmiklos at 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/54669
    Reviewed-by: Aron Budea <aron.budea at collabora.com>
    Tested-by: Aron Budea <aron.budea at collabora.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 ddcce371d885..079fadcca914 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
@@ -726,6 +726,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf115861, "tdf115861.docx")
     CPPUNIT_ASSERT_EQUAL(OUString("(k)"), getParagraph(2)->getString());
 }
 
+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 5044454ddaef..5ae59defc618 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -1087,10 +1087,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)
                 {
@@ -1099,6 +1101,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 fron of the object


More information about the Libreoffice-commits mailing list