From 3a0c0af7309e1f5ba3811bbe8a73e506cf5cd069 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 15 Dec 2015 09:08:50 +0100 Subject: tdf#96113 sw: don't overwrite fo:background-color on ODT frame import The situation is similar to commit 79fb61efb847405fa47235002b52ee8efad5e339 (tdf#92379: svx: don't overwrite fo:background-color on ODF import, 2015-08-21), except that here text frames had the problem of loosing colors when transparency is set. Fix the problem by informing getSvxBrushItemFromSourceSet() about if we're in XML import or not. Change-Id: Id1adf60b14a3762f0a2a43c49caeed9f6ea039be --- sw/qa/extras/odfimport/data/tdf96113.odt | Bin 0 -> 13364 bytes sw/qa/extras/odfimport/odfimport.cxx | 6 ++++++ sw/source/core/unocore/unoframe.cxx | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 sw/qa/extras/odfimport/data/tdf96113.odt diff --git a/sw/qa/extras/odfimport/data/tdf96113.odt b/sw/qa/extras/odfimport/data/tdf96113.odt new file mode 100644 index 000000000000..ede7b078175e Binary files /dev/null and b/sw/qa/extras/odfimport/data/tdf96113.odt differ diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index 7aa34f374fea..c944d443eeef 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -631,5 +631,11 @@ DECLARE_ODFIMPORT_TEST(testBnc800714, "bnc800714.fodt") CPPUNIT_ASSERT(getProperty(getParagraph(2), "ParaKeepTogether")); } +DECLARE_ODFIMPORT_TEST(testTdf96113, "tdf96113.odt") +{ + // Background of the formula frame was white (0xffffff), not green. + CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00ff00), getProperty(getShape(1), "BackColor")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index 15ad17d8b62d..b7b6cc0784a2 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -1803,7 +1803,7 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any& if(RES_BACKGROUND == pEntry->nWID) { const SwAttrSet& rSet = pFormat->GetAttrSet(); - const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND)); + const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND, true, pDoc->IsInXMLImport())); SvxBrushItem aChangedBrushItem(aOriginalBrushItem); aChangedBrushItem.PutValue(aValue, nMemberId); -- cgit v1.2.3