summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-12-15 09:08:50 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-12-15 22:48:44 +0100
commitdc8e7db79102ba8222387aef4f581d0aa8927e6d (patch)
tree56e236c89137cab706447f9d3dd16162855fabd1
parentee525cd2e81dca22f8556c7bf75996dbaa6c076a (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. Change-Id: Id1adf60b14a3762f0a2a43c49caeed9f6ea039be (cherry picked from commit 3a0c0af7309e1f5ba3811bbe8a73e506cf5cd069)
-rw-r--r--sw/qa/extras/odfimport/data/tdf96113.odtbin0 -> 13364 bytes
-rw-r--r--sw/qa/extras/odfimport/odfimport.cxx6
-rw-r--r--sw/source/core/unocore/unoframe.cxx2
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
new file mode 100644
index 000000000000..ede7b078175e
--- /dev/null
+++ b/sw/qa/extras/odfimport/data/tdf96113.odt
Binary files 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<bool>(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<sal_Int32>(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 ba315f55e6ce..4abb22ae119f 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);