sw/inc/docufld.hxx                  |   16 ++++++++--------
 sw/source/core/fields/docufld.cxx   |   18 +++++++++---------
 sw/source/core/fields/fldbas.cxx    |   10 +++++-----
 sw/source/core/unocore/unofield.cxx |    2 +-
 sw/source/filter/html/htmlfld.cxx   |   12 ++++++------
 sw/source/filter/html/htmlfldw.cxx  |   14 +++++++-------
 sw/source/filter/ww8/ww8par.cxx     |    2 +-
 sw/source/filter/ww8/ww8par5.cxx    |    2 +-
 sw/source/uibase/fldui/fldmgr.cxx   |   32 ++++++++++++++++++++++----------
 9 files changed, 60 insertions(+), 48 deletions(-)

New commits:
commit 006aa2ac3db53bab48977db83a010c93bfa1b883
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Jul 5 19:03:13 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Tue Jul 8 09:54:13 2025 +0200

    Convert SwPageNumSubType to scoped enum
    
    Change-Id: I3e1a77d6f6fecf577375a82998f2db8a2991f8e8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187502
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx
index ae6c51707788..0aaff9831db4 100644
--- a/sw/inc/docufld.hxx
+++ b/sw/inc/docufld.hxx
@@ -103,11 +103,11 @@ enum class SwDocInfoSubType : sal_uInt16
 };
 namespace o3tl { template<> struct typed_flags<SwDocInfoSubType> : 
is_typed_flags<SwDocInfoSubType, 0xffff> {}; }
 
-enum SwPageNumSubType
+enum class SwPageNumSubType
 {
-    PG_RANDOM,
-    PG_NEXT,
-    PG_PREV
+    Random,
+    Next,
+    Previous
 };
 
 // NOTE: Possibly the first 15 values in the below enum are required
@@ -163,7 +163,7 @@ public:
 class SW_DLLPUBLIC SwPageNumberField final : public SwField
 {
     OUString m_sUserStr;
-    sal_uInt16  m_nSubType;
+    SwPageNumSubType  m_nSubType;
     short   m_nOffset;
     // fdo#58074 store page number in SwField, not SwFieldType
     sal_uInt16 m_nPageNumber;
@@ -171,7 +171,7 @@ class SW_DLLPUBLIC SwPageNumberField final : public SwField
     SvxNumType m_nFormat;
 
 public:
-    SwPageNumberField(SwPageNumberFieldType*, sal_uInt16 nSub,
+    SwPageNumberField(SwPageNumberFieldType*, SwPageNumSubType nSub,
                       SvxNumType nFormat, short nOff = 0,
                       sal_uInt16 const nPageNumber = 0,
                       sal_uInt16 const nMaxPage = 0);
@@ -188,8 +188,8 @@ public:
     virtual OUString GetPar2() const override;
     virtual void        SetPar2(const OUString& rStr) override;
 
-    sal_uInt16          GetSubType() const;
-    void                SetSubType(sal_uInt16 n) { m_nSubType = n; }
+    SwPageNumSubType    GetSubType() const;
+    void                SetSubType(SwPageNumSubType n) { m_nSubType = n; }
     virtual bool        QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) 
const override;
     virtual bool        PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich 
) override;
 
diff --git a/sw/source/core/fields/docufld.cxx 
b/sw/source/core/fields/docufld.cxx
index a6987f4281a1..2abd189f78a6 100644
--- a/sw/source/core/fields/docufld.cxx
+++ b/sw/source/core/fields/docufld.cxx
@@ -174,7 +174,7 @@ void SwPageNumberFieldType::ChangeExpansion( SwDoc* pDoc,
 }
 
 SwPageNumberField::SwPageNumberField(SwPageNumberFieldType* pTyp,
-          sal_uInt16 nSub, SvxNumType nFormat, short nOff,
+          SwPageNumSubType nSub, SvxNumType nFormat, short nOff,
           sal_uInt16 const nPageNumber, sal_uInt16 const nMaxPage)
     : SwField(pTyp), m_nSubType(nSub), m_nOffset(nOff)
     , m_nPageNumber(nPageNumber)
@@ -195,7 +195,7 @@ OUString SwPageNumberField::ExpandImpl(SwRootFrame 
const*const) const
     OUString sRet;
     SwPageNumberFieldType* pFieldType = 
