LibreOffice Module sd (master) 1
|
Manage the current slide. More...
#include <SlsCurrentSlideManager.hxx>
Public Member Functions | |
CurrentSlideManager (SlideSorter &rSlideSorter) | |
Create a new CurrentSlideManager object that manages the current slide for the given SlideSorter. More... | |
~CurrentSlideManager () | |
void | NotifyCurrentSlideChange (const sal_Int32 nSlideIndex) |
Call this when the current page of the main view shell has been switched. More... | |
void | NotifyCurrentSlideChange (const SdPage *pPage) |
void | SwitchCurrentSlide (const sal_Int32 nSlideIndex) |
Call this method to switch the current page of the main view shell to the given slide. More... | |
void | SwitchCurrentSlide (const model::SharedPageDescriptor &rpSlide, const bool bUpdateSelection=false) |
const model::SharedPageDescriptor & | GetCurrentSlide () const |
Return the page descriptor for the current slide. More... | |
void | PrepareModelChange () |
Release all references to model data. More... | |
void | HandleModelChange () |
Modify inner state in reaction to a change of the SlideSorterModel. More... | |
Private Member Functions | |
void | SetCurrentSlideAtViewShellBase (const model::SharedPageDescriptor &rpSlide) |
void | SetCurrentSlideAtTabControl (const model::SharedPageDescriptor &rpSlide) |
void | SetCurrentSlideAtXController (const model::SharedPageDescriptor &rpSlide) |
void | ReleaseCurrentSlide () |
When switching from one slide to a new current slide then this method releases all ties to the old slide. More... | |
void | AcquireCurrentSlide (const sal_Int32 nSlideIndex) |
When switching from one slide to a new current slide then this method connects to the new current slide. More... | |
DECL_LINK (SwitchPageCallback, Timer *, void) | |
Private Attributes | |
SlideSorter & | mrSlideSorter |
sal_Int32 | mnCurrentSlideIndex |
model::SharedPageDescriptor | mpCurrentSlide |
Timer | maSwitchPageDelayTimer |
Timer to control the delay after which to ask XController/ViewShellBase to switch to another slide. More... | |
Manage the current slide.
This includes setting the according flags at the PageDescriptor objects and setting the current slide at the main view shell.
Switching pages is triggered only after a little delay. This allows fast travelling through a larger set of slides without having to wait for the edit view to update its content after every slide change.
Definition at line 43 of file SlsCurrentSlideManager.hxx.
sd::slidesorter::controller::CurrentSlideManager::CurrentSlideManager | ( | SlideSorter & | rSlideSorter | ) |
Create a new CurrentSlideManager object that manages the current slide for the given SlideSorter.
Definition at line 44 of file SlsCurrentSlideManager.cxx.
References LINK, maSwitchPageDelayTimer, Timer::SetInvokeHandler(), and Timer::SetTimeout().
sd::slidesorter::controller::CurrentSlideManager::~CurrentSlideManager | ( | ) |
Definition at line 53 of file SlsCurrentSlideManager.cxx.
|
private |
When switching from one slide to a new current slide then this method connects to the new current slide.
Definition at line 98 of file SlsCurrentSlideManager.cxx.
References sd::slidesorter::SlideSorter::GetModel(), sd::slidesorter::model::SlideSorterModel::GetPageCount(), sd::slidesorter::model::SlideSorterModel::GetPageDescriptor(), sd::slidesorter::SlideSorter::GetView(), mnCurrentSlideIndex, mpCurrentSlide, mrSlideSorter, and sd::slidesorter::view::SlideSorterView::SetState().
Referenced by NotifyCurrentSlideChange().
|
private |
|
inline |
Return the page descriptor for the current slide.
Note, that when there is no current slide then the returned pointer is empty.
Definition at line 74 of file SlsCurrentSlideManager.hxx.
References mpCurrentSlide.
void sd::slidesorter::controller::CurrentSlideManager::HandleModelChange | ( | ) |
Modify inner state in reaction to a change of the SlideSorterModel.
Definition at line 228 of file SlsCurrentSlideManager.cxx.
References sd::slidesorter::SlideSorter::GetModel(), sd::slidesorter::model::SlideSorterModel::GetPageDescriptor(), sd::slidesorter::SlideSorter::GetView(), mnCurrentSlideIndex, mpCurrentSlide, mrSlideSorter, and sd::slidesorter::view::SlideSorterView::SetState().
void sd::slidesorter::controller::CurrentSlideManager::NotifyCurrentSlideChange | ( | const sal_Int32 | nSlideIndex | ) |
Call this when the current page of the main view shell has been switched.
Use SwitchCurrentSlide() to initiate such a switch.
Definition at line 69 of file SlsCurrentSlideManager.cxx.
References AcquireCurrentSlide(), sd::slidesorter::controller::PageSelector::DeselectAllPages(), sd::slidesorter::SlideSorter::GetController(), sd::slidesorter::controller::SlideSorterController::GetFocusManager(), sd::slidesorter::controller::SlideSorterController::GetPageSelector(), mnCurrentSlideIndex, mpCurrentSlide, mrSlideSorter, ReleaseCurrentSlide(), sd::slidesorter::controller::PageSelector::SelectPage(), and sd::slidesorter::controller::FocusManager::SetFocusedPage().
Referenced by NotifyCurrentSlideChange().
void sd::slidesorter::controller::CurrentSlideManager::NotifyCurrentSlideChange | ( | const SdPage * | pPage | ) |
Definition at line 57 of file SlsCurrentSlideManager.cxx.
References sd::slidesorter::model::SlideSorterModel::GetIndex(), sd::slidesorter::SlideSorter::GetModel(), SdrPage::getUnoPage(), mrSlideSorter, and NotifyCurrentSlideChange().
void sd::slidesorter::controller::CurrentSlideManager::PrepareModelChange | ( | ) |
Release all references to model data.
Definition at line 223 of file SlsCurrentSlideManager.cxx.
References mpCurrentSlide.
|
private |
When switching from one slide to a new current slide then this method releases all ties to the old slide.
Definition at line 89 of file SlsCurrentSlideManager.cxx.
References sd::slidesorter::SlideSorter::GetView(), mnCurrentSlideIndex, mpCurrentSlide, mrSlideSorter, and sd::slidesorter::view::SlideSorterView::SetState().
Referenced by NotifyCurrentSlideChange().
|
private |
Definition at line 183 of file SlsCurrentSlideManager.cxx.
References sd::ViewShellBase::GetMainViewShell(), TabBar::GetPageId(), sd::slidesorter::SlideSorter::GetViewShellBase(), mrSlideSorter, and TabBar::SetCurPageId().
|
private |
|
private |
Definition at line 201 of file SlsCurrentSlideManager.cxx.
References Any, Exception, sd::slidesorter::SlideSorter::GetXController(), and mrSlideSorter.
void sd::slidesorter::controller::CurrentSlideManager::SwitchCurrentSlide | ( | const model::SharedPageDescriptor & | rpSlide, |
const bool | bUpdateSelection = false |
||
) |
void sd::slidesorter::controller::CurrentSlideManager::SwitchCurrentSlide | ( | const sal_Int32 | nSlideIndex | ) |
Call this method to switch the current page of the main view shell to the given slide.
Use CurrentSlideHasChanged() when the current slide change has been initiated by someone else.
nSlideIndex | Zero based index in the range [0,number-of-slides). The page selection is cleared and only the new current slide is selected. |
Definition at line 114 of file SlsCurrentSlideManager.cxx.
References sd::slidesorter::SlideSorter::GetModel(), sd::slidesorter::model::SlideSorterModel::GetPageDescriptor(), mrSlideSorter, and SwitchCurrentSlide().
Referenced by SwitchCurrentSlide().
|
private |
Timer to control the delay after which to ask XController/ViewShellBase to switch to another slide.
Definition at line 91 of file SlsCurrentSlideManager.hxx.
Referenced by CurrentSlideManager().
|
private |
Definition at line 86 of file SlsCurrentSlideManager.hxx.
Referenced by AcquireCurrentSlide(), HandleModelChange(), NotifyCurrentSlideChange(), and ReleaseCurrentSlide().
|
private |
Definition at line 87 of file SlsCurrentSlideManager.hxx.
Referenced by AcquireCurrentSlide(), GetCurrentSlide(), HandleModelChange(), NotifyCurrentSlideChange(), PrepareModelChange(), and ReleaseCurrentSlide().
|
private |
Definition at line 85 of file SlsCurrentSlideManager.hxx.
Referenced by AcquireCurrentSlide(), HandleModelChange(), NotifyCurrentSlideChange(), ReleaseCurrentSlide(), SetCurrentSlideAtTabControl(), SetCurrentSlideAtViewShellBase(), SetCurrentSlideAtXController(), and SwitchCurrentSlide().