diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-02-28 14:59:00 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-03-01 07:46:32 +0100 |
commit | e13a8c7df2d11814a0a4669aad88e68e27835934 (patch) | |
tree | e1669f58faa656da59261b7a24329ae368e43475 /reportdesign | |
parent | 5a64b618d84edb65465950d54e3b4afc952a301c (diff) |
use SfxItemSet::GetItemIfSet in desktop..reportdesign
Change-Id: Iaa0ddf4e97866d537a478e668e3c651a9eabc465
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130708
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'reportdesign')
-rw-r--r-- | reportdesign/source/ui/misc/UITools.cxx | 302 | ||||
-rw-r--r-- | reportdesign/source/ui/report/ReportController.cxx | 37 |
2 files changed, 153 insertions, 186 deletions
diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx index 6440b37878ce..3566c684289a 100644 --- a/reportdesign/source/ui/misc/UITools.cxx +++ b/reportdesign/source/ui/misc/UITools.cxx @@ -120,46 +120,46 @@ #include <svx/xflftrit.hxx> #include <svx/xsflclit.hxx> -#define ITEMID_FONT XATTR_FILL_LAST + 1 -#define ITEMID_FONTHEIGHT XATTR_FILL_LAST + 2 -#define ITEMID_LANGUAGE XATTR_FILL_LAST + 3 - -#define ITEMID_POSTURE XATTR_FILL_LAST + 4 -#define ITEMID_WEIGHT XATTR_FILL_LAST + 5 -#define ITEMID_SHADOWED XATTR_FILL_LAST + 6 -#define ITEMID_WORDLINEMODE XATTR_FILL_LAST + 7 -#define ITEMID_CONTOUR XATTR_FILL_LAST + 8 -#define ITEMID_CROSSEDOUT XATTR_FILL_LAST + 9 -#define ITEMID_UNDERLINE XATTR_FILL_LAST + 10 - -#define ITEMID_COLOR XATTR_FILL_LAST + 11 -#define ITEMID_KERNING XATTR_FILL_LAST + 12 -#define ITEMID_CASEMAP XATTR_FILL_LAST + 13 - -#define ITEMID_ESCAPEMENT XATTR_FILL_LAST + 14 +#define ITEMID_FONT TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 1) +#define ITEMID_FONTHEIGHT TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 2) +#define ITEMID_LANGUAGE TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 3) + +#define ITEMID_POSTURE TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 4) +#define ITEMID_WEIGHT TypedWhichId<SvxWeightItem>(XATTR_FILL_LAST + 5) +#define ITEMID_SHADOWED TypedWhichId<SvxShadowedItem>(XATTR_FILL_LAST + 6) +#define ITEMID_WORDLINEMODE TypedWhichId<SvxWordLineModeItem>(XATTR_FILL_LAST + 7) +#define ITEMID_CONTOUR TypedWhichId<SvxContourItem>(XATTR_FILL_LAST + 8) +#define ITEMID_CROSSEDOUT TypedWhichId<SvxCrossedOutItem>(XATTR_FILL_LAST + 9) +#define ITEMID_UNDERLINE TypedWhichId<SvxUnderlineItem>(XATTR_FILL_LAST + 10) + +#define ITEMID_COLOR TypedWhichId<SvxColorItem>(XATTR_FILL_LAST + 11) +#define ITEMID_KERNING TypedWhichId<SvxKerningItem>(XATTR_FILL_LAST + 12) +#define ITEMID_CASEMAP TypedWhichId<SvxCaseMapItem>(XATTR_FILL_LAST + 13) + +#define ITEMID_ESCAPEMENT TypedWhichId<SvxEscapementItem>(XATTR_FILL_LAST + 14) #define ITEMID_FONTLIST XATTR_FILL_LAST + 15 -#define ITEMID_AUTOKERN XATTR_FILL_LAST + 16 +#define ITEMID_AUTOKERN TypedWhichId<SvxAutoKernItem>(XATTR_FILL_LAST + 16) #define ITEMID_COLOR_TABLE TypedWhichId<SvxColorListItem>(XATTR_FILL_LAST + 17) -#define ITEMID_BLINK XATTR_FILL_LAST + 18 -#define ITEMID_EMPHASISMARK XATTR_FILL_LAST + 19 -#define ITEMID_TWOLINES XATTR_FILL_LAST + 20 -#define ITEMID_CHARROTATE XATTR_FILL_LAST + 21 -#define ITEMID_CHARSCALE_W XATTR_FILL_LAST + 22 -#define ITEMID_CHARRELIEF XATTR_FILL_LAST + 23 -#define ITEMID_CHARHIDDEN XATTR_FILL_LAST + 24 -#define ITEMID_BRUSH XATTR_FILL_LAST + 25 -#define ITEMID_HORJUSTIFY XATTR_FILL_LAST + 26 -#define ITEMID_VERJUSTIFY XATTR_FILL_LAST + 27 -#define ITEMID_FONT_ASIAN XATTR_FILL_LAST + 28 -#define ITEMID_FONTHEIGHT_ASIAN XATTR_FILL_LAST + 29 -#define ITEMID_LANGUAGE_ASIAN XATTR_FILL_LAST + 30 -#define ITEMID_POSTURE_ASIAN XATTR_FILL_LAST + 31 -#define ITEMID_WEIGHT_ASIAN XATTR_FILL_LAST + 32 -#define ITEMID_FONT_COMPLEX XATTR_FILL_LAST + 33 -#define ITEMID_FONTHEIGHT_COMPLEX XATTR_FILL_LAST + 34 -#define ITEMID_LANGUAGE_COMPLEX XATTR_FILL_LAST + 35 -#define ITEMID_POSTURE_COMPLEX XATTR_FILL_LAST + 36 -#define ITEMID_WEIGHT_COMPLEX XATTR_FILL_LAST + 37 +#define ITEMID_BLINK TypedWhichId<SvxBlinkItem>(XATTR_FILL_LAST + 18) +#define ITEMID_EMPHASISMARK TypedWhichId<SvxEmphasisMarkItem>(XATTR_FILL_LAST + 19) +#define ITEMID_TWOLINES TypedWhichId<SvxTwoLinesItem>(XATTR_FILL_LAST + 20) +#define ITEMID_CHARROTATE TypedWhichId<SvxCharRotateItem>(XATTR_FILL_LAST + 21) +#define ITEMID_CHARSCALE_W TypedWhichId<SvxCharScaleWidthItem>(XATTR_FILL_LAST + 22) +#define ITEMID_CHARRELIEF TypedWhichId<SvxCharReliefItem>(XATTR_FILL_LAST + 23) +#define ITEMID_CHARHIDDEN TypedWhichId<SvxCharHiddenItem>(XATTR_FILL_LAST + 24) +#define ITEMID_BRUSH TypedWhichId<SvxBrushItem>(XATTR_FILL_LAST + 25) +#define ITEMID_HORJUSTIFY TypedWhichId<SvxHorJustifyItem>(XATTR_FILL_LAST + 26) +#define ITEMID_VERJUSTIFY TypedWhichId<SvxVerJustifyItem>(XATTR_FILL_LAST + 27) +#define ITEMID_FONT_ASIAN TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 28) +#define ITEMID_FONTHEIGHT_ASIAN TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 29) +#define ITEMID_LANGUAGE_ASIAN TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 30) +#define ITEMID_POSTURE_ASIAN TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 31) +#define ITEMID_WEIGHT_ASIAN TypedWhichId<SvxWeightItem>(XATTR_FILL_LAST + 32) +#define ITEMID_FONT_COMPLEX TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 33) +#define ITEMID_FONTHEIGHT_COMPLEX TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 34) +#define ITEMID_LANGUAGE_COMPLEX TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 35) +#define ITEMID_POSTURE_COMPLEX TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 36) +#define ITEMID_WEIGHT_COMPLEX TypedWhichId<SvxWeightItem>(XATTR_FILL_LAST + 37) #define WESTERN 0 #define ASIAN 1 @@ -377,65 +377,54 @@ namespace void lcl_initAwtFont( const vcl::Font& _rOriginalFont, const SfxItemSet& _rItemSet, awt::FontDescriptor& _out_rAwtFont, - sal_uInt16 _nFont, sal_uInt16 _nFontHeight,sal_uInt16 _nPosture, sal_uInt16 _nWeight) + TypedWhichId<SvxFontItem> _nFont, TypedWhichId<SvxFontHeightItem> _nFontHeight, + TypedWhichId<SvxPostureItem> _nPosture, TypedWhichId<SvxWeightItem> _nWeight) { vcl::Font aNewFont( _rOriginalFont ); - const SfxPoolItem* pItem( nullptr ); - if ( SfxItemState::SET == _rItemSet.GetItemState( _nFont,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxFontItem *>( pItem ) ) - { - aNewFont.SetFamilyName(pFontItem->GetFamilyName()); - aNewFont.SetStyleName(pFontItem->GetStyleName()); - aNewFont.SetFamily(pFontItem->GetFamily()); - aNewFont.SetPitch(pFontItem->GetPitch()); - aNewFont.SetCharSet(pFontItem->GetCharSet()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( _nFontHeight,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxFontHeightItem *>( pItem ) ) - { - aNewFont.SetFontHeight(o3tl::convert(pFontItem->GetHeight(), o3tl::Length::twip, o3tl::Length::pt)); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( _nPosture,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxPostureItem *>( pItem ) ) - { - aNewFont.SetItalic(pFontItem->GetPosture()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( _nWeight,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxWeightItem *>( pItem ) ) - { - aNewFont.SetWeight(pFontItem->GetWeight()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_WORDLINEMODE,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxWordLineModeItem *>( pItem ) ) - { - aNewFont.SetWordLineMode(pFontItem->GetValue()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CROSSEDOUT,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxCrossedOutItem *>( pItem ) ) - { - aNewFont.SetStrikeout(pFontItem->GetStrikeout()); - } - - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARROTATE,true,&pItem) ) - if ( auto pRotateItem = dynamic_cast< const SvxCharRotateItem *>( pItem ) ) - { - aNewFont.SetOrientation(pRotateItem->GetValue()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARSCALE_W,true,&pItem) ) - if ( auto pCharItem = dynamic_cast< const SvxCharScaleWidthItem *>( pItem ) ) - { - aNewFont.SetWidthType(vcl::unohelper::ConvertFontWidth(pCharItem->GetValue())); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxUnderlineItem *>( pItem ) ) - { - aNewFont.SetUnderline(pFontItem->GetLineStyle()); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) ) - if ( auto pFontItem = dynamic_cast< const SvxColorItem *>( pItem ) ) - { - aNewFont.SetColor(pFontItem->GetValue()); - } + if ( const SvxFontItem* pFontItem = _rItemSet.GetItemIfSet( _nFont) ) + { + aNewFont.SetFamilyName(pFontItem->GetFamilyName()); + aNewFont.SetStyleName(pFontItem->GetStyleName()); + aNewFont.SetFamily(pFontItem->GetFamily()); + aNewFont.SetPitch(pFontItem->GetPitch()); + aNewFont.SetCharSet(pFontItem->GetCharSet()); + } + if ( const SvxFontHeightItem* pFontItem = _rItemSet.GetItemIfSet( _nFontHeight ) ) + { + aNewFont.SetFontHeight(o3tl::convert(pFontItem->GetHeight(), o3tl::Length::twip, o3tl::Length::pt)); + } + if ( const SvxPostureItem* pPostureItem = _rItemSet.GetItemIfSet( _nPosture) ) + { + aNewFont.SetItalic(pPostureItem->GetPosture()); + } + if ( const SvxWeightItem* pWeightItem = _rItemSet.GetItemIfSet( _nWeight ) ) + { + aNewFont.SetWeight(pWeightItem->GetWeight()); + } + if ( const SvxWordLineModeItem* pWordLineItem = _rItemSet.GetItemIfSet( ITEMID_WORDLINEMODE ) ) + { + aNewFont.SetWordLineMode(pWordLineItem->GetValue()); + } + if ( const SvxCrossedOutItem* pCrossedOutItem = _rItemSet.GetItemIfSet( ITEMID_CROSSEDOUT ) ) + { + aNewFont.SetStrikeout(pCrossedOutItem->GetStrikeout()); + } + if ( const SvxCharRotateItem* pRotateItem = _rItemSet.GetItemIfSet( ITEMID_CHARROTATE ) ) + { + aNewFont.SetOrientation(pRotateItem->GetValue()); + } + if ( const SvxCharScaleWidthItem* pCharItem = _rItemSet.GetItemIfSet( ITEMID_CHARSCALE_W ) ) + { + aNewFont.SetWidthType(vcl::unohelper::ConvertFontWidth(pCharItem->GetValue())); + } + if ( const SvxUnderlineItem* pUnderlineItem = _rItemSet.GetItemIfSet( ITEMID_UNDERLINE ) ) + { + aNewFont.SetUnderline(pUnderlineItem->GetLineStyle()); + } + if ( const SvxColorItem* pColorItem = _rItemSet.GetItemIfSet( ITEMID_COLOR ) ) + { + aNewFont.SetColor(pColorItem->GetValue()); + } _out_rAwtFont = VCLUnoHelper::CreateFontDescriptor( aNewFont ); } @@ -443,8 +432,6 @@ namespace void lcl_itemsToCharProperties( const vcl::Font& _rOriginalControlFont,const vcl::Font& _rOriginalControlFontAsian,const vcl::Font& _rOriginalControlFontComplex, const SfxItemSet& _rItemSet, uno::Sequence< beans::NamedValue >& _out_rProperties ) { - const SfxPoolItem* pItem( nullptr ); - // create an AWT font awt::FontDescriptor aAwtFont; lcl_initAwtFont( _rOriginalControlFont, _rItemSet, aAwtFont,ITEMID_FONT,ITEMID_FONTHEIGHT,ITEMID_POSTURE, ITEMID_WEIGHT); @@ -455,65 +442,50 @@ namespace lcl_pushBack( _out_rProperties, "FontComplex", uno::makeAny( aAwtFont ) ); // properties which cannot be represented in an AWT font need to be preserved directly - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_SHADOWED,true,&pItem) ) - if (auto pShadowedItem = dynamic_cast<const SvxShadowedItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARSHADOWED, uno::makeAny( pShadowedItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CONTOUR,true,&pItem) ) - if (auto pContourItem = dynamic_cast<const SvxContourItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARCONTOURED, uno::makeAny( pContourItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) ) - if (auto pUnderlineItem = dynamic_cast< const SvxUnderlineItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARUNDERLINECOLOR, uno::makeAny( pUnderlineItem->GetColor() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_HORJUSTIFY,true,&pItem) ) - if (auto pJustifyItem = dynamic_cast< const SvxHorJustifyItem *>( pItem )) - { - uno::Any aValue; - pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST); - lcl_pushBack( _out_rProperties, PROPERTY_PARAADJUST, aValue ); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_VERJUSTIFY,true,&pItem) ) - if (auto pJustifyItem = dynamic_cast< const SvxVerJustifyItem *>( pItem )) - { - uno::Any aValue; - pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST); - lcl_pushBack( _out_rProperties, PROPERTY_VERTICALALIGN, aValue ); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARRELIEF,true,&pItem) ) - if (auto pReliefItem = dynamic_cast< const SvxCharReliefItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARRELIEF, uno::makeAny( static_cast< sal_Int16 >( pReliefItem->GetEnumValue() ) ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARHIDDEN,true,&pItem) ) - if (auto pHiddenItem = dynamic_cast< const SvxCharHiddenItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARHIDDEN, uno::makeAny( pHiddenItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_AUTOKERN,true,&pItem) ) - if (auto pKernItem = dynamic_cast< const SvxAutoKernItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARAUTOKERNING, uno::makeAny( pKernItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BRUSH,true,&pItem) ) - if (auto pBrushItem = dynamic_cast< const SvxBrushItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CONTROLBACKGROUND, uno::makeAny( pBrushItem->GetColor() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BLINK,true,&pItem) ) - if (auto pBlinkItem = dynamic_cast< const SvxBlinkItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARFLASH, uno::makeAny( pBlinkItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_EMPHASISMARK,true,&pItem) ) - if (auto pMarkItem = dynamic_cast< const SvxEmphasisMarkItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHAREMPHASIS, uno::makeAny( static_cast< sal_Int16 >( pMarkItem->GetEmphasisMark() ) ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_TWOLINES,true,&pItem) ) - if (auto pLinesItem = dynamic_cast< const SvxTwoLinesItem *>( pItem )) - { - lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEISON, uno::makeAny( pLinesItem->GetValue() ) ); - lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEPREFIX, uno::makeAny( OUString( pLinesItem->GetStartBracket() ) ) ); - lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINESUFFIX, uno::makeAny( OUString( pLinesItem->GetEndBracket() ) ) ); - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) ) - if (auto pColorItem = dynamic_cast< const SvxColorItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARCOLOR, uno::makeAny( pColorItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_KERNING,true,&pItem) ) - if (auto pKernItem = dynamic_cast< const SvxKerningItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARKERNING, uno::makeAny( pKernItem->GetValue() ) ); - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CASEMAP,true,&pItem) ) - if (auto pCaseMapItem = dynamic_cast< const SvxCaseMapItem *>( pItem )) - lcl_pushBack( _out_rProperties, PROPERTY_CHARCASEMAP, uno::makeAny( pCaseMapItem->GetEnumValue() ) ); + if ( const SvxShadowedItem* pShadowedItem = _rItemSet.GetItemIfSet( ITEMID_SHADOWED) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARSHADOWED, uno::makeAny( pShadowedItem->GetValue() ) ); + if ( const SvxContourItem* pContourItem = _rItemSet.GetItemIfSet( ITEMID_CONTOUR ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARCONTOURED, uno::makeAny( pContourItem->GetValue() ) ); + if ( const SvxUnderlineItem* pUnderlineItem = _rItemSet.GetItemIfSet( ITEMID_UNDERLINE ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARUNDERLINECOLOR, uno::makeAny( pUnderlineItem->GetColor() ) ); + if ( const SvxHorJustifyItem* pJustifyItem = _rItemSet.GetItemIfSet( ITEMID_HORJUSTIFY ) ) + { + uno::Any aValue; + pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST); + lcl_pushBack( _out_rProperties, PROPERTY_PARAADJUST, aValue ); + } + if ( const SvxVerJustifyItem* pJustifyItem = _rItemSet.GetItemIfSet( ITEMID_VERJUSTIFY ) ) + { + uno::Any aValue; + pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST); + lcl_pushBack( _out_rProperties, PROPERTY_VERTICALALIGN, aValue ); + } + if ( const SvxCharReliefItem* pReliefItem = _rItemSet.GetItemIfSet( ITEMID_CHARRELIEF ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARRELIEF, uno::makeAny( static_cast< sal_Int16 >( pReliefItem->GetEnumValue() ) ) ); + if ( const SvxCharHiddenItem* pHiddenItem = _rItemSet.GetItemIfSet( ITEMID_CHARHIDDEN ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARHIDDEN, uno::makeAny( pHiddenItem->GetValue() ) ); + if ( const SvxAutoKernItem* pKernItem = _rItemSet.GetItemIfSet( ITEMID_AUTOKERN ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARAUTOKERNING, uno::makeAny( pKernItem->GetValue() ) ); + if ( const SvxBrushItem* pBrushItem = _rItemSet.GetItemIfSet( ITEMID_BRUSH ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CONTROLBACKGROUND, uno::makeAny( pBrushItem->GetColor() ) ); + if ( const SvxBlinkItem* pBlinkItem = _rItemSet.GetItemIfSet( ITEMID_BLINK ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARFLASH, uno::makeAny( pBlinkItem->GetValue() ) ); + if ( const SvxEmphasisMarkItem* pMarkItem = _rItemSet.GetItemIfSet( ITEMID_EMPHASISMARK ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHAREMPHASIS, uno::makeAny( static_cast< sal_Int16 >( pMarkItem->GetEmphasisMark() ) ) ); + if ( const SvxTwoLinesItem* pLinesItem = _rItemSet.GetItemIfSet( ITEMID_TWOLINES ) ) + { + lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEISON, uno::makeAny( pLinesItem->GetValue() ) ); + lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEPREFIX, uno::makeAny( OUString( pLinesItem->GetStartBracket() ) ) ); + lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINESUFFIX, uno::makeAny( OUString( pLinesItem->GetEndBracket() ) ) ); + } + if ( const SvxColorItem* pColorItem = _rItemSet.GetItemIfSet( ITEMID_COLOR ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARCOLOR, uno::makeAny( pColorItem->GetValue() ) ); + if ( const SvxKerningItem* pKernItem = _rItemSet.GetItemIfSet( ITEMID_KERNING ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARKERNING, uno::makeAny( pKernItem->GetValue() ) ); + if ( const SvxCaseMapItem* pCaseMapItem = _rItemSet.GetItemIfSet( ITEMID_CASEMAP ) ) + lcl_pushBack( _out_rProperties, PROPERTY_CHARCASEMAP, uno::makeAny( pCaseMapItem->GetEnumValue() ) ); struct Items { - sal_uInt16 nWhich; + TypedWhichId<SvxLanguageItem> nWhich; OUString sPropertyName; }; const Items pItems[] = { {ITEMID_LANGUAGE,OUString(PROPERTY_CHARLOCALE)} @@ -522,19 +494,17 @@ namespace }; for(const auto & k : pItems) { - if ( SfxItemState::SET == _rItemSet.GetItemState( k.nWhich,true,&pItem) ) - if (auto pLanguageItem = dynamic_cast< const SvxLanguageItem *>( pItem )) - { - lang::Locale aCharLocale( LanguageTag( pLanguageItem->GetLanguage()).getLocale()); - lcl_pushBack( _out_rProperties, k.sPropertyName, uno::makeAny( aCharLocale ) ); - } - } - if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_ESCAPEMENT,true,&pItem) ) - if (auto pEscapementItem = dynamic_cast< const SvxEscapementItem *>( pItem )) + if ( const SvxLanguageItem* pLanguageItem = _rItemSet.GetItemIfSet( k.nWhich ) ) { - lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENT, uno::makeAny( pEscapementItem->GetEsc() ) ); - lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENTHEIGHT, uno::makeAny(static_cast<sal_Int8>(pEscapementItem->GetProportionalHeight())) ); + lang::Locale aCharLocale( LanguageTag( pLanguageItem->GetLanguage()).getLocale()); + lcl_pushBack( _out_rProperties, k.sPropertyName, uno::makeAny( aCharLocale ) ); } + } + if ( const SvxEscapementItem* pEscapementItem = _rItemSet.GetItemIfSet( ITEMID_ESCAPEMENT ) ) + { + lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENT, uno::makeAny( pEscapementItem->GetEsc() ) ); + lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENTHEIGHT, uno::makeAny(static_cast<sal_Int8>(pEscapementItem->GetProportionalHeight())) ); + } } diff --git a/reportdesign/source/ui/report/ReportController.cxx b/reportdesign/source/ui/report/ReportController.cxx index 91b0dc9cf03e..5840e72a485e 100644 --- a/reportdesign/source/ui/report/ReportController.cxx +++ b/reportdesign/source/ui/report/ReportController.cxx @@ -142,14 +142,14 @@ #define MAX_ROWS_FOR_PREVIEW 20 -#define RPTUI_ID_LRSPACE XATTR_FILL_FIRST - 8 -#define RPTUI_ID_ULSPACE XATTR_FILL_FIRST - 7 +#define RPTUI_ID_LRSPACE TypedWhichId<SvxLRSpaceItem>(XATTR_FILL_FIRST - 8) +#define RPTUI_ID_ULSPACE TypedWhichId<SvxULSpaceItem>(XATTR_FILL_FIRST - 7) #define RPTUI_ID_PAGE TypedWhichId<SvxPageItem>(XATTR_FILL_FIRST - 6) -#define RPTUI_ID_SIZE XATTR_FILL_FIRST - 5 +#define RPTUI_ID_SIZE TypedWhichId<SvxSizeItem>(XATTR_FILL_FIRST - 5) #define RPTUI_ID_PAGE_MODE XATTR_FILL_FIRST - 4 #define RPTUI_ID_START XATTR_FILL_FIRST - 3 #define RPTUI_ID_END XATTR_FILL_FIRST - 2 -#define RPTUI_ID_BRUSH XATTR_FILL_FIRST - 1 +#define RPTUI_ID_BRUSH TypedWhichId<SvxBrushItem>(XATTR_FILL_FIRST - 1) #define RPTUI_ID_METRIC XATTR_FILL_LAST + 1 using namespace ::com::sun::star; @@ -2455,40 +2455,37 @@ void OReportController::openPageDialog(const uno::Reference<report::XSection>& _ const SfxItemSet* pSet = aDlg.GetOutputItemSet(); if ( _xSection.is() ) { - const SfxPoolItem* pItem; - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_BRUSH,true,&pItem)) - _xSection->setBackColor(sal_Int32(static_cast<const SvxBrushItem*>(pItem)->GetColor())); + if ( const SvxBrushItem* pBrushItem = pSet->GetItemIfSet( RPTUI_ID_BRUSH )) + _xSection->setBackColor(sal_Int32(pBrushItem->GetColor())); } else { uno::Reference< beans::XPropertySet> xProp(getUsedStyle(m_xReportDefinition),uno::UNO_QUERY_THROW); const OUString sUndoAction(RptResId(RID_STR_UNDO_CHANGEPAGE)); UndoContext aUndoContext( getUndoManager(), sUndoAction ); - const SfxPoolItem* pItem = nullptr; - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_SIZE,true,&pItem)) + if ( const SvxSizeItem* pSizeItem = pSet->GetItemIfSet( RPTUI_ID_SIZE )) { uno::Any aValue; - static_cast<const SvxSizeItem*>(pItem)->QueryValue(aValue); + pSizeItem->QueryValue(aValue); xProp->setPropertyValue(PROPERTY_PAPERSIZE,aValue); resetZoomType(); } - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_LRSPACE,true,&pItem)) + if ( const SvxLRSpaceItem* pSpaceItem = pSet->GetItemIfSet( RPTUI_ID_LRSPACE )) { Any aValue; - static_cast<const SvxLRSpaceItem*>(pItem)->QueryValue(aValue,MID_L_MARGIN); + pSpaceItem->QueryValue(aValue,MID_L_MARGIN); xProp->setPropertyValue(PROPERTY_LEFTMARGIN,aValue); - static_cast<const SvxLRSpaceItem*>(pItem)->QueryValue(aValue,MID_R_MARGIN); + pSpaceItem->QueryValue(aValue,MID_R_MARGIN); xProp->setPropertyValue(PROPERTY_RIGHTMARGIN,aValue); } - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_ULSPACE,true,&pItem)) + if ( const SvxULSpaceItem* pSpaceItem = pSet->GetItemIfSet( RPTUI_ID_ULSPACE )) { - xProp->setPropertyValue(PROPERTY_TOPMARGIN,uno::makeAny(static_cast<const SvxULSpaceItem*>(pItem)->GetUpper())); - xProp->setPropertyValue(PROPERTY_BOTTOMMARGIN,uno::makeAny(static_cast<const SvxULSpaceItem*>(pItem)->GetLower())); + xProp->setPropertyValue(PROPERTY_TOPMARGIN,uno::makeAny(pSpaceItem->GetUpper())); + xProp->setPropertyValue(PROPERTY_BOTTOMMARGIN,uno::makeAny(pSpaceItem->GetLower())); } - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_PAGE,true,&pItem)) + if ( const SvxPageItem* pPageItem = pSet->GetItemIfSet( RPTUI_ID_PAGE )) { - const SvxPageItem* pPageItem = static_cast<const SvxPageItem*>(pItem); xProp->setPropertyValue(PROPERTY_ISLANDSCAPE,uno::makeAny(pPageItem->IsLandscape())); xProp->setPropertyValue(PROPERTY_NUMBERINGTYPE,uno::makeAny(static_cast<sal_Int16>(pPageItem->GetNumType()))); uno::Any aValue; @@ -2496,9 +2493,9 @@ void OReportController::openPageDialog(const uno::Reference<report::XSection>& _ xProp->setPropertyValue(PROPERTY_PAGESTYLELAYOUT,aValue); resetZoomType(); } - if ( SfxItemState::SET == pSet->GetItemState( RPTUI_ID_BRUSH,true,&pItem)) + if ( const SvxBrushItem* pBrushItem = pSet->GetItemIfSet( RPTUI_ID_BRUSH )) { - ::Color aBackColor = static_cast<const SvxBrushItem*>(pItem)->GetColor(); + ::Color aBackColor = pBrushItem->GetColor(); xProp->setPropertyValue(PROPERTY_BACKTRANSPARENT,uno::makeAny(aBackColor == COL_TRANSPARENT)); xProp->setPropertyValue(PROPERTY_BACKCOLOR,uno::makeAny(aBackColor)); } |