sw/source/core/txtnode/ndtxt.cxx | 141 ++++++++------------------------------- 1 file changed, 30 insertions(+), 111 deletions(-)
New commits: commit 6374249da32976a3375fa3d098da467578ffb4c1 Author: Justin Luth <justin.l...@collabora.com> AuthorDate: Tue Dec 25 20:40:16 2018 +0300 Commit: Justin Luth <justin_l...@sil.org> CommitDate: Wed Dec 26 07:32:02 2018 +0100 sw txtnode: code cleanup - triplicated code -> function Since before if an invalid nWhich2 was given, it just checked the value in nWhich1, just set nWhich2 to nWhich1 in that case, which really simplifies the logic. Change-Id: I75f52566aa5260f629398076e817d778e0fd545a Reviewed-on: https://gerrit.libreoffice.org/65599 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_l...@sil.org> diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx index 3b15a3318180..07a69d87b0e7 100644 --- a/sw/source/core/txtnode/ndtxt.cxx +++ b/sw/source/core/txtnode/ndtxt.cxx @@ -4949,7 +4949,7 @@ namespace { public: HandleResetAttrAtTextNode( SwTextNode& rTextNode, const sal_uInt16 nWhich1, - const sal_uInt16 nWhich2 ); + sal_uInt16 nWhich2 ); HandleResetAttrAtTextNode( SwTextNode& rTextNode, const std::vector<sal_uInt16>& rWhichArr ); explicit HandleResetAttrAtTextNode( SwTextNode& rTextNode ); @@ -4962,105 +4962,26 @@ namespace { bool mbUpdateListLevel; bool mbUpdateListRestart; bool mbUpdateListCount; + + void init( const std::vector<sal_uInt16>& rWhichArr ); }; HandleResetAttrAtTextNode::HandleResetAttrAtTextNode( SwTextNode& rTextNode, const sal_uInt16 nWhich1, - const sal_uInt16 nWhich2 ) + sal_uInt16 nWhich2 ) : mrTextNode( rTextNode ), mbListStyleOrIdReset( false ), mbUpdateListLevel( false ), mbUpdateListRestart( false ), mbUpdateListCount( false ) { - bool bRemoveFromList( false ); - if ( nWhich2 != 0 && nWhich2 > nWhich1 ) - { - // RES_PARATR_NUMRULE and RES_PARATR_LIST_ID - if ( nWhich1 <= RES_PARATR_NUMRULE && RES_PARATR_NUMRULE <= nWhich2 ) - { - bRemoveFromList = mrTextNode.GetNumRule() != nullptr; - mbListStyleOrIdReset = true; - } - else if ( nWhich1 <= RES_PARATR_LIST_ID && RES_PARATR_LIST_ID <= nWhich2 ) - { - bRemoveFromList = mrTextNode.GetpSwAttrSet() && - mrTextNode.GetpSwAttrSet()->GetItemState( RES_PARATR_LIST_ID, false ) == SfxItemState::SET; - // #i92898# - mbListStyleOrIdReset = true; - } - - if ( !bRemoveFromList ) - { - // RES_PARATR_LIST_LEVEL - mbUpdateListLevel = ( nWhich1 <= RES_PARATR_LIST_LEVEL && - RES_PARATR_LIST_LEVEL <= nWhich2 && - mrTextNode.HasAttrListLevel() ); - - // RES_PARATR_LIST_ISRESTART and RES_PARATR_LIST_RESTARTVALUE - mbUpdateListRestart = - ( nWhich1 <= RES_PARATR_LIST_ISRESTART && RES_PARATR_LIST_ISRESTART <= nWhich2 && - mrTextNode.IsListRestart() ) || - ( nWhich1 <= RES_PARATR_LIST_RESTARTVALUE && RES_PARATR_LIST_RESTARTVALUE <= nWhich2 && - mrTextNode.HasAttrListRestartValue() ); + if ( nWhich2 < nWhich1 ) + nWhich2 = nWhich1; + std::vector<sal_uInt16> rWhichArr; + for ( sal_uInt16 nWhich = nWhich1; nWhich <= nWhich2; ++nWhich ) + rWhichArr.push_back( nWhich ); - // RES_PARATR_LIST_ISCOUNTED - mbUpdateListCount = - ( nWhich1 <= RES_PARATR_LIST_ISCOUNTED && RES_PARATR_LIST_ISCOUNTED <= nWhich2 && - !mrTextNode.IsCountedInList() ); - } - - // #i70748# - // RES_PARATR_OUTLINELEVEL - if ( nWhich1 <= RES_PARATR_OUTLINELEVEL && RES_PARATR_OUTLINELEVEL <= nWhich2 ) - { - mrTextNode.ResetEmptyListStyleDueToResetOutlineLevelAttr(); - } - } - else - { - // RES_PARATR_NUMRULE and RES_PARATR_LIST_ID - if ( nWhich1 == RES_PARATR_NUMRULE ) - { - bRemoveFromList = mrTextNode.GetNumRule() != nullptr; - mbListStyleOrIdReset = true; - } - else if ( nWhich1 == RES_PARATR_LIST_ID ) - { - bRemoveFromList = mrTextNode.GetpSwAttrSet() && - mrTextNode.GetpSwAttrSet()->GetItemState( RES_PARATR_LIST_ID, false ) == SfxItemState::SET; - // #i92898# - mbListStyleOrIdReset = true; - } - // #i70748# - // RES_PARATR_OUTLINELEVEL - else if ( nWhich1 == RES_PARATR_OUTLINELEVEL ) - { - mrTextNode.ResetEmptyListStyleDueToResetOutlineLevelAttr(); - } - - if ( !bRemoveFromList ) - { - // RES_PARATR_LIST_LEVEL - mbUpdateListLevel = nWhich1 == RES_PARATR_LIST_LEVEL && - mrTextNode.HasAttrListLevel(); - - // RES_PARATR_LIST_ISRESTART and RES_PARATR_LIST_RESTARTVALUE - mbUpdateListRestart = ( nWhich1 == RES_PARATR_LIST_ISRESTART && - mrTextNode.IsListRestart() ) || - ( nWhich1 == RES_PARATR_LIST_RESTARTVALUE && - mrTextNode.HasAttrListRestartValue() ); - - // RES_PARATR_LIST_ISCOUNTED - mbUpdateListCount = nWhich1 == RES_PARATR_LIST_ISCOUNTED && - !mrTextNode.IsCountedInList(); - } - } - - if ( bRemoveFromList && mrTextNode.IsInList() ) - { - mrTextNode.RemoveFromList(); - } + init( rWhichArr ); } HandleResetAttrAtTextNode::HandleResetAttrAtTextNode( SwTextNode& rTextNode, @@ -5071,11 +4992,30 @@ namespace { mbUpdateListRestart( false ), mbUpdateListCount( false ) { + init( rWhichArr ); + } + + HandleResetAttrAtTextNode::HandleResetAttrAtTextNode( SwTextNode& rTextNode ) + : mrTextNode( rTextNode ), + mbListStyleOrIdReset( true ), + mbUpdateListLevel( false ), + mbUpdateListRestart( false ), + mbUpdateListCount( false ) + { + if ( rTextNode.IsInList() ) + { + rTextNode.RemoveFromList(); + } + // #i70748# + mrTextNode.ResetEmptyListStyleDueToResetOutlineLevelAttr(); + } + + void HandleResetAttrAtTextNode::init( const std::vector<sal_uInt16>& rWhichArr ) + { bool bRemoveFromList( false ); { for (const auto& rWhich : rWhichArr) { - // RES_PARATR_NUMRULE and RES_PARATR_LIST_ID if ( rWhich == RES_PARATR_NUMRULE ) { bRemoveFromList = bRemoveFromList || @@ -5087,15 +5027,10 @@ namespace { bRemoveFromList = bRemoveFromList || ( mrTextNode.GetpSwAttrSet() && mrTextNode.GetpSwAttrSet()->GetItemState( RES_PARATR_LIST_ID, false ) == SfxItemState::SET ); - // #i92898# mbListStyleOrIdReset = true; } - // #i70748# - // RES_PARATR_OUTLINELEVEL else if ( rWhich == RES_PARATR_OUTLINELEVEL ) - { mrTextNode.ResetEmptyListStyleDueToResetOutlineLevelAttr(); - } if ( !bRemoveFromList ) { @@ -5125,22 +5060,6 @@ namespace { } } - HandleResetAttrAtTextNode::HandleResetAttrAtTextNode( SwTextNode& rTextNode ) - : mrTextNode( rTextNode ), - mbListStyleOrIdReset( false ), - mbUpdateListLevel( false ), - mbUpdateListRestart( false ), - mbUpdateListCount( false ) - { - mbListStyleOrIdReset = true; - if ( rTextNode.IsInList() ) - { - rTextNode.RemoveFromList(); - } - // #i70748# - mrTextNode.ResetEmptyListStyleDueToResetOutlineLevelAttr(); - } - HandleResetAttrAtTextNode::~HandleResetAttrAtTextNode() COVERITY_NOEXCEPT_FALSE { if ( mbListStyleOrIdReset && !mrTextNode.IsInList() ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits