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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Nov 19 21:45:31 UTC 2018


 sw/inc/unotbl.hxx                 |   23 ++++++++++-------------
 sw/source/core/unocore/unotbl.cxx |   24 ++++++++++++------------
 2 files changed, 22 insertions(+), 25 deletions(-)

New commits:
commit b14d30f8bff4315fb7ce83a00026e3fa6fb83acf
Author:     Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Sun Nov 18 15:27:04 2018 +0100
Commit:     Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Mon Nov 19 22:45:08 2018 +0100

    no more SwClient/SwModify for SwTextTableRows
    
    Change-Id: I267904c751c9b32b9b64b0cf1b7f9d922bc7e1f7
    Reviewed-on: https://gerrit.libreoffice.org/63529
    Tested-by: Jenkins
    Reviewed-by: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>

diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx
index 59a762a6f4f4..d96a969f333e 100644
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@ -148,22 +148,17 @@ public:
     css::uno::Any GetAny() const;
 };
 
-class SwXTextTableRow final : public cppu::WeakImplHelper
-<
-    css::beans::XPropertySet,
-    css::lang::XServiceInfo
->,
-    public SwClient
+class SwXTextTableRow final
+    : public cppu::WeakImplHelper<css::beans::XPropertySet, css::lang::XServiceInfo>
+    , public SvtListener
 {
-    const SfxItemPropertySet*   m_pPropSet;
-    SwTableLine*            pLine;
+    SwFrameFormat* m_pFormat;
+    SwTableLine* pLine;
+    const SfxItemPropertySet* m_pPropSet;
 
-    SwFrameFormat* GetFrameFormat() { return static_cast<SwFrameFormat*>(GetRegisteredIn()); }
-    const SwFrameFormat* GetFrameFormat() const { return const_cast<SwXTextTableRow*>(this)->GetFrameFormat(); }
+    SwFrameFormat* GetFrameFormat() { return m_pFormat; }
+    const SwFrameFormat* GetFrameFormat() const { return m_pFormat; }
     virtual ~SwXTextTableRow() override;
-    //SwClient
-    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
-    virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
 
 public:
     SwXTextTableRow(SwFrameFormat* pFormat, SwTableLine* pLine);
@@ -184,6 +179,8 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
 
     static SwTableLine* FindLine(SwTable* pTable, SwTableLine const * pLine);
+
+    void Notify(const SfxHint&) override;
 };
 
 typedef cppu::WeakImplHelper<
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index dd2161c24ef4..a66ee1d8631e 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1300,10 +1300,12 @@ uno::Sequence< OUString > SwXTextTableRow::getSupportedServiceNames()
 
 
 SwXTextTableRow::SwXTextTableRow(SwFrameFormat* pFormat, SwTableLine* pLn) :
-    SwClient(pFormat),
-    m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_ROW)),
-    pLine(pLn)
-{ }
+    m_pFormat(pFormat),
+    pLine(pLn),
+    m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_ROW))
+{
+    StartListening(m_pFormat->GetNotifier());
+}
 
 SwXTextTableRow::~SwXTextTableRow()
 {
@@ -1452,18 +1454,16 @@ void SwXTextTableRow::addVetoableChangeListener(const OUString& /*rPropertyName*
 void SwXTextTableRow::removeVetoableChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
     { throw uno::RuntimeException("not implemented", static_cast<cppu::OWeakObject*>(this)); };
 
-void SwXTextTableRow::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
-    { ClientModify(this, pOld, pNew); }
-
-void SwXTextTableRow::SwClientNotify(const SwModify& rModify, const SfxHint& rHint)
+void SwXTextTableRow::Notify(const SfxHint& rHint)
 {
-    if(auto pFindHint = dynamic_cast<const FindUnoInstanceHint<SwTableLine, SwXTextTableRow>*>(&rHint))
+    if(rHint.GetId() == SfxHintId::Dying)
+    {
+        m_pFormat = nullptr;
+    } else if(auto pFindHint = dynamic_cast<const FindUnoInstanceHint<SwTableLine, SwXTextTableRow>*>(&rHint))
     {
         if(!pFindHint->m_pCore && pFindHint->m_pCore == pLine)
             pFindHint->m_pResult = this;
     }
-    else
-        SwClient::SwClientNotify(rModify, rHint);
 }
 
 SwTableLine* SwXTextTableRow::FindLine(SwTable* pTable, SwTableLine const * pLine)
@@ -3961,7 +3961,7 @@ uno::Any SwXTableRows::getByIndex(sal_Int32 nIndex)
         throw lang::IndexOutOfBoundsException();
     SwTableLine* pLine = pTable->GetTabLines()[nIndex];
     FindUnoInstanceHint<SwTableLine,SwXTextTableRow> aHint{pLine};
-    pFrameFormat->CallSwClientNotify(aHint);
+    pFrameFormat->GetNotifier().Broadcast(aHint);
     if(!aHint.m_pResult)
         aHint.m_pResult = new SwXTextTableRow(pFrameFormat, pLine);
     uno::Reference<beans::XPropertySet> xRet = static_cast<beans::XPropertySet*>(aHint.m_pResult);


More information about the Libreoffice-commits mailing list