From 7bf1e66ac51a582527b35b852586cf7474bc7ba8 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Wed, 12 Apr 2017 14:03:04 +0200 Subject: convert AX_FONTDATA to o3tl::typed_flags Change-Id: If51119fbdde4b1d923b794d126fdae99ca238f81 Reviewed-on: https://gerrit.libreoffice.org/36463 Tested-by: Jenkins Reviewed-by: Noel Grandin --- oox/source/ole/axcontrol.cxx | 27 +++++++++++++++++---------- oox/source/ole/axfontdata.cxx | 18 ++++++++++-------- 2 files changed, 27 insertions(+), 18 deletions(-) (limited to 'oox') diff --git a/oox/source/ole/axcontrol.cxx b/oox/source/ole/axcontrol.cxx index 283c0e48dc61..24b33d842840 100644 --- a/oox/source/ole/axcontrol.cxx +++ b/oox/source/ole/axcontrol.cxx @@ -851,10 +851,14 @@ void AxFontDataModel::importProperty( sal_Int32 nPropId, const OUString& rValue switch( nPropId ) { case XML_FontName: maFontData.maFontName = rValue; break; - case XML_FontEffects: maFontData.mnFontEffects = AttributeConversion::decodeUnsigned( rValue ); break; + case XML_FontEffects: + maFontData.mnFontEffects = static_cast(AttributeConversion::decodeUnsigned( rValue )); + break; case XML_FontHeight: maFontData.mnFontHeight = AttributeConversion::decodeInteger( rValue ); break; case XML_FontCharSet: maFontData.mnFontCharSet = AttributeConversion::decodeInteger( rValue ); break; - case XML_ParagraphAlign: maFontData.mnHorAlign = static_cast(AttributeConversion::decodeInteger( rValue )); break; + case XML_ParagraphAlign: + maFontData.mnHorAlign = static_cast(AttributeConversion::decodeInteger( rValue )); + break; default: AxControlModelBase::importProperty( nPropId, rValue ); } } @@ -875,10 +879,13 @@ void AxFontDataModel::convertProperties( PropertyMap& rPropMap, const ControlCon rPropMap.setProperty( PROP_FontName, maFontData.maFontName ); // font effects - rPropMap.setProperty( PROP_FontWeight, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_BOLD, awt::FontWeight::BOLD, awt::FontWeight::NORMAL ) ); - rPropMap.setProperty( PROP_FontSlant, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_ITALIC, FontSlant_ITALIC, FontSlant_NONE ) ); - rPropMap.setProperty( PROP_FontUnderline, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_UNDERLINE, maFontData.mbDblUnderline ? awt::FontUnderline::DOUBLE : awt::FontUnderline::SINGLE, awt::FontUnderline::NONE ) ); - rPropMap.setProperty( PROP_FontStrikeout, getFlagValue( maFontData.mnFontEffects, AX_FONTDATA_STRIKEOUT, awt::FontStrikeout::SINGLE, awt::FontStrikeout::NONE ) ); + rPropMap.setProperty( PROP_FontWeight, maFontData.mnFontEffects & AxFontFlags::Bold ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ); + rPropMap.setProperty( PROP_FontSlant, maFontData.mnFontEffects & AxFontFlags::Italic ? FontSlant_ITALIC : FontSlant_NONE ); + if (maFontData.mnFontEffects & AxFontFlags::Underline) + rPropMap.setProperty( PROP_FontUnderline, maFontData.mbDblUnderline ? awt::FontUnderline::DOUBLE : awt::FontUnderline::SINGLE ); + else + rPropMap.setProperty( PROP_FontUnderline, awt::FontUnderline::NONE ); + rPropMap.setProperty( PROP_FontStrikeout, maFontData.mnFontEffects & AxFontFlags::Strikeout ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ); rPropMap.setProperty( PROP_FontHeight, maFontData.getHeightPoints() ); // font character set @@ -912,17 +919,17 @@ void AxFontDataModel::convertFromProperties( PropertySet& rPropSet, const Contro rPropSet.getProperty( maFontData.maFontName, PROP_FontName ); float fontWeight = (float)0; if ( rPropSet.getProperty(fontWeight, PROP_FontWeight ) ) - setFlag( maFontData.mnFontEffects, AX_FONTDATA_BOLD, ( fontWeight == awt::FontWeight::BOLD ) ); + setFlag( maFontData.mnFontEffects, AxFontFlags::Bold, ( fontWeight == awt::FontWeight::BOLD ) ); FontSlant nSlant = FontSlant_NONE; if ( rPropSet.getProperty( nSlant, PROP_FontSlant ) ) - setFlag( maFontData.mnFontEffects, AX_FONTDATA_ITALIC, ( nSlant == FontSlant_ITALIC ) ); + setFlag( maFontData.mnFontEffects, AxFontFlags::Italic, ( nSlant == FontSlant_ITALIC ) ); sal_Int16 nUnderLine = awt::FontUnderline::NONE; if ( rPropSet.getProperty( nUnderLine, PROP_FontUnderline ) ) - setFlag( maFontData.mnFontEffects, AX_FONTDATA_UNDERLINE, nUnderLine != awt::FontUnderline::NONE ); + setFlag( maFontData.mnFontEffects, AxFontFlags::Underline, nUnderLine != awt::FontUnderline::NONE ); sal_Int16 nStrikeout = awt::FontStrikeout::NONE ; if ( rPropSet.getProperty( nStrikeout, PROP_FontStrikeout ) ) - setFlag( maFontData.mnFontEffects, AX_FONTDATA_STRIKEOUT, nStrikeout != awt::FontStrikeout::NONE ); + setFlag( maFontData.mnFontEffects, AxFontFlags::Strikeout, nStrikeout != awt::FontStrikeout::NONE ); float fontHeight = 0.0; if ( rPropSet.getProperty( fontHeight, PROP_FontHeight ) ) diff --git a/oox/source/ole/axfontdata.cxx b/oox/source/ole/axfontdata.cxx index 22a31b0e15e5..b3da64439a04 100644 --- a/oox/source/ole/axfontdata.cxx +++ b/oox/source/ole/axfontdata.cxx @@ -26,7 +26,7 @@ namespace oox { namespace ole { AxFontData::AxFontData() : - mnFontEffects( 0 ), + mnFontEffects( AxFontFlags::NONE ), mnFontHeight( 160 ), mnFontCharSet( WINDOWS_CHARSET_DEFAULT ), mnHorAlign( AxHorizontalAlign::Left ), @@ -51,7 +51,9 @@ bool AxFontData::importBinaryModel( BinaryInputStream& rInStrm ) { AxBinaryPropertyReader aReader( rInStrm ); aReader.readStringProperty( maFontName ); - aReader.readIntProperty< sal_uInt32 >( mnFontEffects ); + sal_uInt32 nTmp32 = 0; + aReader.readIntProperty< sal_uInt32 >( nTmp32 ); + mnFontEffects = static_cast(nTmp32); aReader.readIntProperty< sal_Int32 >( mnFontHeight ); aReader.skipIntProperty< sal_Int32 >(); // font offset aReader.readIntProperty< sal_uInt8 >( mnFontCharSet ); @@ -68,7 +70,7 @@ void AxFontData::exportBinaryModel( BinaryOutputStream& rOutStrm ) { AxBinaryPropertyWriter aWriter( rOutStrm ); aWriter.writeStringProperty( maFontName ); - aWriter.writeIntProperty< sal_uInt32 >( mnFontEffects ); + aWriter.writeIntProperty< sal_uInt32 >( static_cast(mnFontEffects) ); aWriter.writeIntProperty< sal_Int32 >( mnFontHeight ); aWriter.skipProperty(); // font offset // TODO make AxFontDataModel::convertFromProperties convert the textencoding @@ -86,11 +88,11 @@ bool AxFontData::importStdFont( BinaryInputStream& rInStrm ) if( OleHelper::importStdFont( aFontInfo, rInStrm, false ) ) { maFontName = aFontInfo.maName; - mnFontEffects = 0; - setFlag( mnFontEffects, AX_FONTDATA_BOLD, aFontInfo.mnWeight >= OLE_STDFONT_BOLD ); - setFlag( mnFontEffects, AX_FONTDATA_ITALIC, getFlag( aFontInfo.mnFlags, OLE_STDFONT_ITALIC ) ); - setFlag( mnFontEffects, AX_FONTDATA_UNDERLINE, getFlag( aFontInfo.mnFlags, OLE_STDFONT_UNDERLINE ) ); - setFlag( mnFontEffects, AX_FONTDATA_STRIKEOUT, getFlag( aFontInfo.mnFlags,OLE_STDFONT_STRIKE ) ); + mnFontEffects = AxFontFlags::NONE; + setFlag( mnFontEffects, AxFontFlags::Bold, aFontInfo.mnWeight >= OLE_STDFONT_BOLD ); + setFlag( mnFontEffects, AxFontFlags::Italic, getFlag( aFontInfo.mnFlags, OLE_STDFONT_ITALIC ) ); + setFlag( mnFontEffects, AxFontFlags::Underline, getFlag( aFontInfo.mnFlags, OLE_STDFONT_UNDERLINE ) ); + setFlag( mnFontEffects, AxFontFlags::Strikeout, getFlag( aFontInfo.mnFlags,OLE_STDFONT_STRIKE ) ); mbDblUnderline = false; // StdFont stores font height in 1/10,000 of points setHeightPoints( getLimitedValue< sal_Int16, sal_Int32 >( aFontInfo.mnHeight / 10000, 0, SAL_MAX_INT16 ) ); -- cgit