sw/source/core/inc/tabfrm.hxx    |    5 +--
 sw/source/core/layout/tabfrm.cxx |   61 +++++++++++++++++++++------------------
 2 files changed, 35 insertions(+), 31 deletions(-)

New commits:
commit af0009ec5a60af83762e7df49e17e02f0f2be193
Author:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
AuthorDate: Sun Dec 13 18:45:12 2020 +0100
Commit:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
CommitDate: Sun Dec 13 20:07:27 2020 +0100

    tabfrm:Modify no more
    
    Change-Id: Ie54bea8a8c60b0a74f745630f9cddfc4bd4b0ac7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107656
    Tested-by: Jenkins
    Reviewed-by: Bjoern Michaelsen <bjoern.michael...@libreoffice.org>

diff --git a/sw/source/core/inc/tabfrm.hxx b/sw/source/core/inc/tabfrm.hxx
index d0eb807297a1..88bd6a82b0fb 100644
--- a/sw/source/core/inc/tabfrm.hxx
+++ b/sw/source/core/inc/tabfrm.hxx
@@ -27,7 +27,7 @@ class SwBorderAttrs;
 class SwAttrSetChg;
 
 /// SwTabFrame is one table in the document layout, containing rows (which 
contain cells).
-class SwTabFrame: public SwLayoutFrame, public SwFlowFrame
+class SwTabFrame final: public SwLayoutFrame, public SwFlowFrame
 {
     friend void CalcContent( SwLayoutFrame *pLay, bool bNoColl );
 
@@ -105,10 +105,9 @@ class SwTabFrame: public SwLayoutFrame, public SwFlowFrame
     virtual void DestroyImpl() override;
     virtual ~SwTabFrame() override;
 
-protected:
     virtual void MakeAll(vcl::RenderContext* pRenderContext) override;
     virtual void Format( vcl::RenderContext* pRenderContext, const 
SwBorderAttrs *pAttrs = nullptr ) override;
-    virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ) override;
+    virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
     // only changes the Framesize, not the PrtArea size
     virtual SwTwips GrowFrame  ( SwTwips, bool bTst = false, bool bInfo = 
false ) override;
 
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index ed54f255c052..88033e3ee9b6 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -3257,64 +3257,69 @@ SwTwips SwTabFrame::GrowFrame( SwTwips nDist, bool 
bTst, bool bInfo )
     return nDist;
 }
 
-void SwTabFrame::Modify( const SfxPoolItem* pOld, const SfxPoolItem * pNew )
+void SwTabFrame::SwClientNotify(const SwModify&, const SfxHint& rHint)
 {
+    auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint);
+    if(!pLegacy)
+        return;
     sal_uInt8 nInvFlags = 0;
-    bool bAttrSetChg = pNew && RES_ATTRSET_CHG == pNew->Which();
+    bool bAttrSetChg = pLegacy->m_pNew && RES_ATTRSET_CHG == 
pLegacy->m_pNew->Which();
 
-    if( bAttrSetChg )
+    if(bAttrSetChg)
     {
-        SfxItemIter aNIter( *static_cast<const 
SwAttrSetChg*>(pNew)->GetChgSet() );
-        SfxItemIter aOIter( *static_cast<const 
SwAttrSetChg*>(pOld)->GetChgSet() );
-        const SfxPoolItem* pNItem = aNIter.GetCurItem();
+        auto& rOldSetChg = *static_cast<const SwAttrSetChg*>(pLegacy->m_pOld);
+        auto& rNewSetChg = *static_cast<const SwAttrSetChg*>(pLegacy->m_pNew);
+        SfxItemIter aOIter(*rOldSetChg.GetChgSet());
+        SfxItemIter aNIter(*rNewSetChg.GetChgSet());
         const SfxPoolItem* pOItem = aOIter.GetCurItem();
-        SwAttrSetChg aOldSet( *static_cast<const SwAttrSetChg*>(pOld) );
-        SwAttrSetChg aNewSet( *static_cast<const SwAttrSetChg*>(pNew) );
+        const SfxPoolItem* pNItem = aNIter.GetCurItem();
+        SwAttrSetChg aOldSet(rOldSetChg);
+        SwAttrSetChg aNewSet(rNewSetChg);
         do
         {
             UpdateAttr_(pOItem, pNItem, nInvFlags, &aOldSet, &aNewSet);
             pNItem = aNIter.NextItem();
             pOItem = aOIter.NextItem();
-        } while (pNItem);
-        if ( aOldSet.Count() || aNewSet.Count() )
-            SwLayoutFrame::Modify( &aOldSet, &aNewSet );
+        } while(pNItem);
+        if(aOldSet.Count() || aNewSet.Count())
+            SwLayoutFrame::Modify(&aOldSet, &aNewSet);
     }
     else
-        UpdateAttr_( pOld, pNew, nInvFlags );
+        UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, nInvFlags);
 
-    if ( nInvFlags == 0 )
+    if(nInvFlags == 0)
         return;
 
-    SwPageFrame *pPage = FindPageFrame();
-    InvalidatePage( pPage );
-    if ( nInvFlags & 0x02 )
+    SwPageFrame* pPage = FindPageFrame();
+    InvalidatePage(pPage);
+    if(nInvFlags & 0x02)
         InvalidatePrt_();
-    if ( nInvFlags & 0x40 )
+    if(nInvFlags & 0x40)
         InvalidatePos_();
-    SwFrame *pTmp = GetIndNext();
-    if ( nullptr != pTmp )
+    SwFrame* pTmp = GetIndNext();
+    if(nullptr != pTmp)
     {
-        if ( nInvFlags & 0x04 )
+        if(nInvFlags & 0x04)
         {
             pTmp->InvalidatePrt_();
-            if ( pTmp->IsContentFrame() )
-                pTmp->InvalidatePage( pPage );
+            if(pTmp->IsContentFrame())
+                pTmp->InvalidatePage(pPage);
         }
-        if ( nInvFlags & 0x10 )
+        if(nInvFlags & 0x10)
             pTmp->SetCompletePaint();
     }
-    if ( nInvFlags & 0x08 && nullptr != (pTmp = GetPrev()) )
+    if(nInvFlags & 0x08 && nullptr != (pTmp = GetPrev()))
     {
         pTmp->InvalidatePrt_();
-        if ( pTmp->IsContentFrame() )
+        if(pTmp->IsContentFrame())
             pTmp->InvalidatePage( pPage );
     }
-    if ( nInvFlags & 0x20  )
+    if(nInvFlags & 0x20)
     {
-        if ( pPage && pPage->GetUpper() && !IsFollow() )
+        if(pPage && pPage->GetUpper() && !IsFollow())
             
static_cast<SwRootFrame*>(pPage->GetUpper())->InvalidateBrowseWidth();
     }
-    if ( nInvFlags & 0x80 )
+    if(nInvFlags & 0x80)
         InvalidateNextPos();
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to