oox/source/export/drawingml.cxx | 3 ++- sc/qa/unit/data/xlsx/tdf91332.xlsx |binary sc/qa/unit/subsequent_export_test2.cxx | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-)
New commits: commit eba5256cba797c67e13d8fc99cb213d6113fcb6a Author: Tünde Tóth <toth.tu...@nisz.hu> AuthorDate: Wed Apr 19 14:48:33 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Wed Apr 26 11:59:06 2023 +0200 tdf#91332 XLSX export: fix missing solidFill Background color of shape inherited from theme lost after export. Regression from commit bc0a9076aa43a0782bcf81e55d3f84f6af0f68e8 "ooxml: Preserve shape theme attribute for solid fill". Change-Id: I2d8298ac17332ba3ad6a627ce8b07c23087ac7b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150674 Tested-by: Jenkins Tested-by: László Németh <nem...@numbertext.org> Reviewed-by: László Németh <nem...@numbertext.org> Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151038 diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 86b9b5ac91dc..4af853619967 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -574,7 +574,8 @@ void DrawingML::WriteSolidFill( const Reference< XPropertySet >& rXPropSet ) WriteSolidFill(::Color(ColorTransparency, nFillColor & 0xffffff), nAlpha); } } - else if ( !sColorFillScheme.isEmpty() ) + // tdf#91332 LO doesn't export the actual theme.xml in XLSX. + else if ( !sColorFillScheme.isEmpty() && GetDocumentType() != DOCUMENT_XLSX ) { // the shape had a scheme color and the user didn't change it WriteSolidFill( sColorFillScheme, aTransformations, nAlpha ); diff --git a/sc/qa/unit/data/xlsx/tdf91332.xlsx b/sc/qa/unit/data/xlsx/tdf91332.xlsx new file mode 100644 index 000000000000..5f1d119e8ee7 Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf91332.xlsx differ diff --git a/sc/qa/unit/subsequent_export_test2.cxx b/sc/qa/unit/subsequent_export_test2.cxx index f97dc4b643d3..32f557463ed3 100644 --- a/sc/qa/unit/subsequent_export_test2.cxx +++ b/sc/qa/unit/subsequent_export_test2.cxx @@ -185,6 +185,7 @@ public: void testTdf130104_XLSXIndent(); void testWholeRowBold(); void testXlsxRowsOrder(); + void testTdf91332(); void testTdf91286(); void testTdf148820(); void testEmbeddedTextInDecimal(); @@ -315,6 +316,7 @@ public: CPPUNIT_TEST(testTdf130104_XLSXIndent); CPPUNIT_TEST(testWholeRowBold); CPPUNIT_TEST(testXlsxRowsOrder); + CPPUNIT_TEST(testTdf91332); CPPUNIT_TEST(testTdf91286); CPPUNIT_TEST(testTdf148820); CPPUNIT_TEST(testEmbeddedTextInDecimal); @@ -2814,6 +2816,25 @@ void ScExportTest2::testXlsxRowsOrder() save("Calc Office Open XML"); } +void ScExportTest2::testTdf91332() +{ + createScDoc("xlsx/tdf91332.xlsx"); + saveAndReload("Calc Office Open XML"); + + uno::Reference<drawing::XDrawPagesSupplier> xDoc(mxComponent, uno::UNO_QUERY_THROW); + uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xShapeProps(xPage->getByIndex(0), uno::UNO_QUERY_THROW); + + // Without the accompanying fix in place, this test would have failed with: + // - Expected: rgba[90cf47ff] + // - Actual : rgba[ffffffff] + // i.e. fill color inherited from theme lost after export. + Color nColor; + xShapeProps->getPropertyValue("FillColor") >>= nColor; + CPPUNIT_ASSERT_EQUAL(Color(0x90cf47), nColor); +} + void ScExportTest2::testTdf91286() { createScDoc("ods/tdf91286.ods");