sw/inc/anchoreddrawobject.hxx     |    2 +-
 sw/source/core/draw/dcontact.cxx  |    4 +---
 sw/source/core/inc/flyfrm.hxx     |    2 +-
 sw/source/core/layout/flylay.cxx  |   24 ++----------------------
 sw/source/core/layout/frmtool.cxx |    5 +----
 sw/source/core/layout/tabfrm.cxx  |   11 ++---------
 6 files changed, 8 insertions(+), 40 deletions(-)

New commits:
commit a051601a4cef506bc257c647cbce6288ba8068d4
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Fri Jul 14 21:10:24 2023 +0300
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Fri Jul 14 23:22:09 2023 +0200

    Use SwAnchoredObject::RegisterAtPage
    
    Change-Id: Icdc8266656bea5b44ce744457ad6a1d0ba87c473
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154447
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/sw/inc/anchoreddrawobject.hxx b/sw/inc/anchoreddrawobject.hxx
index eb457701a98d..609582d4d326 100644
--- a/sw/inc/anchoreddrawobject.hxx
+++ b/sw/inc/anchoreddrawobject.hxx
@@ -94,7 +94,6 @@ class SwAnchoredDrawObject final : public SwAnchoredObject
             page frame
         */
         virtual void RegisterAtCorrectPage() override;
-        virtual void RegisterAtPage(SwPageFrame &) override;
 
         virtual bool SetObjTop_( const SwTwips _nTop) override;
         virtual bool SetObjLeft_( const SwTwips _nLeft) override;
@@ -109,6 +108,7 @@ class SwAnchoredDrawObject final : public SwAnchoredObject
         // declaration of pure virtual methods of base class <SwAnchoredObject>
         virtual void MakeObjPos() override;
         virtual void InvalidateObjPos() override;
+        virtual void RegisterAtPage(SwPageFrame&) override;
         bool IsValidPos() const
         {
             return mbValidPos;
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index e5b0c3d50314..2de9544640f3 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -2074,9 +2074,7 @@ void SwDrawContact::ChkPage()
     else
     {
         // --> #i28701# - use methods <GetPageFrame()> and <SetPageFrame>
-        if ( GetPageFrame() )
-            GetPageFrame()->RemoveDrawObjFromPage( maAnchoredDrawObj );
-        pPg->AppendDrawObjToPage( maAnchoredDrawObj );
+        maAnchoredDrawObj.RegisterAtPage(*pPg);
         maAnchoredDrawObj.SetPageFrame( pPg );
     }
 }
diff --git a/sw/source/core/inc/flyfrm.hxx b/sw/source/core/inc/flyfrm.hxx
index d3815a82835a..bbcf2845e5d7 100644
--- a/sw/source/core/inc/flyfrm.hxx
+++ b/sw/source/core/inc/flyfrm.hxx
@@ -156,7 +156,6 @@ protected:
         page frame
     */
     virtual void RegisterAtCorrectPage() override;
-    virtual void RegisterAtPage(SwPageFrame &) override;
 
     virtual bool SetObjTop_( const SwTwips _nTop ) override;
     virtual bool SetObjLeft_( const SwTwips _nLeft ) override;
@@ -267,6 +266,7 @@ public:
     // #i26791# - pure virtual methods of base class <SwAnchoredObject>
     virtual void MakeObjPos() override;
     virtual void InvalidateObjPos() override;
+    virtual void RegisterAtPage(SwPageFrame&) override;
 
     virtual SwFrameFormat& GetFrameFormat() override;
     virtual const SwFrameFormat& GetFrameFormat() const override;
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index 40b8547811fd..8c40a22fe0cd 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -900,11 +900,7 @@ void SwPageFrame::AppendFlyToPage( SwFlyFrame *pNew )
             // #i87493#
             if ( pTmpObj->GetPageFrame() != this )
             {
-                if ( pTmpObj->GetPageFrame() != nullptr )
-                {
-                    pTmpObj->GetPageFrame()->RemoveDrawObjFromPage( *pTmpObj );
-                }
-                AppendDrawObjToPage( *pTmpObj );
+                pTmpObj->RegisterAtPage(*this);
             }
         }
     }
@@ -1057,23 +1053,7 @@ void SwPageFrame::MoveFly( SwFlyFrame *pToMove, 
SwPageFrame *pDest )
     SwSortedObjs &rObjs = *pToMove->GetDrawObjs();
     for (SwAnchoredObject* pObj : rObjs)
     {
-        if ( auto pFly = pObj->DynCastFlyFrame() )
-        {
-            if ( pFly->IsFlyFreeFrame() )
-            {
-                // #i28701# - use new method <GetPageFrame()>
-                SwPageFrame* pPageFrame = pFly->GetPageFrame();
-                if ( pPageFrame )
-                    pPageFrame->MoveFly( pFly, pDest );
-                else
-                    pDest->AppendFlyToPage( pFly );
-            }
-        }
-        else if ( dynamic_cast<const SwAnchoredDrawObject*>( pObj) !=  nullptr 
)
-        {
-            RemoveDrawObjFromPage( *pObj );
-            pDest->AppendDrawObjToPage( *pObj );
-        }
+        pObj->RegisterAtPage(*pDest);
     }
 }
 
diff --git a/sw/source/core/layout/frmtool.cxx 
b/sw/source/core/layout/frmtool.cxx
index 6b1cccc647b5..9c8d6cbe85bf 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -3209,10 +3209,7 @@ static void lcl_Regist( SwPageFrame *pPage, const 
SwFrame *pAnch )
             // #i87493#
             if ( pPage != pObj->GetPageFrame() )
             {
-                // #i28701#
-                if (SwPageFrame *pPg = pObj->GetPageFrame())
-                    pPg->RemoveDrawObjFromPage( *pObj );
-                pPage->AppendDrawObjToPage( *pObj );
+                pObj->RegisterAtPage(*pPage);
             }
         }
 
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index e35d5f693454..174ff7227628 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -5276,10 +5276,7 @@ static bool lcl_ArrangeLowers( SwLayoutFrame *pLay, 
tools::Long lYStart, bool bI
                             if ( pPageFrame != pPageOfAnchor )
                             {
                                 pFly->InvalidatePos();
-                                if ( pPageFrame )
-                                    pPageFrame->MoveFly( pFly, pPageOfAnchor );
-                                else
-                                    pPageOfAnchor->AppendFlyToPage( pFly );
+                                pFly->RegisterAtPage(*pPageOfAnchor);
                             }
                         }
                         // OD 2004-05-11 #i28701# - Because of the introduction
@@ -5314,11 +5311,7 @@ static bool lcl_ArrangeLowers( SwLayoutFrame *pLay, 
tools::Long lYStart, bool bI
                             if ( pPageFrame != pPageOfAnchor )
                             {
                                 pAnchoredObj->InvalidateObjPos();
-                                if ( pPageFrame )
-                                {
-                                    pPageFrame->RemoveDrawObjFromPage( 
*pAnchoredObj );
-                                }
-                                pPageOfAnchor->AppendDrawObjToPage( 
*pAnchoredObj );
+                                pAnchoredObj->RegisterAtPage(*pPageOfAnchor);
                             }
                         }
                         // #i28701# - adjust last character

Reply via email to