editeng/source/misc/acorrcfg.cxx         |  438 +++++++++++++++----------------
 sw/qa/extras/autocorrect/autocorrect.cxx |   14 
 2 files changed, 218 insertions(+), 234 deletions(-)

New commits:
commit 9fe65e5c3e223205a383756e7b5cd1d458b50726
Author:     Mike Kaganski <[email protected]>
AuthorDate: Mon Feb 2 09:54:33 2026 +0500
Commit:     Mike Kaganski <[email protected]>
CommitDate: Mon Feb 2 08:33:09 2026 +0100

    Fix setting nullopt to the optional autocorrect entries
    
    Trying to replace the manual management of settings in testTdf151801
    with ScopedConfigValue, I found out that it broke other tests there:
    
     C:/lo/core/sw/qa/extras/autocorrect/autocorrect.cxx(64) : error : Assertion
     Test name: testTdf38394::TestBody
     equality assertion failed
     - Expected: l’« 
     - Actual  : l‹ »
    
     C:/lo/core/sw/qa/extras/autocorrect/autocorrect.cxx(45) : error : Assertion
     Test name: testTdf92029::TestBody
     equality assertion failed
     - Expected: Ik ben ’s morgens opgestaan
     - Actual  : Ik ben ›s morgens opgestaan
    
    It looked like restoring the settings in ScopedConfigValue dtor had
    no effect. But manually testing the restored values using officecfg
    demonstrated that it worked as expected: the optional value appeared
    empty, as before the test.
    
    It turned out, that the problem was in SvxBaseAutoCorrCfg::Load: it
    listened to the registry changes, but only loaded new value, when
    it was not empty, meaning that setting a non-empty value, and then
    resetting it back to empty would keep the last non-empty value in
    SvxAutoCorrCfg.
    
    This change modifies SvxBaseAutoCorrCfg::Load to properly handle
    empty values. Booleans are now checked using Any::operator==(bool),
    which checks the type. For other values, the usual operator >>= is
    used, which is simply no-op for empty Any.
    
    testTdf151801 is modified to use ScopedConfigValue.
    
    Change-Id: Ia3f413583541cde482db234fe73d7f665be507ae
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198502
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins

diff --git a/editeng/source/misc/acorrcfg.cxx b/editeng/source/misc/acorrcfg.cxx
index bd0ecaa36ae5..c4db9dfc3bae 100644
--- a/editeng/source/misc/acorrcfg.cxx
+++ b/editeng/source/misc/acorrcfg.cxx
@@ -206,102 +206,99 @@ void SvxBaseAutoCorrCfg::Load(bool bInit)
         return;
 
     ACFlags nFlags = ACFlags::NONE;        // default all off
