RFC: ideas for a simple OpenDocument API

Sebastian Sauer mail at dipe.org
Fri Jan 12 06:26:43 GMT 2007


Sebastian Sauer wrote:
> Kevin Krammer wrote:
>>> So, that's
>>> possible already and you don't need to go through Kross since the
>>> KWord2+KSpread2 scripting plugins (in trunk (kword|
>>> kspread)/plugins/scripting/Module.(h|cpp) - see also e.g.
>>> http://wiki.koffice.org/index.php?title=KSpread/Scripting ) offer a nice
>>> on Qt's meta* based interface. So, pure calling of slots should do the
>>> trick without the need to link against those libs. IMO it should also be
>>> quit possible to use also QtScript to access those both libs and there
>>> functionality dynamic...
>> 
>> Hmm, I am afraid I don't understand. Do you mean applications should (try
>> to) dlopen the plugins and use them for ODF manipulation when
>> successfull?
>> 
>> Don't they require a running KWord/KSpread instantance?
> 
> No running instance is needed. So, all that would be needed for the case
> of KSpread is to have KSpread installed and then you are able to dlopen
> the extern QObject* krossmodule()
> (located in koffice/kspread/plugins/scripting/ScriptingModule.cpp) within
> the module. The returned QObject then provides all we need to
> load/save/manipulate ODS files by using Qt's Meta-Object system. Compared
> to my prev posting I see even one more way to use it then;
> * via Kross
> * via KjsEmbed
> * via QtScript (I didn't test yet if it's mature enough)
> * via pure Qt with some dirty-hacks using QMetaObject::invokeMethod, etc.
> (ok, that's very dirty since there are no compiletime-checks, but I expect
> to have that API for a long time stable once KO 2.0 is released anyway).

and since code may provide more infos then thousand words, I created a small 
Qt-only console app that demonstrates it; 
http://kross.dipe.org/kspread2demo.tar.gz (see comments in run.sh + needs 
KSpread >=r622506 + it breaks on run currently cause of a missing KInstance 
instance :-/ ...

-- 
Sebastian Sauer aka dipesh[sebsauer]
http://www.dipe.org/public_key.asc
Fingerprint: 8F1E 219B 16E6 4EC7 29CC F408 E193 65E2 9134 2221
Coder in http://www.koffice.org && http://www.kmldonkey.org




More information about the kde-core-devel mailing list