Arhivă pentru octombrie 2013

[digiKam] Nepomuk Service for digiKam – GSoC Final

Now the GSoC is over and the last part of it was pretty intense. Not because I had a lot of work, but I also decided to get a better grade to some exams and wasn’t able to properly work for 2 weeks.

Nepomuk Service code was here, but it was disabled because it was written using old Nepomuk Api and was no longer functional. I decided to clean up old code because it contained useful and functional way to get data from digiKam. So, the main file was slimmed down from 1100 lines to about 500. All Nepomuk code was dropped and replaced with classes from new Nepomuk2 namespace.

I thought that it might be a good idea to keep all Nepomuk Api wrapped into a special class,  that will allow to easy port it , if Nepomuk Api will change again.

Also, I set up a NepomukWatcher class to watch for changes in images properties and Nepomuk Tags. If a change is detected, it will be added to digikam.

NepomukQuery is responsible for getting info from images as part of a manual full sync.

Now everything works: manual sync, watch changes for both image properties and tags, in both directions: digiKam-> Nepomuk and Nepomuk -> digiKam.

I encountered some crashes with Nepomuk Api, that why Service is disabled by default, but it can be enabled if you give -DENABLE_NEPOMUKSUPPORT=ON as cmake argument .

About GSoC, I managed to finish everything that I wrote in my proposal, and I hope my mentors are also happy. It was a little boring at the beginning, but a lot of challenging tasks at the end of the program made it really worth a try.

One thing I’m sure, I don’t want to make GUI anymore, but there is a lot that you can do, image processing maybe? 🙂