[Libreoffice-commits] core.git: sw/source
Bjoern Michaelsen (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 20 00:40:59 UTC 2019
sw/source/filter/basflt/fltshell.cxx | 34 +++++++++++++++-------------------
sw/source/filter/inc/fltshell.hxx | 25 ++++++++++++-------------
2 files changed, 27 insertions(+), 32 deletions(-)
New commits:
commit 6170da5135683735a34b9fac992a9a668b95ffe5
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Fri Sep 20 01:11:59 2019 +0200
Commit: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Fri Sep 20 02:39:55 2019 +0200
no more SwClient in sw/source/filter/basflt/
Change-Id: I56c9d140bc92ad517cb808e99cdb942f89cdbedc
Reviewed-on: https://gerrit.libreoffice.org/79263
Tested-by: Jenkins
Reviewed-by: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/sw/source/filter/basflt/fltshell.cxx b/sw/source/filter/basflt/fltshell.cxx
index 0181e0a3ed12..d530d73c77ac 100644
--- a/sw/source/filter/basflt/fltshell.cxx
+++ b/sw/source/filter/basflt/fltshell.cxx
@@ -943,15 +943,15 @@ void SwFltControlStack::Delete(const SwPaM &rPam)
SwFltAnchor::SwFltAnchor(SwFrameFormat* pFormat) :
SfxPoolItem(RES_FLTR_ANCHOR), pFrameFormat(pFormat)
{
- pClient.reset( new SwFltAnchorClient(this) );
- pFrameFormat->Add(pClient.get());
+ pListener.reset(new SwFltAnchorListener(this));
+ pListener->StartListening(pFrameFormat->GetNotifier());
}
SwFltAnchor::SwFltAnchor(const SwFltAnchor& rCpy) :
SfxPoolItem(RES_FLTR_ANCHOR), pFrameFormat(rCpy.pFrameFormat)
{
- pClient.reset( new SwFltAnchorClient(this) );
- pFrameFormat->Add(pClient.get());
+ pListener.reset(new SwFltAnchorListener(this));
+ pListener->StartListening(pFrameFormat->GetNotifier());
}
SwFltAnchor::~SwFltAnchor()
@@ -974,24 +974,20 @@ SfxPoolItem* SwFltAnchor::Clone(SfxItemPool*) const
return new SwFltAnchor(*this);
}
-SwFltAnchorClient::SwFltAnchorClient(SwFltAnchor * pFltAnchor)
-: m_pFltAnchor(pFltAnchor)
-{
-}
+SwFltAnchorListener::SwFltAnchorListener(SwFltAnchor* pFltAnchor)
+ : m_pFltAnchor(pFltAnchor)
+{ }
-void SwFltAnchorClient::Modify(const SfxPoolItem *, const SfxPoolItem * pNew)
+void SwFltAnchorListener::Notify(const SfxHint& rHint)
{
- if (pNew->Which() == RES_FMT_CHG)
+ if(auto pLegacyHint = dynamic_cast<const sw::LegacyModifyHint*>(&rHint))
{
- const SwFormatChg * pFormatChg = dynamic_cast<const SwFormatChg *> (pNew);
-
- if (pFormatChg != nullptr)
- {
- SwFrameFormat * pFrameFormat = dynamic_cast<SwFrameFormat *> (pFormatChg->pChangedFormat);
-
- if (pFrameFormat != nullptr)
- m_pFltAnchor->SetFrameFormat(pFrameFormat);
- }
+ if(pLegacyHint->m_pNew->Which() != RES_FMT_CHG)
+ return;
+ auto pFormatChg = dynamic_cast<const SwFormatChg*>(pLegacyHint->m_pNew);
+ auto pFrameFormat = pFormatChg ? dynamic_cast<SwFrameFormat*>(pFormatChg->pChangedFormat) : nullptr;
+ if(pFrameFormat)
+ m_pFltAnchor->SetFrameFormat(pFrameFormat);
}
}
diff --git a/sw/source/filter/inc/fltshell.hxx b/sw/source/filter/inc/fltshell.hxx
index d7991b096884..e3f24316dde5 100644
--- a/sw/source/filter/inc/fltshell.hxx
+++ b/sw/source/filter/inc/fltshell.hxx
@@ -20,6 +20,7 @@
#define INCLUDED_SW_SOURCE_FILTER_INC_FLTSHELL_HXX
#include <hintids.hxx>
+#include <svl/listener.hxx>
#include <tools/datetime.hxx>
#include <mdiexp.hxx>
#include <ndindex.hxx>
@@ -177,12 +178,12 @@ public:
void DeleteAndDestroy(Entries::size_type nCnt);
};
-class SwFltAnchorClient;
+class SwFltAnchorListener;
-class SW_DLLPUBLIC SwFltAnchor : public SfxPoolItem
+class SW_DLLPUBLIC SwFltAnchor: public SfxPoolItem
{
SwFrameFormat* pFrameFormat;
- std::unique_ptr<SwFltAnchorClient> pClient;
+ std::unique_ptr<SwFltAnchorListener> pListener;
public:
SwFltAnchor(SwFrameFormat* pFlyFormat);
@@ -192,19 +193,17 @@ public:
// "purely virtual methods" of SfxPoolItem
virtual bool operator==(const SfxPoolItem&) const override;
virtual SfxPoolItem* Clone(SfxItemPool* = nullptr) const override;
- void SetFrameFormat(SwFrameFormat * _pFrameFormat);
- const SwFrameFormat* GetFrameFormat() const { return pFrameFormat;}
- SwFrameFormat* GetFrameFormat() { return pFrameFormat;}
+ void SetFrameFormat(SwFrameFormat* _pFrameFormat);
+ const SwFrameFormat* GetFrameFormat() const { return pFrameFormat; }
+ SwFrameFormat* GetFrameFormat() { return pFrameFormat; }
};
-class SwFltAnchorClient : public SwClient
+class SwFltAnchorListener : public SvtListener
{
- SwFltAnchor * m_pFltAnchor;
-
-public:
- SwFltAnchorClient(SwFltAnchor * pFltAnchor);
-
- virtual void Modify (const SfxPoolItem *pOld, const SfxPoolItem *pNew) override;
+ SwFltAnchor* m_pFltAnchor;
+ public:
+ SwFltAnchorListener(SwFltAnchor* pFltAnchor);
+ virtual void Notify(const SfxHint&) override;
};
class SW_DLLPUBLIC SwFltRedline : public SfxPoolItem
More information about the Libreoffice-commits
mailing list