KOffice Talk at FOSDEM 2005 By Raphael Langerhorst


These are my rough notes only, corrections welcome. The presentation is also available in the kdepromo cvs module.

He started helping with KOffice about a year ago and he is mostly working now on KSpread and documentation.

KOffice builds on KDE so all the technologies of KDE are available in KOffice. This includes DCOP for externally controlling applications and KIO. It uses the flexible component technology that is KParts.

KOffice is very lightweight, this means it has a fast startup and has a low memory consumption making it good for old computers. Components can be embedded inside each other so a spreadsheet or drawing can be embedded in a word processing file.

Next version will use OASIS OpenDocument file format making it standards compliant. So OpenOffice 2 and KOffice 1.4 will be fully compatible at the file format level.

Components are KWord, KSpread, KPresenter (which we are looking at on the projector), Kivio diagramming, Kugar report generator formats e.g. scientific reports to a given template. Karbon14 vector drawing. Also KFormula for maths and KChart for graphs. These are in KDE 1.3 there will be more in 1.4.

External scripting can be done using DCOP. Example:

dcop kpresenter View-0 getCurrentPageNum
dcop kpresenter View-0 gotoPageNum 5

He demonstrates by starting Konsole and running dcop which gives a list of dcop clients. If you don't know the process id you can do "dcop kpresenter-*" and it will list them. Running "dcop kpresenter" shows all the available DCOP calls, KPresenter offers a lot of dcop calls. He shows changing his slides using command line dcop. You can really control an application this way which can be a part of any script. He shows kdcop which lets you do the same thing with a GUI.

Kexi is the database component of KOffice and will be included with 1.4 which will be released in a few weeks. It will have powerful python scripting abilities.

Every KParts application can load plugins and other Kparts. He shows an example of Konqueror embedding KPresenter.

You can easily write your own plugin. Inherit KParts::Plugin, export the plugin with the macro K_EXPORT_COMPONENT_FACTORY and implement. Make an XML-GUI file so the application knows what to add to its toolbars and menus.

He shows an example plugin showMemoryStats he made for KSpread, simple XML-GUI file, Makefile.am, header file inherits from KParts::Plugin. KSpreadView will be the qt parent of the plugin so you an access the document itself to change or insert data. He shows this working in KSpread. The user doesn't know if it's a plugin or not, it just works.

What about security? These plugins have to be installed like any other application.

Is this the same KParts Plugins used everywhere else in KDE? Yes (actually XML-GUI and the like started in KOffice then spread to the rest of KDE). For document embedding KOffice uses an extended KPart technology.

Can they be installed as a user? Yes, you then have to set KDEDIRS.

Do Plugins need a GUI interface (menu item, toolbar item, ...) or can they just work in the background? Yes, they can work in the background as well, just leave out the GUI integration in the .rc file and initialize all things in the plugin constructor.

Coming in 1.4. No date set for release but in the next few months. OpenDocument file format. Pixel image manipulation with Krita, it has a many plugins. Kexi database management with python scripting, supports MySQL and PostGres. After 1.4 will be KOffice 2. KDE 4/Qt4, new text engine, project management tool (KPlato), a redesign of KSpread internals and more.

KOffice is easy to learn and straight forward to use, he has been using it for over a year and finds it very intuitive.

Is there a grammer checker in KWord? No don't think so. Is spell checking in multiple languages possible? Yes.