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

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Thu May 20 06:50:20 UTC 2021


 sw/source/core/inc/tabfrm.hxx    |   18 +++++++++++++++++-
 sw/source/core/layout/tabfrm.cxx |   38 +++++++++++++++++++-------------------
 2 files changed, 36 insertions(+), 20 deletions(-)

New commits:
commit 4e4e02904fdff021631e7758a277b7c1c7b9378a
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Wed May 19 20:36:30 2021 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Thu May 20 08:49:42 2021 +0200

    Introduce SwTabFrameInvFlags to replace magic numbers in ...
    
    ... SwTabFrame::SwClientNotify()
    
    SwTabFrame::UpdateAttr_() is not yet updated to produce these.
    
    Change-Id: Ifb534f7ac2b01f7752aace8a57686228d36edbb2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115825
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/sw/source/core/inc/tabfrm.hxx b/sw/source/core/inc/tabfrm.hxx
index 88bd6a82b0fb..97745968fcad 100644
--- a/sw/source/core/inc/tabfrm.hxx
+++ b/sw/source/core/inc/tabfrm.hxx
@@ -26,6 +26,22 @@ class SwTable;
 class SwBorderAttrs;
 class SwAttrSetChg;
 
+enum class SwTabFrameInvFlags : sal_uInt8
+{
+    NONE = 0x00,
+    InvalidatePrt = 0x02,
+    InvalidateIndNextPrt = 0x04,
+    InvalidatePrevPrt = 0x08,
+    SetIndNextCompletePaint = 0x10,
+    InvalidateBrowseWidth = 0x20,
+    InvalidatePos = 0x40,
+    InvalidateNextPos = 0x80,
+};
+
+namespace o3tl {
+    template<> struct typed_flags<SwTabFrameInvFlags> : is_typed_flags<SwTabFrameInvFlags, 0xfe> {};
+}
+
 /// SwTabFrame is one table in the document layout, containing rows (which contain cells).
 class SwTabFrame final: public SwLayoutFrame, public SwFlowFrame
 {
@@ -96,7 +112,7 @@ class SwTabFrame final: public SwLayoutFrame, public SwFlowFrame
 
     void UpdateAttr_(
         const SfxPoolItem*,
-        const SfxPoolItem*, sal_uInt8 &,
+        const SfxPoolItem*, SwTabFrameInvFlags &,
         SwAttrSetChg *pa = nullptr,
         SwAttrSetChg *pb = nullptr );
 
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 4747cede044b..34ba690a25b8 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -3265,7 +3265,7 @@ void SwTabFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
     auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint);
     if(!pLegacy)
         return;
-    sal_uInt8 nInvFlags = 0;
+    SwTabFrameInvFlags eInvFlags = SwTabFrameInvFlags::NONE;
     bool bAttrSetChg = pLegacy->m_pNew && RES_ATTRSET_CHG == pLegacy->m_pNew->Which();
 
     if(bAttrSetChg)
@@ -3280,7 +3280,7 @@ void SwTabFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
         SwAttrSetChg aNewSet(rNewSetChg);
         do
         {
-            UpdateAttr_(pOItem, pNItem, nInvFlags, &aOldSet, &aNewSet);
+            UpdateAttr_(pOItem, pNItem, eInvFlags, &aOldSet, &aNewSet);
             pNItem = aNIter.NextItem();
             pOItem = aOIter.NextItem();
         } while(pNItem);
@@ -3288,46 +3288,46 @@ void SwTabFrame::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
             SwLayoutFrame::SwClientNotify(rMod, sw::LegacyModifyHint(&aOldSet, &aNewSet));
     }
     else
-        UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, nInvFlags);
+        UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
 
-    if(nInvFlags == 0)
+    if(eInvFlags == SwTabFrameInvFlags::NONE)
         return;
 
     SwPageFrame* pPage = FindPageFrame();
     InvalidatePage(pPage);
-    if(nInvFlags & 0x02)
+    if(eInvFlags & SwTabFrameInvFlags::InvalidatePrt)
         InvalidatePrt_();
