sw/source/core/doc/CntntIdxStore.cxx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)
New commits: commit a58e46482c2af06ee9be26313db3513f906d6c0b Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 14:56:00 2016 +0100 Resolves: tdf#95340 orig lcl_ChkUnoCrsrPaM had reversed 'set' to lcl_ChkPaM merge lcl_ChkUnoCrsrPaM and lcl_ChkPaM keeping the original logic, turns out they differed in how they swapped the mark and point Change-Id: Id2575c9690442494c3286a26ab099e8c4c62f884 diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index 82de6b3..d51b87a 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -187,33 +187,24 @@ namespace static inline void SetRightMarkPos(MarkBase* pMark, bool bOther, const SwPosition* const pPos) { bOther ? pMark->SetOtherMarkPos(*pPos) : pMark->SetMarkPos(*pPos); }; }; - static void lcl_ChkUnoCrsrPaM(std::vector<PaMEntry>& rPamEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, bool bPoint) + inline void lcl_ChkPaM( std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, const bool bGetPoint, bool bSetMark) { - const SwPosition* pPos = &rPaM.GetBound(bPoint); + const SwPosition* pPos = &rPaM.GetBound(bGetPoint); if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) { - const PaMEntry aEntry = { &rPaM, !bPoint, pPos->nContent.GetIndex() }; - rPamEntries.push_back(aEntry); - } - } - static void lcl_ChkUnoCrsrPaMBoth(std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM) - { - lcl_ChkUnoCrsrPaM(rPaMEntries, nNode, nContent, rPaM, true); - lcl_ChkUnoCrsrPaM(rPaMEntries, nNode, nContent, rPaM, false); - } - inline void lcl_ChkPaM( std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, const bool bPoint) - { - const SwPosition* pPos = &rPaM.GetBound( bPoint ); - if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) - { - const PaMEntry aEntry = { &rPaM, bPoint, pPos->nContent.GetIndex() }; + const PaMEntry aEntry = { &rPaM, bSetMark, pPos->nContent.GetIndex() }; rPaMEntries.push_back(aEntry); } } inline void lcl_ChkPaMBoth( std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM) { - lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, true); - lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, false); + lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, true, true); + lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, false, false); + } + inline void lcl_ChkUnoCrsrPaMBoth(std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM) + { + lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, true, false); + lcl_ChkPaM(rPaMEntries, nNode, nContent, rPaM, false, true); } #if 0 commit a3094a1f898b9efb765fe822fc507d3be4369361 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 14:49:23 2016 +0100 rename lcl_ChkUnoCrsrPaM and split it up to be like lcl_ChkPaM[Both] Change-Id: I8850031da3901fb3d828c3af20f98ca741fc2a4a diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index f4d2435..82de6b3 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -187,22 +187,20 @@ namespace static inline void SetRightMarkPos(MarkBase* pMark, bool bOther, const SwPosition* const pPos) { bOther ? pMark->SetOtherMarkPos(*pPos) : pMark->SetMarkPos(*pPos); }; }; - static void lcl_ChkUnoCrsrPaM(std::vector<PaMEntry>& rMarkEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPam) + static void lcl_ChkUnoCrsrPaM(std::vector<PaMEntry>& rPamEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, bool bPoint) { - const SwPosition* pPos = &rPam.GetBound( true ); + const SwPosition* pPos = &rPaM.GetBound(bPoint); if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) { - const PaMEntry aEntry = { &rPam, false, pPos->nContent.GetIndex() }; - rMarkEntries.push_back(aEntry); - } - - pPos = &rPam.GetBound( false ); - if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) - { - const PaMEntry aEntry = { &rPam, true, pPos->nContent.GetIndex() }; - rMarkEntries.push_back(aEntry); + const PaMEntry aEntry = { &rPaM, !bPoint, pPos->nContent.GetIndex() }; + rPamEntries.push_back(aEntry); } } + static void lcl_ChkUnoCrsrPaMBoth(std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM) + { + lcl_ChkUnoCrsrPaM(rPaMEntries, nNode, nContent, rPaM, true); + lcl_ChkUnoCrsrPaM(rPaMEntries, nNode, nContent, rPaM, false); + } inline void lcl_ChkPaM( std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, const bool bPoint) { const SwPosition* pPos = &rPaM.GetBound( bPoint ); @@ -402,14 +400,14 @@ void ContentIdxStoreImpl::SaveUnoCursors(SwDoc* pDoc, sal_uLong nNode, sal_Int32 continue; for(SwPaM& rPaM : pUnoCursor.get()->GetRingContainer()) { - lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM); + lcl_ChkUnoCrsrPaMBoth(m_aUnoCursorEntries, nNode, nContent, rPaM); } const SwUnoTableCursor* pUnoTableCursor = dynamic_cast<const SwUnoTableCursor*>(pUnoCursor.get()); if( pUnoTableCursor ) { for(SwPaM& rPaM : (&(const_cast<SwUnoTableCursor*>(pUnoTableCursor))->GetSelRing())->GetRingContainer()) { - lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM); + lcl_ChkUnoCrsrPaMBoth(m_aUnoCursorEntries, nNode, nContent, rPaM); } } } commit 12d9292cd948dbf78bdcab4a46694563b3cce3cf Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 14:43:36 2016 +0100 bChkSelDirection is always false Change-Id: I1aaf2c17d76ac1d69dfcc268ae1b689c0f1c3fa2 diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index 48983d8..f4d2435 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -187,29 +187,17 @@ namespace static inline void SetRightMarkPos(MarkBase* pMark, bool bOther, const SwPosition* const pPos) { bOther ? pMark->SetOtherMarkPos(*pPos) : pMark->SetMarkPos(*pPos); }; }; - static void lcl_ChkUnoCrsrPaM( std::vector<PaMEntry>& rMarkEntries, const sal_uLong nNode, const sal_Int32 nContent, - SwPaM& rPam, bool bChkSelDirection ) + static void lcl_ChkUnoCrsrPaM(std::vector<PaMEntry>& rMarkEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPam) { - // Respect direction of selection - bool bBound1IsStart = !bChkSelDirection || - ( *rPam.GetPoint() < *rPam.GetMark() - ? rPam.GetPoint() == &rPam.GetBound() - : rPam.GetMark() == &rPam.GetBound()); - const SwPosition* pPos = &rPam.GetBound( true ); - if( pPos->nNode.GetIndex() == nNode && - ( bBound1IsStart ? pPos->nContent.GetIndex() < nContent - : pPos->nContent.GetIndex() <= nContent )) + if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) { const PaMEntry aEntry = { &rPam, false, pPos->nContent.GetIndex() }; rMarkEntries.push_back(aEntry); } pPos = &rPam.GetBound( false ); - if( pPos->nNode.GetIndex() == nNode && - ( (bBound1IsStart && bChkSelDirection) - ? pPos->nContent.GetIndex() <= nContent - : pPos->nContent.GetIndex() < nContent )) + if( pPos->nNode.GetIndex() == nNode && pPos->nContent.GetIndex() < nContent ) { const PaMEntry aEntry = { &rPam, true, pPos->nContent.GetIndex() }; rMarkEntries.push_back(aEntry); @@ -414,14 +402,14 @@ void ContentIdxStoreImpl::SaveUnoCursors(SwDoc* pDoc, sal_uLong nNode, sal_Int32 continue; for(SwPaM& rPaM : pUnoCursor.get()->GetRingContainer()) { - lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM, false); + lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM); } const SwUnoTableCursor* pUnoTableCursor = dynamic_cast<const SwUnoTableCursor*>(pUnoCursor.get()); if( pUnoTableCursor ) { for(SwPaM& rPaM : (&(const_cast<SwUnoTableCursor*>(pUnoTableCursor))->GetSelRing())->GetRingContainer()) { - lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM, false); + lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM); } } } commit dcae0b482ca78fc9cd6f8523f53aad8c8b486b0f Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 14:38:29 2016 +0100 update to new naming and casting Change-Id: I389efc2f45f3110932318882faea82ab8565f89a diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index 187f0f4..48983d8 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -187,9 +187,8 @@ namespace static inline void SetRightMarkPos(MarkBase* pMark, bool bOther, const SwPosition* const pPos) { bOther ? pMark->SetOtherMarkPos(*pPos) : pMark->SetMarkPos(*pPos); }; }; - static void lcl_ChkUnoCrsrPaM( std::vector<PaMEntry>& rMarkEntries, sal_uLong nNode, sal_Int32 nCntnt, - const SwPaM& rPam, - bool bChkSelDirection ) + static void lcl_ChkUnoCrsrPaM( std::vector<PaMEntry>& rMarkEntries, const sal_uLong nNode, const sal_Int32 nContent, + SwPaM& rPam, bool bChkSelDirection ) { // Respect direction of selection bool bBound1IsStart = !bChkSelDirection || @@ -199,20 +198,20 @@ namespace const SwPosition* pPos = &rPam.GetBound( true ); if( pPos->nNode.GetIndex() == nNode && - ( bBound1IsStart ? pPos->nContent.GetIndex() < nCntnt - : pPos->nContent.GetIndex() <= nCntnt )) + ( bBound1IsStart ? pPos->nContent.GetIndex() < nContent + : pPos->nContent.GetIndex() <= nContent )) { - const PaMEntry aEntry = { const_cast<SwPaM*>(&rPam), false, pPos->nContent.GetIndex() }; + const PaMEntry aEntry = { &rPam, false, pPos->nContent.GetIndex() }; rMarkEntries.push_back(aEntry); } pPos = &rPam.GetBound( false ); if( pPos->nNode.GetIndex() == nNode && ( (bBound1IsStart && bChkSelDirection) - ? pPos->nContent.GetIndex() <= nCntnt - : pPos->nContent.GetIndex() < nCntnt )) + ? pPos->nContent.GetIndex() <= nContent + : pPos->nContent.GetIndex() < nContent )) { - const PaMEntry aEntry = { const_cast<SwPaM*>(&rPam), true, pPos->nContent.GetIndex() }; + const PaMEntry aEntry = { &rPam, true, pPos->nContent.GetIndex() }; rMarkEntries.push_back(aEntry); } } commit 133ad42956ff38fe94020cd9aab316c9dfceff60 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Jul 21 14:29:25 2016 +0100 restore lcl_ChkUnoCrsrPaM Change-Id: Iab155151226f3a7f00ca649bd690c4391ade8a52 diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index 5cb63da..187f0f4 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -187,6 +187,35 @@ namespace static inline void SetRightMarkPos(MarkBase* pMark, bool bOther, const SwPosition* const pPos) { bOther ? pMark->SetOtherMarkPos(*pPos) : pMark->SetMarkPos(*pPos); }; }; + static void lcl_ChkUnoCrsrPaM( std::vector<PaMEntry>& rMarkEntries, sal_uLong nNode, sal_Int32 nCntnt, + const SwPaM& rPam, + bool bChkSelDirection ) + { + // Respect direction of selection + bool bBound1IsStart = !bChkSelDirection || + ( *rPam.GetPoint() < *rPam.GetMark() + ? rPam.GetPoint() == &rPam.GetBound() + : rPam.GetMark() == &rPam.GetBound()); + + const SwPosition* pPos = &rPam.GetBound( true ); + if( pPos->nNode.GetIndex() == nNode && + ( bBound1IsStart ? pPos->nContent.GetIndex() < nCntnt + : pPos->nContent.GetIndex() <= nCntnt )) + { + const PaMEntry aEntry = { const_cast<SwPaM*>(&rPam), false, pPos->nContent.GetIndex() }; + rMarkEntries.push_back(aEntry); + } + + pPos = &rPam.GetBound( false ); + if( pPos->nNode.GetIndex() == nNode && + ( (bBound1IsStart && bChkSelDirection) + ? pPos->nContent.GetIndex() <= nCntnt + : pPos->nContent.GetIndex() < nCntnt )) + { + const PaMEntry aEntry = { const_cast<SwPaM*>(&rPam), true, pPos->nContent.GetIndex() }; + rMarkEntries.push_back(aEntry); + } + } inline void lcl_ChkPaM( std::vector<PaMEntry>& rPaMEntries, const sal_uLong nNode, const sal_Int32 nContent, SwPaM& rPaM, const bool bPoint) { const SwPosition* pPos = &rPaM.GetBound( bPoint ); @@ -386,14 +415,14 @@ void ContentIdxStoreImpl::SaveUnoCursors(SwDoc* pDoc, sal_uLong nNode, sal_Int32 continue; for(SwPaM& rPaM : pUnoCursor.get()->GetRingContainer()) { - lcl_ChkPaMBoth( m_aUnoCursorEntries, nNode, nContent, rPaM); + lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM, false); } const SwUnoTableCursor* pUnoTableCursor = dynamic_cast<const SwUnoTableCursor*>(pUnoCursor.get()); if( pUnoTableCursor ) { for(SwPaM& rPaM : (&(const_cast<SwUnoTableCursor*>(pUnoTableCursor))->GetSelRing())->GetRingContainer()) { - lcl_ChkPaMBoth( m_aUnoCursorEntries, nNode, nContent, rPaM); + lcl_ChkUnoCrsrPaM(m_aUnoCursorEntries, nNode, nContent, rPaM, false); } } }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits