tdf#96787 AutoCorrect: find item with ".*" and between :colons:

It was very hard to disable autocorrection of (c)->© and other
AutoCorrect items, because the searched Replace string "(c)"
etc. didn't jump the list cursor to the corresponding ".*(c)"
item.

Now skip ".*" pattern matching marks, also colon (emoji
replacement) characters, so the list cursor jumps to the
line ".*(c)"->© typing only "(c" etc., allowing users to press
Delete to disable its autocorrection without knowing about
the special AutoCorrect patterns.

Follow-up to commit 50be3fa1f0
"tdf#141773 AutoCorrect: fix broken [All] dictionaries".

Change-Id: I72be1ecb2fdc5ae67c72727ce7fbd70b28a4125b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169714
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
László Németh 2024-06-28 15:49:22 +02:00
parent 50be3fa1f0
commit 39dfb6393a

View file

@ -1145,7 +1145,9 @@ IMPL_LINK(OfaAutocorrReplacePage, ModifyHdl, weld::Entry&, rEdt, void)
else
{
aTestStr = pCharClass->lowercase( aTestStr );
if( aTestStr.startsWith(aWordStr) && !bTmpSelEntry )
if( !bTmpSelEntry && ( aTestStr.startsWith(aWordStr)
// find also with ".*" and between :colons:
|| aTestStr.replaceAll(".*","").replaceAll(":", "").startsWith(aWordStr) ) )
{
m_xReplaceTLB->scroll_to_row(rIter);
bTmpSelEntry = true;