Archive for the ‘ GSoC ’ Category

[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? 🙂

[digiKam] Tags Manager – Quick Access List

I was constantly whining that until now I had only search & fix work to do. Yes, it’s annoying when you don’t write code, but it’s quite a useful stuff to read other peoples code, since you can see some amazing and elegant solutions to certain problems.

Citește în continuare

[digiKam] Tags Manager – how to enable multiple selection

On my previous post I told you about setting up the GUI for Tags Manager. Well, setting up a GUI is easy to do 80% of work , but it will take the same amount of time to polish everything.  Before finishing everything, all options must be fitted in, and I can’t do this right know.

After browsing digiKam code, I figured out that drag-n-drop was enabled by default, I thought „It’s cool, less work for me”.  After digging a little bit further, I found an attempt to support multiple tags as a TODO and few lines of code.  After few minutes of work tag  tree was supporting the multiple drops.

Citește în continuare

Tags Manager GUI is up!

Well, this is my first post describing what I did in the last 2 weeks. I managed to code the user interface for Tag Manager and fit it into digiKam’s menus. It wasn’t something very difficult, but setting up a good layout it’s a routine work, while moving an element and watch if it stays in place. Of course, lots of functions don’t work yet and a custom tree item awaits to be fitted into the main window, but a lot of menus are already up and running, together with icons and other elements. I re-factored it only once and I’m happy with the result.

Citește în continuare

Aaand .. I’m back + new GSoC category

After a whole year not posting a single thing on my blog, I finally remembered that I have one. Indeed a lot of my beliefs changed in this period of time and I don’t have that much time to write long.

Also a new category is dedicated for my Google Summer of Code experience. If you don’t know, I was accepted at Google Summer of Code to work for one of KDE’s main application called digiKam.

digiKam is a photo management program and I should enhance user experience by implementing a new Tag Manager.

I hope everything goes according to my plan 🙂