sw/source/core/doc/DocumentContentOperationsManager.cxx | 82 +++++++--------- 1 file changed, 40 insertions(+), 42 deletions(-)
New commits: commit 935848ec927a23772d078b82dc3d169e4fd763d0 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu Nov 20 17:24:13 2014 +0100 expand complex cascading conditional operator, step 3 Change-Id: I0bfa2d09b2f3048ada2518868bcee32689ecb6ca Reviewed-on: https://gerrit.libreoffice.org/13010 Reviewed-by: Björn Michaelsen <bjoern.michael...@canonical.com> Tested-by: Björn Michaelsen <bjoern.michael...@canonical.com> diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx index 2539bf7..6e10d06 100644 --- a/sw/source/core/doc/DocumentContentOperationsManager.cxx +++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx @@ -3225,60 +3225,58 @@ void DocumentContentOperationsManager::CopyFlyInFlyImpl( : rRg.aStart > pAPos->nNode ) continue; } + if ( pAPos->nNode > rRg.aEnd ) + continue; + //frames at the last source node are not always copied: + //- if the node is empty and is the last node of the document or a table cell + // or a text frame then tey have to be copied + //- if the content index in this node is > 0 then paragph and frame bound objects are copied + //- to-character bound objects are copied if their index is <= nEndContentIndex + bool bAdd = false; + if( pAPos->nNode < rRg.aEnd ) + bAdd = true; + if (!bAdd && !m_rDoc.getIDocumentRedlineAccess().IsRedlineMove()) // fdo#40599: not for redline move { - if ( pAPos->nNode > rRg.aEnd ) - continue; - //frames at the last source node are not always copied: - //- if the node is empty and is the last node of the document or a table cell - // or a text frame then tey have to be copied - //- if the content index in this node is > 0 then paragph and frame bound objects are copied - //- to-character bound objects are copied if their index is <= nEndContentIndex - bool bAdd = false; - if( pAPos->nNode < rRg.aEnd ) - bAdd = true; - if (!bAdd && !m_rDoc.getIDocumentRedlineAccess().IsRedlineMove()) // fdo#40599: not for redline move + bool bEmptyNode = false; + bool bLastNode = false; + // is the node empty? + const SwNodes& rNodes = pAPos->nNode.GetNodes(); + SwTxtNode* pTxtNode; + if( 0 != ( pTxtNode = pAPos->nNode.GetNode().GetTxtNode() )) { - bool bEmptyNode = false; - bool bLastNode = false; - // is the node empty? - const SwNodes& rNodes = pAPos->nNode.GetNodes(); - SwTxtNode* pTxtNode; - if( 0 != ( pTxtNode = pAPos->nNode.GetNode().GetTxtNode() )) + bEmptyNode = pTxtNode->GetTxt().isEmpty(); + if( bEmptyNode ) { - bEmptyNode = pTxtNode->GetTxt().isEmpty(); - if( bEmptyNode ) + //last node information is only necessary to know for the last TextNode + SwNodeIndex aTmp( pAPos->nNode ); + ++aTmp;//goto next node + while (aTmp.GetNode().IsEndNode()) { - //last node information is only necessary to know for the last TextNode - SwNodeIndex aTmp( pAPos->nNode ); - ++aTmp;//goto next node - while (aTmp.GetNode().IsEndNode()) + if( aTmp == rNodes.GetEndOfContent().GetIndex() ) { - if( aTmp == rNodes.GetEndOfContent().GetIndex() ) - { - bLastNode = true; - break; - } - ++aTmp; + bLastNode = true; + break; } + ++aTmp; } } - bAdd = bLastNode && bEmptyNode; - if( !bAdd ) - { - if( bAtCntnt ) - bAdd = nEndContentIndex > 0; - else - bAdd = pAPos->nContent <= nEndContentIndex; - } } - if( bAdd ) + bAdd = bLastNode && bEmptyNode; + if( !bAdd ) { - // Make sure draw formats don't refer to content, so that such - // content can be removed without problems. - SwTextBoxHelper::resetLink(pFmt, aOldContent); - aSet.insert( _ZSortFly( pFmt, pAnchor, nArrLen + aSet.size() )); + if( bAtCntnt ) + bAdd = nEndContentIndex > 0; + else + bAdd = pAPos->nContent <= nEndContentIndex; } } + if( bAdd ) + { + // Make sure draw formats don't refer to content, so that such + // content can be removed without problems. + SwTextBoxHelper::resetLink(pFmt, aOldContent); + aSet.insert( _ZSortFly( pFmt, pAnchor, nArrLen + aSet.size() )); + } } // Store all copied (and also the newly created) frames in another array.
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits