summaryrefslogtreecommitdiff
path: root/sw/source/core/unocore/unoftn.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2014-08-20 12:56:12 +0200
committerMichael Stahl <mstahl@redhat.com>2014-08-20 16:40:17 +0200
commite54015d06f103e3ce9edc899f0d839ead88add8a (patch)
tree0950a1c4f53a7d65011b772f3960b307ac186643 /sw/source/core/unocore/unoftn.cxx
parenteee8b6eed6145f695d532aa62c33e3a0c44cba86 (diff)
i#107771: sw: make SwXFootnote a client of its format poolitem
In other words, stop registering at SwDoc's "UnoCallBack". Change-Id: Ie73c707b0f43559cc78717c0879d5e9a9335a7ac
Diffstat (limited to 'sw/source/core/unocore/unoftn.cxx')
-rw-r--r--sw/source/core/unocore/unoftn.cxx29
1 files changed, 8 insertions, 21 deletions
diff --git a/sw/source/core/unocore/unoftn.cxx b/sw/source/core/unocore/unoftn.cxx
index 1aab582abc8a..158e7292f699 100644
--- a/sw/source/core/unocore/unoftn.cxx
+++ b/sw/source/core/unocore/unoftn.cxx
@@ -57,9 +57,9 @@ public:
OUString m_sLabel;
Impl( SwXFootnote & rThis,
- SwDoc *const pDoc, SwFmtFtn const*const pFootnote,
+ SwFmtFtn *const pFootnote,
const bool bIsEndnote)
- : SwClient((pDoc) ? pDoc->GetUnoCallBack() : 0)
+ : SwClient(pFootnote)
, m_rThis(rThis)
, m_bIsEndnote(bIsEndnote)
, m_EventListeners(m_Mutex)
@@ -108,30 +108,17 @@ void SwXFootnote::Impl::Modify(const SfxPoolItem *pOld, const SfxPoolItem *pNew)
{
Invalidate();
}
- else if (pOld)
- {
- switch (pOld->Which())
- {
- case RES_FOOTNOTE_DELETED:
- if (static_cast<const void*>(m_pFmtFtn) ==
- static_cast<const SwPtrMsgPoolItem *>(pOld)->pObject)
- {
- Invalidate();
- }
- break;
- }
- }
}
SwXFootnote::SwXFootnote(const bool bEndnote)
: SwXText(0, CURSOR_FOOTNOTE)
- , m_pImpl( new SwXFootnote::Impl(*this, 0, 0, bEndnote) )
+ , m_pImpl( new SwXFootnote::Impl(*this, 0, bEndnote) )
{
}
-SwXFootnote::SwXFootnote(SwDoc & rDoc, const SwFmtFtn& rFmt)
+SwXFootnote::SwXFootnote(SwDoc & rDoc, SwFmtFtn & rFmt)
: SwXText(& rDoc, CURSOR_FOOTNOTE)
- , m_pImpl( new SwXFootnote::Impl(*this, &rDoc, &rFmt, rFmt.IsEndNote()) )
+ , m_pImpl( new SwXFootnote::Impl(*this, &rFmt, rFmt.IsEndNote()) )
{
}
@@ -152,10 +139,10 @@ SwXFootnote::GetXFootnote(
}
SwXFootnote *
-SwXFootnote::CreateXFootnote(SwDoc & rDoc, SwFmtFtn const& rFootnoteFmt)
+SwXFootnote::CreateXFootnote(SwDoc & rDoc, SwFmtFtn & rFootnoteFmt)
{
SwXFootnote *const pXFootnote(
- GetXFootnote(*rDoc.GetUnoCallBack(), rFootnoteFmt));
+ GetXFootnote(rFootnoteFmt, rFootnoteFmt));
return (pXFootnote)
? pXFootnote
: new SwXFootnote(rDoc, rFootnoteFmt);
@@ -335,7 +322,7 @@ throw (lang::IllegalArgumentException, uno::RuntimeException, std::exception)
{
const SwFmtFtn& rFtn = pTxtAttr->GetFtn();
m_pImpl->m_pFmtFtn = &rFtn;
- pNewDoc->GetUnoCallBack()->Add(m_pImpl.get());
+ const_cast<SwFmtFtn*>(m_pImpl->m_pFmtFtn)->Add(m_pImpl.get());
// force creation of sequence id - is used for references
if (pNewDoc->IsInReading())
{