<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le dim. 10 févr. 2019 à 15:12, Rex Dieter <<a href="mailto:rdieter@gmail.com">rdieter@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Just so we're clear here.  It sounds like you didn't explicitly address my "dropping these means a significant reduction of functionality for other kipi-plugin consumers (like gwenview)" comment.  </div><div dir="ltr"><br></div><div dir="ltr"><div dir="ltr">So other kipi-plugin consumers (like gwenview) will be losing functionality?  If so, I may have trouble justifying providing such a digikam update in stable distro releases.</div></div></div></div></blockquote><div><br></div><div>No. kipi-plugins still here, are libkipi. just digiKam do not use libkipi anymore with 6.0.0.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">Or are other existing libkipi apps being adjusted to use these newer digikam interfaces too?</div></div></div></div></blockquote><div><br></div><div>Good question.</div><div>The goal about the new digiKam start, after 2 years of development (last stable was 5.9.0, but 6.0.0 have been started 2 year ago), is to rewrite the whole plugins interface.</div><div><br></div><div>In fact, in next digiKam 6.1.0, we will come with 3 levels of plugins : generic (as kipi), but also Editor (for digiKam image editor and Showfoto), and Bqm, for the Batch Queue Manager.</div><div><br></div><div>We have something like more than 100 plugins now...</div><div><br></div><div><span style="font-family:monospace"><span style="color:rgb(0,0,0)">[gilles@localhost digikam]$ pwd
</span><br>/usr/lib64/qt5/plugins/digikam
<br>
<br>[gilles@localhost digikam]$ tree
<br><span style="font-weight:bold;color:rgb(84,84,255)">.</span><span style="color:rgb(0,0,0)">
</span><br>├── <span style="font-weight:bold;color:rgb(84,84,255)">bqm</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_AntiVignetting_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_AssignTemplate_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_AutoCorrection_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_BcgCorrection_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Blur_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Border_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_BWconvert_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ChannelMixer_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ColorBalance_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ColorFX_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Convert16To8_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Convert8To16_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToDNG_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToJP2lugin_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToJPEG_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToPGF_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToPNG_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_ConvertToTIFF_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Crop_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_CurvesAdjust_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_FilmGrain_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Flip_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_HslCorrection_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_IccConvert_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Invert_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_LensAutoFix_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_LocalContrast_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_NoiseReduction_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_RedEyeCorrection_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_RemoveMetadata_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Resize_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Restoration_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Rotate_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_Sharpen_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_TimeAdjust_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_UserScript_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_WaterMark_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   └── <span style="font-weight:bold;color:rgb(84,255,84)">Bqm_WhiteBalance_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>├── <span style="font-weight:bold;color:rgb(84,84,255)">editor</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_AdjustCurvesTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_AdjustLevelsTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_AntivignettingTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_AutoCorrectionTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_AutoCropTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_BcgTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_BlurFxTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_BlurTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_BorderTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_BWSepiaTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_CBTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ChannelMixerTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_CharcoalTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ColorFxTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ContentAwareResizeTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_Convert16To8Tool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_Convert8To16Tool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_DistortionFxTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_EmbossTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_FilmGrainTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_FilmTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_FreeRotationTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_HotpixelsTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_HSLTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_InserTextTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_InsertTextTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_InvertTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_LensAutoFixTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_LensDistortionTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_LocalContrastTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_NoiseReductionTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_OilPaintTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_PerspectiveTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_PrintTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ProfileConversionTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_RainDropTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_RatioCropTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_RedEyeTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ResizeTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_RestorationTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_SharpenTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_ShearTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_TextureTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   ├── <span style="font-weight:bold;color:rgb(84,255,84)">Editor_WhiteBalanceTool_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>│   └── <span style="font-weight:bold;color:rgb(84,255,84)">libEditor_HelloWorld_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>└── <span style="font-weight:bold;color:rgb(84,84,255)">generic</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Box_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Calendar_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_DigitalScanner_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_DropBox_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_ExpoBlending_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_FaceBook_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_FileTransfer_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Flickr_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_GeolocationEdit_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_GLViewer_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Google_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_HtmlGallery_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_ImageShack_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_ImgUr_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_IpFs_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_JAlbum_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_MediaServer_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_MediaWiki_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_MetadataEdit_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_OneDrive_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Panorama_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Pinterest_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Piwigo_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Presentation_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_PrintCreator_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Rajce_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_SendByMail_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_SmugMug_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_TimeAdjust_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_Twitter_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_VideoSlideShow_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    ├── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_VKontakte_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>    └── <span style="font-weight:bold;color:rgb(84,255,84)">Generic_YandexFotki_Plugin.so</span><span style="color:rgb(0,0,0)">
</span><br>
<br>3 directories, 116 files<br></span></div><div><span style="font-family:monospace"><br></span></div><div>All plugin mechanisms are inspired from Marble stuff. It use a pure and simple Qt5 API. All plugin types use shared components from digiKam core. Plugin types share same classes internally, and this prevent code duplication and permit to implement a new plugin very quickly without to re-invent the wheel.</div><div><br></div><div>Later 6.1.0, we will create more plugin types step by step, as face engines, maintenance tools, image loaders, etc... This will take time, but it's the plan to make all lead features as plugins in digiKam. This way permit to isolate well all digiKam components which will be more easy for external contributor to patch and create new ones, without to touch internal implementations.</div><div><br></div><div>So to come back about the sharing plugin with other KDE applications. why not, i don't say no, _but_, the plugin interface still in digiKam core. External KDE applications who want load plugins will need to use digiKam core, as extra dependency.</div><div><br></div><div>Voilà for some technical details, and the plan...</div><div><br></div><div>Best</div><div><br></div><div>Gilles Caulier</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div>
</blockquote></div>
</blockquote></div></div>