Thursday, June 26, 2008

Getting started with KWord Development

About 2 months ago, I started working on KWord ODF support. Getting productive working on KWord is no mean task - apart from the mandatory C++/Qt knowledge, one need to know Scribe, KDE, KOffice libs and KWord. I knew only C++/Qt and basic Scribe.

Thankfully, to add small ODF features to KWord, one can conveniently ignore most of the code base and concentrate on 4-5 files. Which is what I have been doing - committing like crazy to 4-5 files :-) Of course, I have never been at ease with this, I usually don't develop this way but I wanted to have something up and running asap. Now that we (Roop and I) have most of the (supported) ODF test automated (63 in all), I took a 1 week break to read and understand the KWord/KOffice code.

If writing a word processor is not complex enough, KOffice/KWord code is extremely complex thanks to all the code sharing between the koffice applications, libraries, plugins/flake, kparts. So, I thought I should do something on my part to make KWord more approachable to a newbie. The result is:

http://wiki.koffice.org/index.php?title=KWord/Tutorials/LoadingOdf

It's a code walk through/very detailed introduction to how loading of ODF works in KWord. I have deliberately opted for simplicity over correctness in many places. Some information there might be outright wrong, in which case, please edit the document and fix it (hey, I am new to this stuff too). Also, this probably belongs in techbase.

Writing this document has made me realize that writing code is so much simpler than understanding existing code :-)

Anyhoo, Comments/Suggestions?

P.S: I am in the process of writing the SavingOdf document.

5 comments:

Troy Unrau said...

I love KWord, and love your work. Thanks for blogging about it :)

Anonymous said...

This tutorial is a great idea!

Just one remark: I don't think an ODF is a tar.gz file. It's a ZIP file.

scroogie said...

I think it's actually a JAR file, which in turn uses the ZIP compression algorithm.

Girish Ramakrishnan said...

hans-peter, andre : Corrected, it is a zip archive indeed.

elvis said...

Immensely useful! Thanks for this Girish!