Tables Sprint in Copenhagen

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

    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

    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

    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

    Table Background

    Tables can have a global background color set.

  • Relative Table Width

    Relative Table Width

    Tables can now have a percentual width that is relative to the page width.

  • Cell Background

    Cell Background

    Individual cells can have a background color set.

  • Cell Borders

    Cell Borders

    Cells can have borders, including double borders with a spacing between them.

  • Cell Padding

    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!

Copenhagen Sprint Features Screencast
Copenhagen Sprint Features Screencast

Direct link (2:40 min, 15.2 MB Ogg/Theora)

8 thoughts on “Tables Sprint in Copenhagen

  1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *