From dbbfad3dfbee89c13956d3a9b4757c74a4a64cd2 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Wed, 10 Dec 2014 17:06:28 +0100 Subject: DocxAttributeOutput::FlyFrameGraphic: avoid when there is no border Change-Id: Ia94f490c0ad8c392bd8bbfbe889f5333c13e0022 --- sw/qa/extras/ooxmlexport/data/image-noborder.docx | Bin 0 -> 14305 bytes sw/qa/extras/ooxmlexport/ooxmlexport5.cxx | 6 ++++ sw/source/filter/ww8/docxattributeoutput.cxx | 37 +++++++++++++--------- 3 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 sw/qa/extras/ooxmlexport/data/image-noborder.docx (limited to 'sw') diff --git a/sw/qa/extras/ooxmlexport/data/image-noborder.docx b/sw/qa/extras/ooxmlexport/data/image-noborder.docx new file mode 100644 index 000000000000..7e0fc90d23a0 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/image-noborder.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx index 7d4f988426ec..89ead201944f 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx @@ -721,6 +721,12 @@ DECLARE_OOXMLEXPORT_TEST(testTblpprShape, "tblppr-shape.docx") CPPUNIT_ASSERT_EQUAL(static_cast(2540), getProperty(xPageStyle, "LeftMargin")); } +DECLARE_OOXMLEXPORT_TEST(testImageNoborder, "image-noborder.docx") +{ + // This was 26; we exported border for an image that had no border. + CPPUNIT_ASSERT_EQUAL(static_cast(0), getProperty(getShape(1), "TopBorder").LineWidth); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 862d75486f79..c8a80c55a3f2 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -4215,21 +4215,28 @@ void DocxAttributeOutput::FlyFrameGraphic( const SwGrfNode* pGrfNode, const Size m_pSerializer->singleElementNS( XML_a, XML_avLst, FSEND ); m_pSerializer->endElementNS( XML_a, XML_prstGeom ); - m_pSerializer->singleElementNS( XML_a, XML_noFill, - FSEND ); - m_pSerializer->startElementNS( XML_a, XML_ln, - XML_w, "9525", - FSEND ); - m_pSerializer->singleElementNS( XML_a, XML_noFill, - FSEND ); - m_pSerializer->singleElementNS( XML_a, XML_miter, - XML_lim, "800000", - FSEND ); - m_pSerializer->singleElementNS( XML_a, XML_headEnd, - FSEND ); - m_pSerializer->singleElementNS( XML_a, XML_tailEnd, - FSEND ); - m_pSerializer->endElementNS( XML_a, XML_ln ); + + const SvxBoxItem& rBoxItem = pFrmFmt->GetBox(); + const SvxBorderLine* pLeft = rBoxItem.GetLine(BOX_LINE_LEFT); + const SvxBorderLine* pRight = rBoxItem.GetLine(BOX_LINE_RIGHT); + const SvxBorderLine* pTop = rBoxItem.GetLine(BOX_LINE_TOP); + const SvxBorderLine* pBottom = rBoxItem.GetLine(BOX_LINE_BOTTOM); + if (pLeft || pRight || pTop || pBottom) + { + m_pSerializer->startElementNS( XML_a, XML_ln, + XML_w, "9525", + FSEND ); + m_pSerializer->singleElementNS( XML_a, XML_noFill, + FSEND ); + m_pSerializer->singleElementNS( XML_a, XML_miter, + XML_lim, "800000", + FSEND ); + m_pSerializer->singleElementNS( XML_a, XML_headEnd, + FSEND ); + m_pSerializer->singleElementNS( XML_a, XML_tailEnd, + FSEND ); + m_pSerializer->endElementNS( XML_a, XML_ln ); + } m_rExport.SdrExporter().writeDMLEffectLst(*pFrmFmt); -- cgit