diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-12-15 09:08:50 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-12-18 08:49:34 +0000 |
commit | 09ea045d373bc00de4238363c6551fdffa7f3548 (patch) | |
tree | 0fbb127a6a13d7bd53d17fe23aab5e05a8e712c5 | |
parent | fe4c7f20c272cf7a984d0db79199fe74bd31fc86 (diff) |
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.
(cherry picked from commit 3a0c0af7309e1f5ba3811bbe8a73e506cf5cd069)
Conflicts:
sw/qa/extras/odfimport/odfimport.cxx
Change-Id: Id1adf60b14a3762f0a2a43c49caeed9f6ea039be
Reviewed-on: https://gerrit.libreoffice.org/20744
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r-- | sw/qa/extras/odfimport/data/tdf96113.odt | bin | 0 -> 13364 bytes | |||
-rw-r--r-- | sw/qa/extras/odfimport/odfimport.cxx | 6 | ||||
-rw-r--r-- | sw/source/core/unocore/unoframe.cxx | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/sw/qa/extras/odfimport/data/tdf96113.odt b/sw/qa/extras/odfimport/data/tdf96113.odt Binary files differnew file mode 100644 index 000000000000..ede7b078175e --- /dev/null +++ b/sw/qa/extras/odfimport/data/tdf96113.odt diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index 105e046e29db..5c60935174b2 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -613,6 +613,12 @@ DECLARE_ODFIMPORT_TEST(testTdf92586, "tdf92586.odt") CPPUNIT_ASSERT_EQUAL(drawing::BitmapMode_STRETCH, getProperty<drawing::BitmapMode>(xPageStyle, "FillBitmapMode")); } +DECLARE_ODFIMPORT_TEST(testTdf96113, "tdf96113.odt") +{ + // Background of the formula frame was white (0xffffff), not green. + CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00ff00), getProperty<sal_Int32>(getShape(1), "BackColor")); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index dd9f7894531a..ab14e38299c9 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:: 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); |