<div dir="ltr"><div>Hi Stephan, Hi All,</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Stephan Bergmann <<a href="mailto:sbergman@redhat.com" target="_blank">sbergman@redhat.com</a>> ezt Ã­rta (idÅ‘pont: 2023. jan. 5., Cs, 10:32):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 04/01/2023 14:18, Németh László wrote:<br>
> I've started to add two new spell checking options to <br>
> css.linguistic2.XLinguProperties<br>
[...]<br>
> Commit:<a href="https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21" rel="noreferrer" target="_blank">https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21</a> <<a href="https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21" rel="noreferrer" target="_blank">https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21</a>><br>
<br>
So this is about the addition of<br>
<br>
>  Â  Â /** defines whether spell checking should be accept rule-based<br>
>  Â  Â  Â  Â  closed compounding of dictionary words.<br>
> <br>
>  Â  Â  Â  Â @since LibreOffice 7.6<br>
>  Â  Â */<br>
>  Â  Â [attribute] boolean IsSpellClosedCompound;<br>
> <br>
>  Â  Â /** defines whether spell checking should be accept rule-based<br>
>  Â  Â  Â  Â  hyphenated compounding of dictionary words.<br>
> <br>
>  Â  Â  Â  Â @since LibreOffice 7.6<br>
>  Â  Â */<br>
>  Â  Â [attribute] boolean IsSpellHyphenatedCompound;<br>
<br>
to the published interface css.linguistic2.XLinguProperties in <br>
<<a href="https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21" rel="noreferrer" target="_blank">https://git.libreoffice.org/core/+/57d79744c77eef96b4c2bd3b16e0a04317ffcf9e%5E%21</a>> <br>
"tdf#136306 offapi linguistic: add options to disable rule-based <br>
compounding", which is an ABI-breaking change.<br>
<br>
But looking closer, when <br>
<<a href="https://git.libreoffice.org/core/+/ef0af5032ad283ffb3b4521eb097a118d58f332a%5E!/" rel="noreferrer" target="_blank">https://git.libreoffice.org/core/+/ef0af5032ad283ffb3b4521eb097a118d58f332a%5E!/</a>> <br>
"fdo#46808, Convert linguistic2::LingProperties to new style" introduced <br>
that css.linguistic2.XLinguProperties interface, it gave it various <br>
interface attributes (IsUseDictionaryList, IsIgnoreControlCharacters, <br>
IsSpellUpperCase, etc.) for no compelling reason:  XLinguProperties is <br>
meant to be the implementation interface of the service LinguProperties, <br>
which was changed by that commit from an old-style to a new-style <br>
service.  The original old-style service implemented XPropertySet and <br>
listed a number of supported properties.  The XLinguProperties interface <br>
also inherits from XPropertySet, and that should arguably have been all <br>
that is necessary to make LinguProperties a new-style service.  But that <br>
commit also added (some of) the properties of the old-style <br>
LinguProperties service as attributes to XLinguProperties, for no <br>
compelling reason.  All those entities should be available through the <br>
XPropertySet interface, so there is no need to also have them available <br>
through attribute getters and setters.<br>
<br>
Thus I would suggest to:<br>
<br>
* Revert the addition of the two new attributes, instead adding <br>
documentation to offapi/com/sun/star/linguistic2/XLinguProperties.idl <br>
that those two properties are available through the XPropertySet <br>
interface since LibreOffice 7.6.<br>
<br>
* Optionally, also mark all the other attributes of XLinguProperties as <br>
deprecated, stating in the documentation that they should instead be <br>
accessed via the XPropertySet interface.<br></blockquote><div><br></div><div>Ah, OK. So I only missed the proposed API. I'm going to make the proposed changes.<br></div><div><br></div><div>Many thanks for the detailed description!</div><div><br></div><div>Best regards,<br></div><div>László<br></div><div><br></div><div><br></div><div> </div></div></div>