Hello,<div><br></div><div>I am trying to add a new path into AutoText Paths configuration using PyUNO.</div><div><br></div><div>By executing the following code, AutoText UserPaths shows the added path but changes</div><div>
are not set to LibreOffice configuration.</div><div><br></div><div>What I am doing wrong?</div><div><br></div><div>Thanks,</div><div><br><div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">#!/Applications/LibreOffice.app/Contents/MacOS/python</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"># -*- coding: utf-8 -*- </font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">import uno</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">from com.sun.star.beans import PropertyValue</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">unourl = "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext"</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br>
</font></div><div><font class="Apple-style-span" face="'courier new', monospace">def make_properties(dc):</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> p = []</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> for k,v in dc.iteritems():</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> x = PropertyValue()</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> x.Name = k</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> x.Value = v</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> p.append(x)</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> return tuple(p)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">def main():</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"> context = uno.getComponentContext()</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> </font></div><div><font class="Apple-style-span" face="'courier new', monospace"> smgr = context.ServiceManager</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> resolver = smgr.createInstanceWithContext(</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> "com.sun.star.bridge.UnoUrlResolver", context)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"><br>
</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> ctx = resolver.resolve(unourl)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> desktop = smgr.createInstanceWithContext(</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> "com.sun.star.frame.Desktop", ctx)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> </font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> args = make_properties({"nodepath":"/org.openoffice.Office.Paths/Paths"})</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> </font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> config = smgr.createInstance(</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> "com.sun.star.configuration.ConfigurationProvider")</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> update_access = config.createInstanceWithArguments(</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> "com.sun.star.configuration.ConfigurationUpdateAccess", args)</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"> path = "$(home)/autotext"</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace"> autotext_path = update_access.getByName("AutoText")</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> autotext_path.UserPaths = autotext_path.UserPaths + (path,)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> update_access.commitChanges()</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> </font></div><div><font class="Apple-style-span" face="'courier new', monospace"> # TEST results</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> access = config.createInstanceWithArguments(</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> "com.sun.star.configuration.ConfigurationAccess", args)</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> print access.getByName("AutoText").UserPaths</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace">if __name__ == '__main__':</font></div><div>
<font class="Apple-style-span" face="'courier new', monospace"> main()</font></div></div></div>