sd/source/ui/inc/slideshow.hxx | 5 ++ sd/source/ui/slideshow/slideshowimpl.cxx | 6 +- sd/source/ui/slideshow/slideshowimpl.hxx | 2 sd/source/ui/slidesorter/controller/SlsSlotManager.cxx | 29 ------------ sd/source/ui/view/drviewse.cxx | 40 +++++++++++------ sd/source/ui/view/outlnvs2.cxx | 30 ------------ 6 files changed, 39 insertions(+), 73 deletions(-)
New commits: commit 438f5cf4229dafe2100e36d818b05535091054d7 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Oct 22 12:28:39 2013 +0100 Resolves: fdo#69975 honour custom show settings if a custom show is set, then don't override it with current/first page, just accept it Change-Id: Icd04711028b3e11a576df6cd325ddb0db8974111 diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index 4793653..f8a4268 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -1648,29 +1648,35 @@ namespace slideshowhelp Reference< XPresentation2 > xPresentation( rDoc.getPresentation() ); if( xPresentation.is() ) { - if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) ) + if (SID_REHEARSE_TIMINGS == rReq.GetSlot()) + xPresentation->rehearseTimings(); + else if (rDoc.getPresentationSettings().mbCustomShow) { - if( (SID_PRESENTATION == rReq.GetSlot() ) ) - { - Sequence< PropertyValue > aArguments(1); - PropertyValue aPage; - OUString sValue("0"); - - aPage.Name = "FirstPage"; - aPage.Value <<= sValue; - - aArguments[0] = aPage; - - xPresentation->startWithArguments( aArguments ); - } - else - { - xPresentation->start(); - } + //fdo#69975 if a custom show has been set, then + //use it whether or not we've been asked to + //start from the current or first slide + xPresentation->start(); + } + else if (SID_PRESENTATION_CURRENT_SLIDE == rReq.GetSlot()) + { + //If there is no custom show set, start will automatically + //start at the current page + xPresentation->start(); } else { - xPresentation->rehearseTimings(); + //Start at page 0, this would blow away any custom + //show settings if any were set + Sequence< PropertyValue > aArguments(1); + PropertyValue aPage; + OUString sValue("0"); + + aPage.Name = "FirstPage"; + aPage.Value <<= sValue; + + aArguments[0] = aPage; + + xPresentation->startWithArguments( aArguments ); } } } commit 368e94ce33bb4de1d2c0348082a349331a17f332 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Oct 22 12:23:38 2013 +0100 merge all three ShowSlideShow impls together Change-Id: If82f6313b258a79d59fbe34ab7846db5f9f45f76 diff --git a/sd/source/ui/inc/slideshow.hxx b/sd/source/ui/inc/slideshow.hxx index a309c82..be44a51 100644 --- a/sd/source/ui/inc/slideshow.hxx +++ b/sd/source/ui/inc/slideshow.hxx @@ -214,6 +214,11 @@ private: sal_Int32 mnInPlaceConfigEvent; }; +namespace slideshowhelp +{ + void ShowSlideShow(SfxRequest& rReq, SdDrawDocument &rDoc); +} + } #endif /* _SD_SLIDESHOW_HXX */ diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx index 79c409c..53f077b 100644 --- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx +++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx @@ -884,34 +884,7 @@ void SlotManager::GetStatusBarState (SfxItemSet& rSet) void SlotManager::ShowSlideShow( SfxRequest& rReq) { - Reference< XPresentation2 > xPresentation( mrSlideSorter.GetModel().GetDocument()->getPresentation() ); - if( xPresentation.is() ) - { - if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) ) - { - if( (SID_PRESENTATION == rReq.GetSlot() ) ) - { - Sequence< PropertyValue > aArguments(1); - PropertyValue aPage; - OUString sValue("0"); - - aPage.Name = "FirstPage"; - aPage.Value <<= sValue; - - aArguments[0] = aPage; - - xPresentation->startWithArguments( aArguments ); - } - else - { - xPresentation->start(); - } - } - else - { - xPresentation->rehearseTimings(); - } - } + slideshowhelp::ShowSlideShow(rReq, *mrSlideSorter.GetModel().GetDocument()); } void SlotManager::RenameSlide (void) diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index f23b168..4793653 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -1641,38 +1641,46 @@ void DrawViewShell::ShowUIControls (bool bVisible) maTabControl.Show (bVisible); } -void DrawViewShell::ShowSlideShow(SfxRequest& rReq) +namespace slideshowhelp { - Reference< XPresentation2 > xPresentation( GetDoc()->getPresentation() ); - if( xPresentation.is() ) + void ShowSlideShow(SfxRequest& rReq, SdDrawDocument &rDoc) { - if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) ) + Reference< XPresentation2 > xPresentation( rDoc.getPresentation() ); + if( xPresentation.is() ) { - if( (SID_PRESENTATION == rReq.GetSlot() ) ) + if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) ) { - Sequence< PropertyValue > aArguments(1); - PropertyValue aPage; - OUString sValue("0"); + if( (SID_PRESENTATION == rReq.GetSlot() ) ) + { + Sequence< PropertyValue > aArguments(1); + PropertyValue aPage; + OUString sValue("0"); - aPage.Name = "FirstPage"; - aPage.Value <<= sValue; + aPage.Name = "FirstPage"; + aPage.Value <<= sValue; - aArguments[0] = aPage; + aArguments[0] = aPage; - xPresentation->startWithArguments( aArguments ); + xPresentation->startWithArguments( aArguments ); + } + else + { + xPresentation->start(); + } } else { - xPresentation->start(); + xPresentation->rehearseTimings(); } } - else - { - xPresentation->rehearseTimings(); - } } } +void DrawViewShell::ShowSlideShow(SfxRequest& rReq) +{ + slideshowhelp::ShowSlideShow(rReq, *GetDoc()); +} + void DrawViewShell::StopSlideShow (bool /*bCloseFrame*/) { Reference< XPresentation2 > xPresentation( GetDoc()->getPresentation() ); diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx index 23ead9a..6bdb2b3 100644 --- a/sd/source/ui/view/outlnvs2.cxx +++ b/sd/source/ui/view/outlnvs2.cxx @@ -63,6 +63,7 @@ #include "sdabstdlg.hxx" #include "framework/FrameworkHelper.hxx" #include "DrawViewShell.hxx" +#include "slideshow.hxx" #include <boost/scoped_ptr.hpp> using namespace ::com::sun::star::uno; @@ -334,34 +335,7 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq) void OutlineViewShell::ShowSlideShow(SfxRequest& rReq) { - Reference< XPresentation2 > xPresentation( GetDoc()->getPresentation() ); - if( xPresentation.is() ) - { - if( ( SID_REHEARSE_TIMINGS != rReq.GetSlot() ) ) - { - if( (SID_PRESENTATION == rReq.GetSlot() ) ) - { - Sequence< PropertyValue > aArguments(1); - PropertyValue aPage; - OUString sValue("0"); - - aPage.Name = "FirstPage"; - aPage.Value <<= sValue; - - aArguments[0] = aPage; - - xPresentation->startWithArguments( aArguments ); - } - else - { - xPresentation->start(); - } - } - else - { - xPresentation->rehearseTimings(); - } - } + slideshowhelp::ShowSlideShow(rReq, *GetDoc()); } void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq) commit a1b0b68c0f1fe2467cddf021e09123085d043de2 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Oct 22 12:20:16 2013 +0100 bStartWithActualSlide is always false Change-Id: Icf61858730e2576439fdc7bdd1c8a911f2b34bd7 diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx index 3350675..7d6c44b 100644 --- a/sd/source/ui/slideshow/slideshowimpl.cxx +++ b/sd/source/ui/slideshow/slideshowimpl.cxx @@ -974,7 +974,7 @@ bool SlideshowImpl::startShow( PresentationSettingsEx* pPresSettings ) } // build page list - createSlideList( maPresSettings.mbAll, false, aPresSlide ); + createSlideList( maPresSettings.mbAll, aPresSlide ); // remember Slide number from where the show was started if( pStartPage ) @@ -2467,7 +2467,7 @@ Reference< XSlideShow > SlideshowImpl::createSlideShow() const // --------------------------------------------------------- -void SlideshowImpl::createSlideList( bool bAll, bool bStartWithActualSlide, const OUString& rPresSlide ) +void SlideshowImpl::createSlideList( bool bAll, const OUString& rPresSlide ) { const long nSlideCount = mpDoc->GetSdPageCount( PK_STANDARD ); @@ -2475,7 +2475,7 @@ void SlideshowImpl::createSlideList( bool bAll, bool bStartWithActualSlide, cons { SdCustomShow* pCustomShow; - if( !bStartWithActualSlide && mpDoc->GetCustomShowList() && maPresSettings.mbCustomShow ) + if( mpDoc->GetCustomShowList() && maPresSettings.mbCustomShow ) pCustomShow = mpDoc->GetCustomShowList()->GetCurObject(); else pCustomShow = NULL; diff --git a/sd/source/ui/slideshow/slideshowimpl.hxx b/sd/source/ui/slideshow/slideshowimpl.hxx index b0cbcf1..48811dd 100644 --- a/sd/source/ui/slideshow/slideshowimpl.hxx +++ b/sd/source/ui/slideshow/slideshowimpl.hxx @@ -267,7 +267,7 @@ private: double update(); - void createSlideList( bool bAll, bool bStartWithActualSlide, const OUString& rPresSlide ); + void createSlideList( bool bAll, const OUString& rPresSlide ); void displayCurrentSlide (const bool bSkipAllMainSequenceEffects = false);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits