[digikam] [Bug 448593] new view plugin for digikam

2022-01-17 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #9 from caulier.gil...@gmail.com ---
Another important remark :

In this function :
https://github.com/cathaysia/digikamflowplugin/blob/master/src/PicFlowView.cpp#L169

you access to image directly by a QPixmap() call to later create label in GUI
over a loop. This is so far not optimal.

1/ Do not use QPixmap directly. digiKam has a multithread image preview API
with a cache mechanism to speed up image data handling with huge album
contents. It's accessible from plugins of course. Look use of PreviewLoadThread
in Slideshow plugin here :

https://invent.kde.org/graphics/digikam/-/blob/master/core/dplugins/generic/view/slideshow/widgets/slideimage.cpp#L76

2 instances are used, internally, both use a common cache to optimize memory
usage. One instance preload image in cache, one is used to load current image.
Both instance will use a separated thread to run. A signal is emitted when
image is available as DImg which thread safe (in opposite of QPixmap). You can
convert DImg as QImage or QPixmap of course.

API :

DImg :
https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/dimg/dimg.h
PreviewLoadThread :
https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/threadimageio/preview/previewloadthread.h

2/ The forever loop here :

https://github.com/cathaysia/digikamflowplugin/blob/master/src/PicFlowView.cpp#L258

...will be time consuming to render large album. Use preview load thread and
signal/slot mechanism to not freeze GUI. If you need to play with image data,
use a separated thread with QImage, not QPixmap. Only play with widget on main
thread at end. All consuming CPU task as loop must be done in separated thread.
Use profiling for that. if necessary

3/ Remove definitively the database headers
https://github.com/cathaysia/digikamflowplugin/blob/master/src/PicFlowView.cpp#L258
Generic plugin must not use database at all.

4/ why do you mix Qt and C++ API where Qt propose equivalent, optimized, and
portable classes ? c++::semaphore for ex.

5/ Please use English comments and documentations everywhere. It's difficult to
use a translator over source code to read explanations.

6/ In dependencies list i can see spdlog API. Do not add this extra dependency
if Qt do the job with QDebug API and is enough for a plugin...

I don't yet compiled your code. I will do it later.

Best regards

Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-17 Thread 319513897
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #8 from 319513...@outlook.com <319513...@outlook.com> ---
Thanks, this has been fix at 640413057fde0e066027988225c59a3a92654aa3

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-17 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #7 from caulier.gil...@gmail.com ---
To be more clear this header are prohibited in a Generic plugin :

#include 
#include 

There are shared to build Batch Queue Manager plugins (BQM), which are
dedicated for digiKam only, not Showfoto.

Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-17 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #6 from caulier.gil...@gmail.com ---
I take a lok in your plugin source and something is wrong :

https://github.com/cathaysia/digikamflowplugin/blob/master/src/PicFlowView.h

Your plugin is defined as GENERIC and access directly to the database. It's
weird. You must use the DPlugin interface to access to the item metadata. This
will work too with Showfoto which do not have at all a database.

A generic plugin must work on both application transparently.

https://invent.kde.org/graphics/digikam/-/blob/master/core/libs/dplugins/iface/dinfointerface.h

All generic plugin for digiKam use DPlugin interface. 
Please fix your code. Thanks in advance

Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-17 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #5 from caulier.gil...@gmail.com ---
Hi,

No, digiKam team do not package RPMs at all. We provide a generic AppImage
Linux bundle, the official MacOS package, and the official Windows installer.
In your case AppImage cover all Linux distributions.

For the Linux Ubuntu Flatpak, MosiacWall and GmicQt are also included, but this
bundle maintenance is delegate to a dedicated team. 

To have a Fedora support, contact the distribution team to build a rpm for the
plugin. It's the standard way. 

Best
Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-16 Thread 319513897
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #4 from 319513...@outlook.com <319513...@outlook.com> ---
Understand. But for my part, it seems fedora has not contains these 3rd
plugins. So I am afraid I can't get any benefit from this.

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-16 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #3 from caulier.gil...@gmail.com ---
A 3rd plugin is a tool that source code is located outside the project but
packaged with digiKam in the official AppImage, MacOS and Windows bundles. The
3rdparty plugins source code are taken from the own repository and compiled
with digiKam.
Look how the ImageMosaic and GMicQt repository are done.

Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-16 Thread 319513897
https://bugs.kde.org/show_bug.cgi?id=448593

--- Comment #2 from 319513...@outlook.com <319513...@outlook.com> ---
What you means is make my plugin as a 3rd plugin? My intention was simply to
have digikam installed with this plugin.

In this case, is my plugin compiled separately from digikam? Can I get the
header file for digikam at compile time?

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-16 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

caulier.gil...@gmail.com changed:

   What|Removed |Added

  Component|Plugin-Generic-GLViewer |Plugin-Generic-WishForNewTo
   ||ols

-- 
You are receiving this mail because:
You are watching all bug changes.

[digikam] [Bug 448593] new view plugin for digikam

2022-01-16 Thread bugzilla_noreply
https://bugs.kde.org/show_bug.cgi?id=448593

caulier.gil...@gmail.com changed:

   What|Removed |Added

 OS|Linux   |All
   Platform|RedHat RPMs |Compiled Sources
 CC||caulier.gil...@gmail.com
Version|unspecified |7.6.0

--- Comment #1 from caulier.gil...@gmail.com ---
Hi and thanks to create a new plugin for digiKam.

I will take a look to your source code. But it will be better to include your
plusing as a 3rd party tool compiled with all bundle (appimage, MacOS, and
Windows). We have already 2 plugins in this case : MosaicWall and GmicQt :

https://github.com/scheckmedia/ImageMosaicWall
https://github.com/cgilles/gmic-qt

... which are compiled with this bundle rules:

https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/3rdparty/ext_mosaicwall/CMakeLists.txt
https://invent.kde.org/graphics/digikam/-/blob/master/project/bundles/3rdparty/ext_gmicqt/CMakeLists.txt

This kind of plan is fine for you ?

Best regards

Gilles Caulier

-- 
You are receiving this mail because:
You are watching all bug changes.