Bug 186181

Summary: Add config options for wallpaper slideshow order
Product: [Plasma] plasmashell Reporter: mettgut
Component: Image & Slideshow wallpaper pluginsAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: wishlist CC: asraniel, battler, facorread, filipfila.kde, kde, kde, michal.dybczak, msdobrescu, nate, plasma-bugs, simonandric5, thecursedfly
Priority: NOR Keywords: usability
Version: 5.8.0   
Target Milestone: 1.0   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.17.0
Sentry Crash Report:

Description mettgut 2009-03-05 08:15:49 UTC
Version:            (using KDE 4.2.0)
OS:                Linux
Installed from:    Ubuntu Packages

At the time you can specify an folder in the desktop-settings for a picture slideshow on the desktop. The order in which the pictures are shown is random.
It would be nice if one can set a defined order,for example alphabetically, so one can create simple animations on the desktop with the slideshow-function.
Comment 1 Battle 2010-01-03 21:14:47 UTC
This would be awesome.  I just finished making about 40 frames thinking it could already be done, loaded them into a directory and enabled the slide show only to find that random order was the only option.  Very disappointing.  KDE 3.5 could do this.
Comment 2 Daniel Faust 2016-10-16 07:26:44 UTC
*** Bug 337404 has been marked as a duplicate of this bug. ***
Comment 3 Daniel Faust 2016-10-16 07:27:09 UTC
*** Bug 299315 has been marked as a duplicate of this bug. ***
Comment 4 Michał Dybczak 2018-07-01 15:21:45 UTC
I support this idea because I had the same one recently, after reading this article about dynamic wallpapers:

http://technastic.com/macos-mojave-dynamic-wallpaper-on-linux/

I also tried it and had no success because of the randomness of the slideshow setting and thought that having an option to disable randomness would do the trick. So with 16 pictures, I could set change of picture every 1,5 hour, count which one should be used at certain hour (like 3 pm) and then next-skip to the appropriate one and then natural time progress would make it work.

I soon realized, we need more then that. Suspending system suspends also time tracking for wallpaper switcher, so we would also had option to change from independent time to real (computer) time to make this work.

I'm not talking about generally disabling randomness or independent time - current slideshow options is great and works fine. Just those additional options would allow for creation of time depended wallpaper sets. This would be an obscure setting but still a fun thing to do and a good topic for articles on "how to do this on Plasma".

Just a thought ;).

Hopefully someone will think about it some day and add this.
Thanks :)
Comment 5 Nate Graham 2019-03-26 21:28:21 UTC
*** Bug 405774 has been marked as a duplicate of this bug. ***
Comment 6 Mihai Sorin Dobrescu 2019-03-27 06:58:39 UTC
Oh, I have reported a duplicate bug.
So old this one, reported 10 yeas ago and nobody cares!
I wonder where is the source code, what is the difficulty?
Should be simple...
Comment 7 Nate Graham 2019-03-27 16:41:33 UTC
Here's the code, if you'd like to have a go at it: https://cgit.kde.org/plasma-workspace.git/tree/wallpapers/image/imagepackage/contents/ui/config.qml
Comment 8 Mihai Sorin Dobrescu 2019-03-27 16:57:14 UTC
Really?

I think the issue is here: https://cgit.kde.org/plasma-workspace.git/tree/wallpapers/image/backgroundlistmodel.cpp#n551

When calling QDir::entryInfoList(), no sort flags are specified. Only filters are set here: https://cgit.kde.org/plasma-workspace.git/tree/wallpapers/image/backgroundlistmodel.cpp#n543

Well, is more, to add options in the UI (probably where you've prompted), manage them etc..

I might be wrong, after all, I'm just a developer seeing the QT for the first time...
Comment 9 Nate Graham 2019-03-27 17:19:42 UTC
Yeah, that sounds about right. Since you're already on the path, would you like to try your hand at producing a patch? You'd be making a lot of people very happy. :)
Comment 10 Mihai Sorin Dobrescu 2019-03-27 19:10:48 UTC
I'd love to, but I need to learn QT and KDE first, I have no experience with these, except for using KDE on a daily basis. Also, I am totally noob at Linux development (I can get some sources and make so far). And KDE development setup is a completely unknown to me. I can try, sure, probably in a virtual machine? I've no idea what's the right, recomended and preferred Linux flavour for KDE development. Any hints?
Comment 11 David Edmundson 2019-03-27 19:27:56 UTC
This wiki may help:
https://community.kde.org/Get_Involved/development


BackgroundListModel isn't the easiest starting point for KDE, it's needlessly overengineered (in a bad way) old code.

There are two things to sort:
 1) sorting wallpapers within a folder
 2) sorting the folders themselves

The flag you suggest will solve 1. 
2 will remain unsorted, but it is at least deterministic, which might be enough?
Comment 12 Mihai Sorin Dobrescu 2019-03-27 19:54:37 UTC
Probably some UI choice is necessary (random - as it is now, sorted - by one or more criteria).
Comment 13 Nate Graham 2019-03-27 20:15:10 UTC
(In reply to Mihai Sorin Dobrescu from comment #12)
> Probably some UI choice is necessary (random - as it is now, sorted - by one
> or more criteria).

Yep. Allowing corting by just a single criterion is the simplest and most comprehensible approach, so we would have something like a "Sort order" combobox with the options "Random" "Alphabetical" "Date modified" and whatever else might be useful.

As for your development environment, I actually use a KDE Neon Dev Unstable VM to do my Plasma work and I find that this works very well.
Comment 14 Michał Dybczak 2019-03-30 11:54:40 UTC
Yes. Even without an option to set the order of chosen images, we can then influence it by renaming the files and in the result, we gain control over what is shown in what order. That would work for me.
Comment 15 David Redondo 2019-04-01 14:34:11 UTC
For the use case mentioned Michał there could be also the option to sort all images alphabetically in addition to the modes mentioned by David.
Comment 16 David Redondo 2019-07-25 10:06:07 UTC
Git commit ea32a7611227ca141bd60d983d1489d2be82d10f by David Redondo.
Committed on 25/07/2019 at 10:05.
Pushed by davidre into branch 'master'.

[Image Wallpaper Slideshow] Allow setting of different sorting orders

Summary:
Allows setting of other sorting orders like alphabetical or last modified date.
To enable this a new ProxyModel is introduced which handles the sorting and
filtering (as indicated by the checkboxes). This is backed by the slideshowModel
whcih previously as only used for the configutation. The lists of slides and  unseen
slides are dropped as now the slides that are shown are taken from the model.
FIXED-IN: 5.17.0

Test Plan:
{F6938259}
{F6938260}
{F6938261}
{F6938263}

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, msdobrescu, ngraham, filipf, plasma-devel

Tags: #plasma

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

M  +1    -0    wallpapers/image/CMakeLists.txt
M  +1    -1    wallpapers/image/backgroundlistmodel.h
M  +75   -81   wallpapers/image/image.cpp
M  +23   -6    wallpapers/image/image.h
M  +5    -3    wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
M  +52   -2    wallpapers/image/imagepackage/contents/ui/config.qml
M  +8    -2    wallpapers/image/imagepackage/contents/ui/main.qml
A  +90   -0    wallpapers/image/slidefiltermodel.cpp     [License: GPL (v2+)]
A  +50   -0    wallpapers/image/slidefiltermodel.h     [License: GPL (v2+)]
M  +19   -0    wallpapers/image/slidemodel.cpp
M  +22   -0    wallpapers/image/slidemodel.h
M  +4    -1    wallpapers/image/slideshowpackage/contents/config/main.xml

https://commits.kde.org/plasma-workspace/ea32a7611227ca141bd60d983d1489d2be82d10f