How do I add a new configuration item to registrymodifications.xcu

Michael Stahl mst at libreoffice.org
Thu Jan 31 10:27:23 UTC 2019


On 31.01.19 11:00, Winfried Donkers wrote:
> Hi,
> 
> I am working on an enhancement for Calc, tdf90180.
> 
> Therefore I need to add a configuration item to registrymodifications.xcu.
> I have created a class to obtain the configuration item, using a derivative of ::com::sun::star::utl::ConfigItem and copying/adapting existing code to retrieve configuration items.

utl::ConfigItem is sort of deprecated and you should have a really good 
excuse to use it in new code.

> When the new configuration item is not yet in registrymodifications.xcu and upon opening a relevant Calc document I get an exception:
> "warn::unotools::config:7006:7006:unotools/source/config/configitem.cxx:426: ignoring XHierarchicalNamesAccess to /org.openoffice.Office.Calc/Content/ErrorRectangle Exception: N3com3sun4star3uno9ExceptionE msg: ErrorRectangle"
> When I manually add the configuration item to registrymodifications.xcu and open a relevant Calc document I get the same exception.
> After running soffice (or scalc) my manual entry to registrymodifications.xcu is no longer there.
> 
> I have grepped similar -existing- configuration items in the code, and could not find anything that writes the item to registrymodifications.xcu.
> 
> Is there a simple way to fix this?
> The only alternative I see now is to submit an incomplete patch to gerrit for review; I would like to avoid that.

i see no mention of the word "officecfg" in your mail, which is worrisome :)

so you first need to add your config item to the schema in 
officecfg/registry/schema/ somewhere.

then "make officecfg postprocess" will get you the new configuration in 
instdir; it should show up in Expert Configuration now, and if you 
change it there it should automatically be written to 
registrymodifications.xcu (which only contains non-default values).

to get and set it from C++ code it's most convenient to use officecfg's 
generated headers, "git grep officecfg::" should find you plenty examples.


More information about the LibreOffice mailing list