KWord: ODF Lists

It’s been a long busy month. With the impending 2.0 release, I have been hacking away polishing up ODF list support for KWord.

Here’s a list of improvements coming up

  • Support for saving and loading ODF text:list. This was a lot of work. ODF lists are complex beasts. It was major help that Thomas Zander had done a lot of work in supporting lists and numbering of lists in the layout. We now support the important ODF 1.1 list attributes like space-after, min-label-distance, text-align, min-label-width
  • Support for editing lists and sublists, similar to OOo and MS Word. Press tab to increase the indentation level. Press Backtab to decrease the level
  • Support for loading and saving lists as numbered-paragarph. This means that documents written with KWord 1.x can be loaded up with 2.0. However, KWord does not save as numbered-paragraph because neither OOo nor KWord 1.x can load it correctly (KWord 1.x seems to use the optional text:number tag to determine numbering).
  • Support for list headers
  • Support for unnumbered paragraphs. In ODF, a list-item can contain multiple paragraphs. As a result, the first backspace that you press at the beginning of a list-item makes the paragraph an “unnumbered paragraph”. The second backspace ends the list.
  • Quirks to make lists behave the save just like OOo. OOo seems to make a few assumptions that are not stated in the spec – Two disjoint text:lists that follow the same list style are considered to be one list (this affects numbering and that changing the style of one list changes the other). For better or worse, we go out of the way to mimic OOo here.

Here’s a screenshot:

Non-list changes

  • Fixed whitespace normalization. See 853298 for details.
  • Switched the default template to odt!
  • Lots of refactoring, cleanup and redesign.