editeng/source/uno/unotext.cxx | 106 ++++++++++++++++++++++------------------- 1 file changed, 59 insertions(+), 47 deletions(-)
New commits: commit 5c3ad59612697cf0afee0f836e9ee77f0920356b Author: Armin Le Grand (Allotropia) <armin.le.gr...@me.com> AuthorDate: Thu Jun 10 17:07:10 2021 +0200 Commit: Armin Le Grand <armin.le.gr...@me.com> CommitDate: Fri Jun 11 09:40:32 2021 +0200 tdf#130428 remove unnecessary usage of SfxItemState::UNKNOWN In this case SfxItemState::UNKNOWN was used as boolean state to decide to keep extracted value or replace. First method even throws an exception when SfxItemState::UNKNOWN should happen. I tried to be very careful in changing these methods, so another look/check from reviewers will be welcome. I think that code was unnecessarily complicated, too, butz hope to not have touched semantics (behaviour) at all Change-Id: Id213fedcafcfb655749caf2659f9a15b240ec27d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116999 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Reviewed-by: Armin Le Grand <armin.le.gr...@me.com> diff --git a/editeng/source/uno/unotext.cxx b/editeng/source/uno/unotext.cxx index 0c4a01c748d1..20d901e0d300 100644 --- a/editeng/source/uno/unotext.cxx +++ b/editeng/source/uno/unotext.cxx @@ -933,42 +933,41 @@ beans::PropertyState SvxUnoTextRangeBase::_getPropertyState(const SfxItemPropert SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : nullptr; if( pForwarder ) { - SfxItemState eItemState = SfxItemState::UNKNOWN; - sal_uInt16 nWID = 0; + SfxItemState eItemState(SfxItemState::DEFAULT); + bool bItemStateSet(false); switch( pMap->nWID ) { case WID_FONTDESC: { const sal_uInt16* pWhichId = aSvxUnoFontDescriptorWhichMap; - SfxItemState eTempItemState = SfxItemState::UNKNOWN; while( *pWhichId ) { - if(nPara != -1) - eTempItemState = pForwarder->GetItemState( nPara, *pWhichId ); - else - eTempItemState = pForwarder->GetItemState( GetSelection(), *pWhichId ); + const SfxItemState eTempItemState(nPara != -1 + ? pForwarder->GetItemState( nPara, *pWhichId ) + : pForwarder->GetItemState( GetSelection(), *pWhichId )); switch( eTempItemState ) { case SfxItemState::DISABLED: case SfxItemState::DONTCARE: eItemState = SfxItemState::DONTCARE; + bItemStateSet = true; break; case SfxItemState::DEFAULT: - if( eItemState != SfxItemState::DEFAULT ) + if( !bItemStateSet ) { - if( eItemState == SfxItemState::UNKNOWN ) - eItemState = SfxItemState::DEFAULT; + eItemState = SfxItemState::DEFAULT; + bItemStateSet = true; } break; case SfxItemState::SET: - if( eItemState != SfxItemState::SET ) + if( !bItemStateSet ) { - if( eItemState == SfxItemState::UNKNOWN ) - eItemState = SfxItemState::SET; + eItemState = SfxItemState::SET; + bItemStateSet = true; } break; default: @@ -984,31 +983,35 @@ beans::PropertyState SvxUnoTextRangeBase::_getPropertyState(const SfxItemPropert case WID_NUMBERINGSTARTVALUE: case WID_PARAISNUMBERINGRESTART: eItemState = SfxItemState::SET; + bItemStateSet = true; break; default: - nWID = pMap->nWID; - } + if(0 != pMap->nWID) + { + if( nPara != -1 ) + eItemState = pForwarder->GetItemState( nPara, pMap->nWID ); + else + eItemState = pForwarder->GetItemState( GetSelection(), pMap->nWID ); - if( nWID != 0 ) - { - if( nPara != -1 ) - eItemState = pForwarder->GetItemState( nPara, nWID ); - else - eItemState = pForwarder->GetItemState( GetSelection(), nWID ); + bItemStateSet = true; + } + break; } - switch( eItemState ) + if(bItemStateSet) { - case SfxItemState::DONTCARE: - case SfxItemState::DISABLED: - return beans::PropertyState_AMBIGUOUS_VALUE; - case SfxItemState::SET: - return beans::PropertyState_DIRECT_VALUE; - case SfxItemState::DEFAULT: - return beans::PropertyState_DEFAULT_VALUE; - default: break; -// case SfxItemState::UNKNOWN: + switch( eItemState ) + { + case SfxItemState::DONTCARE: + case SfxItemState::DISABLED: + return beans::PropertyState_AMBIGUOUS_VALUE; + case SfxItemState::SET: + return beans::PropertyState_DIRECT_VALUE; + case SfxItemState::DEFAULT: + return beans::PropertyState_DEFAULT_VALUE; + default: break; + } } } } @@ -1065,39 +1068,39 @@ bool SvxUnoTextRangeBase::_getOnePropertyStates(const SfxItemSet* pSet, const Sf bool bUnknownPropertyFound = false; if(pSet && pMap) { - SfxItemState eItemState = SfxItemState::UNKNOWN; - sal_uInt16 nWID = 0; + SfxItemState eItemState = SfxItemState::DEFAULT; + bool bItemStateSet(false); switch( pMap->nWID ) { case WID_FONTDESC: { const sal_uInt16* pWhichId = aSvxUnoFontDescriptorWhichMap; - SfxItemState eTempItemState = SfxItemState::UNKNOWN; while( *pWhichId ) { - eTempItemState = pSet->GetItemState( *pWhichId ); + const SfxItemState eTempItemState(pSet->GetItemState( *pWhichId )); switch( eTempItemState ) { case SfxItemState::DISABLED: case SfxItemState::DONTCARE: eItemState = SfxItemState::DONTCARE; + bItemStateSet = true; break; case SfxItemState::DEFAULT: - if( eItemState != SfxItemState::DEFAULT ) + if( !bItemStateSet ) { - if( eItemState == SfxItemState::UNKNOWN ) - eItemState = SfxItemState::DEFAULT; + eItemState = SfxItemState::DEFAULT; + bItemStateSet = true; } break; case SfxItemState::SET: - if( eItemState != SfxItemState::SET ) + if( !bItemStateSet ) { - if( eItemState == SfxItemState::UNKNOWN ) - eItemState = SfxItemState::SET; + eItemState = SfxItemState::SET; + bItemStateSet = true; } break; default: @@ -1114,31 +1117,40 @@ bool SvxUnoTextRangeBase::_getOnePropertyStates(const SfxItemSet* pSet, const Sf case WID_NUMBERINGSTARTVALUE: case WID_PARAISNUMBERINGRESTART: eItemState = SfxItemState::SET; + bItemStateSet = true; break; default: - nWID = pMap->nWID; + if(0 != pMap->nWID) + { + eItemState = pSet->GetItemState( pMap->nWID, false ); + bItemStateSet = true; + } + break; } if( bUnknownPropertyFound ) return false; - if( nWID != 0 ) - eItemState = pSet->GetItemState( nWID, false ); - - switch( eItemState ) + if(bItemStateSet) { + switch( eItemState ) + { case SfxItemState::SET: rState = beans::PropertyState_DIRECT_VALUE; break; case SfxItemState::DEFAULT: rState = beans::PropertyState_DEFAULT_VALUE; break; -// case SfxItemState::UNKNOWN: // case SfxItemState::DONTCARE: // case SfxItemState::DISABLED: default: rState = beans::PropertyState_AMBIGUOUS_VALUE; + } + } + else + { + rState = beans::PropertyState_AMBIGUOUS_VALUE; } } return true; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits