[Kde-imaging] Gwenview fails to compile with Qt5 libkipi

Gilles Caulier caulier.gilles at gmail.com
Sun Oct 25 08:33:33 UTC 2015


The likipi API has new pure virtual method to re-implement in KIPI
interface :

https://projects.kde.org/projects/kde/kdegraphics/libs/libkipi/repository/revisions/master/entry/src/interface.h#L495

this was previously not pure but the feedback for user report some race
conditions when files in collection are changed by a kipi tool. So this
method indicate that file must be locked in kipi host while kipi operations.

https://projects.kde.org/projects/kde/kdegraphics/libs/libkipi/repository/revisions/master/entry/src/interface.h#L503

This one is to pass to kipi tool an instance of Raw Processor.
Re-implementing this class using libkdcraw API is the most simpler way
(just use KDCraw API as well). This take few line of code. This container
exist because the raw decoding setting is now passed from kipi host to
plugin. On place from the settings in kipi host shared through libkipi.

You can use another Raw processor in kipi host course. In digiKam we have
more than one now.

https://projects.kde.org/projects/kde/kdegraphics/libs/libkipi/repository/revisions/master/entry/src/interface.h#L511

As RawProcessor, the MetadataProcessor instance must be created in kipi
host and passed to plugin. All the Metadata processor settings are hosted
in single place to kipi host and shared with the tools. To re-implement
this class, use libkexiv2 API as well.

For details, just look how i re-implemented these classes in digiKam kipi
interface :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/kdesupport/kipi/kipiinterface.cpp

VoilĂ 

Gilles Caulier

2015-10-25 2:06 GMT+02:00 Christoph Feck <cfeck at kde.org>:

> Hi,
>
> trying to compile today's gwenview/master with libkipi/master, I got
> this error. I don't know if it's planned to release the Qt5 version of
> libkipi with KDE Applications 15.12, but if it is, we need to have a
> working and stable API.
>
> Christoph Feck
> KDE Quality Team
>
> Building CXX object app/CMakeFiles/gwenview.dir/mainwindow.cpp.o
> /local/git/KDE/graphics/gwenview/app/mainwindow.cpp: In constructor
> 'Gwenview::MainWindow::MainWindow()':
> /local/git/KDE/graphics/gwenview/app/mainwindow.cpp:793:47: error:
> cannot allocate an object of abstract type 'Gwenview::KIPIInterface'
>      d->mKIPIInterface = new KIPIInterface(this);
>                                                ^
> In file included from
> /local/git/KDE/graphics/gwenview/app/mainwindow.cpp:67:0:
> /local/git/KDE/graphics/gwenview/app/kipiinterface.h:39:7: note:
> because the following virtual functions are pure within
> 'Gwenview::KIPIInterface':
>  class KIPIInterface : public KIPI::Interface
>        ^
> make[2]: *** [app/CMakeFiles/gwenview.dir/mainwindow.cpp.o] Error 1
> make[2]: Target `app/CMakeFiles/gwenview.dir/build' not remade because
> of errors.
> make[1]: *** [app/CMakeFiles/gwenview.dir/all] Error 2
> _______________________________________________
> Kde-imaging mailing list
> Kde-imaging at kde.org
> https://mail.kde.org/mailman/listinfo/kde-imaging
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/gwenview-devel/attachments/20151025/53e5cc7f/attachment.html>


More information about the Gwenview-devel mailing list