summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/inc/unoport.hxx11
-rw-r--r--sw/source/core/unocore/unoportenum.cxx24
2 files changed, 5 insertions, 30 deletions
diff --git a/sw/source/core/inc/unoport.hxx b/sw/source/core/inc/unoport.hxx
index f6ee60e3454f..cc323859e322 100644
--- a/sw/source/core/inc/unoport.hxx
+++ b/sw/source/core/inc/unoport.hxx
@@ -249,13 +249,12 @@ class SwXTextPortionEnumeration
, ::com::sun::star::lang::XServiceInfo
, ::com::sun::star::lang::XUnoTunnel
>
- , public SwClient
{
TextRangeList_t m_Portions; // contains all portions, filled by ctor
- std::shared_ptr<SwUnoCrsr> m_pUnoCrsr;
+ sw::UnoCursorPointer m_pUnoCrsr;
- SwUnoCrsr* GetCursor() const
- {return static_cast<SwUnoCrsr*>(const_cast<SwModify*>(GetRegisteredIn()));}
+ SwUnoCrsr* GetCursor() const
+ {return const_cast<SwUnoCrsr*>(&(*m_pUnoCrsr));}
protected:
virtual ~SwXTextPortionEnumeration();
@@ -292,10 +291,6 @@ public:
virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL
getSupportedServiceNames()
throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
-protected:
- //SwClient
- virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) SAL_OVERRIDE;
- virtual void SwClientNotify(const SwModify&, const SfxHint&) SAL_OVERRIDE;
};
class SwXRedlinePortion : public SwXTextPortion
diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx
index d3cf0bb0f535..d95fd8bb4ea3 100644
--- a/sw/source/core/unocore/unoportenum.cxx
+++ b/sw/source/core/unocore/unoportenum.cxx
@@ -364,7 +364,6 @@ SwXTextPortionEnumeration::SwXTextPortionEnumeration(
: m_Portions()
{
m_pUnoCrsr = rParaCrsr.GetDoc()->CreateUnoCrsr(*rParaCrsr.GetPoint(), false);
- m_pUnoCrsr->Add(this);
OSL_ENSURE(nEnd == -1 || (nStart <= nEnd &&
nEnd <= m_pUnoCrsr->Start()->nNode.GetNode().GetTextNode()->GetText().getLength()),
@@ -373,7 +372,7 @@ SwXTextPortionEnumeration::SwXTextPortionEnumeration(
// find all frames, graphics and OLEs that are bound AT character in para
FrameClientSortList_t frames;
::CollectFrameAtNode(m_pUnoCrsr->GetPoint()->nNode, frames, true);
- lcl_CreatePortions(m_Portions, xParentText, m_pUnoCrsr.get(), frames, nStart, nEnd);
+ lcl_CreatePortions(m_Portions, xParentText, GetCursor(), frames, nStart, nEnd);
}
SwXTextPortionEnumeration::SwXTextPortionEnumeration(
@@ -382,14 +381,10 @@ SwXTextPortionEnumeration::SwXTextPortionEnumeration(
: m_Portions( rPortions )
{
m_pUnoCrsr = rParaCrsr.GetDoc()->CreateUnoCrsr(*rParaCrsr.GetPoint(), false);
- m_pUnoCrsr->Add(this);
}
SwXTextPortionEnumeration::~SwXTextPortionEnumeration()
-{
- if(m_pUnoCrsr)
- m_pUnoCrsr->Remove(this);
-}
+{ }
sal_Bool SwXTextPortionEnumeration::hasMoreElements()
throw( uno::RuntimeException, std::exception )
@@ -1401,19 +1396,4 @@ static void lcl_CreatePortions(
"CreatePortions: stack error" );
}
-void SwXTextPortionEnumeration::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
-{
- ClientModify(this, pOld, pNew);
-}
-
-void SwXTextPortionEnumeration::SwClientNotify(const SwModify& rModify, const SfxHint& rHint)
-{
- SwClient::SwClientNotify(rModify, rHint);
- if(!GetRegisteredIn() || typeid(rHint) == typeid(sw::DocDisposingHint))
- {
- m_pUnoCrsr->Remove(this);
- m_pUnoCrsr.reset();
- }
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */