sw/inc/calbck.hxx                   |    8 ++++----
 sw/inc/node.hxx                     |    4 ----
 sw/source/core/attr/calbck.cxx      |    7 +++++++
 sw/source/core/docnode/swbaslnk.cxx |    8 ++++----
 4 files changed, 15 insertions(+), 12 deletions(-)

New commits:
commit 63076928d41d95d6c0bc86580ba8a5a985b1f415
Author:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
AuthorDate: Sun Nov 1 17:39:30 2020 +0100
Commit:     Bjoern Michaelsen <bjoern.michael...@libreoffice.org>
CommitDate: Sun Nov 1 20:56:54 2020 +0100

    Make SwClient::ModifyNotification non-virtual
    
    Change-Id: Ic34b0b7a3ad906da5f25103f32a28e2a3efd82fb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105150
    Tested-by: Jenkins
    Reviewed-by: Bjoern Michaelsen <bjoern.michael...@libreoffice.org>

diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 020697b285b8..19c7c0b1125a 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -144,7 +144,10 @@ public:
     // should be called only from SwModify the client is registered in
     // mba: IMHO this method should be pure virtual
     // DO NOT USE IN NEW CODE! use SwClientNotify instead.
-    virtual void Modify(const SfxPoolItem* pOldValue, const SfxPoolItem* 
pNewValue);
+    virtual void Modify(const SfxPoolItem*, const SfxPoolItem*);
+    // controlled access to Modify method
+    // mba: this is still considered a hack and it should be fixed; the name 
makes grep-ing easier
+    void ModifyNotification(const SfxPoolItem*, const SfxPoolItem*);
     // when overriding this, you MUST call SwClient::SwClientModify() in the 
override!
     virtual void SwClientNotify(const SwModify&, const SfxHint& rHint) 
override;
 
@@ -152,9 +155,6 @@ public:
     // its SwClient objects can decide to get registered to the latter instead 
by calling this method
     std::unique_ptr<sw::ModifyChangedHint> CheckRegistration( const 
SfxPoolItem* pOldValue );
 
-    // controlled access to Modify method
-    // mba: this is still considered a hack and it should be fixed; the name 
makes grep-ing easier
-    virtual void ModifyNotification( const SfxPoolItem *pOldValue, const 
SfxPoolItem *pNewValue ) { Modify ( pOldValue, pNewValue ); }
     void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { 
SwClientNotify( rModify, rHint ); }
 
     const SwModify* GetRegisteredIn() const { return m_pRegisteredIn; }
diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx
index 3708e82f1c5c..7aa3fe8525bb 100644
--- a/sw/inc/node.hxx
+++ b/sw/inc/node.hxx
@@ -480,10 +480,6 @@ public:
     // Access to DrawingLayer FillAttributes in a preprocessed form for 
primitive usage
     virtual drawinglayer::attribute::SdrAllFillAttributesHelperPtr 
getSdrAllFillAttributesHelper() const;
 
-    virtual void ModifyNotification(const SfxPoolItem* pOld, const 
SfxPoolItem* pNew) override
-    {
-        SwClientNotify(*this, sw::LegacyModifyHint(pOld, pNew));
-    }
     void UpdateAttr(const SwUpdateAttr&);
 
 private:
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index c3eda1a29e64..917efa340bbd 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -113,6 +113,13 @@ void SwClient::SwClientNotify(const SwModify&, const 
SfxHint& rHint)
     }
 };
 
+void SwClient::ModifyNotification(const SfxPoolItem* pOldValue, const 
SfxPoolItem* pNewValue)
+{
+    SwModify aFallbackMod;
+    auto pMod = dynamic_cast<SwModify*>(this);
+    SwClientNotify(pMod ? *pMod : aFallbackMod, 
sw::LegacyModifyHint(pOldValue, pNewValue));
+}
+
 void SwClient::StartListeningToSameModifyAs(const SwClient& other)
 {
     if(other.m_pRegisteredIn)
diff --git a/sw/source/core/docnode/swbaslnk.cxx 
b/sw/source/core/docnode/swbaslnk.cxx
index 2d297445bd41..3ab59b95932c 100644
--- a/sw/source/core/docnode/swbaslnk.cxx
+++ b/sw/source/core/docnode/swbaslnk.cxx
@@ -61,14 +61,14 @@ static void lcl_CallModify( SwGrfNode& rGrfNd, SfxPoolItem& 
rItem )
     //              them haven't a loaded Graphic.
     rGrfNd.LockModify();
     {
-        SwIterator<SwClient,SwGrfNode> aIter(rGrfNd);
-        for(SwClient* pLast = aIter.First(); pLast; pLast = aIter.Next())
-            if(dynamic_cast<const SwContentFrame*>( pLast) ==  nullptr)
+        SwIterator<SwModify,SwGrfNode> aIter(rGrfNd);
+        for(SwModify* pLast = aIter.First(); pLast; pLast = aIter.Next())
+            if(dynamic_cast<const SwContentFrame*>(pLast) ==  nullptr)
                 pLast->ModifyNotification(&rItem, &rItem);
     }
     {
         SwIterator<SwContentFrame,SwGrfNode> aIter(rGrfNd);
-        for(SwClient* pLast = aIter.First(); pLast; pLast = aIter.Next())
+        for(SwContentFrame* pLast = aIter.First(); pLast; pLast = aIter.Next())
             pLast->ModifyNotification(&rItem, &rItem);
     }
     rGrfNd.UnlockModify();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to