-    if(nInvFlags & 0x40)
+    if(eInvFlags & SwTabFrameInvFlags::InvalidatePos)
         InvalidatePos_();
     SwFrame* pTmp = GetIndNext();
     if(nullptr != pTmp)
     {
-        if(nInvFlags & 0x04)
+        if(eInvFlags & SwTabFrameInvFlags::InvalidateIndNextPrt)
         {
             pTmp->InvalidatePrt_();
             if(pTmp->IsContentFrame())
                 pTmp->InvalidatePage(pPage);
         }
-        if(nInvFlags & 0x10)
+        if(eInvFlags & SwTabFrameInvFlags::SetIndNextCompletePaint)
             pTmp->SetCompletePaint();
     }
-    if(nInvFlags & 0x08 && nullptr != (pTmp = GetPrev()))
+    if(eInvFlags & SwTabFrameInvFlags::InvalidatePrevPrt && nullptr != (pTmp = GetPrev()))
     {
         pTmp->InvalidatePrt_();
         if(pTmp->IsContentFrame())
             pTmp->InvalidatePage( pPage );
     }
-    if(nInvFlags & 0x20)
+    if(eInvFlags & SwTabFrameInvFlags::InvalidateBrowseWidth)
     {
         if(pPage && pPage->GetUpper() && !IsFollow())
             static_cast<SwRootFrame*>(pPage->GetUpper())->InvalidateBrowseWidth();
     }
-    if(nInvFlags & 0x80)
+    if(eInvFlags & SwTabFrameInvFlags::InvalidateNextPos)
         InvalidateNextPos();
 }
 
 void SwTabFrame::UpdateAttr_( const SfxPoolItem *pOld, const SfxPoolItem *pNew,
-                            sal_uInt8 &rInvFlags,
+                            SwTabFrameInvFlags &rInvFlags,
                             SwAttrSetChg *pOldSet, SwAttrSetChg *pNewSet )
 {
     bool bClear = true;
@@ -3356,18 +3356,18 @@ void SwTabFrame::UpdateAttr_( const SfxPoolItem *pOld, const SfxPoolItem *pNew,
                     pHeadline->Paste( this, pLowerRow );
                 }
             }
-            rInvFlags |= 0x02;
+            rInvFlags |= static_cast<SwTabFrameInvFlags>(0x02);
             break;
 
         case RES_FRM_SIZE:
         case RES_HORI_ORIENT:
-            rInvFlags |= 0x22;
+            rInvFlags |= static_cast<SwTabFrameInvFlags>(0x22);
             break;
 
         case RES_PAGEDESC:                      //Attribute changes (on/off)
             if ( IsInDocBody() )
             {
-                rInvFlags |= 0x40;
+                rInvFlags |= static_cast<SwTabFrameInvFlags>(0x40);
                 SwPageFrame *pPage = FindPageFrame();
                 if (pPage)
                 {
@@ -3382,23 +3382,23 @@ void SwTabFrame::UpdateAttr_( const SfxPoolItem *pOld, const SfxPoolItem *pNew,
             break;
 
         case RES_BREAK:
-            rInvFlags |= 0xC0;
+            rInvFlags |= static_cast<SwTabFrameInvFlags>(0xC0);
             break;
 
         case RES_LAYOUT_SPLIT:
             if ( !IsFollow() )
-                rInvFlags |= 0x40;
+                rInvFlags |= static_cast<SwTabFrameInvFlags>(0x40);
             break;
         case RES_FRAMEDIR :
             SetDerivedR2L( false );
             CheckDirChange();
             break;
         case RES_COLLAPSING_BORDERS :
-            rInvFlags |= 0x02;
+            rInvFlags |= static_cast<SwTabFrameInvFlags>(0x02);
             lcl_InvalidateAllLowersPrt( this );
             break;
         case RES_UL_SPACE:
-            rInvFlags |= 0x1C;
+            rInvFlags |= static_cast<SwTabFrameInvFlags>(0x1C);
             [[fallthrough]];
 
         default:


More information about the Libreoffice-commits mailing list