static_cast<SwPageNumberFieldType*>(GetTyp());
 
-    if( PG_NEXT == m_nSubType && 1 != m_nOffset )
+    if( SwPageNumSubType::Next == m_nSubType && 1 != m_nOffset )
     {
         sRet = pFieldType->Expand(GetFormat(), 1, m_nPageNumber, m_nMaxPage, 
m_sUserStr, GetLanguage());
         if (!sRet.isEmpty())
@@ -203,7 +203,7 @@ OUString SwPageNumberField::ExpandImpl(SwRootFrame 
const*const) const
             sRet = pFieldType->Expand(GetFormat(), m_nOffset, m_nPageNumber, 
m_nMaxPage, m_sUserStr, GetLanguage());
         }
     }
-    else if( PG_PREV == m_nSubType && -1 != m_nOffset )
+    else if( SwPageNumSubType::Previous == m_nSubType && -1 != m_nOffset )
     {
         sRet = pFieldType->Expand(GetFormat(), -1, m_nPageNumber, m_nMaxPage, 
m_sUserStr, GetLanguage());
         if (!sRet.isEmpty())
@@ -236,7 +236,7 @@ void SwPageNumberField::SetPar2(const OUString& rStr)
     m_nOffset = static_cast<short>(rStr.toInt32());
 }
 
-sal_uInt16 SwPageNumberField::GetSubType() const
+SwPageNumSubType SwPageNumberField::GetSubType() const
 {
     return m_nSubType;
 }
@@ -255,9 +255,9 @@ bool SwPageNumberField::QueryValue( uno::Any& rAny, 
sal_uInt16 nWhichId ) const
         {
             text::PageNumberType eType;
             eType = text::PageNumberType_CURRENT;
-            if(m_nSubType == PG_PREV)
+            if(m_nSubType == SwPageNumSubType::Previous)
                 eType = text::PageNumberType_PREV;
-            else if(m_nSubType == PG_NEXT)
+            else if(m_nSubType == SwPageNumSubType::Next)
                 eType = text::PageNumberType_NEXT;
             rAny <<= eType;
         }
@@ -295,13 +295,13 @@ bool SwPageNumberField::PutValue( const uno::Any& rAny, 
sal_uInt16 nWhichId )
         switch( static_cast<text::PageNumberType>(SWUnoHelper::GetEnumAsInt32( 
rAny )) )
         {
             case text::PageNumberType_CURRENT:
-                m_nSubType = PG_RANDOM;
+                m_nSubType = SwPageNumSubType::Random;
             break;
             case text::PageNumberType_PREV:
-                m_nSubType = PG_PREV;
+                m_nSubType = SwPageNumSubType::Previous;
             break;
             case text::PageNumberType_NEXT:
-                m_nSubType = PG_NEXT;
+                m_nSubType = SwPageNumSubType::Next;
             break;
             default:
                 bRet = false;
diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx
index 92aad51de83d..bfa4a9fe5801 100644
--- a/sw/source/core/fields/fldbas.cxx
+++ b/sw/source/core/fields/fldbas.cxx
@@ -305,10 +305,10 @@ SwFieldTypesEnum SwField::GetTypeId() const
     case SwFieldIds::PageNumber:
         {
             auto pPageNumberField = static_cast<const 
SwPageNumberField*>(this);
-            auto nSubType = pPageNumberField->GetSubType();
-            if( PG_NEXT == nSubType )
+            SwPageNumSubType nSubType = pPageNumberField->GetSubType();
+            if( SwPageNumSubType::Next == nSubType )
                 nRet = SwFieldTypesEnum::NextPage;
-            else if( PG_PREV == nSubType )
+            else if( SwPageNumSubType::Previous == nSubType )
                 nRet = SwFieldTypesEnum::PreviousPage;
             else
                 nRet = SwFieldTypesEnum::PageNumber;
@@ -473,7 +473,7 @@ sal_uInt16 SwField::GetUntypedSubType() const
     case SwFieldIds::DocStat:
         return static_cast<sal_uInt16>(static_cast<const 
SwDocStatField*>(this)->GetSubType());
     case SwFieldIds::PageNumber:
-        return static_cast<const SwPageNumberField*>(this)->GetSubType();
+        return static_cast<sal_uInt16>(static_cast<const 
SwPageNumberField*>(this)->GetSubType());
     case SwFieldIds::DbNextSet:
     case SwFieldIds::DbNumSet:
     case SwFieldIds::DatabaseName:
@@ -524,7 +524,7 @@ void SwField::SetUntypedSubType(sal_uInt16 n)
         
static_cast<SwDocStatField*>(this)->SetSubType(static_cast<SwDocStatSubType>(n));
         break;
     case SwFieldIds::PageNumber:
-        static_cast<SwPageNumberField*>(this)->SetSubType(n);
+        
static_cast<SwPageNumberField*>(this)->SetSubType(static_cast<SwPageNumSubType>(n));
         break;
     case SwFieldIds::DbNextSet:
     case SwFieldIds::DbNumSet:
diff --git a/sw/source/core/unocore/unofield.cxx 
b/sw/source/core/unocore/unofield.cxx
index 04819887e1d3..0da1d062df5a 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -1653,7 +1653,7 @@ void SAL_CALL SwXTextField::attach(
             {
                 SwFieldType* pFieldType = 
pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::PageNumber);
                 SwPageNumberField *const pPNField = new SwPageNumberField(
-                    static_cast<SwPageNumberFieldType*>(pFieldType), PG_RANDOM,
+                    static_cast<SwPageNumberFieldType*>(pFieldType), 
SwPageNumSubType::Random,
                     static_cast<SvxNumType>(m_pImpl->m_pProps->nFormat),
                     m_pImpl->m_pProps->nUSHORT1);
                 xField.reset(pPNField);
diff --git a/sw/source/filter/html/htmlfld.cxx 
b/sw/source/filter/html/htmlfld.cxx
index 901be06a099b..ec0ffe1ac88b 100644
--- a/sw/source/filter/html/htmlfld.cxx
+++ b/sw/source/filter/html/htmlfld.cxx
@@ -137,9 +137,9 @@ HTMLOptionEnum<SwAuthorFormat> const 
aHTMLAuthorFieldFormatTable[] =
 
 HTMLOptionEnum<SwPageNumSubType> const aHTMLPageNumFieldSubTable[] =
 {
-    { OOO_STRING_SW_HTML_FS_random,      PG_RANDOM },
-    { OOO_STRING_SW_HTML_FS_next,        PG_NEXT },
-    { OOO_STRING_SW_HTML_FS_prev,        PG_PREV },
+    { OOO_STRING_SW_HTML_FS_random,      SwPageNumSubType::Random },
+    { OOO_STRING_SW_HTML_FS_next,        SwPageNumSubType::Next },
+    { OOO_STRING_SW_HTML_FS_prev,        SwPageNumSubType::Previous },
     { nullptr,                           SwPageNumSubType(0)  }
 };
 
@@ -413,13 +413,13 @@ void SwHTMLParser::NewField()
 
                 if( nFormat!=SVX_NUM_CHAR_SPECIAL && !aValue.isEmpty() )
                     nOff = static_cast<short>(aValue.toInt32());
-                else if( nSub == PG_NEXT  )
+                else if( nSub == SwPageNumSubType::Next  )
                     nOff = 1;
-                else if( nSub == PG_PREV  )
+                else if( nSub == SwPageNumSubType::Previous  )
                     nOff = -1;
 
                 if( nFormat==SVX_NUM_CHAR_SPECIAL &&
-                    nSub==PG_RANDOM )
+                    nSub == SwPageNumSubType::Random )
                     nFormat = SVX_NUM_PAGEDESC;
 
                 xNewField.reset(new 
SwPageNumberField(static_cast<SwPageNumberFieldType*>(pType), nSub, nFormat, 
nOff));
diff --git a/sw/source/filter/html/htmlfldw.cxx 
b/sw/source/filter/html/htmlfldw.cxx
index c23ceab25fe8..13416fad01e2 100644
--- a/sw/source/filter/html/htmlfldw.cxx
+++ b/sw/source/filter/html/htmlfldw.cxx
@@ -140,12 +140,12 @@ static SwHTMLWriter& OutHTML_SwField( SwHTMLWriter& rWrt, 
const SwField* pField,
             {
                 auto pPageNumberField = static_cast<const SwPageNumberField 
*>(pField);
                 pTypeStr = OOO_STRING_SW_HTML_FT_page;
-                SwPageNumSubType eSubType = 
static_cast<SwPageNumSubType>(pPageNumberField->GetSubType());
+                SwPageNumSubType eSubType = pPageNumberField->GetSubType();
                 switch( eSubType )
                 {
-                    case PG_RANDOM:     pSubStr = 
OOO_STRING_SW_HTML_FS_random;     break;
-                    case PG_NEXT:       pSubStr = OOO_STRING_SW_HTML_FS_next;  
     break;
-                    case PG_PREV:       pSubStr = OOO_STRING_SW_HTML_FS_prev;  
     break;
+                    case SwPageNumSubType::Random:     pSubStr = 
OOO_STRING_SW_HTML_FS_random;     break;
+                    case SwPageNumSubType::Next:       pSubStr = 
OOO_STRING_SW_HTML_FS_next;       break;
+                    case SwPageNumSubType::Previous:       pSubStr = 
OOO_STRING_SW_HTML_FS_prev;       break;
                 }
                 OSL_ENSURE( pSubStr, "unknown sub type for SwPageNumberField" 
);
                 SvxNumType nFormat = pPageNumberField->GetFormat();
@@ -159,9 +159,9 @@ static SwHTMLWriter& OutHTML_SwField( SwHTMLWriter& rWrt, 
const SwField* pField,
                 {
                     const OUString aPar2Value = pField->GetPar2();
                     short nValue = static_cast<short>(aPar2Value.toInt32());
-                    if( (eSubType == PG_NEXT && nValue!=1) ||
-                        (eSubType == PG_PREV && nValue!=-1) ||
-                        (eSubType == PG_RANDOM && nValue!=0) )
+                    if( (eSubType == SwPageNumSubType::Next && nValue!=1) ||
+                        (eSubType == SwPageNumSubType::Previous && nValue!=-1) 
||
+                        (eSubType == SwPageNumSubType::Random && nValue!=0) )
                     {
                         aValue = aPar2Value;
                     }
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 80df830de865..e645ac0d5cee 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -3644,7 +3644,7 @@ bool SwWW8ImplReader::ReadChar(tools::Long nPosCp, 
tools::Long nCpOfs)
                 // Page number
                 SwPageNumberField aField(
                     
static_cast<SwPageNumberFieldType*>(m_rDoc.getIDocumentFieldsAccess().GetSysFieldType(
-                    SwFieldIds::PageNumber )), PG_RANDOM, SVX_NUM_ARABIC);
+                    SwFieldIds::PageNumber )), SwPageNumSubType::Random, 
SVX_NUM_ARABIC);
                 m_rDoc.getIDocumentContentOperations().InsertPoolItem(*m_pPaM, 
SwFormatField(aField));
             }
             else
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 8b2aa0c7bc2c..e0975e461e7d 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -1997,7 +1997,7 @@ eF_ResT SwWW8ImplReader::Read_F_CurPage( WW8FieldDesc*, 
OUString& rStr )
 {
     // page number
     SwPageNumberField aField( static_cast<SwPageNumberFieldType*>(
-        m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( 
SwFieldIds::PageNumber )), PG_RANDOM,
+        m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( 
SwFieldIds::PageNumber )), SwPageNumSubType::Random,
         GetNumberPara(rStr, true));
 
     m_rDoc.getIDocumentContentOperations().InsertPoolItem( *m_pPaM, 
SwFormatField( aField ) );
diff --git a/sw/source/uibase/fldui/fldmgr.cxx 
b/sw/source/uibase/fldui/fldmgr.cxx
index 0faff4c545ec..f8d679fa4925 100644
--- a/sw/source/uibase/fldui/fldmgr.cxx
+++ b/sw/source/uibase/fldui/fldmgr.cxx
@@ -897,7 +897,7 @@ bool SwFieldMgr::InsertField(
     bool bTable = false;
     bool bPageVar = false;
     sal_uInt32 nFormatId = rData.m_nFormatId;
-    sal_uInt16 nSubType = rData.m_nSubType;
+    sal_uInt16 nInputSubType = rData.m_nSubType; // only used for SwInputField
     sal_Unicode cSeparator = rData.m_cSeparator;
     SwWrtShell* pCurShell = rData.m_pSh;
     if(!pCurShell)
@@ -965,6 +965,7 @@ bool SwFieldMgr::InsertField(
     case SwFieldTypesEnum::Date:
     case SwFieldTypesEnum::Time:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             sal_uInt16 nSub = static_cast< sal_uInt16 >(rData.m_nTypeId == 
SwFieldTypesEnum::Date ? DATEFLD : TIMEFLD);
             nSub |= nSubType == DATE_VAR ? 0 : FIXEDFLD;
 
@@ -1008,6 +1009,7 @@ bool SwFieldMgr::InsertField(
     case SwFieldTypesEnum::PreviousPage:
     case SwFieldTypesEnum::PageNumber:
         {
+            SwPageNumSubType nSubType = 
static_cast<SwPageNumSubType>(rData.m_nSubType);
             short nOff = static_cast<short>(rData.m_sPar2.toInt32());
 
             if(rData.m_nTypeId == SwFieldTypesEnum::NextPage)
@@ -1016,7 +1018,7 @@ bool SwFieldMgr::InsertField(
                     nOff = 1;
                 else
                     nOff += 1;
-                nSubType = PG_NEXT;
+                nSubType = SwPageNumSubType::Next;
             }
             else if(rData.m_nTypeId == SwFieldTypesEnum::PreviousPage)
             {
@@ -1024,23 +1026,24 @@ bool SwFieldMgr::InsertField(
                     nOff = -1;
                 else
                     nOff -= 1;
-                nSubType =  PG_PREV;
+                nSubType =  SwPageNumSubType::Previous;
             }
             else
-                nSubType = PG_RANDOM;
+                nSubType = SwPageNumSubType::Random;
 
             SwPageNumberFieldType* pTyp =
                 static_cast<SwPageNumberFieldType*>( 
pCurShell->GetFieldType(0, SwFieldIds::PageNumber) );
             pField.reset(new SwPageNumberField(pTyp, nSubType, 
static_cast<SvxNumType>(nFormatId), nOff));
 
             if( SVX_NUM_CHAR_SPECIAL == nFormatId &&
-                ( PG_PREV == nSubType || PG_NEXT == nSubType ) )
+                ( SwPageNumSubType::Previous == nSubType || 
SwPageNumSubType::Next == nSubType ) )
                 static_cast<SwPageNumberField*>(pField.get())->SetUserString( 
rData.m_sPar2 );
             break;
         }
 
     case SwFieldTypesEnum::DocumentStatistics:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwDocStatFieldType* pTyp =
                 static_cast<SwDocStatFieldType*>( pCurShell->GetFieldType(0, 
SwFieldIds::DocStat) );
             pField.reset(new SwDocStatField(pTyp, 
static_cast<SwDocStatSubType>(nSubType), static_cast<SvxNumType>(nFormatId)));
@@ -1130,6 +1133,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::GetRef:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwGetRefFieldType* pTyp =
                 static_cast<SwGetRefFieldType*>( pCurShell->GetFieldType(0, 
SwFieldIds::GetRef) );
 
@@ -1203,6 +1207,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::DocumentInfo:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwDocInfoFieldType* pTyp = static_cast<SwDocInfoFieldType*>( 
pCurShell->GetFieldType(
                 0, SwFieldIds::DocInfo ) );
             pField.reset(new SwDocInfoField(pTyp, 
static_cast<SwDocInfoSubType>(nSubType), rData.m_sPar1, nFormatId));
@@ -1211,6 +1216,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::ExtendedUser:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwExtUserFieldType* pTyp = static_cast<SwExtUserFieldType*>( 
pCurShell->GetFieldType(
                 0, SwFieldIds::ExtUser) );
             pField.reset(new SwExtUserField(pTyp, nSubType, 
static_cast<SwAuthorFormat>(nFormatId)));
@@ -1222,6 +1228,7 @@ bool SwFieldMgr::InsertField(
 #if HAVE_FEATURE_DBCONNECTIVITY && !ENABLE_FUZZERS
             SwDBData aDBData;
             OUString sPar1;
+            sal_uInt16 nSubType = rData.m_nSubType;
 
             if (rData.m_sPar1.indexOf(DB_DELIM)<0)
             {
@@ -1349,6 +1356,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::User:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwUserFieldType* pTyp =
                 static_cast<SwUserFieldType*>( 
pCurShell->GetFieldType(SwFieldIds::User, rData.m_sPar1) );
 
@@ -1367,7 +1375,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::Input:
         {
-            if ((nSubType & 0x00ff) == INP_VAR)
+            if ((nInputSubType & 0x00ff) == INP_VAR)
             {
                 SwSetExpFieldType* pTyp = static_cast<SwSetExpFieldType*>(
                     pCurShell->GetFieldType(SwFieldIds::SetExp, rData.m_sPar1) 
);
@@ -1380,7 +1388,7 @@ bool SwFieldMgr::InsertField(
 
                     // Don't change type of SwSetExpFieldType:
                     sal_uInt16 nOldSubType = pExpField->GetSubType();
-                    pExpField->SetSubType(nOldSubType | (nSubType & 0xff00));
+                    pExpField->SetSubType(nOldSubType | (nInputSubType & 
0xff00));
 
                     pExpField->SetPromptText(rData.m_sPar2);
                     pExpField->SetInputFlag(true) ;
@@ -1396,13 +1404,14 @@ bool SwFieldMgr::InsertField(
                     static_cast<SwInputFieldType*>( pCurShell->GetFieldType(0, 
SwFieldIds::Input) );
 
                 pField.reset(
-                    new SwInputField( pTyp, rData.m_sPar1, rData.m_sPar2, 
nSubType|nsSwExtendedSubType::SUB_INVISIBLE, nFormatId));
+                    new SwInputField( pTyp, rData.m_sPar1, rData.m_sPar2, 
nInputSubType|nsSwExtendedSubType::SUB_INVISIBLE, nFormatId));
             }
             break;
         }
 
     case SwFieldTypesEnum::Set:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             if (rData.m_sPar2.isEmpty())   // empty variables are not allowed
                 return false;
 
@@ -1419,6 +1428,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::Sequence:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             SwSetExpFieldType* pTyp = static_cast<SwSetExpFieldType*>( 
pCurShell->InsertFieldType(
                 SwSetExpFieldType(pCurShell->GetDoc(), UIName(rData.m_sPar1), 
nsSwGetSetExpType::GSE_SEQ)));
 
@@ -1436,6 +1446,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::Get:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             // is there a corresponding SetField
             SwSetExpFieldType* pSetTyp = static_cast<SwSetExpFieldType*>(
                 pCurShell->GetFieldType(SwFieldIds::SetExp, rData.m_sPar1));
@@ -1454,6 +1465,7 @@ bool SwFieldMgr::InsertField(
 
     case SwFieldTypesEnum::Formel:
         {
+            sal_uInt16 nSubType = rData.m_nSubType;
             if(pCurShell->GetFrameType(nullptr,false) & FrameTypeFlags::TABLE)
             {
                 pCurShell->StartAllAction();
@@ -1497,7 +1509,7 @@ bool SwFieldMgr::InsertField(
         case SwFieldTypesEnum::SetRefPage:
             pField.reset( new SwRefPageSetField( 
static_cast<SwRefPageSetFieldType*>(
                                 pCurShell->GetFieldType( 0, 
SwFieldIds::RefPageSet ) ),
-                                static_cast<short>(rData.m_sPar2.toInt32()), 0 
!= nSubType  ) );
+                                static_cast<short>(rData.m_sPar2.toInt32()), 0 
!= rData.m_nSubType  ) );
             bPageVar = true;
             break;
 
@@ -1551,7 +1563,7 @@ bool SwFieldMgr::InsertField(
 
             // start dialog, not before the field is inserted tdf#99529
             pCurShell->Left(SwCursorSkipMode::Chars, false,
-                (INP_VAR == (nSubType & 0xff) || 
pCurShell->GetViewOptions()->IsFieldName()) ? 1 : 2,
+                (INP_VAR == (nInputSubType & 0xff) || 
pCurShell->GetViewOptions()->IsFieldName()) ? 1 : 2,
                 false);
             pCurShell->StartInputFieldDlg(pField.get(), false, true, 
rData.m_pParent);
 

Reply via email to