LibreOffice Module sd (master) 1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sd::slidesorter::controller::Listener Class Reference

Listen for events of various types and sources and react to them. More...

#include <SlsListener.hxx>

Inheritance diagram for sd::slidesorter::controller::Listener:
[legend]
Collaboration diagram for sd::slidesorter::controller::Listener:
[legend]

Public Member Functions

 Listener (SlideSorter &rSlideSorter)
 
virtual ~Listener () override
 
void ConnectToController ()
 Connect to the current controller of the view shell as listener. More...
 
void DisconnectFromController ()
 Disconnect from the current controller of the view shell as listener. More...
 
virtual void Notify (SfxBroadcaster &rBroadcaster, const SfxHint &rHint) override
 
virtual void SAL_CALL disposing (const css::lang::EventObject &rEventObject) override
 
virtual void SAL_CALL notifyEvent (const css::document::EventObject &rEventObject) override
 
virtual void SAL_CALL propertyChange (const css::beans::PropertyChangeEvent &rEvent) override
 
virtual void SAL_CALL notifyEvent (const css::accessibility::AccessibleEventObject &rEvent) override
 
virtual void SAL_CALL frameAction (const css::frame::FrameActionEvent &rEvent) override
 For certain actions the listener connects to a new controller of the frame it is listening to. More...
 
virtual void disposing (std::unique_lock< std::mutex > &) override
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelper< typename... Ifc >
virtual void SAL_CALL acquire () noexcept override
 
virtual void SAL_CALL release () noexcept override
 
virtual void SAL_CALL dispose () noexcept final override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes () override
 
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId () override
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelperBase
virtual ~WeakComponentImplHelperBase () override
 
virtual void SAL_CALL dispose () override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual void disposing (std::unique_lock< std::mutex > &)
 
- Public Member Functions inherited from comphelper::UnoImplBase
virtual ~UnoImplBase ()
 
- Public Member Functions inherited from SfxListener
 SfxListener ()
 
 SfxListener (const SfxListener &rCopy)
 
virtual ~SfxListener () COVERITY_NOEXCEPT_FALSE
 
