Bug 359381 - Please add a keyboard shortcut to pause and continue slideshow
Summary: Please add a keyboard shortcut to pause and continue slideshow
Status: CONFIRMED
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: 4.13.2
Platform: openSUSE Linux
: HI wishlist
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: usability
Depends on:
Blocks:
 
Reported: 2016-02-14 09:52 UTC by Pal Körössy
Modified: 2019-06-10 20:54 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pal Körössy 2016-02-14 09:52:21 UTC
Please add a keyboard shortcut to pause and continue diashow
Comment 1 Nate Graham 2017-11-10 20:16:58 UTC
Should be the space bar. Currently that's bound to "next picture", which is a rather odd choice. The space bar does play/pause basically everywhere else.
Comment 2 Nate Graham 2017-11-10 20:54:55 UTC
Patch available at https://phabricator.kde.org/D8753
Comment 3 Friedrich W. H. Kossebau 2018-03-15 01:55:40 UTC
Git commit 9631043c110dba485db5deea120e8b13116c3ac7 by Friedrich W. H. Kossebau.
Committed on 15/03/2018 at 01:55.
Pushed by kossebau into branch 'master'.

Expose slideshow to MPRIS controllers

Summary:
Taking the abstraction "Media" in "Media Player Remote Interfacing
Specification" (MPRIS) into use, a plain slide in a slideshow can be seen
to be the same as e.g. a still picture in a movie without any sound.
Following that, a slideshow with pictures and videos as in the UI model
of Gwenview can be roughly mapped onto the concept of a list of tracks as
with in the data model of MPRIS.

This patch exposes the list of images/movies in the current folder and
the related slideshow feature as MPRIS D-Bus object, implementing for a
start the interfaces
* "org.mpris.MediaPlayer2"
* "org.mpris.MediaPlayer2.Player"
trying to map those to the Gwenview UX closely.

This allows the slideshow and some other navigation to be controlled
by any MPRIS controllers, which includes e.g.
* keyboard mediakeys (Play/Pause, Stop, Next, Previous),
  as handled by Plasma MPRIS dataengine
* KDE Connect media player controller plugin

Additionally the MRPIS D-Bus object is unregistered while the workspace
lockscreen is activated. Because at least the Plasma lockscreen has
the feature to show controls for any currently running MPRIS players,
which for one does not make sense currently for an image player as all
displays are locked, and then also can be surprising for some users and
result in data leaks via the image metadata used.

Future:
The great plan is to enhance the MPRIS spec to also work well for
presentation-like media shows. So there can and will be cross-app
rich (remote) controllers also for classical presentation application
instead of only per-app ones.
Supporting the existing MPRIS interfaces, even if slightly bending the
semantics, is a first step into that direction and already adds value
as it allows reuse of existing MPRIS controllers e.g. for remote control.

So follow-up work will be to also implement the other MPRIS interfaces
like org.mpris.MediaPlayer2.TrackList, for exposing the whole set of
"slides". This will enable MPRIS controllers to show the user a complete
visual list and e.g. navigate directly to a given slide or give a preview
for the next/previous slides.

Reviewers: #gwenview, rkflx

Reviewed By: #gwenview, rkflx

Subscribers: mtijink, ngraham, nicolasfella, #kde_connect, rkflx, broulik

Tags: #gwenview

Differential Revision: https://phabricator.kde.org/D10972

M  +2    -0    CMakeLists.txt
M  +13   -0    app/mainwindow.cpp
M  +1    -0    config-gwenview.h.cmake
M  +15   -0    lib/CMakeLists.txt
A  +74   -0    lib/mpris2/dbusabstractadaptor.cpp     [License: GPL]
A  +74   -0    lib/mpris2/dbusabstractadaptor.h     [License: GPL]
A  +158  -0    lib/mpris2/lockscreenwatcher.cpp     [License: GPL]
A  +61   -0    lib/mpris2/lockscreenwatcher.h     [License: GPL]
A  +113  -0    lib/mpris2/mpris2service.cpp     [License: GPL]
A  +57   -0    lib/mpris2/mpris2service.h     [License: GPL]
A  +116  -0    lib/mpris2/mprismediaplayer2.cpp     [License: GPL]
A  +92   -0    lib/mpris2/mprismediaplayer2.h     [License: GPL]
A  +378  -0    lib/mpris2/mprismediaplayer2player.cpp     [License: GPL]
A  +128  -0    lib/mpris2/mprismediaplayer2player.h     [License: GPL]
A  +41   -0    lib/mpris2/org.freedesktop.ScreenSaver.xml
M  +5    -0    lib/slideshow.cpp
M  +2    -0    lib/slideshow.h

https://commits.kde.org/gwenview/9631043c110dba485db5deea120e8b13116c3ac7