diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2015-06-09 11:53:12 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-06-20 21:11:33 +0200 |
commit | 6727e417404a6c6c5924465abc920a4527e6e1dd (patch) | |
tree | a61daec0dc85ce9f7886e98e9ff381111605ba4d /editeng | |
parent | d98410260cf4f7b9a50d82506781ccd6dfaad0af (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.cxx | 45 |
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 ---------------------------------------------------- |