Archive for the ‘KDE’ Category

KOffice Sprint Oslo 2009 – Day 1


After a short night (for my taste anyway) we had and ok breakfast at around 8 o’clock in the morning at the hotel. After that we gathered together, bought tickets for the public transport and went to the Nokia offices. There we’ve settled in a conference room in the 6th floor where the sales and managing people have their offices. The actual engineers are sitting a floor below where we are not supposed be. But there is enough space here anyway so that is not a problem.

Then we started to have some presenatations and diskussions on various topics like library reorganization, moving to git, a nice presentation from Suresh about Nokias effort to build the office viewer application for the N900 and an also nice presentation from Olivier about library design and source/binary compatibility.

For lunch we had some selfmade sandwiches at the cafeteria, using food bought by Thomas before. Soda and coffee/hot chocolate was also free to take so that was taken care of also. In the cafeteria there is also a table tennis table where some people tested their skills. I also did that and had a very nice game with Inge which is a very capable player table tennis player.

After lunch we had some more disussions/presentations and then some people already started to hack away at their stuff.

In the evening at around 6 o’clock went out for dinner at a nearby pizza shop. We had to wait a couple of minutes though as we were quite a lot of people which did not had place all at once first. But after some short time we got a couple of tables were all people fitted in. We decided to order a couple of huge pizzas. Nokia kindly paid for the food and the non-alocoholic drinks again. Thanks a lot!

After dinner people went back to the office to get their stuff, some people went off to a pub, others were going back to the hotel where a Krita coem together took place.

All in all it was a very densily packed day with lots of information to process and lots of fun too.

KOffice Sprint Oslo 2009 – Day 0


I arrived at the airport at around one o’clock and waited half an hour for Dmitry who arrived only half an hour later. We took the express train to the city and went straight to the hotel. Checked in, dumped our belongings in the hotel room and then we were off to do some sighseeing of Oslo.

Great things is that almost all the sighseeing highlights of the city are in walking distance, so we had seen most of them. Bad things was darkness arrived early so at four o’clock in the afternoon it was almost dark. But then the city was nicely lightened so we did some nice photos. At the city hall there was a small christmas market were we had something hot to drink and eat a german style sausage (“Bratwurst”) which was sold there at a german market stall.

City hall with small christmas merket in front

Then we want back to the hotel waiting for Thomas to notify us where to meet for dinner. It turned out to be a chinese restaurant “Taste of China” were we finally met all the other guys and gals attending the sprint at the weekend.

After dinner we planned to go to a pub but then almost all people wanted to go back to the hotel and Thomas and Olivier wanting to go to a concert. So only four people ended up at the pub. I had two beers which costed a fortune, but it was quite ok there anyway.

Later back to the hotel, we met Jos and Jos and Sven Langkamp. The later I share the hotel room with. Up in the hotel room we noticed that there was very loud music palying on the street which made it quite difficult to get to sleep. Fortunately i brought a pair of ear plugs with me, so I got around that.

SVG Filter Effects


While most of the KDE developers enjoyed the sun and the ocean at the GCDS, KOffice people are working hard as always. šŸ™‚ Some monthes ago Cyrille our restless Krita hacker and KOffice release manager posted a patch on reviewboard which implemented a proof of concept for filter effects in flake. Unfortunately it didn’t found the attention it deserved and such got forgotten a little (I blame myself as part of this).
Luckily Cyrille added filter effects support to the feature plan of the upcoming KOffice 2.1 release, so I stumbled upon it again and decided to do something about it. So some days ago we had a nice IRC discussion about how we would tackle the problem and how we would go about implementing it in the flake library. The decision was to have filter effects as plugins which get loaded when a shape with effects gets loaded from a file or a to be written tool for editing effects is activated.
As you might have already guessed from my boring introductory text, we’ve got a first version of a filter effects plugin working. The filter effect that was choosen to be implemented is the blur effect, because it is possible the effect most used by artists.
First step was to produce a simple svg document with a blurred shape (used Inkscape for this) and to implement the stuff needed to load the filter effect and attach is to a flake shape. The seocnd step was to actually implement the filter itself and the painting of the filtered shape. The third step was to implement a tool which can add a filter effect to a shape, remove a filter effect from a shape and as well as change properties of a filter effect attached to a shape.
A filter effect plugin does provide a corresponding configuration widget which is shown inside the tools docker widget and can be used to edit the filter effect properties (see bottom right of the screenshot below). Thus the filter effects tool only has to know about the common properties of the filter effects, the custom properies are all handled via the plugin provided configuration widget.
As a reward for those reading all the way down to this paragraph I show you an actual screenshot of Karbon with blurred shapes.


