LibreOffice Module sd (master) 1
|
Listen for events of various types and sources and react to them. More...
#include <SlsListener.hxx>
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 |
SfxBroadcaster * | GetBroadcasterJOE (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 | |
SlideSorter & | mrSlideSorter |
SlideSorterController & | mrController |
ViewShellBase * | mpBase |
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::ModelChangeLock > | mpModelChangeLock |
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 |
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.
|
explicit |
Definition at line 55 of file SlsListener.cxx.
References ConnectToController(), GetController(), SdDrawDocument::GetDocSh(), sd::slidesorter::model::SlideSorterModel::GetDocument(), sd::ViewShellBase::GetEventMultiplexer(), sd::ViewShellBase::GetMainViewShell(), sd::slidesorter::SlideSorter::GetModel(), SdrModel::getUnoModel(), sd::slidesorter::SlideSorter::GetViewShell(), sd::slidesorter::SlideSorter::GetXController(), sd::ViewShell::IsMainViewShell(), LINK, mbListeningToDocument, mbListeningToFrame, mbListeningToUNODocument, mpBase, mrSlideSorter, mxFrameWeak, SfxListener::StartListening(), xController, and xFrame.
|
overridevirtual |
Definition at line 125 of file SlsListener.cxx.
References DBG_ASSERT, mbListeningToDocument, mbListeningToFrame, and mbListeningToUNODocument.
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().
|
private |
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().
|
overridevirtual |
|
overridevirtual |
Reimplemented from comphelper::WeakComponentImplHelperBase.
Definition at line 491 of file SlsListener.cxx.
References ReleaseListeners().
|
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().
|
private |
Handle a change in the order of slides or when the set of slides has changed, i.e.
a slide has been created.
Definition at line 521 of file SlsListener.cxx.
References sd::slidesorter::model::SlideSorterModel::GetDocument(), SdDrawDocument::GetMasterSdPageCount(), sd::slidesorter::SlideSorter::GetModel(), sd::slidesorter::controller::SlideSorterController::GetSelectionManager(), SdrModel::getUnoModel(), sd::slidesorter::controller::SlideSorterController::HandleModelChange(), sd::slidesorter::cache::PageCacheManager::Instance(), SdrPage::IsInserted(), mrController, mrSlideSorter, Notes, sd::slidesorter::model::SlideSorterModel::NotifyPageEvent(), and Standard.
Referenced by Notify().
|
private |
Handle a modification to a shape on the given page.
When this is a regular page then update its preview. When it is a master page then additionally update the previews of all pages linked to it.
Definition at line 554 of file SlsListener.cxx.
References sd::slidesorter::model::SlideSorterModel::GetDocument(), sd::slidesorter::SlideSorter::GetModel(), sd::slidesorter::view::SlideSorterView::GetPreviewCache(), SdDrawDocument::GetSdPage(), SdDrawDocument::GetSdPageCount(), SdrModel::getUnoModel(), sd::slidesorter::SlideSorter::GetView(), sd::slidesorter::cache::PageCacheManager::Instance(), SdrPage::IsMasterPage(), mrSlideSorter, nCount, nIndex, Standard, SdrPage::TRG_GetMasterPage(), and SdrPage::TRG_HasMasterPage().
|
overridevirtual |
Reimplemented from SfxListener.
Definition at line 252 of file SlsListener.cxx.
References sd::slidesorter::controller::SlideSorterController::CheckForMasterPageAssignment(), sd::slidesorter::controller::SlideSorterController::CheckForSlideTransitionAssignment(), SfxListener::EndListening(), sd::slidesorter::controller::SlideSorterController::FinishEditModeChange(), sd::slidesorter::model::SlideSorterModel::GetDocument(), SfxHint::GetId(), SdrHint::GetKind(), sd::slidesorter::SlideSorter::GetModel(), SdrHint::GetPage(), sd::slidesorter::controller::SlideSorterController::HandleModelChange(), HandleModelChange(), sd::ViewShellHint::HINT_CHANGE_EDIT_MODE_END, sd::ViewShellHint::HINT_CHANGE_EDIT_MODE_START, sd::ViewShellHint::HINT_COMPLEX_MODEL_CHANGE_END, sd::ViewShellHint::HINT_COMPLEX_MODEL_CHANGE_START, sd::ViewShellHint::HINT_PAGE_RESIZE_END, sd::ViewShellHint::HINT_PAGE_RESIZE_START, mpModelChangeLock, mrController, mrSlideSorter, and sd::slidesorter::controller::SlideSorterController::PrepareEditModeChange().
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Definition at line 414 of file SlsListener.cxx.
References Any, sd::slidesorter::controller::SlideSorterController::ChangeEditMode(), DBG_UNHANDLED_EXCEPTION, sd::slidesorter::controller::SlideSorterController::GetCurrentSlideManager(), sd::slidesorter::controller::SlideSorterController::GetPageSelector(), comphelper::UnoImplBase::m_bDisposed, MasterPage, mrController, Page, and sd::slidesorter::controller::PageSelector::SelectPage().
|
private |
Definition at line 131 of file SlsListener.cxx.
References DisconnectFromController(), SfxListener::EndListening(), SdDrawDocument::GetDocSh(), sd::slidesorter::model::SlideSorterModel::GetDocument(), sd::ViewShellBase::GetEventMultiplexer(), sd::slidesorter::SlideSorter::GetModel(), SdrModel::getUnoModel(), LINK, mbListeningToDocument, mbListeningToFrame, mbListeningToUNODocument, mpBase, mrSlideSorter, mxFrameWeak, and xFrame.
Referenced by disposing().
|
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().
|
private |
Definition at line 131 of file SlsListener.hxx.
|
private |
Remember whether we are listening to the UNO controller.
Definition at line 128 of file SlsListener.hxx.
Referenced by ConnectToController(), and DisconnectFromController().
|
private |
Remember whether we are listening to the document.
Definition at line 124 of file SlsListener.hxx.
Referenced by Listener(), ReleaseListeners(), and ~Listener().
|
private |
Remember whether we are listening to the frame.
Definition at line 130 of file SlsListener.hxx.
Referenced by Listener(), ReleaseListeners(), and ~Listener().
|
private |
Remember whether we are listening to the UNO document.
Definition at line 126 of file SlsListener.hxx.
Referenced by Listener(), ReleaseListeners(), and ~Listener().
|
private |
Definition at line 121 of file SlsListener.hxx.
Referenced by Listener(), and ReleaseListeners().
|
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().
|
private |
Definition at line 120 of file SlsListener.hxx.
Referenced by frameAction(), HandleModelChange(), Notify(), propertyChange(), and UpdateEditMode().
|
private |
Definition at line 119 of file SlsListener.hxx.
Referenced by ConnectToController(), HandleModelChange(), HandleShapeModification(), Listener(), Notify(), and ReleaseListeners().
|
private |
Definition at line 133 of file SlsListener.hxx.
Referenced by ConnectToController(), DisconnectFromController(), and UpdateEditMode().
|
private |
Definition at line 134 of file SlsListener.hxx.
Referenced by Listener(), and ReleaseListeners().