Calligra Sprint 2013

Last weekend I have been taking part in this years Calligra sprint, which once again was at the Linuxhotel in Essen. This year we had something special as the sprint was actually happening in two places at the same time. While one part of the team was in Essen, the other part of the team meet in Bangalore. This was simply due to the problem that we could only fly a limited number of people around the globe. Both meetings were connected via Google Hangout which worked reasonably well, except for some microphone problems. Another nice additions was that we also had a kitchen, where Thorsten and Arjen cooked lots of pasta and sauces.

Calligra track

Most of the time in the general Calligra track was spent on discussing upcoming changes and technologies. With many new upcoming Qt 5 mobile plattforms the mobile Calligra version are getting more and more important. For Calligra as a whole we have to change the way how we integrate the UI with the rest of the applications and which libraries we want to use or not use.

One of the big technologies that that KOffice 1.x was build around is KParts. It was used to embed documents into other documents, to embed the application in Konqueror and much more. Over time many of these usecases have been solved differently or are becoming far less common than they used to be while at the same time it has been making more and more trouble. So our long is to replace KParts in the future. As a one possibility to a new framework Friedrich presented his Kasten framwork. Altogether this will need a lot of time to complete, but will result in a much better architecture.

Beside these big topic there are were many smaller discussion around topics like QML user interface, more focus on testing and an a development process where we created stable snapshots of the master branch. There are also some interesting developments on things annotation and docx export.

A bit sad was the discussion around unmaintained applications. After some maintainers got busy with life recently some application are unmaintained and see no further development at the moment. This is not a very surprising development as we have been working with a bus factor of 1 for years on these applications. Affected by this are Karbon, Plan and Braindump. We decided that for now the applications will get a splashscreen that informs about the unmaintained state, but still stay as part of the official release. Unless new maintainers step up, these application look towards an uncertain future.

Krita BOF

Beside the Calligra discussion we also had a BOF with the Krita developers, which actually took place over all three days. Krita development is running really well and we are more and more popular in areas outside the usual open source community. Boud reported about presenting Krita Sketch at Mobile World Congress and some news from the VFX world. I did already know that Krita was used in visual effects, but so far didn’t know on which movies Krita was used. So it was exciting to hear that Krita was used in production on the upcoming G.I. Joe movie.

On Friday we discussed the main areas which we want to improve in the coming time. The included a better support for Windows and Mac OS, a new OpenGL ES canvas to replace the current OpenGL canvas and lots of smaller improvements. We want to port to Qt 5 as soon as possible as it offers solutions for many these issues. Unfortunately KDE Frameworks is still in the works, so it will take some time.

Beside that I designed the new operation system with Dmitry and Lukáš. The main purposed of that is to separate the UI and operation code in Krita. Instead of connecting everything the old way, we let the application figure out which UI to show and which operation to execute. Instead of signals/slots we use use settings objects to communicate between UI and application. This approach has several advantages: The code becomes more modular, different UIs can be added easily by plugins e.g. for QML interfaces and it can be recorded for macros.

On Sunday I and Boud went through the Krita crashes in Bugzilla and did some cleanup there. Having two different systems and people check at the same time was really productive, as sometimes I could produce other problems on Kubuntu than Boud on OpenSuse and the other way around. For example we found a crash with the Ubuntu jpeg library which didn’t happen on OpenSuse. Altogether we were able to resolve 14 crash reports.

Finally I want to thank KDE e.V and Friedrich for making this sprint possible. Many thanks also go to the cooking team.

3 Responses to “Calligra Sprint 2013”

  1. anonymity is great Says:

    Please, please do not remove the kparts to be used in Konqueror. I still very much like to be able to view all my documents in all formats in the Konqueror window. You can maintain the kpart in a separate directory, separate from the rest of the code.

    You say that you use setting objects instead of signals/slots to make the code more modular. Could you write a little tutorial/example on how to do that? I would like to use this approach in my own software. Could you also elaborate on “we let the application figure out which UI to show and which operation to execute”? I have no idea what to imagine here and I would like to learn the ways to achieve this.

  2. slangkamp Says:

    The way KParts is currently implemented in Calligra you can’t really maintain is seperately. Lots of code is interacting with KParts, so it’s not something you can add on top at the moment.

    The action, ui and operation have an id. Once the action is triggered, we lookup the UI and operation factories from a hash table. The UI does it’s thing and returns the settings are an object with the settings stored as id + QVariant. This object is then passed the operation, which reads the settings.

  3. anonymity is great Says:

    Thanks for your explanation.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: