Thumbnail sequences in Dolphin - reusing/adapting KIO code?
alemariusnexus at gmail.com
Sat Jan 23 13:02:33 GMT 2021
not sure if the mailing lists are the right place to have this
discussion. If someone has a suggestion for where to put this instead,
please let me know.
For a while now I have been flirting with the idea of making sequence
thumbnails work in Dolphin, mainly because that's a feature I would
really love to see myself. What I mean is this: When you hover e.g. a
video file, its icon should switch between multiple frames from the
video instead of just showing you one single thumbnail. Kind of like
video hosting sites like YouTube do it. Code for this seems to be
present in kio (ThumbSequenceCreator,
KIO::PreviewJob()::setSequenceIndex()) and kio-extras (the thumbnail
KIO slave that forms the backend of KIO::PreviewJob). There is even
full code for switching between these sequence thumbs in the KIO
models (KDirModel, via DelegateAnimationHandler).
But there are two issues. First, I haven't found a single thumbnailer
plugin that actually uses ThumbSequenceCreator. And second, Dolphin
uses its own item views and models that do not reuse any of the
existing KIO code. The first isn't a big issue, as it should be simple
to adapt something like kffmpegthumbnailer to output different frames
depending on sequence index.
The second issue is the one I'm concerned about. It seems like it
would either require writing the code again from scratch for Dolphin's
model/view classes, or some not-so-trivial changes to both the KIO and
Dolphin parts, to make them compatible with each other and reuse at
least some of the code. Reusing code sure sounds like the better
option, but I'm new to KDE development and I don't feel confident
enough to estimate just how invasive and/or realistic such changes
So, any thoughts about these ideas? Have there maybe been discussions
about this before? Would it make sense for me to look more into it and
try some things, or are there bigger changes going on in KDE that
would make all this obsolete?
More information about the kde-devel