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

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Tue Nov 29 09:28:51 UTC 2016


 sw/inc/unocrsr.hxx                 |   29 +++++++++++++++--------------
 sw/source/core/doc/doccorr.cxx     |    2 +-
 sw/source/core/doc/docnew.cxx      |    2 +-
 sw/source/core/unocore/unocrsr.cxx |    3 +--
 4 files changed, 18 insertions(+), 18 deletions(-)

New commits:
commit 27ec6d1cb96a0d3becf14309a26d1c024a0f8603
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Mon Nov 28 09:12:16 2016 +0100

    kill SwClient/Modify here, use sane(r) SfxBroadcaster/Listener
    
    Change-Id: I862d7cf5785dc838044351b6ecac71aa7e0b2669
    Reviewed-on: https://gerrit.libreoffice.org/31305
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>

diff --git a/sw/inc/unocrsr.hxx b/sw/inc/unocrsr.hxx
index eeb1b4a..ac6b848 100644
--- a/sw/inc/unocrsr.hxx
+++ b/sw/inc/unocrsr.hxx
@@ -20,7 +20,8 @@
 #define INCLUDED_SW_INC_UNOCRSR_HXX
 
 #include <swcrsr.hxx>
-#include <calbck.hxx>
+#include <svl/SfxBroadcaster.hxx>
+#include <svl/lstner.hxx>
 
 namespace sw
 {
@@ -39,7 +40,7 @@ namespace sw
     };
 }
 
-class SwUnoCursor : public virtual SwCursor, public SwModify
+class SwUnoCursor : public virtual SwCursor
 {
 private:
     bool m_bRemainInSection : 1;
@@ -47,6 +48,7 @@ private:
     bool m_bSkipOverProtectSections : 1;
 
 public:
+    SfxBroadcaster m_aNotifier;
     SwUnoCursor( const SwPosition &rPos );
     virtual ~SwUnoCursor() override;
 
@@ -111,7 +113,7 @@ public:
 
 namespace sw
 {
-    class UnoCursorPointer : public SwClient
+    class UnoCursorPointer : public SfxListener
     {
         public:
             UnoCursorPointer()
@@ -120,30 +122,29 @@ namespace sw
             UnoCursorPointer(std::shared_ptr<SwUnoCursor> pCursor, bool bSectionRestricted=false)
                 : m_pCursor(pCursor), m_bSectionRestricted(bSectionRestricted)
             {
-                m_pCursor->Add(this);
+                StartListening(m_pCursor->m_aNotifier);
             }
             UnoCursorPointer(const UnoCursorPointer& rOther)
-                : SwClient(nullptr)
+                : SfxListener()
                 , m_pCursor(rOther.m_pCursor)
                 , m_bSectionRestricted(rOther.m_bSectionRestricted)
             {
                 if(m_pCursor)
-                    m_pCursor->Add(this);
+                    StartListening(m_pCursor->m_aNotifier);
             }
             virtual ~UnoCursorPointer() override
             {
                 if(m_pCursor)
-                    m_pCursor->Remove(this);
+                    EndListening(m_pCursor->m_aNotifier);
             }
-            virtual void SwClientNotify(const SwModify& rModify, const SfxHint& rHint) override
+            virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) override
             {
-                SwClient::SwClientNotify(rModify, rHint);
                 if(m_pCursor)
                 {
                     if(typeid(rHint) == typeid(UnoCursorHint))
-                        m_pCursor->Remove(this);
+                        EndListening(rBC);
                 }
-                if(!GetRegisteredIn())
+                if(!GetBroadcasterCount())
                     m_pCursor.reset();
             };
             SwUnoCursor* get() const
@@ -155,7 +156,7 @@ namespace sw
             UnoCursorPointer& operator=(UnoCursorPointer aOther)
             {
                 if(aOther.m_pCursor)
-                    aOther.m_pCursor->Add(this);
+                    StartListening(aOther.m_pCursor->m_aNotifier);
                 m_pCursor = aOther.m_pCursor;
                 return *this;
             }
@@ -164,9 +165,9 @@ namespace sw
             void reset(std::shared_ptr<SwUnoCursor> pNew)
             {
                 if(pNew)
-                    pNew->Add(this);
+                    StartListening(pNew->m_aNotifier);
                 else if(m_pCursor)
-                    m_pCursor->Remove(this);
+                    EndListening(m_pCursor->m_aNotifier);
                 m_pCursor = pNew;
             }
         private:
diff --git a/sw/source/core/doc/doccorr.cxx b/sw/source/core/doc/doccorr.cxx
index cb07e36..fee4a4d 100644
--- a/sw/source/core/doc/doccorr.cxx
+++ b/sw/source/core/doc/doccorr.cxx
@@ -160,7 +160,7 @@ void PaMCorrAbs( const SwPaM& rRange,
         {
             // the UNO cursor has left its section. We need to notify it!
             sw::UnoCursorHint aHint(sw::UnoCursorHintType::LEAVES_SECTION);
-            pUnoCursor->CallSwClientNotify(aHint);
+            pUnoCursor->m_aNotifier.Broadcast(aHint);
         }
     }
 }
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index ff5327d..6cc8e74 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -419,7 +419,7 @@ SwDoc::~SwDoc()
     {
         auto pCursor(pWeakCursor.lock());
         if(pCursor)
-            pCursor->CallSwClientNotify(aHint);
+            pCursor->m_aNotifier.Broadcast(aHint);
     }
     delete mpACEWord;
 
diff --git a/sw/source/core/unocore/unocrsr.cxx b/sw/source/core/unocore/unocrsr.cxx
index de18ef4..4b5c286 100644
--- a/sw/source/core/unocore/unocrsr.cxx
+++ b/sw/source/core/unocore/unocrsr.cxx
@@ -31,7 +31,6 @@ IMPL_FIXEDMEMPOOL_NEWDEL( SwUnoCursor )
 
 SwUnoCursor::SwUnoCursor( const SwPosition &rPos )
     : SwCursor( rPos, nullptr )
-    , SwModify(nullptr)
     , m_bRemainInSection(true)
     , m_bSkipOverHiddenSections(false)
     , m_bSkipOverProtectSections(false)
@@ -42,7 +41,7 @@ SwUnoCursor::~SwUnoCursor()
     SwDoc* pDoc = GetDoc();
     if( !pDoc->IsInDtor() )
     {
-        assert(!static_cast<bool>(SwIterator<SwClient, SwUnoCursor>(*this).First()));
+        assert(!m_aNotifier.HasListeners());
     }
 
     // delete the whole ring


More information about the Libreoffice-commits mailing list