oox/source/export/shapes.cxx | 10 +++++++++- sd/qa/unit/data/pptx/n90190.pptx |binary sd/qa/unit/export-tests.cxx | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-)
New commits: commit 8d74795e6e777cef0b1df64a56ea886208c87bc0 Author: yogesh.bharate001 <yogesh.bhar...@synerzip.com> Date: Fri Apr 17 17:37:00 2015 +0530 tdf#90672: PPTX table cell border color is not exported. Problem Description : XML Difference : Original : <a:solidFill> <a:srgbClr val="00B0F0"/> </a:solidFill> After Roundtrip : tag is missing Solution : Added support for table cell border color. Change-Id: I2baf969d7a8e46a0c5825d9f57bf135ec479c9eb Reviewed-on: https://gerrit.libreoffice.org/15364 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx index cdeefac..87c0190 100644 --- a/oox/source/export/shapes.cxx +++ b/oox/source/export/shapes.cxx @@ -1059,10 +1059,10 @@ void ShapeExport::WriteTableCellProperties(Reference< XPropertySet> xCellPropSet FSEND ); // Write background fill for table cell. - DrawingML::WriteFill(xCellPropSet); // TODO // tcW : Table cell width WriteTableCellBorders(xCellPropSet); + DrawingML::WriteFill(xCellPropSet); mpFS->endElementNS( XML_a, XML_tcPr ); } @@ -1073,6 +1073,7 @@ void ShapeExport::WriteTableCellBorders(Reference< XPropertySet> xCellPropSet) // lnL - Left Border Line Properties of table cell xCellPropSet->getPropertyValue("LeftBorder") >>= aBorderLine; sal_Int32 nLeftBorder = aBorderLine.LineWidth; + util::Color aLeftBorderColor = aBorderLine.Color; // While importing the table cell border line width, it converts EMU->Hmm then divided result by 2. // To get original value of LineWidth need to multiple by 2. @@ -1082,42 +1083,49 @@ void ShapeExport::WriteTableCellBorders(Reference< XPropertySet> xCellPropSet) if(nLeftBorder > 0) { mpFS->startElementNS( XML_a, XML_lnL, XML_w, I32S(nLeftBorder), FSEND ); + DrawingML::WriteSolidFill(aLeftBorderColor); mpFS->endElementNS( XML_a, XML_lnL ); } // lnR - Right Border Line Properties of table cell xCellPropSet->getPropertyValue("RightBorder") >>= aBorderLine; sal_Int32 nRightBorder = aBorderLine.LineWidth; + util::Color aRightBorderColor = aBorderLine.Color; nRightBorder = nRightBorder * 2 ; nRightBorder = oox::drawingml::convertHmmToEmu( nRightBorder ); if(nRightBorder > 0) { mpFS->startElementNS( XML_a, XML_lnR, XML_w, I32S(nRightBorder), FSEND); + DrawingML::WriteSolidFill(aRightBorderColor); mpFS->endElementNS( XML_a, XML_lnR); } // lnT - Top Border Line Properties of table cell xCellPropSet->getPropertyValue("TopBorder") >>= aBorderLine; sal_Int32 nTopBorder = aBorderLine.LineWidth; + util::Color aTopBorderColor = aBorderLine.Color; nTopBorder = nTopBorder * 2; nTopBorder = oox::drawingml::convertHmmToEmu( nTopBorder ); if(nTopBorder > 0) { mpFS->startElementNS( XML_a, XML_lnT, XML_w, I32S(nTopBorder), FSEND); + DrawingML::WriteSolidFill(aTopBorderColor); mpFS->endElementNS( XML_a, XML_lnT); } // lnB - Bottom Border Line Properties of table cell xCellPropSet->getPropertyValue("BottomBorder") >>= aBorderLine; sal_Int32 nBottomBorder = aBorderLine.LineWidth; + util::Color aBottomBorderColor = aBorderLine.Color; nBottomBorder = nBottomBorder * 2; nBottomBorder = oox::drawingml::convertHmmToEmu( nBottomBorder ); if(nBottomBorder > 0) { mpFS->startElementNS( XML_a, XML_lnB, XML_w, I32S(nBottomBorder), FSEND); + DrawingML::WriteSolidFill(aBottomBorderColor); mpFS->endElementNS( XML_a, XML_lnB); } } diff --git a/sd/qa/unit/data/pptx/n90190.pptx b/sd/qa/unit/data/pptx/n90190.pptx index ae83eb6..caeabe7 100644 Binary files a/sd/qa/unit/data/pptx/n90190.pptx and b/sd/qa/unit/data/pptx/n90190.pptx differ diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 78fce6b..bfb8913 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -983,27 +983,32 @@ void SdExportTest::testTableCellBorder() sal_Int32 nLeftBorder = aBorderLine.LineWidth ; // While importing the table cell border line width, it converts EMU->Hmm then divided result by 2. // To get original value of LineWidth need to multiple by 2. - nLeftBorder = nLeftBorder * 2 ; + nLeftBorder = nLeftBorder * 2 ; nLeftBorder = oox::drawingml::convertHmmToEmu( nLeftBorder ); CPPUNIT_ASSERT(nLeftBorder); + CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color); xCellPropSet->getPropertyValue("RightBorder") >>= aBorderLine; sal_Int32 nRightBorder = aBorderLine.LineWidth ; nRightBorder = nRightBorder * 2 ; nRightBorder = oox::drawingml::convertHmmToEmu( nRightBorder ); CPPUNIT_ASSERT(nRightBorder); + CPPUNIT_ASSERT_EQUAL(util::Color(16777215), aBorderLine.Color); xCellPropSet->getPropertyValue("TopBorder") >>= aBorderLine; sal_Int32 nTopBorder = aBorderLine.LineWidth ; nTopBorder = nTopBorder * 2 ; nTopBorder = oox::drawingml::convertHmmToEmu( nTopBorder ); CPPUNIT_ASSERT(nTopBorder); + CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color); + xCellPropSet->getPropertyValue("BottomBorder") >>= aBorderLine; sal_Int32 nBottomBorder = aBorderLine.LineWidth ; nBottomBorder = nBottomBorder * 2 ; nBottomBorder = oox::drawingml::convertHmmToEmu( nBottomBorder ); CPPUNIT_ASSERT(nBottomBorder); + CPPUNIT_ASSERT_EQUAL(util::Color(45296), aBorderLine.Color); xDocShRef->DoClose(); }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits