On Fri, Apr 24, 2026 at 6:03 AM Damjan Jovanovic <[email protected]> wrote:
> > A number of issues however were discovered: > - All macro operations (creating, renaming, deleting) give false errors > saying they failed, but actually succeed, you need to close and re-open the > macro dialog to see the changes. I suspect this is a bug in the Python UNO > bridge. > - Creating libraries inside documents is completely broken on Windows, the > UI buttons stay greyed out. This is some kind of a permission issue when > calling isReadOnly() on the SimpleFileAccess interface for the document. > This is fully fixed now. All library and macro operations (creating, renaming, deleting) fully work everywhere, including on Windows. The problem with the false error has that an UNO IDL function with this definition: ( https://www.openoffice.org/api/docs/common/ref/com/sun/star/script/XInvocation.html#invoke ) any *invoke*( [in] string aFunctionName, [in] sequence< any > aParams, [out] sequence< short > aOutParamIndex, [out] sequence< any > aOutParam ) normally compiles into a programming language function taking 4 parameters and returning the "any". But on Python, the "[out]" parameters are passed as None, and need to be returned as a tuple, so the Python function: def invoke( self, name, params, outparamindex, outparams ): needs to return a tuple of 3 values: the "any" return value, the aOutParamIndex, and the aOutParam. This wasn't being done, either previously in that code, or with the new invoke() methods I added. When I added it in, the error disappeared. (That gotcha is documented on https://www.openoffice.org/udk/python/python-bridge.html) As for isReadOnly() on the SimpleFileAccess interface failing, I changed it to only run on the child nodes of the root node, and always allow the root node to create, like is done by the "user" and "share" sources as well. My changes have been pushed to the python-editing-embedding branch. After some cleanups, and a way to edit Python macros, that branch should be ready to merge :-). Regards Damjan
