https://bugs.kde.org/show_bug.cgi?id=414055
Bug ID: 414055
Summary: Port tools to plugin architecture
Product: digikam
Version: 7.0.0
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Plugin-Generic-SlideShow
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
* Slideshow is the last one tool not yet ported to the DPlugins architecture.
Current code shared between digiKam and Showfoto still compiled in
libdigikamcore :
https://invent.kde.org/kde/digikam/tree/master/core/utilities/slideshow
* The new slideshow plugin entry is already prepared here :
https://invent.kde.org/kde/digikam/tree/master/core/dplugins/generic/view/slideshow
.. but it's disabled from compilation rules.
Slideshow code from core must be moved in the plugin and tested with digiKam
and Showfoto.
* Take a care that digiKam and Showfoto don't provide the same option to end
users to render slide :
digiKam : View/Slideshow/All | Selection | With Sub-albums
Showfoto : View/Slideshow
* Slideshow tool do not depends of digiKam database, as Showfoto do not use the
digiKam database. So it use an abstract interface to access to items/albums
properties. This interface is re-implemented for digiKam and Showfoto :
digiKam (based on database) :
https://invent.kde.org/kde/digikam/blob/master/core/libs/database/utils/ifaces/dbinfoiface.h
Showfoto (based on file metadata) :
https://invent.kde.org/kde/digikam/blob/master/core/libs/dplugins/iface/dmetainfoiface.h
This interface is instanced in host application depending of database support
or not and passed to the plugin.
* In digiKam, Slideshow menu actions are instanced at many places :
https://invent.kde.org/kde/digikam/blob/master/core/app/main/digikamapp_setup.cpp#L692
https://invent.kde.org/kde/digikam/blob/master/core/utilities/lighttable/lighttablewindow_setup.cpp#L142
https://invent.kde.org/kde/digikam/blob/master/core/utilities/imageeditor/editor/editorwindow.cpp#L526
Note: Showfoto use the same instantiation of action from image editor core
which do not dependent of database.
* In digiKam, running slideshow use a builder class (items properties are taken
from database and stored) :
https://invent.kde.org/kde/digikam/blob/master/core/app/views/utils/slideshowbuilder.h
This one is used at many places :
https://invent.kde.org/kde/digikam/blob/master/core/utilities/imageeditor/main/imagewindow_tools.cpp#L29
https://invent.kde.org/kde/digikam/blob/master/core/utilities/lighttable/lighttablewindow_tools.cpp#L56
https://invent.kde.org/kde/digikam/blob/master/core/app/views/stack/itemiconview.cpp#L2146
In Showfoto, slideshow is called as well (items properties are taken on the fly
from files metadata) :
https://invent.kde.org/kde/digikam/blob/master/core/showfoto/main/showfoto_tools.cpp#L29
Gilles Caulier
--
You are receiving this mail because:
You are watching all bug changes.