-    sal_Int32 nTemp = 0;
     for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     {
-        if (aValues[nProp].hasValue())
+        sal_Int32 nTemp = 0; // the default for quotes when the optional value 
is empty
+        switch(nProp)
         {
-            switch(nProp)
-            {
-                case  0:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::SaveWordCplSttLst;
-                break;//"Exceptions/TwoCapitalsAtStart",
-                case  1:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::SaveWordWordStartLst;
-                break;//"Exceptions/CapitalAtStartSentence",
-                case  2:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::Autocorrect;
-                break;//"UseReplacementTable",
-                case  3:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::CapitalStartWord;
-                break;//"TwoCapitalsAtStart",
-                case  4:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::CapitalStartSentence;
-                break;//"CapitalAtStartSentence",
-                case  5:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgWeightUnderl;
-                break;//"ChangeUnderlineWeight",
-                case  6:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::SetINetAttr;
-                break;//"SetInetAttribute",
-                case  7:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgOrdinalNumber;
-                break;//"ChangeOrdinalNumber",
-                case 8:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                         nFlags |= ACFlags::AddNonBrkSpace;
-                break;//"AddNonBreakingSpace"
-                case  9:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgToEnEmDash;
-                break;//"ChangeDash",
-                case 10:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::IgnoreDoubleSpace;
-                break;//"RemoveDoubleSpaces",
-                case 11:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgSglQuotes;
-                break;//"ReplaceSingleQuote",
-                case 12:
-                    aValues[nProp] >>= nTemp;
-                    rParent.pAutoCorrect->SetStartSingleQuote(
-                        sal::static_int_cast< sal_Unicode >( nTemp ) );
-                break;//"SingleQuoteAtStart",
-                case 13:
-                    aValues[nProp] >>= nTemp;
-                    rParent.pAutoCorrect->SetEndSingleQuote(
-                        sal::static_int_cast< sal_Unicode >( nTemp ) );
-                break;//"SingleQuoteAtEnd",
-                case 14:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgQuotes;
-                break;//"ReplaceDoubleQuote",
-                case 15:
-                    aValues[nProp] >>= nTemp;
-                    rParent.pAutoCorrect->SetStartDoubleQuote(
-                        sal::static_int_cast< sal_Unicode >( nTemp ) );
-                break;//"DoubleQuoteAtStart",
-                case 16:
-                    aValues[nProp] >>= nTemp;
-                    rParent.pAutoCorrect->SetEndDoubleQuote(
-                        sal::static_int_cast< sal_Unicode >( nTemp ) );
-                break;//"DoubleQuoteAtEnd"
-                case 17:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::CorrectCapsLock;
-                break;//"CorrectAccidentalCapsLock"
-                case 18:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::TransliterateRTL;
-                break;//"TransliterateRTL"
-                case 19:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::ChgAngleQuotes;
-                break;//"ChangeAngleQuotes"
-                case  20:
-                    if (*o3tl::doAccess<bool>(aValues[nProp]))
-                        nFlags |= ACFlags::SetDOIAttr;
-                break;//"SetDOIAttr",
-            }
+            case  0:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::SaveWordCplSttLst;
+            break;//"Exceptions/TwoCapitalsAtStart",
+            case  1:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::SaveWordWordStartLst;
+            break;//"Exceptions/CapitalAtStartSentence",
+            case  2:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::Autocorrect;
+            break;//"UseReplacementTable",
+            case  3:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::CapitalStartWord;
+            break;//"TwoCapitalsAtStart",
+            case  4:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::CapitalStartSentence;
+            break;//"CapitalAtStartSentence",
+            case  5:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgWeightUnderl;
+            break;//"ChangeUnderlineWeight",
+            case  6:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::SetINetAttr;
+            break;//"SetInetAttribute",
+            case  7:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgOrdinalNumber;
+            break;//"ChangeOrdinalNumber",
+            case 8:
+                if (aValues[nProp] == true)
+                     nFlags |= ACFlags::AddNonBrkSpace;
+            break;//"AddNonBreakingSpace"
+            case  9:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgToEnEmDash;
+            break;//"ChangeDash",
+            case 10:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::IgnoreDoubleSpace;
+            break;//"RemoveDoubleSpaces",
+            case 11:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgSglQuotes;
+            break;//"ReplaceSingleQuote",
+            case 12:
+                aValues[nProp] >>= nTemp;
+                rParent.pAutoCorrect->SetStartSingleQuote(
+                    sal::static_int_cast< sal_Unicode >( nTemp ) );
+            break;//"SingleQuoteAtStart",
+            case 13:
+                aValues[nProp] >>= nTemp;
+                rParent.pAutoCorrect->SetEndSingleQuote(
+                    sal::static_int_cast< sal_Unicode >( nTemp ) );
+            break;//"SingleQuoteAtEnd",
+            case 14:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgQuotes;
+            break;//"ReplaceDoubleQuote",
+            case 15:
+                aValues[nProp] >>= nTemp;
+                rParent.pAutoCorrect->SetStartDoubleQuote(
+                    sal::static_int_cast< sal_Unicode >( nTemp ) );
+            break;//"DoubleQuoteAtStart",
+            case 16:
+                aValues[nProp] >>= nTemp;
+                rParent.pAutoCorrect->SetEndDoubleQuote(
+                    sal::static_int_cast< sal_Unicode >( nTemp ) );
+            break;//"DoubleQuoteAtEnd"
+            case 17:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::CorrectCapsLock;
+            break;//"CorrectAccidentalCapsLock"
+            case 18:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::TransliterateRTL;
+            break;//"TransliterateRTL"
+            case 19:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::ChgAngleQuotes;
+            break;//"ChangeAngleQuotes"
+            case  20:
+                if (aValues[nProp] == true)
+                    nFlags |= ACFlags::SetDOIAttr;
+            break;//"SetDOIAttr",
         }
     }
     if( nFlags != ACFlags::NONE )
