diff options
author | Jim Raykowski <raykowj@gmail.com> | 2022-02-02 18:15:12 -0900 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2022-02-10 07:37:08 +0100 |
commit | a2ee79c90a6d158e642ad1ac404e5ccd87d27f76 (patch) | |
tree | 9095e3699f9aa153039d88c98c924c0c716c4836 /sw/source/uibase/utlui/content.cxx | |
parent | 5cd672ee291f47ff0f5ea9cba828639a41ae40a7 (diff) |
SwNavigator: test if member count has changed
In the HasContentChanged function, make the comment "FillMemberList
tests if member count in old member array equals member count in new
member array" honest.
Change-Id: I88ee65bb4ed0c56930b8d5ee968ed6c5abb8d841
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129393
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Diffstat (limited to 'sw/source/uibase/utlui/content.cxx')
-rw-r--r-- | sw/source/uibase/utlui/content.cxx | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 33ad46f3011c..47daebc48613 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -433,17 +433,17 @@ void SwContentType::Invalidate() m_bDataValid = false; } -void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) +void SwContentType::FillMemberList(bool* pbContentChanged) { std::unique_ptr<SwContentArr> pOldMember; size_t nOldMemberCount = 0; SwPtrMsgPoolItem aAskItem( RES_CONTENT_VISIBLE, nullptr ); - if(m_pMember && pbLevelOrVisibilityChanged) + if(m_pMember && pbContentChanged) { pOldMember = std::move(m_pMember); nOldMemberCount = pOldMember->size(); m_pMember.reset( new SwContentArr ); - *pbLevelOrVisibilityChanged = false; + *pbContentChanged = false; } else if(!m_pMember) m_pMember.reset( new SwContentArr ); @@ -475,11 +475,11 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) // need to check level and equal entry number after creation due to possible outline // nodes in frames, headers, footers - if (pOldMember && nullptr != pbLevelOrVisibilityChanged) + if (pOldMember) { if (pOldMember->size() != m_pMember->size()) { - *pbLevelOrVisibilityChanged = true; + *pbContentChanged = true; break; } for (size_t i = 0; i < pOldMember->size(); i++) @@ -487,7 +487,7 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) if (static_cast<SwOutlineContent*>((*pOldMember)[i].get())->GetOutlineLevel() != static_cast<SwOutlineContent*>((*m_pMember)[i].get())->GetOutlineLevel()) { - *pbLevelOrVisibilityChanged = true; + *pbContentChanged = true; break; } } @@ -518,13 +518,13 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) m_pMember->insert(std::move(pCnt)); } - if (pOldMember && nullptr != pbLevelOrVisibilityChanged) + if (pOldMember) { // need to check visibility (and equal entry number) after // creation due to a sorted list being used here (before, // entries with same index were compared already at creation // time what worked before a sorted list was used) - *pbLevelOrVisibilityChanged = checkVisibilityChanged( + *pbContentChanged = checkVisibilityChanged( *pOldMember, *m_pMember); } @@ -570,13 +570,13 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) m_pMember->insert(std::unique_ptr<SwContent>(pCnt)); } - if (pOldMember && nullptr != pbLevelOrVisibilityChanged) + if (pOldMember) { // need to check visibility (and equal entry number) after // creation due to a sorted list being used here (before, // entries with same index were compared already at creation // time what worked before a sorted list was used) - *pbLevelOrVisibilityChanged = checkVisibilityChanged( + *pbContentChanged = checkVisibilityChanged( *pOldMember, *m_pMember); } @@ -749,13 +749,13 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) m_pMember->insert(std::move(pCnt)); } - if (pOldMember && nullptr != pbLevelOrVisibilityChanged) + if (pOldMember) { // need to check visibility (and equal entry number) after // creation due to a sorted list being used here (before, // entries with same index were compared already at creation // time what worked before a sorted list was used) - *pbLevelOrVisibilityChanged = checkVisibilityChanged( + *pbContentChanged = checkVisibilityChanged( *pOldMember, *m_pMember); } @@ -794,10 +794,9 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) m_pMember->insert( std::unique_ptr<SwContent>(pCnt) ); const size_t nPos = m_pMember->size() - 1; - if(nOldMemberCount > nPos && - (*pOldMember)[nPos]->IsInvisible() - != pCnt->IsInvisible()) - *pbLevelOrVisibilityChanged = true; + if (pOldMember && !*pbContentChanged && nOldMemberCount > nPos && + (*pOldMember)[nPos]->IsInvisible() != pCnt->IsInvisible()) + *pbContentChanged = true; } } break; @@ -854,13 +853,13 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) } } - if (pOldMember && nullptr != pbLevelOrVisibilityChanged) + if (pOldMember) { // need to check visibility (and equal entry number) after // creation due to a sorted list being used here (before, // entries with same index were compared already at creation // time what worked before a sorted list was used) - *pbLevelOrVisibilityChanged = checkVisibilityChanged( + *pbContentChanged = checkVisibilityChanged( *pOldMember, *m_pMember); } @@ -870,6 +869,8 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged) default: break; } m_nMemberCount = m_pMember->size(); + if (pOldMember && !*pbContentChanged && pOldMember->size() != m_nMemberCount) + *pbContentChanged = true; m_bDataValid = true; } |