MAY
15
2006

Flake progress

The KOffice objects-manipulation library is progressing nicely; since my last blog (2 weeks ago) I have added and fixed lots of things. Not nearly 2 weeks hacking worth, though, with LinuxTag in between.

Here a list of significant Flake enhancements; made the library support multiple views, where the different views update automatically and they can have different zoom levels and different selections.

We now have 3 types of groups; one for simple groups (think: all the shapes in a butterfly to look and select like one shape), another for nested shapes (think: image flowing inside text) and the final one for 'related shapes' used for things like an image that is anchored to a text paragraph, but shown outside of the actual text.

Full support for any sort of border, where borders can be as simple as a line to as complex as some ornaments being drawn around the shape. Naturally we support non-square shapes here.

Previously we could only move objects by mouse, this has been made more mature by adding rotation & scaling and making it aware of a grid while moving. As well as cool things like scaling by keeping aspect ratio and scaling from center.
Skewing is still to be added in this department.

I also Made repainting a lot more intelligent so we only repaint what has actually changed. This should make things look a lot smoother for those on slower machines.

Printing to PDF now works flawlessly, which shows only how good a job the Trolls did with Qt4, but still, its very important for KOffice :)

The library already reached the level of features that is needed to make KWord start using it, most work now is in fixing bugs and rough edges plus fixing internal bookkeeping to get fast enough to handle loads and loads of shapes. Not hard, just work.

Obligatory screenshot;


A screenshot of the test app showing the flake library features with multiple views (and different zoom) where I am currently rotating 4 shapes in the bottom view. Note that the 3-colored shape is a group.

Code is in trunk/playground/office/flake for the people that want to get in on the fun!

Comments

When cool things like this are invented, how are the Open Document formats updated to cope? (Assuming this isn't already covered by the spec.)

Can you make semi-private add-ons to the document formats that are ignored by applications not supporting them? Would you submit suggestions to some review process and only when they have been accepted you can add the feature?


By martin at Tue, 05/16/2006 - 07:10

All of the options you list are possible; ODF is extensible so we can add koffice-private tags without problems, we can smartly re-use existing functionality and we can propose extensions for a new version of ODF.

I know that ODF is pretty darn extensive, so I don't think we have to do a lot of private stuff, but we'll figure that out as we go.

The biggest thing here is a totally new way of embedding other documents, I can have a karbon-vector object in the middle of my kword document, which can be saved as SVG in ODF but I will be able to edit it using the tools from Karbon inline inside my KWord document. ( if I want)


By Thomas Zander at Tue, 05/16/2006 - 10:15