Hello again everybody.
Lots of stuff has happened since my last blog. It’s Monday afternoon when I’m writing this and I’m on the train back from the sprint that Casper Boemann and I had at his place outside Copenhagen this weekend.
Since Casper is now working on tables support as part of his employment with KO GmbH, we both agreed that it would be a good idea to have a meeting to make plans for our cooperation during the rest of my GSoC, but also do get some hacking done.
The weekend has been intense to say the least, and we’ve added support for several essential features of tables, such as:
Row and Column Spanning
Cells can span multiple rows or columns. The row height calculations have been updated to handle the case where a cell that spans multiple rows grows vertically from a text insertion; the last row that is spanned into will grow in height along with the spanned cell.
-
Table and Cell Styles
Thanks to hard work from Casper, we now have KoTableStyle and KoTableCellStyle, which are proper styles for tables and cells, respectively. Work is underway for row and column styles.
Loading
Casper also took the plunge on loading and quite quickly got stuff up and working, and with the commit he did right before I left his apartment, most of the features here should now be loading correctly from ODF.
Table Alignment and Margins
Tables should now support all the alignment options in ODF; right, left, center and margins (justified), and they can have a left, right, top and bottom margin.
Table Background
Tables can have a global background color set.
Relative Table Width
Tables can now have a percentual width that is relative to the page width.
Cell Background
Individual cells can have a background color set.
Cell Borders
Cells can have borders, including double borders with a spacing between them.
Cell Padding
Individual cells can have a left, right, top and bottom padding.
During our sprint, Casper focused on loading, styles and drawing, and also sat with me for some pair programming when we implemented spanning, while I worked mostly on the layout part and unit testing of the features.
All in all it’s been a great weekend. Of course there are bugs to be worked out, but the basics of these features are all there and working. Casper is a very friendly host and a great programmer. I have a lot to learn :) He also did all the cooking and made me feel right at home. Thanks Casper!
The weekend ended with a couple of hours of planning, and we made a detailed list of ODF table features that we want for 2.1.
It’s quite pleasing to see that the approach to tables in KOffice that we’ve chosen seems to be holding up, and I’m pretty sure it will work out for all the remaining features that we need to implement, of which proper table breaking across pages is perhaps the most tricky one, from a layout point of view. But that’s for later; right now I’m going home for some resting up, and I think Casper is doing the same back at his place.
Anyway, kids are screaming like crazy here on the train, so I think I’ll end this blog with a little screencast showing off some of the new features, and then put on my headphones and doze off.
So long!

Direct link (2:40 min, 15.2 MB Ogg/Theora)
Wow, it’s nice to see progress in KWord (and whole KOffice) development! Keep up the great work! Cheers… ;)
Very great! Cannot wait to test it and use KWord as my main word processing :-)
Hi and thanks for the kind words. I’d like to return compliments and say that you were a very good hacking companion. I also think this sprint was a very good idea making us bond and I’m confident too that tables are gonna rock!
And thanks to my employer KO GmbH for making this possible