@@ -443,138 +440,135 @@ void SvxSwAutoCorrCfg::Load(bool bInit)
     SvxSwAutoFormatFlags& rSwFlags = rParent.pAutoCorrect->GetSwFlags();
     for(int nProp = 0; nProp < aNames.getLength(); nProp++)
     {
-        if (aValues[nProp].hasValue())
+        switch(nProp)
         {
-            switch(nProp)
-            {
-                case   0: rParent.bFileRel = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Text/FileLinks",
-                case   1: rParent.bNetRel = 
*o3tl::doAccess<bool>(aValues[nProp]);  break; // "Text/InternetLinks",
-                case   2: rParent.bAutoTextPreview = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Text/ShowPreview",
-                case   3: rParent.bAutoTextTip = 
*o3tl::doAccess<bool>(aValues[nProp]);  break; // "Text/ShowToolTip",
-                case   4: rParent.bSearchInAllCategories = 
*o3tl::doAccess<bool>(aValues[nProp]);  break; //"Text/SearchInAllCategories"
-                case   5: rSwFlags.bAutoCorrect = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/UseReplacementTable",
-                case   6: rSwFlags.bCapitalStartSentence = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/TwoCapitalsAtStart",
-                case   7: rSwFlags.bCapitalStartWord = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/CapitalAtStartSentence",
-                case   8: rSwFlags.bChgWeightUnderl = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/ChangeUnderlineWeight",
-                case   9: rSwFlags.bSetINetAttr = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/SetInetAttribute",
-                case  10: rSwFlags.bChgOrdinalNumber = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/ChangeOrdinalNumber",
-                case  11: rSwFlags.bAddNonBrkSpace = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/AddNonBreakingSpace",
+            case  0: rParent.bFileRel = (aValues[nProp] == true); break; // 
"Text/FileLinks",
+            case  1: rParent.bNetRel = (aValues[nProp] == true);  break; // 
"Text/InternetLinks",
+            case  2: rParent.bAutoTextPreview = (aValues[nProp] == true); 
break; // "Text/ShowPreview",
+            case  3: rParent.bAutoTextTip = (aValues[nProp] == true);  break; 
// "Text/ShowToolTip",
+            case  4: rParent.bSearchInAllCategories = (aValues[nProp] == 
true);  break; //"Text/SearchInAllCategories"
+            case  5: rSwFlags.bAutoCorrect = (aValues[nProp] == true); break; 
// "Format/Option/UseReplacementTable",
+            case  6: rSwFlags.bCapitalStartSentence = (aValues[nProp] == 
true); break; // "Format/Option/TwoCapitalsAtStart",
+            case  7: rSwFlags.bCapitalStartWord = (aValues[nProp] == true); 
break; // "Format/Option/CapitalAtStartSentence",
+            case  8: rSwFlags.bChgWeightUnderl = (aValues[nProp] == true); 
break; // "Format/Option/ChangeUnderlineWeight",
+            case  9: rSwFlags.bSetINetAttr = (aValues[nProp] == true); break; 
// "Format/Option/SetInetAttribute",
+            case 10: rSwFlags.bChgOrdinalNumber = (aValues[nProp] == true); 
break; // "Format/Option/ChangeOrdinalNumber",
+            case 11: rSwFlags.bAddNonBrkSpace = (aValues[nProp] == true); 
break; // "Format/Option/AddNonBreakingSpace",
 // it doesn't exist here - the common flags are used for that -> LM
-//                  case  12: rSwFlags.bChgToEnEmDash = 
*o3tl::doAccess<bool>(pValues[nProp]); break; // "Format/Option/ChangeDash",
-                case  13: rSwFlags.bDelEmptyNode = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/DelEmptyParagraphs",
-                case  14: rSwFlags.bChgUserColl = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/ReplaceUserStyle",
-                case  15: rSwFlags.bChgEnumNum = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/ChangeToBullets/Enable",
-                case  16:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.cBullet =
-                        sal::static_int_cast< sal_Unicode >(nVal);
-                }
-                break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/Char",
-                case  17:
-                {
-                    OUString sTemp; aValues[nProp] >>= sTemp;
-                    rSwFlags.aBulletFont.SetFamilyName(sTemp);
-                }
-                break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/Font",
-                case  18:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.aBulletFont.SetFamily(FontFamily(nVal));
-                }
-                break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontFamily",
-                case  19:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.aBulletFont.SetCharSet(rtl_TextEncoding(nVal));
-                }
-                break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontCharset",
-                case  20:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.aBulletFont.SetPitch(FontPitch(nVal));
-                }
-                break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontPitch",
-                case  21: rSwFlags.bRightMargin = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/CombineParagraphs",
-                case  22:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.nRightMargin =
-                        sal::static_int_cast< sal_uInt8 >(nVal);
-                }
-                break; // "Format/Option/CombineValue",
-                case  23: rSwFlags.bAFormatDelSpacesAtSttEnd =  
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/DelSpacesAtStartEnd",
-                case  24: rSwFlags.bAFormatDelSpacesBetweenLines = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/DelSpacesBetween",
-                case  25: rParent.bAutoFmtByInput = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Format/ByInput/Enable",
-                case  26: rSwFlags.bChgToEnEmDash = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Format/ByInput/ChangeDash",
-                case  27: rSwFlags.bSetNumRule = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/ByInput/ApplyNumbering/Enable",
-                case  28: rSwFlags.bSetBorder = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/ByInput/ChangeToBorders",
-                case  29: rSwFlags.bCreateTable = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Format/ByInput/ChangeToTable",
-                case  30: rSwFlags.bReplaceStylesByInput =  
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Format/ByInput/ReplaceStyle",
-                case  31: rSwFlags.bAFormatByInpDelSpacesAtSttEnd =  
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/ByInput/DelSpacesAtStartEnd",
-                case  32: rSwFlags.bAFormatByInpDelSpacesBetweenLines = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/ByInput/DelSpacesBetween",
-                case  33: rSwFlags.bAutoCompleteWords = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Completion/Enable",
-                case  34:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.nAutoCmpltWordLen =
-                        sal::static_int_cast< sal_uInt16 >(nVal);
-                }
-                break; // "Completion/MinWordLen",
-                case  35:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.nAutoCmpltListLen =
-                        sal::static_int_cast< sal_uInt32 >(nVal);
-                }
-                break; // "Completion/MaxListLen",
-                case  36: rSwFlags.bAutoCmpltCollectWords = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Completion/CollectWords",
-                case  37: rSwFlags.bAutoCmpltEndless = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Completion/EndlessList",
-                case  38: rSwFlags.bAutoCmpltAppendBlank = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Completion/AppendBlank",
-                case  39: rSwFlags.bAutoCmpltShowAsTip = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Completion/ShowAsTip",
-                case  40:
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.nAutoCmpltExpandKey =
-                        sal::static_int_cast< sal_uInt16 >(nVal);
-                }
-                break; // "Completion/AcceptKey"
-                case 41 :rSwFlags.bAutoCmpltKeepList = 
*o3tl::doAccess<bool>(aValues[nProp]); break;//"Completion/KeepList"
-                case 42 :
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.cByInputBullet =
-                        sal::static_int_cast< sal_Unicode >(nVal);
-                }
-                break;// "Format/ByInput/ApplyNumbering/SpecialCharacter/Char",
-                case 43 :
-                {
-                    OUString sTemp; aValues[nProp] >>= sTemp;
-                    rSwFlags.aByInputBulletFont.SetFamilyName(sTemp);
-                }
-                break;// "Format/ByInput/ApplyNumbering/SpecialCharacter/Font",
-                case 44 :
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.aByInputBulletFont.SetFamily(FontFamily(nVal));
-                }
-                break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontFamily",
-                case 45 :
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    
rSwFlags.aByInputBulletFont.SetCharSet(rtl_TextEncoding(nVal));
-                }
-                break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontCharset",
-                case 46 :
-                {
-                    sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
-                    rSwFlags.aByInputBulletFont.SetPitch(FontPitch(nVal));
-                }
-                break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontPitch",
-                case   47: rSwFlags.bSetDOIAttr = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/Option/SetDOIAttribute",
-                case 48 : rSwFlags.bSetNumRuleAfterSpace = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // 
"Format/ByInput/ApplyNumberingAfterSpace",
-                case 49 : rSwFlags.bReplaceStyles = 
*o3tl::doAccess<bool>(aValues[nProp]); break; // "Format/Option/ReplaceStyle",
+//            case 12: rSwFlags.bChgToEnEmDash = (aValues[nProp] == true); 
break; // "Format/Option/ChangeDash",
+            case 13: rSwFlags.bDelEmptyNode = (aValues[nProp] == true); break; 
// "Format/Option/DelEmptyParagraphs",
+            case 14: rSwFlags.bChgUserColl = (aValues[nProp] == true); break; 
// "Format/Option/ReplaceUserStyle",
+            case 15: rSwFlags.bChgEnumNum = (aValues[nProp] == true); break; 
// "Format/Option/ChangeToBullets/Enable",
+            case 16:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.cBullet =
+                    sal::static_int_cast< sal_Unicode >(nVal);
+            }
+            break; // "Format/Option/ChangeToBullets/SpecialCharacter/Char",
+            case 17:
+            {
+                OUString sTemp; aValues[nProp] >>= sTemp;
+                rSwFlags.aBulletFont.SetFamilyName(sTemp);
+            }
+            break; // "Format/Option/ChangeToBullets/SpecialCharacter/Font",
+            case 18:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aBulletFont.SetFamily(FontFamily(nVal));
+            }
+            break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontFamily",
+            case 19:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aBulletFont.SetCharSet(rtl_TextEncoding(nVal));
+            }
+            break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontCharset",
+            case 20:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aBulletFont.SetPitch(FontPitch(nVal));
+            }
+            break; // 
"Format/Option/ChangeToBullets/SpecialCharacter/FontPitch",
+            case 21: rSwFlags.bRightMargin = (aValues[nProp] == true); break; 
// "Format/Option/CombineParagraphs",
+            case 22:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.nRightMargin =
+                    sal::static_int_cast< sal_uInt8 >(nVal);
+            }
+            break; // "Format/Option/CombineValue",
+            case 23: rSwFlags.bAFormatDelSpacesAtSttEnd =  (aValues[nProp] == 
true); break; // "Format/Option/DelSpacesAtStartEnd",
+            case 24: rSwFlags.bAFormatDelSpacesBetweenLines = (aValues[nProp] 
== true); break; // "Format/Option/DelSpacesBetween",
+            case 25: rParent.bAutoFmtByInput = (aValues[nProp] == true); 
break; // "Format/ByInput/Enable",
+            case 26: rSwFlags.bChgToEnEmDash = (aValues[nProp] == true); 
break; // "Format/ByInput/ChangeDash",
+            case 27: rSwFlags.bSetNumRule = (aValues[nProp] == true); break; 
// "Format/ByInput/ApplyNumbering/Enable",
+            case 28: rSwFlags.bSetBorder = (aValues[nProp] == true); break; // 
"Format/ByInput/ChangeToBorders",
+            case 29: rSwFlags.bCreateTable = (aValues[nProp] == true); break; 
// "Format/ByInput/ChangeToTable",
+            case 30: rSwFlags.bReplaceStylesByInput =  (aValues[nProp] == 
true); break; // "Format/ByInput/ReplaceStyle",
+            case 31: rSwFlags.bAFormatByInpDelSpacesAtSttEnd =  
(aValues[nProp] == true); break; // "Format/ByInput/DelSpacesAtStartEnd",
+            case 32: rSwFlags.bAFormatByInpDelSpacesBetweenLines = 
(aValues[nProp] == true); break; // "Format/ByInput/DelSpacesBetween",
+            case 33: rSwFlags.bAutoCompleteWords = (aValues[nProp] == true); 
break; // "Completion/Enable",
+            case 34:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.nAutoCmpltWordLen =
+                    sal::static_int_cast< sal_uInt16 >(nVal);
+            }
+            break; // "Completion/MinWordLen",
+            case 35:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.nAutoCmpltListLen =
+                    sal::static_int_cast< sal_uInt32 >(nVal);
+            }
+            break; // "Completion/MaxListLen",
+            case 36: rSwFlags.bAutoCmpltCollectWords = (aValues[nProp] == 
true); break; // "Completion/CollectWords",
+            case 37: rSwFlags.bAutoCmpltEndless = (aValues[nProp] == true); 
break; // "Completion/EndlessList",
+            case 38: rSwFlags.bAutoCmpltAppendBlank = (aValues[nProp] == 
true); break; // "Completion/AppendBlank",
+            case 39: rSwFlags.bAutoCmpltShowAsTip = (aValues[nProp] == true); 
break; // "Completion/ShowAsTip",
+            case 40:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.nAutoCmpltExpandKey =
+                    sal::static_int_cast< sal_uInt16 >(nVal);
+            }
+            break; // "Completion/AcceptKey"
+            case 41: rSwFlags.bAutoCmpltKeepList = (aValues[nProp] == true); 
break;//"Completion/KeepList"
+            case 42:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.cByInputBullet =
+                    sal::static_int_cast< sal_Unicode >(nVal);
+            }
+            break;// "Format/ByInput/ApplyNumbering/SpecialCharacter/Char",
+            case 43:
+            {
+                OUString sTemp; aValues[nProp] >>= sTemp;
+                rSwFlags.aByInputBulletFont.SetFamilyName(sTemp);
+            }
+            break;// "Format/ByInput/ApplyNumbering/SpecialCharacter/Font",
+            case 44:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aByInputBulletFont.SetFamily(FontFamily(nVal));
+            }
+            break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontFamily",
+            case 45:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aByInputBulletFont.SetCharSet(rtl_TextEncoding(nVal));
+            }
+            break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontCharset",
+            case 46:
+            {
+                sal_Int32 nVal = 0; aValues[nProp] >>= nVal;
+                rSwFlags.aByInputBulletFont.SetPitch(FontPitch(nVal));
             }
