[Libreoffice-commits] core.git: sw/source

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Thu Nov 20 10:26:07 PST 2014


 sw/source/core/doc/DocumentContentOperationsManager.cxx |   82 +++++++---------
 1 file changed, 40 insertions(+), 42 deletions(-)

New commits:
commit 935848ec927a23772d078b82dc3d169e4fd763d0
Author: Bjoern Michaelsen <bjoern.michaelsen at 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.michaelsen at canonical.com>
    Tested-by: Björn Michaelsen <bjoern.michaelsen at 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.


More information about the Libreoffice-commits mailing list