From b269b86cc39c65982c269b469ab30195f9d675b1 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Tue, 1 Sep 2015 22:52:13 +0200 Subject: tdf#85303: SLIDESHOW cannot start at selected slide sometimes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When Slide Show/Slide Show Settings is selected and Ok button is clicked the slide from "From" list box is stored in maPresPage and the fact that this var is not empty makes slideshow considers it must be used. So 2 things must be done: 1) Check first if "All Slides" has been selected In this case, don't read slide from "From" in next block (ATTR_PRESENT_DIANAME) and so let maPresPage empty 2) Empty maPresPage if "All Slides" has been selected to remove any existing value Change-Id: I6042ae2db6260e1f441a1c9db90f5de6de966f2a Reviewed-on: https://gerrit.libreoffice.org/18253 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit db9f846abfc683c622375191edb6ae9bf348f6e7) Reviewed-on: https://gerrit.libreoffice.org/18298 Reviewed-by: Michael Meeks Tested-by: Michael Meeks --- sd/source/ui/func/fusldlg.cxx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/sd/source/ui/func/fusldlg.cxx b/sd/source/ui/func/fusldlg.cxx index 8309219a8d31..b62eb9b88802 100644 --- a/sd/source/ui/func/fusldlg.cxx +++ b/sd/source/ui/func/fusldlg.cxx @@ -120,18 +120,23 @@ void FuSlideShowDlg::DoExecute( SfxRequest& ) pDlg->GetAttr( aDlgSet ); - aPage = ITEMVALUE( aDlgSet, ATTR_PRESENT_DIANAME, SfxStringItem ); - if( aPage != rPresentationSettings.maPresPage ) - { - bValuesChanged = true; - rPresentationSettings.maPresPage = aPage; - } - bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_ALL, SfxBoolItem ); if ( bValue != rPresentationSettings.mbAll ) { bValuesChanged = true; rPresentationSettings.mbAll = bValue; + // remove any previous existing slide + rPresentationSettings.maPresPage = ""; + } + + if (!rPresentationSettings.mbAll) + { + aPage = ITEMVALUE( aDlgSet, ATTR_PRESENT_DIANAME, SfxStringItem ); + if( aPage != rPresentationSettings.maPresPage ) + { + bValuesChanged = true; + rPresentationSettings.maPresPage = aPage; + } } bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_CUSTOMSHOW, SfxBoolItem ); -- cgit v1.2.3