Bug 69192 - SLIDESHOW: add command line switch to start at arbitrary slide number
Summary: SLIDESHOW: add command line switch to start at arbitrary slide number
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium enhancement
Assignee: Justin L
URL: http://bugs.debian.org/cgi-bin/bugrep...
Whiteboard: BSA target:24.8.0
Keywords:
Depends on:
Blocks: Commandline
  Show dependency treegraph
 
Reported: 2013-09-10 18:06 UTC by jidanni
Modified: 2024-05-08 12:13 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jidanni 2013-09-10 18:06:06 UTC
Let's say we want to start at slide 54 right from the command line.
Well all there is is
$ loimpress -show #which starts at slide 1.
Therefore please add
$ loimpress -show 54 file.ppt
capability etc.
              
Operating System: Debian
Version: 4.1.1.2 rc
Comment 1 Rob Snelders 2013-10-05 11:19:53 UTC
would be a good idea to implement
Comment 2 Timur 2022-05-12 14:03:51 UTC
Would be really useful in QA.
Comment 3 Justin L 2024-05-02 19:17:05 UTC
It certainly will not be straightforward to do this.

The command line can fairly easily be parsed to get the result in desktop/source/app/cmdlineargs.cxx

Then in desktop/source/app/dispatchwatcher.cxx it will need to be turned into something like a SID_PAGE_NUMBER. (Unfortunately, the current implementation of SlideshowImpl::createSlideList is expecting an exact match on the slide name, like "Slide 3", and not just a number.)

At DrawDocShell::Load, the SID_DOC_STARTPRESENTATION causes mpDoc->SetStartWithPresentation( true ), so likely SdDrawDocument will need to be extended to also SetStartingPage().

This is the turning point, when we get to ViewShellBase::Notify which only has a SfxEventHintId::OpenDoc hint that only can check if IsStartWithPresentation and thus calls an option-less SID_PRESENTATION

ShowSlideShow sees the SID_PRESENTATION and does a xPresentation->startWithArguments with a hard-coded FirstPage = 0 (which doesn't actually work like you would think, but only works because "0" is never found and thus it falls back to the first slide).

So then, SID_PRESENTATION must be extended to accept a starting page, because otherwise every time ShowSlideShow is called it would start at the command-line-provided start page (if we made a GetDocument().GetStartingPage()).
Comment 4 Justin L 2024-05-03 15:09:08 UTC
proposed patch at https://gerrit.libreoffice.org/c/core/+/167066
Comment 5 Commit Notification 2024-05-08 07:39:15 UTC
Justin Luth committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/90eb9ea881a7497bb2ec348b3e4cba5aa5d51fa8

tdf#69192: add StartingSlide to SID_PRESENTATION and cmdline show=

It will be available in 24.8.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.