What is missing still is the code to save filter effects back to svg. Also polishing of the filter effects code is still to be done. But at least it is a nice start which already produces some nice results.

Krushing bugs


Just to have some other topic than the wonderfull KDE 4.2 release, I am posting some notes about the recent KOffice Krush Day this last Sunday. I certainly had some fun working with the awesome KDE bugsquad. They definetely know their work.

And while they found bugs and glitches, I started fixing them as they rolled in. As of now, the most things reported for Karbon on the techbase page are fixed or at least have some related commits. It always feels good, striking out items from a todo list.

Managing guide lines


Some Planet KDE readers have probably noticed some KOffice soft-freeze anouncing blog entries (1, 2). I want to jump on the bandwagon and write about a feature from the feature plan I just finished today.
It started already some days ago when I brought back dragging guide lines from rulers to the current open document of a KOffice application. As that was done in KOffice shared libraries all applications benefit from that after adding a few lines enabling it. The next thing I did was adding support for snapping to these guides lines when e.g. moving objects on the canvas. This was relatively easy as I only had to add a new snapping strategy to the existing snapping framework in the flake library.
As dragging guides lines to the canvas and snapping to them is only a nice start but not the whole thing, I worked the last 2 days to further improve the guide line support. So I implemented a guide line tool which is activated when the user double clicks on a guide line just dragged to the canvas. The tool helps in easily selecting single guide lines, moving them around, adding new lines, deleting existing ones and specifying exact guide line positions by using an input field. This makes it really a joy to manage guide lines in an interactive manner. And the best is that all KOffice applications are supported for free. I love code sharing!
And for those readers asking themselves what the hell I am talking about here is a short screencast demonstrating some of the things i just explained.

Simple Text Shape


In flake there already is a text shape using the kotext library for displaying all sort of text boxes. But as Karbon is a vector drawing application there are some special needs which are rightly not implemented in the default text shape. One of these special cases is text on path support, i.e. having a text line flowing along a given path. So I recently started to implement a new simple flake text shape which renders the character outlines using QPainterPath. Having the single chars as path objects makes it pretty easy to move and rotate them around so that they can follow arbitrary curves as their baseline. And i must say with the path classes from Qt4 that is amazingly simple.
Additionally having the path based text makes it automatically possible to define the stroke (outline) and the fill with the default stroke and fill tools. So you can have dashed outlines and gradient fill in your text for example.
Below is a screenshot showing the path based text shape in action. The basic features already work quite nice. But it is still somewhat slow as there is some infrastructure work still required within flake. That is needed so that the text is automatically updated if the attached path it flows on is changed.

Text on path inĀ karbon

Export/Import filters


Long time no update on Karbon development. But i have a new dose for all of you waiting desperately for news. šŸ˜‰ It all started with a dicsussion on IRC in #koffice. A guy named “frob” asked about the state of the wmf import in karbon because he wanted to compare the support of the wmf format in some open source applications. Karbon in the stable Koffice series has not changed much, if at all, so i told him there is no improvement. And the filters in development branch are all disabled from compilation.
So i thought i should start to do something about the filter status is trunk and began porting some import and export filters for Karbon.
Lucky as i am, the wmf import filter is a rather simple one, good to start the porting effort. It worked out rather easy porting the actual filter, after i digged through the details of the Koffice filter framework.
Some days later i got the wmf import and export, the png export and today the svg export filters working. Now i can use Karbon to work with other file formats than Odf, which is now the default file format. Here are some obligatory screenshots proving my work on the file filters:

Imported wmf file inĀ Karbon Wmf exported to ODG and loaded inĀ karbon File exported to SVG and loaded inĀ inkscape
And finally the file exported toĀ PNG.

The world is a village


Today was one of these occasions where i see someone on the street and think by myself: you know that person from somewhere. But often enough i do not remember at which place or event that was. That makes me trying for some hours or even days to find out who that person is. Normally i won’t remember and forget about that as i do not get to see that person again.
But it was different today as i saw that particular person twice some days before on my way to/from work. So to make a long story short, it was our very own KDE hacker Daniel Molkentin.
Some days before i actually had an idea and looked at the web for a picture of him and immediately recognized his face. So today i just approached him at the bus stop and we chatted a little. Then later at work he invited me by mail to have lunch together with the Berlin Trolltech crew at the nearby university cafeteria. The lunch was nice and the trolls asked if i wanted to see their office. I happily accepted and at the office i got to meet the one and only Matthias Ettrich. Yes that one!
We chatted a little and then played with their soccer table for some minutes. I have to say that Daniel and all the trolls where really nice and i completely forgot the time while there. All in all it was a very enjoyable get-together and i plan to meet them again (and improve my table soccer skills :-)).