+            break;// 
"Format/ByInput/ApplyNumbering/SpecialCharacter/FontPitch",
+            case 47: rSwFlags.bSetDOIAttr = (aValues[nProp] == true); break; 
// "Format/Option/SetDOIAttribute",
+            case 48: rSwFlags.bSetNumRuleAfterSpace = (aValues[nProp] == 
true); break; // "Format/ByInput/ApplyNumberingAfterSpace",
+            case 49: rSwFlags.bReplaceStyles = (aValues[nProp] == true); 
break; // "Format/Option/ReplaceStyle",
         }
     }
 }
diff --git a/sw/qa/extras/autocorrect/autocorrect.cxx 
b/sw/qa/extras/autocorrect/autocorrect.cxx
index 096702635df9..b684a37c0af3 100644
--- a/sw/qa/extras/autocorrect/autocorrect.cxx
+++ b/sw/qa/extras/autocorrect/autocorrect.cxx
@@ -88,19 +88,9 @@ CPPUNIT_TEST_FIXTURE(SwAutoCorrectTest, tdfTdf44293)
 
 CPPUNIT_TEST_FIXTURE(SwAutoCorrectTest, testTdf151801)
 {
-    comphelper::ScopeGuard g([]() {
-        std::shared_ptr<comphelper::ConfigurationChanges> pBatch(
-            comphelper::ConfigurationChanges::create());
-        officecfg::Office::Common::AutoCorrect::SingleQuoteAtStart::set(0, 
pBatch);
-        officecfg::Office::Common::AutoCorrect::SingleQuoteAtEnd::set(0, 
pBatch);
-        return pBatch->commit();
-    });
     // Set Single Quotes › and ‹
-    std::shared_ptr<comphelper::ConfigurationChanges> pBatch(
-        comphelper::ConfigurationChanges::create());
-    officecfg::Office::Common::AutoCorrect::SingleQuoteAtStart::set(8250, 
pBatch);
-    officecfg::Office::Common::AutoCorrect::SingleQuoteAtEnd::set(8249, 
pBatch);
-    pBatch->commit();
+    
ScopedConfigValue<officecfg::Office::Common::AutoCorrect::SingleQuoteAtStart> 
aCfg1(8250);
+    
ScopedConfigValue<officecfg::Office::Common::AutoCorrect::SingleQuoteAtEnd> 
aCfg2(8249);
 
     createSwDoc("de-DE.fodt");
 

Reply via email to