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.

Reply via email to