sw/inc/fchrfmt.hxx                 |    2 +-
 sw/inc/txtatr.hxx                  |    3 +--
 sw/source/core/txtnode/fmtatr2.cxx |    7 ++++---
 sw/source/core/txtnode/ndtxt.cxx   |   19 ++++++++-----------
 sw/source/core/txtnode/txtatr2.cxx |   17 +++++++++--------
 5 files changed, 23 insertions(+), 25 deletions(-)

New commits:
commit 38a71843fab65fed60d799bc7572608608bb70e8
Author:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
AuthorDate: Sun Nov 1 13:33:58 2020 +0100
Commit:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
CommitDate: Sun Nov 1 18:56:13 2020 +0100

    sw/source/core/txtnode: ModifyNotification no more ...
    
    Change-Id: I380b6c173d35865188c6d65f356a6e5d1165bd1e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105138
    Tested-by: Jenkins
    Reviewed-by: Bjoern Michaelsen <bjoern.michael...@libreoffice.org>

diff --git a/sw/inc/fchrfmt.hxx b/sw/inc/fchrfmt.hxx
index acca285590ea..ef8719103f7c 100644
--- a/sw/inc/fchrfmt.hxx
+++ b/sw/inc/fchrfmt.hxx
@@ -41,7 +41,7 @@ public:
     SwFormatCharFormat( const SwFormatCharFormat& rAttr );
 
 private:
-    virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ) override;
+    virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
 
     /// @@@ public copy ctor, but no copy assignment?
     SwFormatCharFormat & operator= (const SwFormatCharFormat &) = delete;
diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx
index fcc25811d63d..0cbd82fb826e 100644
--- a/sw/inc/txtatr.hxx
+++ b/sw/inc/txtatr.hxx
@@ -39,8 +39,7 @@ public:
     SwTextCharFormat( SwFormatCharFormat& rAttr, sal_Int32 nStart, sal_Int32 
nEnd );
     virtual ~SwTextCharFormat( ) override;
 
-    // Passed from SwFormatCharFormat (no derivation from SwClient!).
-    void ModifyNotification( const SfxPoolItem*, const SfxPoolItem* );
+    void TriggerNodeUpdate(const sw::LegacyModifyHint&);
     bool GetInfo( SfxPoolItem const & rInfo ) const;
 
     // get and set TextNode pointer
diff --git a/sw/source/core/txtnode/fmtatr2.cxx 
b/sw/source/core/txtnode/fmtatr2.cxx
index 3a3694f3cd84..cf9d57dd79a9 100644
--- a/sw/source/core/txtnode/fmtatr2.cxx
+++ b/sw/source/core/txtnode/fmtatr2.cxx
@@ -84,10 +84,11 @@ SwFormatCharFormat* SwFormatCharFormat::Clone( SfxItemPool* 
) const
 }
 
 // forward to the TextAttribute
-void SwFormatCharFormat::Modify( const SfxPoolItem* pOld, const SfxPoolItem* 
pNew )
+void SwFormatCharFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
 {
-    if( m_pTextAttribute )
-        m_pTextAttribute->ModifyNotification( pOld, pNew );
+    auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint);
+    if(m_pTextAttribute && pLegacy)
+        m_pTextAttribute->TriggerNodeUpdate(*pLegacy);
 }
 
 // forward to the TextAttribute
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 951fc6d63012..62cf217563a1 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -759,11 +759,8 @@ SwTextNode *SwTextNode::SplitContentNode(const SwPosition 
& rPos,
         // pasting the frames, but that causes other problems that look
         // expensive to solve.
         const SfxPoolItem *pItem;
-        if( HasWriterListeners() && SfxItemState::SET == pNode->GetSwAttrSet().
-            GetItemState( RES_PAGEDESC, true, &pItem ) )
-        {
-            pNode->ModifyNotification( pItem, pItem );
-        }
+        if(HasWriterListeners() && SfxItemState::SET == 
pNode->GetSwAttrSet().GetItemState(RES_PAGEDESC, true, &pItem))
+            pNode->TriggerNodeUpdate(sw::LegacyModifyHint(pItem, pItem));
     }
     return pNode;
 }
@@ -2484,12 +2481,12 @@ void SwTextNode::CutImpl( SwTextNode * const pDest, 
const SwIndex & rDestStart,
 
     // notify frames - before moving hints, because footnotes
     // want to find their anchor text frame in the follow chain
-    SwInsText aInsHint( nDestStart, nLen );
-    pDest->ModifyNotification( nullptr, &aInsHint );
-    sw::MoveText const moveHint(pDest, nDestStart, nTextStartIdx, nLen);
-    CallSwClientNotify(moveHint);
-    SwDelText aDelHint( nTextStartIdx, nLen );
-    ModifyNotification( nullptr, &aDelHint );
+    SwInsText aInsHint(nDestStart, nLen);
+    pDest->TriggerNodeUpdate(sw::LegacyModifyHint(nullptr, &aInsHint));
+    const sw::MoveText aMoveHint(pDest, nDestStart, nTextStartIdx, nLen);
+    CallSwClientNotify(aMoveHint);
+    const SwDelText aDelHint(nTextStartIdx, nLen);
+    TriggerNodeUpdate(sw::LegacyModifyHint(nullptr, &aDelHint));
 
     // 2. move attributes
     // Iterate over attribute array until the start of the attribute
diff --git a/sw/source/core/txtnode/txtatr2.cxx 
b/sw/source/core/txtnode/txtatr2.cxx
index fff614058984..5c5875610431 100644
--- a/sw/source/core/txtnode/txtatr2.cxx
+++ b/sw/source/core/txtnode/txtatr2.cxx
@@ -49,20 +49,21 @@ SwTextCharFormat::~SwTextCharFormat( )
 {
 }
 
-void SwTextCharFormat::ModifyNotification( const SfxPoolItem* pOld, const 
SfxPoolItem* pNew )
+void SwTextCharFormat::TriggerNodeUpdate(const sw::LegacyModifyHint& rHint)
 {
-    const sal_uInt16 nWhich = pOld ? pOld->Which() : pNew ? pNew->Which() : 0;
-    OSL_ENSURE(  isCHRATR(nWhich) || (RES_OBJECTDYING == nWhich)
-             || (RES_ATTRSET_CHG == nWhich) || (RES_FMT_CHG == nWhich),
-        "SwTextCharFormat::Modify(): unknown Modify");
-
-    if ( m_pTextNode )
+    const auto nWhich = rHint.GetWhich();
+    SAL_WARN_IF(
+            !isCHRATR(nWhich) &&
+            RES_OBJECTDYING != nWhich &&
+            RES_ATTRSET_CHG != nWhich &&
+            RES_FMT_CHG != nWhich, "sw.core", 
"SwTextCharFormat::TriggerNodeUpdate: unknown hint type");
+
+    if(m_pTextNode)
     {
         SwUpdateAttr aUpdateAttr(
             GetStart(),
             *GetEnd(),
             nWhich);
-
         m_pTextNode->TriggerNodeUpdate(sw::LegacyModifyHint(&aUpdateAttr, 
&aUpdateAttr));
     }
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to