don't write SvxBackgroundColorItem via inherited SvxColorItem::Store
SvxBackgroundColorItem inherits from SvxColorItem and for backwards compatibility with the StarOffice 5 binary file format (yes, really) writes/reads only rgb and not the transparency value, so copying and pasting text from a sidebar comment in writer to itself or another one results in a black character background as the default COL_AUTO turns into black Change-Id: I18b5105dd8e060b9e49dda6026e26d3a0f00d8f5
This commit is contained in:
@@ -221,7 +221,6 @@ void EditCharAttribColor::SetFont( SvxFont& rFont, OutputDevice* )
|
||||
{
|
||||
Color aColor = static_cast<const SvxColorItem*>(GetItem())->GetValue();
|
||||
rFont.SetColor( aColor);
|
||||
//fprintf(stderr, "Called SetFont with Color %d\n", aColor.GetColor());
|
||||
}
|
||||
|
||||
// class EditCharAttribBackgroundColor
|
||||
@@ -238,14 +237,11 @@ EditCharAttribBackgroundColor::EditCharAttribBackgroundColor(
|
||||
void EditCharAttribBackgroundColor::SetFont( SvxFont& rFont, OutputDevice* )
|
||||
{
|
||||
Color aColor = static_cast<const SvxBackgroundColorItem*>(GetItem())->GetValue();
|
||||
rFont.SetFillColor( aColor);
|
||||
rFont.SetTransparent(false);
|
||||
|
||||
rFont.SetFillColor(aColor);
|
||||
}
|
||||
|
||||
|
||||
// class EditCharAttribLanguage
|
||||
|
||||
EditCharAttribLanguage::EditCharAttribLanguage( const SvxLanguageItem& rAttr, sal_uInt16 _nStart, sal_uInt16 _nEnd )
|
||||
: EditCharAttrib( rAttr, _nStart, _nEnd )
|
||||
{
|
||||
|
@@ -1850,9 +1850,12 @@ SvxBackgroundColorItem::SvxBackgroundColorItem( const Color& rCol,
|
||||
{
|
||||
}
|
||||
|
||||
SvxBackgroundColorItem:: SvxBackgroundColorItem( SvStream& rStrm, const sal_uInt16 Id ) :
|
||||
SvxColorItem( rStrm, Id )
|
||||
SvxBackgroundColorItem::SvxBackgroundColorItem(SvStream& rStrm, const sal_uInt16 nId)
|
||||
: SvxColorItem(nId)
|
||||
{
|
||||
Color aColor;
|
||||
aColor.Read(rStrm);
|
||||
SetValue(aColor);
|
||||
}
|
||||
|
||||
SvxBackgroundColorItem::SvxBackgroundColorItem( const SvxBackgroundColorItem& rCopy ) :
|
||||
@@ -1862,9 +1865,14 @@ SvxBackgroundColorItem::SvxBackgroundColorItem( const SvxBackgroundColorItem& rC
|
||||
|
||||
SfxPoolItem* SvxBackgroundColorItem::Clone( SfxItemPool * ) const
|
||||
{
|
||||
return new SvxBackgroundColorItem( *this );
|
||||
return new SvxBackgroundColorItem(*this);
|
||||
}
|
||||
|
||||
SvStream& SvxBackgroundColorItem::Store(SvStream& rStrm, sal_uInt16) const
|
||||
{
|
||||
GetValue().Write(rStrm);
|
||||
return rStrm;
|
||||
}
|
||||
|
||||
SfxPoolItem* SvxBackgroundColorItem::Create(SvStream& rStrm, sal_uInt16 ) const
|
||||
{
|
||||
@@ -1918,23 +1926,18 @@ bool SvxBackgroundColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId
|
||||
}
|
||||
|
||||
// class SvxColorItem ----------------------------------------------------
|
||||
|
||||
SvxColorItem::SvxColorItem( const sal_uInt16 nId ) :
|
||||
SfxPoolItem( nId ),
|
||||
mColor( COL_BLACK )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
SvxColorItem::SvxColorItem( const Color& rCol, const sal_uInt16 nId ) :
|
||||
SfxPoolItem( nId ),
|
||||
mColor( rCol )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
SvxColorItem::SvxColorItem( SvStream &rStrm, const sal_uInt16 nId ) :
|
||||
SfxPoolItem( nId )
|
||||
{
|
||||
@@ -1943,21 +1946,16 @@ SvxColorItem::SvxColorItem( SvStream &rStrm, const sal_uInt16 nId ) :
|
||||
mColor = aColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
SvxColorItem::SvxColorItem( const SvxColorItem &rCopy ) :
|
||||
SfxPoolItem( rCopy ),
|
||||
mColor( rCopy.mColor )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
SvxColorItem::~SvxColorItem()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
sal_uInt16 SvxColorItem::GetVersion( sal_uInt16 nFFVer ) const
|
||||
{
|
||||
DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
|
||||
@@ -1967,8 +1965,6 @@ sal_uInt16 SvxColorItem::GetVersion( sal_uInt16 nFFVer ) const
|
||||
return SOFFICE_FILEFORMAT_50 >= nFFVer ? VERSION_USEAUTOCOLOR : 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool SvxColorItem::operator==( const SfxPoolItem& rAttr ) const
|
||||
{
|
||||
DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
|
||||
@@ -1976,16 +1972,12 @@ bool SvxColorItem::operator==( const SfxPoolItem& rAttr ) const
|
||||
return mColor == static_cast<const SvxColorItem&>( rAttr ).mColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool SvxColorItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
|
||||
{
|
||||
rVal <<= (sal_Int32)(mColor.GetColor());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
|
||||
{
|
||||
sal_Int32 nColor = 0;
|
||||
@@ -1996,15 +1988,11 @@ bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
SfxPoolItem* SvxColorItem::Clone( SfxItemPool * ) const
|
||||
{
|
||||
return new SvxColorItem( *this );
|
||||
}
|
||||
|
||||
|
||||
|
||||
SvStream& SvxColorItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
|
||||
{
|
||||
if( VERSION_USEAUTOCOLOR == nItemVersion &&
|
||||
@@ -2015,15 +2003,11 @@ SvStream& SvxColorItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
|
||||
return rStrm;
|
||||
}
|
||||
|
||||
|
||||
|
||||
SfxPoolItem* SvxColorItem::Create(SvStream& rStrm, sal_uInt16 /*nVer*/ ) const
|
||||
{
|
||||
return new SvxColorItem( rStrm, Which() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool SvxColorItem::GetPresentation
|
||||
(
|
||||
SfxItemPresentation /*ePres*/,
|
||||
|
@@ -82,6 +82,7 @@ class EDITENG_DLLPUBLIC SvxBackgroundColorItem : public SvxColorItem
|
||||
SvxBackgroundColorItem(const SvxBackgroundColorItem& rCopy);
|
||||
|
||||
virtual SfxPoolItem* Clone(SfxItemPool* pPool = 0) const SAL_OVERRIDE;
|
||||
virtual SvStream& Store(SvStream& rStream, sal_uInt16 nVersion) const SAL_OVERRIDE;
|
||||
virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const SAL_OVERRIDE;
|
||||
virtual bool QueryValue(css::uno::Any& rVal, sal_uInt8 nMemberId = 0) const SAL_OVERRIDE;
|
||||
virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8 nMemberId) SAL_OVERRIDE;
|
||||
|
Reference in New Issue
Block a user