void StartListening (SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
 
void EndListening (SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
 
void EndListeningAll ()
 
bool IsListening (SfxBroadcaster &rBroadcaster) const
 
sal_uInt16 GetBroadcasterCount () const
 
SfxBroadcasterGetBroadcasterJOE (sal_uInt16 nNo) const
 
virtual void Notify (SfxBroadcaster &rBC, const SfxHint &rHint)
 
void RemoveBroadcaster_Impl (SfxBroadcaster &rBC)
 
virtual bool IsSdrView () const
 

Private Member Functions

void ReleaseListeners ()
 
void UpdateEditMode ()
 Called when the edit mode has changed. More...
 
void HandleModelChange (const SdrPage *pPage)
 Handle a change in the order of slides or when the set of slides has changed, i.e. More...
 
void HandleShapeModification (const SdrPage *pPage)
 Handle a modification to a shape on the given page. More...
 
 DECL_LINK (EventMultiplexerCallback, tools::EventMultiplexerEvent &, void)
 

Private Attributes

SlideSortermrSlideSorter
 
SlideSorterControllermrController
 
ViewShellBasempBase
 
bool mbListeningToDocument
 Remember whether we are listening to the document. More...
 
bool mbListeningToUNODocument
 Remember whether we are listening to the UNO document. More...
 
bool mbListeningToController
 Remember whether we are listening to the UNO controller. More...
 
bool mbListeningToFrame
 Remember whether we are listening to the frame. More...
 
bool mbIsMainViewChangePending
 
css::uno::WeakReference< css::frame::XController > mxControllerWeak
 
css::uno::WeakReference< css::frame::XFrame > mxFrameWeak
 
std::shared_ptr< SlideSorterController::ModelChangeLockmpModelChangeLock
 This object is used to lock the model between some events. More...
 

Additional Inherited Members

- Protected Member Functions inherited from comphelper::WeakComponentImplHelperBase
void throwIfDisposed (std::unique_lock< std::mutex > &)
 
- Protected Attributes inherited from comphelper::WeakComponentImplHelperBase
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > maEventListeners
 
- Protected Attributes inherited from comphelper::UnoImplBase
std::mutex m_aMutex
 
bool m_bDisposed
 

Detailed Description

Listen for events of various types and sources and react to them.

This class is a part of the controller.

When the view shell in the center pane is replaced by another the associated controller is replaced as well. Therefore we have to register at the frame and on certain FrameActionEvents to stop listening to the old controller and register as listener at the new one.

Definition at line 60 of file SlsListener.hxx.

Constructor & Destructor Documentation

◆ Listener()

sd::slidesorter::controller::Listener::Listener ( SlideSorter rSlideSorter)
explicit

◆ ~Listener()

sd::slidesorter::controller::Listener::~Listener ( )
overridevirtual

Member Function Documentation

◆ ConnectToController()

void sd::slidesorter::controller::Listener::ConnectToController ( )

Connect to the current controller of the view shell as listener.

This method is called once during initialization and every time a FrameActionEvent signals the current controller being exchanged. When the connection is successful then the flag mbListeningToController is set to <TRUE>.

Definition at line 177 of file SlsListener.cxx.

References DBG_UNHANDLED_EXCEPTION, sd::slidesorter::SlideSorter::GetViewShell(), sd::slidesorter::SlideSorter::GetXController(), sd::ViewShell::IsMainViewShell(), mbListeningToController, mrSlideSorter, mxControllerWeak, and xController.

Referenced by frameAction(), and Listener().

◆ DECL_LINK()

sd::slidesorter::controller::Listener::DECL_LINK ( EventMultiplexerCallback  ,
tools::EventMultiplexerEvent ,
void   
)
private

◆ DisconnectFromController()

void sd::slidesorter::controller::Listener::DisconnectFromController ( )

Disconnect from the current controller of the view shell as listener.

This method is called once during initialization and every time a FrameActionEvent signals the current controller being exchanged. When this method terminates then mbListeningToController is <FALSE>.

Definition at line 221 of file SlsListener.cxx.

References DBG_UNHANDLED_EXCEPTION, mbListeningToController, mxControllerWeak, and xController.

Referenced by frameAction(), and ReleaseListeners().

◆ disposing() [1/2]

virtual void SAL_CALL sd::slidesorter::controller::Listener::disposing ( const css::lang::EventObject &  rEventObject)
overridevirtual

◆ disposing() [2/2]

void sd::slidesorter::controller::Listener::disposing ( std::unique_lock< std::mutex > &  )
overridevirtual

Reimplemented from comphelper::WeakComponentImplHelperBase.

Definition at line 491 of file SlsListener.cxx.

References ReleaseListeners().

◆ frameAction()

void SAL_CALL sd::slidesorter::controller::Listener::frameAction ( const css::frame::FrameActionEvent &  rEvent)
overridevirtual

For certain actions the listener connects to a new controller of the frame it is listening to.

This usually happens when the view shell in the center pane is replaced by another view shell.

Definition at line 463 of file SlsListener.cxx.

References ConnectToController(), DisconnectFromController(), sd::slidesorter::controller::PageSelector::GetCoreSelection(), sd::slidesorter::controller::SlideSorterController::GetPageSelector(), mrController, and UpdateEditMode().

◆ HandleModelChange()

void sd::slidesorter::controller::Listener::HandleModelChange ( const SdrPage pPage)
private

◆ HandleShapeModification()

void sd::slidesorter::controller::Listener::HandleShapeModification ( const SdrPage pPage)
private

◆ Notify()

void sd::slidesorter::controller::Listener::Notify ( SfxBroadcaster rBroadcaster,
const SfxHint rHint 
)
overridevirtual

◆ notifyEvent() [1/2]

virtual void SAL_CALL sd::slidesorter::controller::Listener::notifyEvent ( const css::accessibility::AccessibleEventObject &  rEvent)
overridevirtual

◆ notifyEvent() [2/2]

virtual void SAL_CALL sd::slidesorter::controller::Listener::notifyEvent ( const css::document::EventObject &  rEventObject)
overridevirtual

◆ propertyChange()

void SAL_CALL sd::slidesorter::controller::Listener::propertyChange ( const css::beans::PropertyChangeEvent &  rEvent)
overridevirtual

◆ ReleaseListeners()

void sd::slidesorter::controller::Listener::ReleaseListeners ( )
private

◆ UpdateEditMode()

void sd::slidesorter::controller::Listener::UpdateEditMode ( )
private

Called when the edit mode has changed.

Update model accordingly.

Definition at line 496 of file SlsListener.cxx.

References Any, sd::slidesorter::controller::SlideSorterController::ChangeEditMode(), MasterPage, mrController, mxControllerWeak, Page, and xController.

Referenced by frameAction().

Member Data Documentation

◆ mbIsMainViewChangePending

bool sd::slidesorter::controller::Listener::mbIsMainViewChangePending
private

Definition at line 131 of file SlsListener.hxx.

◆ mbListeningToController

bool sd::slidesorter::controller::Listener::mbListeningToController
private

Remember whether we are listening to the UNO controller.

Definition at line 128 of file SlsListener.hxx.

Referenced by ConnectToController(), and DisconnectFromController().

◆ mbListeningToDocument

bool sd::slidesorter::controller::Listener::mbListeningToDocument
private

Remember whether we are listening to the document.

Definition at line 124 of file SlsListener.hxx.

Referenced by Listener(), ReleaseListeners(), and ~Listener().

◆ mbListeningToFrame

bool sd::slidesorter::controller::Listener::mbListeningToFrame
private

Remember whether we are listening to the frame.

Definition at line 130 of file SlsListener.hxx.

Referenced by Listener(), ReleaseListeners(), and ~Listener().

◆ mbListeningToUNODocument

bool sd::slidesorter::controller::Listener::mbListeningToUNODocument
private

Remember whether we are listening to the UNO document.

Definition at line 126 of file SlsListener.hxx.

Referenced by Listener(), ReleaseListeners(), and ~Listener().

◆ mpBase

ViewShellBase* sd::slidesorter::controller::Listener::mpBase
private

Definition at line 121 of file SlsListener.hxx.

Referenced by Listener(), and ReleaseListeners().

◆ mpModelChangeLock

std::shared_ptr<SlideSorterController::ModelChangeLock> sd::slidesorter::controller::Listener::mpModelChangeLock
private

This object is used to lock the model between some events.

It is references counted in order to cope with events that are expected but never sent.

Definition at line 140 of file SlsListener.hxx.

Referenced by Notify().

◆ mrController

SlideSorterController& sd::slidesorter::controller::Listener::mrController
private

◆ mrSlideSorter

SlideSorter& sd::slidesorter::controller::Listener::mrSlideSorter
private

◆ mxControllerWeak

css::uno::WeakReference< css::frame::XController> sd::slidesorter::controller::Listener::mxControllerWeak
private

Definition at line 133 of file SlsListener.hxx.

Referenced by ConnectToController(), DisconnectFromController(), and UpdateEditMode().

◆ mxFrameWeak

css::uno::WeakReference< css::frame::XFrame> sd::slidesorter::controller::Listener::mxFrameWeak
private

Definition at line 134 of file SlsListener.hxx.

Referenced by Listener(), and ReleaseListeners().


The documentation for this class was generated from the following files: