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="&#39;courier new&#39;, monospace">#!/Applications/LibreOffice.app/Contents/MacOS/python</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"># -*- coding: utf-8 -*- </font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">import uno</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">from com.sun.star.beans import PropertyValue</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">unourl = &quot;uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext&quot;</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">def make_properties(dc):</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    p = []</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    for k,v in dc.iteritems():</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        x = PropertyValue()</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        x.Name = k</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        x.Value = v</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        p.append(x)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    return tuple(p)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">def main():</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    context = uno.getComponentContext()</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    </font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    smgr = context.ServiceManager</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    resolver = smgr.createInstanceWithContext(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        &quot;com.sun.star.bridge.UnoUrlResolver&quot;, context)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    ctx = resolver.resolve(unourl)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    desktop = smgr.createInstanceWithContext(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        &quot;com.sun.star.frame.Desktop&quot;, ctx)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    </font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    args = make_properties({&quot;nodepath&quot;:&quot;/org.openoffice.Office.Paths/Paths&quot;})</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    </font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    config = smgr.createInstance(</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        &quot;com.sun.star.configuration.ConfigurationProvider&quot;)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    update_access = config.createInstanceWithArguments(</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        &quot;com.sun.star.configuration.ConfigurationUpdateAccess&quot;, args)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    path = &quot;$(home)/autotext&quot;</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    autotext_path = update_access.getByName(&quot;AutoText&quot;)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    autotext_path.UserPaths = autotext_path.UserPaths + (path,)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    update_access.commitChanges()</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    </font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    # TEST results</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    access = config.createInstanceWithArguments(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        &quot;com.sun.star.configuration.ConfigurationAccess&quot;, args)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    print access.getByName(&quot;AutoText&quot;).UserPaths</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">if __name__ == &#39;__main__&#39;:</font></div><div>
<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    main()</font></div></div></div>