oox/source/drawingml/color.cxx | 4 ++++ sd/qa/unit/data/pptx/tdf164936.pptx |binary sd/qa/unit/import-tests.cxx | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+)
New commits: commit 0f034eaacbee30f3ff5e669d0bdfef20102cac32 Author: Mohit Marathe <mohit.marathe.ext...@allotropia.de> AuthorDate: Wed Feb 19 12:21:19 2025 +0530 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Tue Feb 25 02:41:41 2025 +0100 tdf#164936 oox: modify getColor method to include alpha Change-Id: I141be9568b54334a17f5f781f1612423bec19999 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181861 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akde...@allotropia.de> (cherry picked from commit 1916957d0750b5471f23f17b2867a907e0e9e0e2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182102 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/oox/source/drawingml/color.cxx b/oox/source/drawingml/color.cxx index 8ca000cb763e..8961618a10f7 100644 --- a/oox/source/drawingml/color.cxx +++ b/oox/source/drawingml/color.cxx @@ -785,6 +785,10 @@ model::ComplexColor Color::getComplexColor() const // store resulting RGB value in mnC1 toRgb(); mnC1 = lclRgbComponentsToRgb( mnC1, mnC2, mnC3 ); + if (hasTransparency()) + { + mnC1 |= static_cast<sal_Int32>(255.0 * (MAX_PERCENT - mnAlpha) / MAX_PERCENT) << 24; + } } else // if( meMode != COLOR_UNUSED ) { diff --git a/sd/qa/unit/data/pptx/tdf164936.pptx b/sd/qa/unit/data/pptx/tdf164936.pptx new file mode 100644 index 000000000000..370ead21bbc5 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf164936.pptx differ diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index 41beb185e0c6..bde573807b78 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -305,6 +305,24 @@ CPPUNIT_TEST_FIXTURE(SdImportTest, testTableStyle) CPPUNIT_ASSERT_EQUAL(Color(0x5b9bd5), nFillColor); } +CPPUNIT_TEST_FIXTURE(SdImportTest, testTableBorderTransparent) +{ + createSdImpressDoc("pptx/tdf164936.pptx"); + const SdrPage* pPage = GetPage(1); + + sdr::table::SdrTableObj* pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0)); + CPPUNIT_ASSERT(pTableObj); + + uno::Reference<table::XCellRange> xTable(pTableObj->getTable(), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xCellPropSet; + table::BorderLine2 aBorderLine; + + xCellPropSet.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW); + xCellPropSet->getPropertyValue(u"LeftBorder"_ustr) >>= aBorderLine; + CPPUNIT_ASSERT_EQUAL(Color(ColorTransparency, 0xff2670c9), + Color(ColorTransparency, aBorderLine.Color)); +} + CPPUNIT_TEST_FIXTURE(SdImportTest, testFreeformShapeGluePoints) { createSdImpressDoc("pptx/tdf156829.pptx");