[Libreoffice] python / XInvocation snafu ...

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Mon May 23 01:18:43 PDT 2011

Hi Michael, Hi Xisco, all,

On Thu, 19 May 2011 15:05:26 +0100
Michael Meeks <michael.meeks at novell.com>

> 	So - if we want to use this class from Python, we need to
> work out:
> 	a) what the heck is going on in that resource.cxx class :-)
> 		+ why is it implementing XInvocation - there seems to
> be no really good reason for this.
> 		+ particularly since getDefaultInvocation just returns
> 		  null always ;-)

I have taken a look at the class and all it does is provide
string resources via the good ol' tools ressource manager. I have
thrown out all the crap and ended up with 100 lines of code (instead of
more than 400) without the need to break the world by tweaking around
with XInvocation. It is basically just a XIndexAccess now providing the
OUString for a given ResId.
The only disadvantage as of now is that you now get each string
separate and lock the SolarMutex each time. The old implementation had a
"getStrings" function that allowed getting multiple strings with one
call. If that is an issue performancewise, we would need to define a
custom idl interface for it.

> 	b) should we just re-write it as a clean interface, instead of
> 	   this 'orrible mess ?
Yes. I just did.
> 	c) if so - we should unwind the mess in Wizards, explicitly
> 	   doing pointless lifting like:
>          final String IDString = (String)
> xInvocation.invoke("getString", nIDArray, PointerArray, DummyArray);
> 	    I imagine.

If the old VclStringResourceLoader implementation is not used elsewhere
anymore, we should kill it off. If there is stuff still depending on it,
we should replace that and kill it off then.

I will fixup the proof-of-concept code (which I luckily have on a local
feature branch), and will try to merge it in as soon as master isnt



(*) Hopefully, sometime this week.

More information about the LibreOffice mailing list