summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2015-06-09 11:53:12 +0200
committerAndras Timar <andras.timar@collabora.com>2015-06-20 21:11:33 +0200
commit6727e417404a6c6c5924465abc920a4527e6e1dd (patch)
treea61daec0dc85ce9f7886e98e9ff381111605ba4d /editeng
parentd98410260cf4f7b9a50d82506781ccd6dfaad0af (diff)
tdf#88295: Don't export transparent background colour as white
The fix is twofold: 1. retrieve transparency from colour in SvxBackgroundColorItem (add QueryValue, PutValue methods, use additional memberID to retrieve alpha channel as a bool property) 2. add CharBackTransparent bool property to Draw [text] shapes, xmloff needs it to be able to output 'transparent' string instead of '#XXYYZZ' colour code in ODF format Conflicts: include/editeng/colritem.hxx Change-Id: I6e14b81cc82f6b4d7fdd4756ff2e4f75e9270361 Reviewed-on: https://gerrit.libreoffice.org/16243 Reviewed-by: Muthu Subramanian K <muthusuba@gmail.com> Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/items/textitem.cxx45
1 files changed, 45 insertions, 0 deletions
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index b4f5303ff383..b55d9ad6e5c8 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1830,6 +1830,51 @@ SfxPoolItem* SvxBackgroundColorItem::Create(SvStream& rStrm, sal_uInt16 ) const
return new SvxBackgroundColorItem( rStrm, Which() );
}
+bool SvxBackgroundColorItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
+{
+ nMemberId &= ~CONVERT_TWIPS;
+ Color aColor = SvxColorItem::GetValue();
+
+ switch( nMemberId )
+ {
+ case MID_GRAPHIC_TRANSPARENT:
+ {
+ rVal <<= Bool2Any (aColor.GetTransparency() == 0xff);
+ break;
+ }
+ default:
+ {
+ rVal <<= (sal_Int32)(aColor.GetColor());
+ break;
+ }
+ }
+ return true;
+}
+
+bool SvxBackgroundColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
+{
+ nMemberId &= ~CONVERT_TWIPS;
+ sal_Int32 nColor = 0;
+ Color aColor = SvxColorItem::GetValue();
+
+ switch( nMemberId )
+ {
+ case MID_GRAPHIC_TRANSPARENT:
+ {
+ aColor.SetTransparency( Any2Bool( rVal ) ? 0xff : 0 );
+ SvxColorItem::SetValue( aColor );
+ break;
+ }
+ default:
+ {
+ if(!(rVal >>= nColor))
+ return false;
+ SvxColorItem::SetValue( Color(nColor) );
+ break;
+ }
+ }
+ return true;
+}
// class SvxColorItem ----------------------------------------------------