diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-10-25 10:36:10 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-10-30 14:12:33 +0000 |
commit | 9f89fbf3be626b13799b1b9c0fb8ca246148bcfb (patch) | |
tree | 1b3dde3a7768bcdf521fa3301b1f471737e8819b | |
parent | 22f307bc19d5acd0c4cb71e8e122e57bd6afc568 (diff) |
fdo#82859 RTF import: fillColor is unsigned
Otherwise ARGB 0xFFFFFFFF would turn into black.
(cherry picked from commit 04ea7b24ec1b5a027efa0b850f2bc3ac7116c52e)
Change-Id: I690f34d888ca9a013e8ce1af2c7ef8ed88ee28b0
Reviewed-on: https://gerrit.libreoffice.org/12153
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sw/qa/extras/rtfimport/data/fdo82859.rtf | 25 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfsdrimport.cxx | 2 |
3 files changed, 32 insertions, 1 deletions
diff --git a/sw/qa/extras/rtfimport/data/fdo82859.rtf b/sw/qa/extras/rtfimport/data/fdo82859.rtf new file mode 100644 index 000000000000..eac5e6f3f972 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo82859.rtf @@ -0,0 +1,25 @@ +{\rtf1 +{\shp +{\*\shpinst\shpbypara\shpbyignore\shptop4154\shpbottom11234\shpbxcolumn\shpbxignore\shpleft-90\shpright9270 +{\sp +{\sn fillColor} +{\sv 4294967295} +} +{\sp +{\sn shapeType} +{\sv 202} +} +{\sp +{\sn posrelv} +{\sv 2} +} +{\sp +{\sn posrelh} +{\sv 2} +} +{\shptxt +} +} +} +\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index d4cb897a9347..520beee85586 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1914,6 +1914,12 @@ DECLARE_RTFIMPORT_TEST(testFdo85179, "fdo85179.rtf") CPPUNIT_ASSERT_EQUAL(sal_uInt32(50800/360), getProperty<table::BorderLine2>(getShape(1), "TopBorder").LineWidth); } +DECLARE_RTFIMPORT_TEST(testFdo82859, "fdo82859.rtf") +{ + // This was 0: "0xffffff" was converted to 0, i.e. the background was black instead of the default. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1), getProperty<sal_Int32>(getShape(1), "BackColor")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx b/writerfilter/source/rtftok/rtfsdrimport.cxx index 7afcfb0f0740..acbe6a2b7b5e 100644 --- a/writerfilter/source/rtftok/rtfsdrimport.cxx +++ b/writerfilter/source/rtftok/rtfsdrimport.cxx @@ -358,7 +358,7 @@ void RTFSdrImport::resolve(RTFShape& rShape, bool bClose, ShapeOrPict const shap } else if (i->first == "fillColor" && xPropertySet.is()) { - aAny <<= msfilter::util::BGRToRGB(i->second.toInt32()); + aAny <<= msfilter::util::BGRToRGB(i->second.toUInt32()); if (m_bTextFrame) xPropertySet->setPropertyValue("BackColor", aAny); else |