Kaydet (Commit) 65fde448 authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen Kaydeden (comit) Björn Michaelsen

UNO SwXTableTextCursor: uso SvtListener instead of SwClient

Change-Id: Ie026909a1822c0e928f022e61b14e785224f5d17
Reviewed-on: https://gerrit.libreoffice.org/68472
Tested-by: Jenkins
Reviewed-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@libreoffice.org>
üst 368059f7
...@@ -184,20 +184,20 @@ public: ...@@ -184,20 +184,20 @@ public:
}; };
typedef cppu::WeakImplHelper< typedef cppu::WeakImplHelper<
css::text::XTextTableCursor, css::text::XTextTableCursor,
css::lang::XServiceInfo, css::lang::XServiceInfo,
css::beans::XPropertySet css::beans::XPropertySet> SwXTextTableCursor_Base;
> SwXTextTableCursor_Base; class SW_DLLPUBLIC SwXTextTableCursor
class SW_DLLPUBLIC SwXTextTableCursor : public SwXTextTableCursor_Base : public SwXTextTableCursor_Base
,public SwClient , public SvtListener
,public OTextCursorHelper , public OTextCursorHelper
{ {
const SfxItemPropertySet* m_pPropSet; SwFrameFormat* m_pFrameFormat;
const SfxItemPropertySet* m_pPropSet;
public: public:
SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const * pBox); SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const* pBox);
SwXTextTableCursor(SwFrameFormat& rTableFormat, SwXTextTableCursor(SwFrameFormat& rTableFormat, const SwTableCursor* pTableSelection);
const SwTableCursor* pTableSelection);
DECLARE_XINTERFACE() DECLARE_XINTERFACE()
//XTextTableCursor //XTextTableCursor
...@@ -226,8 +226,6 @@ public: ...@@ -226,8 +226,6 @@ public:
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
//SwClient
virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
// ITextCursorHelper // ITextCursorHelper
virtual const SwPaM* GetPaM() const override; virtual const SwPaM* GetPaM() const override;
...@@ -235,10 +233,12 @@ public: ...@@ -235,10 +233,12 @@ public:
virtual const SwDoc* GetDoc() const override; virtual const SwDoc* GetDoc() const override;
virtual SwDoc* GetDoc() override; virtual SwDoc* GetDoc() override;
virtual void Notify( const SfxHint& ) override;
const SwUnoCursor& GetCursor() const; const SwUnoCursor& GetCursor() const;
SwUnoCursor& GetCursor(); SwUnoCursor& GetCursor();
sw::UnoCursorPointer m_pUnoCursor; sw::UnoCursorPointer m_pUnoCursor;
SwFrameFormat* GetFrameFormat() const { return const_cast<SwFrameFormat*>(static_cast<const SwFrameFormat*>(GetRegisteredIn())); } SwFrameFormat* GetFrameFormat() const { return m_pFrameFormat; }
}; };
struct SwRangeDescriptor struct SwRangeDescriptor
......
...@@ -1479,11 +1479,12 @@ SwUnoCursor& SwXTextTableCursor::GetCursor() { return *m_pUnoCurs ...@@ -1479,11 +1479,12 @@ SwUnoCursor& SwXTextTableCursor::GetCursor() { return *m_pUnoCurs
uno::Sequence<OUString> SwXTextTableCursor::getSupportedServiceNames() uno::Sequence<OUString> SwXTextTableCursor::getSupportedServiceNames()
{ return {"com.sun.star.text.TextTableCursor"}; } { return {"com.sun.star.text.TextTableCursor"}; }
SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const * pBox) : SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat* pFrameFormat, SwTableBox const* pBox)
SwClient(pFormat), : m_pFrameFormat(pFrameFormat)
m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_CURSOR)) , m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_CURSOR))
{ {
SwDoc* pDoc = pFormat->GetDoc(); StartListening(m_pFrameFormat->GetNotifier());
SwDoc* pDoc = m_pFrameFormat->GetDoc();
const SwStartNode* pSttNd = pBox->GetSttNd(); const SwStartNode* pSttNd = pBox->GetSttNd();
SwPosition aPos(*pSttNd); SwPosition aPos(*pSttNd);
m_pUnoCursor = pDoc->CreateUnoCursor(aPos, true); m_pUnoCursor = pDoc->CreateUnoCursor(aPos, true);
...@@ -1492,10 +1493,11 @@ SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const ...@@ -1492,10 +1493,11 @@ SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const
rTableCursor.MakeBoxSels(); rTableCursor.MakeBoxSels();
} }
SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat& rTableFormat, const SwTableCursor* pTableSelection) : SwXTextTableCursor::SwXTextTableCursor(SwFrameFormat& rTableFormat, const SwTableCursor* pTableSelection)
SwClient(&rTableFormat), : m_pFrameFormat(&rTableFormat)
m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_CURSOR)) , m_pPropSet(aSwMapProvider.GetPropertySet(PROPERTY_MAP_TEXT_TABLE_CURSOR))
{ {
StartListening(m_pFrameFormat->GetNotifier());
m_pUnoCursor = pTableSelection->GetDoc()->CreateUnoCursor(*pTableSelection->GetPoint(), true); m_pUnoCursor = pTableSelection->GetDoc()->CreateUnoCursor(*pTableSelection->GetPoint(), true);
if(pTableSelection->HasMark()) if(pTableSelection->HasMark())
{ {
...@@ -1768,8 +1770,11 @@ void SwXTextTableCursor::addVetoableChangeListener(const OUString& /*rPropertyNa ...@@ -1768,8 +1770,11 @@ void SwXTextTableCursor::addVetoableChangeListener(const OUString& /*rPropertyNa
void SwXTextTableCursor::removeVetoableChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/) void SwXTextTableCursor::removeVetoableChangeListener(const OUString& /*rPropertyName*/, const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
{ throw uno::RuntimeException("not implemented", static_cast<cppu::OWeakObject*>(this)); }; { throw uno::RuntimeException("not implemented", static_cast<cppu::OWeakObject*>(this)); };
void SwXTextTableCursor::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) void SwXTextTableCursor::Notify( const SfxHint& rHint )
{ ClientModify(this, pOld, pNew); } {
if(rHint.GetId() == SfxHintId::Dying)
m_pFrameFormat = nullptr;
}
// SwXTextTable =========================================================== // SwXTextTable ===========================================================
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment