[Libreoffice-commits] core.git: sw/inc sw/qa sw/README sw/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Mar 7 08:42:48 UTC 2017


 sw/README                                        |    4 
 sw/inc/IDocumentFieldsAccess.hxx                 |    5 
 sw/inc/crsrsh.hxx                                |    2 
 sw/inc/editsh.hxx                                |    8 
 sw/inc/fldbas.hxx                                |   99 +++----
 sw/qa/core/uwriter.cxx                           |    2 
 sw/qa/extras/uiwriter/uiwriter.cxx               |   10 
 sw/source/core/access/accpara.cxx                |   27 +-
 sw/source/core/bastyp/calc.cxx                   |    4 
 sw/source/core/crsr/annotationmark.cxx           |    2 
 sw/source/core/crsr/crstrvl.cxx                  |   18 -
 sw/source/core/doc/DocumentFieldsManager.cxx     |  227 ++++++++--------
 sw/source/core/doc/DocumentStatisticsManager.cxx |    8 
 sw/source/core/doc/DocumentTimerManager.cxx      |    2 
 sw/source/core/doc/doc.cxx                       |   28 +-
 sw/source/core/doc/docdesc.cxx                   |    4 
 sw/source/core/doc/docfld.cxx                    |  109 ++++----
 sw/source/core/doc/docfmt.cxx                    |    2 
 sw/source/core/doc/doclay.cxx                    |    4 
 sw/source/core/doc/doctxm.cxx                    |    4 
 sw/source/core/docnode/ndnum.cxx                 |    2 
 sw/source/core/docnode/nodes.cxx                 |    4 
 sw/source/core/edit/edfld.cxx                    |   31 +-
 sw/source/core/edit/edfldexp.cxx                 |   37 +-
 sw/source/core/fields/authfld.cxx                |    2 
 sw/source/core/fields/cellfml.cxx                |   10 
 sw/source/core/fields/chpfld.cxx                 |    2 
 sw/source/core/fields/dbfld.cxx                  |   10 
 sw/source/core/fields/ddefld.cxx                 |    2 
 sw/source/core/fields/docufld.cxx                |   30 +-
 sw/source/core/fields/expfld.cxx                 |   12 
 sw/source/core/fields/fldbas.cxx                 |  146 +++++-----
 sw/source/core/fields/flddat.cxx                 |    2 
 sw/source/core/fields/flddropdown.cxx            |    2 
 sw/source/core/fields/fldlst.cxx                 |   12 
 sw/source/core/fields/macrofld.cxx               |    2 
 sw/source/core/fields/reffld.cxx                 |   12 
 sw/source/core/fields/scrptfld.cxx               |    2 
 sw/source/core/fields/tblcalc.cxx                |    2 
 sw/source/core/fields/usrfld.cxx                 |    4 
 sw/source/core/frmedt/fecopy.cxx                 |    4 
 sw/source/core/inc/DocumentFieldsManager.hxx     |    4 
 sw/source/core/inc/docfld.hxx                    |    2 
 sw/source/core/inc/rolbck.hxx                    |    4 
 sw/source/core/inc/unofield.hxx                  |    5 
 sw/source/core/text/EnhancedPDFExportHelper.cxx  |    8 
 sw/source/core/text/txtfld.cxx                   |   30 +-
 sw/source/core/txtnode/atrfld.cxx                |   74 ++---
 sw/source/core/txtnode/ndtxt.cxx                 |    2 
 sw/source/core/txtnode/thints.cxx                |   57 ++--
 sw/source/core/undo/SwUndoField.cxx              |    2 
 sw/source/core/undo/rolbck.cxx                   |    8 
 sw/source/core/unocore/unocoll.cxx               |   12 
 sw/source/core/unocore/unofield.cxx              |  308 +++++++++++------------
 sw/source/core/view/viewsh.cxx                   |    4 
 sw/source/core/view/vnew.cxx                     |    4 
 sw/source/filter/basflt/fltshell.cxx             |    2 
 sw/source/filter/html/htmlatr.cxx                |    6 
 sw/source/filter/html/htmlbas.cxx                |    2 
 sw/source/filter/html/htmlfld.cxx                |   67 ++---
 sw/source/filter/html/htmlfldw.cxx               |   23 -
 sw/source/filter/html/swhtml.cxx                 |   12 
 sw/source/filter/html/wrthtml.cxx                |    6 
 sw/source/filter/ww8/docxattributeoutput.cxx     |   12 
 sw/source/filter/ww8/rtfattributeoutput.cxx      |    4 
 sw/source/filter/ww8/ww8atr.cxx                  |   52 +--
 sw/source/filter/ww8/ww8par.cxx                  |    6 
 sw/source/filter/ww8/ww8par3.cxx                 |    4 
 sw/source/filter/ww8/ww8par5.cxx                 |   40 +-
 sw/source/filter/xml/xmltbli.cxx                 |    4 
 sw/source/ui/config/optload.cxx                  |   10 
 sw/source/ui/dbui/dbinsdlg.cxx                   |    2 
 sw/source/ui/fldui/DropDownFieldDialog.cxx       |    2 
 sw/source/ui/fldui/fldpage.cxx                   |    2 
 sw/source/ui/fldui/fldref.cxx                    |   10 
 sw/source/ui/fldui/fldvar.cxx                    |   42 +--
 sw/source/ui/fldui/inpdlg.cxx                    |    4 
 sw/source/ui/fldui/javaedit.cxx                  |    2 
 sw/source/ui/frmdlg/cption.cxx                   |   14 -
 sw/source/ui/index/cnttab.cxx                    |   12 
 sw/source/ui/index/swuiidxmrk.cxx                |   14 -
 sw/source/uibase/app/docsh.cxx                   |    2 
 sw/source/uibase/app/docsh2.cxx                  |    2 
 sw/source/uibase/dochdl/swdtflvr.cxx             |    2 
 sw/source/uibase/docvw/AnnotationWin.cxx         |    4 
 sw/source/uibase/docvw/PostItMgr.cxx             |    8 
 sw/source/uibase/docvw/edtwin.cxx                |    4 
 sw/source/uibase/docvw/edtwin2.cxx               |   25 -
 sw/source/uibase/fldui/fldmgr.cxx                |   92 +++---
 sw/source/uibase/inc/fldmgr.hxx                  |    7 
 sw/source/uibase/index/toxmgr.cxx                |    2 
 sw/source/uibase/shells/basesh.cxx               |    2 
 sw/source/uibase/shells/textfld.cxx              |   32 +-
 sw/source/uibase/shells/textidx.cxx              |    2 
 sw/source/uibase/uiview/viewdlg2.cxx             |    8 
 sw/source/uibase/uiview/viewmdi.cxx              |    2 
 sw/source/uibase/uno/unotxdoc.cxx                |    6 
 sw/source/uibase/wrtsh/wrtsh2.cxx                |   18 -
 98 files changed, 1012 insertions(+), 983 deletions(-)

New commits:
commit 08f5355dee375503167989e21271a4601449a257
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Mar 6 13:33:15 2017 +0200

    convert RES_FIELDS to scoped enum
    
    and rename to SwFieldIds
    
    Change-Id: I50d2b7550f68b4b020ffc1603f931c671c8e1de6
    Reviewed-on: https://gerrit.libreoffice.org/34924
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/sw/README b/sw/README
index 4fe43ff..ea6c882 100644
--- a/sw/README
+++ b/sw/README
@@ -109,7 +109,7 @@ There are several sub-categories of SwTextAttr:
 
 There are multiple model classes involved for fields:
 
-- enum RES_FIELDS enumerates the different types of fields.
+- enum SwFieldIds enumerates the different types of fields.
 - SwFieldType contains some shared stuff for all fields of a type.
   There are many subclasses of SwFieldType, one for each different type
   of field.
@@ -117,7 +117,7 @@ There are multiple model classes involved for fields:
   which is created in DocumentFieldsManager::InitFieldTypes()
   but for some there are more than one, and they are dynamically created, see
   DocumentFieldsManager::InsertFieldType().  An example for the latter are
-  variable fields (RES_GETEXPFLD/RES_SETEXPFLD), with one SwFieldType per
+  variable fields (SwFieldIds::GetExp/SwFieldIds::SetExp), with one SwFieldType per
   variable.
 - SwXFieldMaster is the UNO wrapper of a field type.
   It is a SwClient registered at the SwFieldType.
diff --git a/sw/inc/IDocumentFieldsAccess.hxx b/sw/inc/IDocumentFieldsAccess.hxx
index 83d65b5..c78e5a2 100644
--- a/sw/inc/IDocumentFieldsAccess.hxx
+++ b/sw/inc/IDocumentFieldsAccess.hxx
@@ -36,6 +36,7 @@ class DateTime;
 class SetGetExpField;
 struct SwHash;
 class SwNode;
+enum class SwFieldIds : sal_uInt16;
 
 namespace rtl { class OUString; }
 using rtl::OUString;
@@ -50,9 +51,9 @@ namespace com { namespace sun { namespace star { namespace uno { class Any; } }
 
     virtual SwFieldType *InsertFieldType(const SwFieldType &) = 0;
 
-    virtual SwFieldType *GetSysFieldType( const sal_uInt16 eWhich ) const = 0;
+    virtual SwFieldType *GetSysFieldType( const SwFieldIds eWhich ) const = 0;
 
-    virtual SwFieldType* GetFieldType(sal_uInt16 nResId, const OUString& rName, bool bDbFieldMatching) const = 0;
+    virtual SwFieldType* GetFieldType(SwFieldIds nResId, const OUString& rName, bool bDbFieldMatching) const = 0;
 
     virtual void RemoveFieldType(size_t nField) = 0;
 
diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index 554a6c3..064990b 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -685,7 +685,7 @@ public:
     bool MoveFieldType(
         const SwFieldType* pFieldType,
         const bool bNext,
-        const sal_uInt16 nResType = USHRT_MAX,
+        const SwFieldIds nResType = SwFieldIds::Unknown,
         const bool bAddSetExpressionFieldsToInputFields = true );
 
     bool GotoFormatField( const SwFormatField& rField );
diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx
index 4fede71..cf8f91d 100644
--- a/sw/inc/editsh.hxx
+++ b/sw/inc/editsh.hxx
@@ -370,12 +370,12 @@ public:
 
     void UpdateFields( SwField & );   ///< One single field.
 
-    size_t GetFieldTypeCount(sal_uInt16 nResId = USHRT_MAX) const;
-    SwFieldType* GetFieldType(size_t nField, sal_uInt16 nResId = USHRT_MAX) const;
-    SwFieldType* GetFieldType(sal_uInt16 nResId, const OUString& rName) const;
+    size_t GetFieldTypeCount(SwFieldIds nResId = SwFieldIds::Unknown) const;
+    SwFieldType* GetFieldType(size_t nField, SwFieldIds nResId = SwFieldIds::Unknown) const;
+    SwFieldType* GetFieldType(SwFieldIds nResId, const OUString& rName) const;
 
     void RemoveFieldType(size_t nField);
-    void RemoveFieldType(sal_uInt16 nResId, const OUString& rName);
+    void RemoveFieldType(SwFieldIds nResId, const OUString& rName);
 
     void FieldToText( SwFieldType* pType );
 
diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx
index ed52054..59bd4b0 100644
--- a/sw/inc/fldbas.hxx
+++ b/sw/inc/fldbas.hxx
@@ -32,50 +32,51 @@
 class SwDoc;
 class SvNumberFormatter;
 
-enum RES_FIELDS {
+enum class SwFieldIds : sal_uInt16 {
 /// For old documents the Field-Which IDs must be preserved !!!
-    RES_FIELDS_BEGIN,
-    RES_DBFLD = RES_FIELDS_BEGIN,
-    RES_USERFLD,
-    RES_FILENAMEFLD,
-    RES_DBNAMEFLD,
-    RES_DATEFLD,
-    RES_TIMEFLD,
-    RES_PAGENUMBERFLD,
-    RES_AUTHORFLD,
-    RES_CHAPTERFLD,
-    RES_DOCSTATFLD,
-    RES_GETEXPFLD,
-    RES_SETEXPFLD,
-    RES_GETREFFLD,
-    RES_HIDDENTXTFLD,
-    RES_POSTITFLD,
-    RES_FIXDATEFLD,
-    RES_FIXTIMEFLD,
-    RES_REGFLD,
-    RES_VARREGFLD,
-    RES_SETREFFLD,
-    RES_INPUTFLD,
-    RES_MACROFLD,
-    RES_DDEFLD,
-    RES_TABLEFLD,
-    RES_HIDDENPARAFLD,
-    RES_DOCINFOFLD,
-    RES_TEMPLNAMEFLD,
-    RES_DBNEXTSETFLD,
-    RES_DBNUMSETFLD,
-    RES_DBSETNUMBERFLD,
-    RES_EXTUSERFLD,
-    RES_REFPAGESETFLD,
-    RES_REFPAGEGETFLD,
-    RES_INTERNETFLD,
-    RES_JUMPEDITFLD,
-    RES_SCRIPTFLD,
-    RES_DATETIMEFLD,
-    RES_AUTHORITY,  ///< Table of authorities
-    RES_COMBINED_CHARS,
-    RES_DROPDOWN,
-    RES_FIELDS_END
+    Database,
+    User,
+    Filename,
+    DatabaseName,
+    Date,
+    Time,
+    PageNumber,
+    Author,
+    Chapter,
+    DocStat,
+    GetExp,
+    SetExp,
+    GetRef,
+    HiddenText,
+    Postit,
+    FixDate,
+    FixTime,
+    Reg,
+    VarReg,
+    SetRef,
+    Input,
+    Macro,
+    Dde,
+    Table,
+    HiddenPara,
+    DocInfo,
+    TemplateName,
+    DbNextSet,
+    DbNumSet,
+    DbSetNumber,
+    ExtUser,
+    RefPageSet,
+    RefPageGet,
+    Internet,
+    JumpEdit,
+    Script,
+    DateTime,
+    TableOfAuthorities,
+    CombinedChars,
+    Dropdown,
+    LAST = Dropdown,
+
+    Unknown = USHRT_MAX, // used as default value in some method calls
 };
 
 /// List of FieldTypes at UI.
@@ -228,7 +229,7 @@ class SW_DLLPUBLIC SwFieldType : public SwModify
 {
     css::uno::WeakReference<css::beans::XPropertySet> m_wXFieldMaster;
 
-    sal_uInt16 m_nWhich;
+    SwFieldIds m_nWhich;
 
     friend void FinitUI();     ///< In order to delete pointer!
     static  std::vector<OUString>* s_pFieldNames;
@@ -237,7 +238,7 @@ class SW_DLLPUBLIC SwFieldType : public SwModify
 
 protected:
     /// Single argument ctors shall be explicit.
-    explicit SwFieldType( sal_uInt16 nWhichId );
+    explicit SwFieldType( SwFieldIds nWhichId );
 
 public:
 
@@ -256,9 +257,7 @@ public:
     virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const;
     virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich );
 
-    sal_uInt16          Which() const {
-        return m_nWhich;
-    }
+    SwFieldIds              Which() const { return m_nWhich; }
 
     inline  void            UpdateFields() const;
 };
@@ -318,7 +317,7 @@ public:
     SwField *           CopyField() const;
 
     /// ResId
-    sal_uInt16              Which() const
+    SwFieldIds          Which() const
 #ifdef DBG_UTIL
     ;       // implemented in fldbas.cxx
 #else
@@ -390,7 +389,7 @@ private:
     bool    m_bUseFormat; ///< Use number formatter.
 
 protected:
-    SwValueFieldType( SwDoc* pDocPtr, sal_uInt16 nWhichId );
+    SwValueFieldType( SwDoc* pDocPtr, SwFieldIds nWhichId );
     SwValueFieldType( const SwValueFieldType& rTyp );
 
 public:
diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx
index a32605d..4dcf6e1 100644
--- a/sw/qa/core/uwriter.cxx
+++ b/sw/qa/core/uwriter.cxx
@@ -715,7 +715,7 @@ void SwDocTest::testSwScanner()
 
         DateTime aDate(DateTime::SYSTEM);
         SwPostItField aPostIt(
-            static_cast<SwPostItFieldType*>(m_pDoc->getIDocumentFieldsAccess().GetSysFieldType(RES_POSTITFLD)), "An Author",
+            static_cast<SwPostItFieldType*>(m_pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Postit)), "An Author",
             "Some Text", "Initials", "Name", aDate );
         m_pDoc->getIDocumentContentOperations().InsertPoolItem(aPaM, SwFormatField(aPostIt));
 
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 213b51a..a48caad 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -737,7 +737,7 @@ void SwUiWriterTest::testFdo74981()
     // create a document with an input field
     SwDoc* pDoc = createDoc();
     SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
-    SwInputField aField(static_cast<SwInputFieldType*>(pWrtShell->GetFieldType(0, RES_INPUTFLD)), "foo", "bar", 0, 0);
+    SwInputField aField(static_cast<SwInputFieldType*>(pWrtShell->GetFieldType(0, SwFieldIds::Input)), "foo", "bar", 0, 0);
     pWrtShell->Insert(aField);
 
     {
@@ -767,7 +767,7 @@ void SwUiWriterTest::testTdf98512()
     SwDoc* pDoc = createDoc();
     SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
     SwInputFieldType *const pType(static_cast<SwInputFieldType*>(
-                pWrtShell->GetFieldType(0, RES_INPUTFLD)));
+                pWrtShell->GetFieldType(0, SwFieldIds::Input)));
     SwInputField aField1(pType, "foo", "bar", INP_TXT, 0);
     pWrtShell->Insert(aField1);
     pWrtShell->SttEndDoc(/*bStt=*/true);
@@ -2086,7 +2086,7 @@ void SwUiWriterTest::testTdf77342()
     SwPaM* pCursor = pDoc->GetEditShell()->GetCursor();
     //inserting first footnote
     pWrtShell->InsertFootnote("");
-    SwFieldType* pField = pWrtShell->GetFieldType(0, RES_GETREFFLD);
+    SwFieldType* pField = pWrtShell->GetFieldType(0, SwFieldIds::GetRef);
     SwGetRefFieldType* pRefType = static_cast<SwGetRefFieldType*>(pField);
     //moving cursor to the starting of document
     pWrtShell->SttDoc();
@@ -2327,10 +2327,10 @@ void SwUiWriterTest::testTdf63553()
     SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
     SwPaM* pCursor = pDoc->GetEditShell()->GetCursor();
     //inserting sequence field 1
-    SwSetExpFieldType* pSeqType = static_cast<SwSetExpFieldType*>(pWrtShell->GetFieldType(RES_SETEXPFLD, "Illustration"));
+    SwSetExpFieldType* pSeqType = static_cast<SwSetExpFieldType*>(pWrtShell->GetFieldType(SwFieldIds::SetExp, "Illustration"));
     SwSetExpField aSetField1(pSeqType, "", SVX_NUM_ARABIC);
     pWrtShell->Insert(aSetField1);
-    SwGetRefFieldType* pRefType = static_cast<SwGetRefFieldType*>(pWrtShell->GetFieldType(0, RES_GETREFFLD));
+    SwGetRefFieldType* pRefType = static_cast<SwGetRefFieldType*>(pWrtShell->GetFieldType(0, SwFieldIds::GetRef));
     //moving cursor to the starting of document
     pWrtShell->SttDoc();
     //inserting reference field 1
diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
index 39e197f..5a974dd 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -1449,15 +1449,15 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
         if (pField)
         {
             strTypeName = SwFieldType::GetTypeStr(pField->GetTypeId());
-            const sal_uInt16 nWhich = pField->GetTyp()->Which();
+            const SwFieldIds nWhich = pField->GetTyp()->Which();
             OUString sEntry;
             sal_Int32 subType = 0;
             switch (nWhich)
             {
-            case RES_DOCSTATFLD:
+            case SwFieldIds::DocStat:
                 subType = static_cast<const SwDocStatField*>(pField)->GetSubType();
                 break;
-            case RES_GETREFFLD:
+            case SwFieldIds::GetRef:
                 {
                     switch( pField->GetSubType() )
                     {
@@ -1499,10 +1499,10 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
                     }
                 }
                 break;
-            case RES_DATETIMEFLD:
+            case SwFieldIds::DateTime:
                 subType = static_cast<const SwDateTimeField*>(pField)->GetSubType();
                 break;
-            case RES_JUMPEDITFLD:
+            case SwFieldIds::JumpEdit:
                 {
                     const sal_uInt16 nFormat= pField->GetFormat();
                     const sal_uInt16 nSize = aMgr.GetFormatCount(pField->GetTypeId(), false);
@@ -1517,11 +1517,11 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
                     }
                 }
                 break;
-            case RES_EXTUSERFLD:
+            case SwFieldIds::ExtUser:
                 subType = static_cast<const SwExtUserField*>(pField)->GetSubType();
                 break;
-            case RES_HIDDENTXTFLD:
-            case RES_SETEXPFLD:
+            case SwFieldIds::HiddenText:
+            case SwFieldIds::SetExp:
                 {
                     sEntry = pField->GetTyp()->GetName();
                     if (sEntry.getLength() > 0)
@@ -1531,11 +1531,11 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
                     }
                 }
                 break;
-            case RES_DOCINFOFLD:
+            case SwFieldIds::DocInfo:
                 subType = pField->GetSubType();
                 subType &= 0x00ff;
                 break;
-            case RES_REFPAGESETFLD:
+            case SwFieldIds::RefPageSet:
                 {
                     const SwRefPageSetField* pRPld = static_cast<const SwRefPageSetField*>(pField);
                     bool bOn = pRPld->IsOn();
@@ -1546,14 +1546,15 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
                         strTypeName += "off";
                 }
                 break;
-            case RES_AUTHORFLD:
+            case SwFieldIds::Author:
                 {
                     strTypeName += "-";
                     strTypeName += aMgr.GetFormatStr(pField->GetTypeId(), pField->GetFormat() & 0xff);
                 }
                 break;
+            default: break;
             }
-            if (subType > 0 || (subType == 0 && (nWhich == RES_DOCINFOFLD || nWhich == RES_EXTUSERFLD || nWhich == RES_DOCSTATFLD)))
+            if (subType > 0 || (subType == 0 && (nWhich == SwFieldIds::DocInfo || nWhich == SwFieldIds::ExtUser || nWhich == SwFieldIds::DocStat)))
             {
                 std::vector<OUString> aLst;
                 aMgr.GetSubTypes(pField->GetTypeId(), aLst);
@@ -1561,7 +1562,7 @@ OUString SwAccessibleParagraph::GetFieldTypeNameAtIndex(sal_Int32 nIndex)
                     sEntry = aLst[subType];
                 if (sEntry.getLength() > 0)
                 {
-                    if (nWhich == RES_DOCINFOFLD)
+                    if (nWhich == SwFieldIds::DocInfo)
                     {
                         strTypeName = sEntry;
                         sal_uInt32 nSize = aMgr.GetFormatCount(pField->GetTypeId(), false);
diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx
index cb73166..3bad0f7 100644
--- a/sw/source/core/bastyp/calc.cxx
+++ b/sw/source/core/bastyp/calc.cxx
@@ -464,7 +464,7 @@ SwCalcExp* SwCalc::VarLook( const OUString& rStr, bool bIns )
     {
         SwCalcExp* pFndExp = static_cast<SwCalcExp*>(pFnd);
 
-        if( pFndExp->pFieldType && pFndExp->pFieldType->Which() == RES_USERFLD )
+        if( pFndExp->pFieldType && pFndExp->pFieldType->Which() == SwFieldIds::User )
         {
             SwUserFieldType* pUField = const_cast<SwUserFieldType*>(static_cast<const SwUserFieldType*>(pFndExp->pFieldType));
             if( nsSwGetSetExpType::GSE_STRING & pUField->GetType() )
@@ -520,7 +520,7 @@ SwCalcExp* SwCalc::VarLook( const OUString& rStr, bool bIns )
             sDBNum = m_pCharClass->lowercase(sDBNum);
 
             // Initialize again because this doesn't happen in docfld anymore for
-            // elements != RES_DBFLD. E.g. if there is an expression field before
+            // elements != SwFieldIds::Database. E.g. if there is an expression field before
             // an DB_Field in a document.
             VarChange( sDBNum, pMgr->GetSelectedRecordId(sSourceName, sTableName));
 
diff --git a/sw/source/core/crsr/annotationmark.cxx b/sw/source/core/crsr/annotationmark.cxx
index c2ad1f4..27e8c79 100644
--- a/sw/source/core/crsr/annotationmark.cxx
+++ b/sw/source/core/crsr/annotationmark.cxx
@@ -92,7 +92,7 @@ namespace sw { namespace mark
 
         SwFormatField* pAnnotationFormatField = nullptr;
 
-        SwFieldType* pType = pDoc->getIDocumentFieldsAccess().GetFieldType( RES_POSTITFLD, OUString(), false );
+        SwFieldType* pType = pDoc->getIDocumentFieldsAccess().GetFieldType( SwFieldIds::Postit, OUString(), false );
         SwIterator<SwFormatField,SwFieldType> aIter( *pType );
         for( SwFormatField* pFormatField = aIter.First(); pFormatField != nullptr; pFormatField = aIter.Next() )
         {
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index b0de2a0..ea71014 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -646,7 +646,7 @@ lcl_FindField(bool & o_rFound, SetGetExpFields const& rSrtLst,
 bool SwCursorShell::MoveFieldType(
     const SwFieldType* pFieldType,
     const bool bNext,
-    const sal_uInt16 nResType,
+    const SwFieldIds nResType,
     const bool bAddSetExpressionFieldsToInputFields )
 {
     // sorted list of all fields
@@ -654,7 +654,7 @@ bool SwCursorShell::MoveFieldType(
 
     if ( pFieldType )
     {
-        if( RES_INPUTFLD != pFieldType->Which() && !pFieldType->HasWriterListeners() )
+        if( SwFieldIds::Input != pFieldType->Which() && !pFieldType->HasWriterListeners() )
         {
             return false;
         }
@@ -662,7 +662,7 @@ bool SwCursorShell::MoveFieldType(
         // found Modify object, add all fields to array
         ::lcl_MakeFieldLst( aSrtLst, *pFieldType, IsReadOnlyAvailable() );
 
-        if( RES_INPUTFLD == pFieldType->Which() && bAddSetExpressionFieldsToInputFields )
+        if( SwFieldIds::Input == pFieldType->Which() && bAddSetExpressionFieldsToInputFields )
         {
             // there are hidden input fields in the set exp. fields
             const SwFieldTypes& rFieldTypes = *mpDoc->getIDocumentFieldsAccess().GetFieldTypes();
@@ -670,7 +670,7 @@ bool SwCursorShell::MoveFieldType(
             for( size_t i=0; i < nSize; ++i )
             {
                 pFieldType = rFieldTypes[ i ];
-                if ( RES_SETEXPFLD == pFieldType->Which() )
+                if ( SwFieldIds::SetExp == pFieldType->Which() )
                 {
                     ::lcl_MakeFieldLst( aSrtLst, *pFieldType, IsReadOnlyAvailable(), true );
                 }
@@ -714,7 +714,7 @@ bool SwCursorShell::MoveFieldType(
         {
             // create dummy for the search
             SwFormatField* pFormatField = new SwFormatField( SwDateTimeField(
-                static_cast<SwDateTimeFieldType*>(mpDoc->getIDocumentFieldsAccess().GetSysFieldType( RES_DATETIMEFLD ) ) ) );
+                static_cast<SwDateTimeFieldType*>(mpDoc->getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::DateTime ) ) ) );
 
             pTextField = new SwTextField( *pFormatField, rPos.nContent.GetIndex(),
                         mpDoc->IsClipBoard() );
@@ -852,7 +852,7 @@ SwField* SwCursorShell::GetCurField( const bool bIncludeInputFieldAtStart ) cons
 
     SwField* pCurField = GetFieldAtCursor( pCursor, bIncludeInputFieldAtStart );
     if ( pCurField != nullptr
-         && RES_TABLEFLD == pCurField->GetTyp()->Which() )
+         && SwFieldIds::Table == pCurField->GetTyp()->Which() )
     {
         // TabellenFormel ? wandel internen in externen Namen um
         const SwTableNode* pTableNd = IsCursorInTable();
@@ -1249,13 +1249,13 @@ bool SwCursorShell::GetContentAtPos( const Point& rPt,
                                 // allow click fields in protected sections
                                 // only placeholder is not possible
                                 if( IsAttrAtPos::Field & rContentAtPos.eContentAtPos
-                                    || RES_JUMPEDITFLD == pField->Which() )
+                                    || SwFieldIds::JumpEdit == pField->Which() )
                                     pField = nullptr;
                             }
                             else
                                 UpdateCursor();
                         }
-                        else if( RES_TABLEFLD == pField->Which() &&
+                        else if( SwFieldIds::Table == pField->Which() &&
                             static_cast<const SwTableField*>(pField)->IsIntrnlName() )
                         {
                             // create from internal (for CORE) the external
@@ -1654,7 +1654,7 @@ const SwPostItField* SwCursorShell::GetPostItFieldAtCursor() const
         {
             SwTextAttr* pTextAttr = pTextNd->GetFieldTextAttrAt( pCursorPos->nContent.GetIndex() );
             const SwField* pField = pTextAttr != nullptr ? pTextAttr->GetFormatField().GetField() : nullptr;
-            if ( pField && pField->Which()== RES_POSTITFLD )
+            if ( pField && pField->Which()== SwFieldIds::Postit )
             {
                 pPostItField = static_cast<const SwPostItField*>(pField);
             }
diff --git a/sw/source/core/doc/DocumentFieldsManager.cxx b/sw/source/core/doc/DocumentFieldsManager.cxx
index ef2e900..a050745 100644
--- a/sw/source/core/doc/DocumentFieldsManager.cxx
+++ b/sw/source/core/doc/DocumentFieldsManager.cxx
@@ -83,9 +83,9 @@ namespace
             return ;
 
         const SwField* pField = pTextField->GetFormatField().GetField();
-        const sal_uInt16 nFieldWhich = pField->GetTyp()->Which();
+        const SwFieldIds nFieldWhich = pField->GetTyp()->Which();
 
-        if( RES_SETEXPFLD == nFieldWhich )
+        if( SwFieldIds::SetExp == nFieldWhich )
         {
             SwSbxValue aValue;
             if( nsSwGetSetExpType::GSE_EXPR & pField->GetSubType() )
@@ -104,7 +104,7 @@ namespace
     #else
             switch( nFieldWhich )
             {
-            case RES_DBNUMSETFLD:
+            case SwFieldIds::DbNumSet:
                 {
                     SwDBNumSetField* pDBField = const_cast<SwDBNumSetField*>(static_cast<const SwDBNumSetField*>(pField));
 
@@ -116,7 +116,7 @@ namespace
                                         pDBField->GetFormat() );
                 }
                 break;
-            case RES_DBNEXTSETFLD:
+            case SwFieldIds::DbNextSet:
                 {
                     SwDBNextSetField* pDBField = const_cast<SwDBNextSetField*>(static_cast<const SwDBNextSetField*>(pField));
                     SwDBData aDBData(pDBField->GetDBData(&rDoc));
@@ -131,6 +131,7 @@ namespace
                 }
                 break;
 
+            default: break;
             }
     #endif
         }
@@ -161,13 +162,13 @@ const SwFieldTypes* DocumentFieldsManager::GetFieldTypes() const
 SwFieldType* DocumentFieldsManager::InsertFieldType(const SwFieldType &rFieldTyp)
 {
     const SwFieldTypes::size_type nSize = mpFieldTypes->size();
-    const sal_uInt16 nFieldWhich = rFieldTyp.Which();
+    const SwFieldIds nFieldWhich = rFieldTyp.Which();
 
     SwFieldTypes::size_type i = INIT_FLDTYPES;
 
     switch( nFieldWhich )
     {
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
             //JP 29.01.96: SequenceFields start at INIT_FLDTYPES - 3!!
             //             Or we get doubble number circles!!
             //MIB 14.03.95: From now on also the SW3-Reader relies on &m_rDoc, when
@@ -175,9 +176,9 @@ SwFieldType* DocumentFieldsManager::InsertFieldType(const SwFieldType &rFieldTyp
             if( nsSwGetSetExpType::GSE_SEQ & static_cast<const SwSetExpFieldType&>(rFieldTyp).GetType() )
                 i -= INIT_SEQ_FLDTYPES;
             SAL_FALLTHROUGH;
-    case RES_DBFLD:
-    case RES_USERFLD:
-    case RES_DDEFLD:
+    case SwFieldIds::Database:
+    case SwFieldIds::User:
+    case SwFieldIds::Dde:
         {
             const ::utl::TransliterationWrapper& rSCmp = GetAppCmpStrIgnore();
             OUString sFieldNm( rFieldTyp.GetName() );
@@ -188,7 +189,7 @@ SwFieldType* DocumentFieldsManager::InsertFieldType(const SwFieldType &rFieldTyp
         }
         break;
 
-    case RES_AUTHORITY:
+    case SwFieldIds::TableOfAuthorities:
         for( ; i < nSize; ++i )
             if( nFieldWhich == (*mpFieldTypes)[i]->Which() )
                 return (*mpFieldTypes)[i];
@@ -203,26 +204,27 @@ SwFieldType* DocumentFieldsManager::InsertFieldType(const SwFieldType &rFieldTyp
     SwFieldType* pNew = rFieldTyp.Copy();
     switch( nFieldWhich )
     {
-    case RES_DDEFLD:
+    case SwFieldIds::Dde:
         static_cast<SwDDEFieldType*>(pNew)->SetDoc( &m_rDoc );
         break;
 
-    case RES_DBFLD:
-    case RES_TABLEFLD:
-    case RES_DATETIMEFLD:
-    case RES_GETEXPFLD:
+    case SwFieldIds::Database:
+    case SwFieldIds::Table:
+    case SwFieldIds::DateTime:
+    case SwFieldIds::GetExp:
         static_cast<SwValueFieldType*>(pNew)->SetDoc( &m_rDoc );
         break;
 
-    case RES_USERFLD:
-    case RES_SETEXPFLD:
+    case SwFieldIds::User:
+    case SwFieldIds::SetExp:
         static_cast<SwValueFieldType*>(pNew)->SetDoc( &m_rDoc );
         // JP 29.07.96: Optionally prepare FieldList for Calculator:
         mpUpdateFields->InsertFieldType( *pNew );
         break;
-    case RES_AUTHORITY :
+    case SwFieldIds::TableOfAuthorities :
         static_cast<SwAuthorityFieldType*>(pNew)->SetDoc( &m_rDoc );
         break;
+    default: break;
     }
 
     mpFieldTypes->insert( mpFieldTypes->begin() + nSize, pNew );
@@ -232,7 +234,7 @@ SwFieldType* DocumentFieldsManager::InsertFieldType(const SwFieldType &rFieldTyp
 }
 
 /// @returns the field type of the Doc
-SwFieldType *DocumentFieldsManager::GetSysFieldType( const sal_uInt16 eWhich ) const
+SwFieldType *DocumentFieldsManager::GetSysFieldType( const SwFieldIds eWhich ) const
 {
     for( SwFieldTypes::size_type i = 0; i < INIT_FLDTYPES; ++i )
         if( eWhich == (*mpFieldTypes)[i]->Which() )
@@ -242,9 +244,9 @@ SwFieldType *DocumentFieldsManager::GetSysFieldType( const sal_uInt16 eWhich ) c
 
 /// Find first type with ResId and name
 SwFieldType* DocumentFieldsManager::GetFieldType(
-    sal_uInt16 nResId,
+    SwFieldIds nResId,
     const OUString& rName,
-    bool bDbFieldMatching // used in some UNO calls for RES_DBFLD to use different string matching code #i51815#
+    bool bDbFieldMatching // used in some UNO calls for SwFieldIds::Database to use different string matching code #i51815#
     ) const
 {
     const SwFieldTypes::size_type nSize = mpFieldTypes->size();
@@ -253,7 +255,7 @@ SwFieldType* DocumentFieldsManager::GetFieldType(
 
     switch( nResId )
     {
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
             //JP 29.01.96: SequenceFields start at INIT_FLDTYPES - 3!!
             //             Or we get doubble number circles!!
             //MIB 14.03.95: From now on also the SW3-Reader relies on &m_rDoc, when
@@ -261,12 +263,13 @@ SwFieldType* DocumentFieldsManager::GetFieldType(
         i = INIT_FLDTYPES - INIT_SEQ_FLDTYPES;
         break;
 
-    case RES_DBFLD:
-    case RES_USERFLD:
-    case RES_DDEFLD:
-    case RES_AUTHORITY:
+    case SwFieldIds::Database:
+    case SwFieldIds::User:
+    case SwFieldIds::Dde:
+    case SwFieldIds::TableOfAuthorities:
         i = INIT_FLDTYPES;
         break;
+    default: break;
     }
 
     SwFieldType* pRet = nullptr;
@@ -275,7 +278,7 @@ SwFieldType* DocumentFieldsManager::GetFieldType(
         SwFieldType* pFieldType = (*mpFieldTypes)[i];
 
         OUString aFieldName( pFieldType->GetName() );
-        if (bDbFieldMatching && nResId == RES_DBFLD)    // #i51815#
+        if (bDbFieldMatching && nResId == SwFieldIds::Database)    // #i51815#
             aFieldName = aFieldName.replace(DB_DELIM, '.');
 
         if( nResId == pFieldType->Which() &&
@@ -300,28 +303,29 @@ void DocumentFieldsManager::RemoveFieldType(size_t nField)
         SwFieldType* pTmp = (*mpFieldTypes)[nField];
 
         // JP 29.07.96: Optionally prepare FieldList for Calculator
-        sal_uInt16 nWhich = pTmp->Which();
+        SwFieldIds nWhich = pTmp->Which();
         switch( nWhich )
         {
-        case RES_SETEXPFLD:
-        case RES_USERFLD:
+        case SwFieldIds::SetExp:
+        case SwFieldIds::User:
             mpUpdateFields->RemoveFieldType( *pTmp );
             SAL_FALLTHROUGH;
-        case RES_DDEFLD:
+        case SwFieldIds::Dde:
             if( pTmp->HasWriterListeners() && !m_rDoc.IsUsed( *pTmp ) )
             {
-                if( RES_SETEXPFLD == nWhich )
+                if( SwFieldIds::SetExp == nWhich )
                     static_cast<SwSetExpFieldType*>(pTmp)->SetDeleted( true );
-                else if( RES_USERFLD == nWhich )
+                else if( SwFieldIds::User == nWhich )
                     static_cast<SwUserFieldType*>(pTmp)->SetDeleted( true );
                 else
                     static_cast<SwDDEFieldType*>(pTmp)->SetDeleted( true );
-                nWhich = 0;
+                nWhich = SwFieldIds::Database;
             }
             break;
+        default: break;
         }
 
-        if( nWhich )
+        if( nWhich != SwFieldIds::Database )
         {
             OSL_ENSURE( !pTmp->HasWriterListeners(), "Dependent fields present!" );
             // delete field type
@@ -344,23 +348,23 @@ void DocumentFieldsManager::UpdateFields( bool bCloseDB )
         {
             // Update table fields second to last
             // Update references last
-        case RES_GETREFFLD:
-        case RES_TABLEFLD:
-        case RES_DBFLD:
-        case RES_JUMPEDITFLD:
-        case RES_REFPAGESETFLD:     // are never expanded!
+        case SwFieldIds::GetRef:
+        case SwFieldIds::Table:
+        case SwFieldIds::Database:
+        case SwFieldIds::JumpEdit:
+        case SwFieldIds::RefPageSet:     // are never expanded!
             break;
 
-        case RES_DDEFLD:
+        case SwFieldIds::Dde:
         {
             SwMsgPoolItem aUpdateDDE( RES_UPDATEDDETBL );
             pFieldType->ModifyNotification( nullptr, &aUpdateDDE );
             break;
         }
-        case RES_GETEXPFLD:
-        case RES_SETEXPFLD:
-        case RES_HIDDENTXTFLD:
-        case RES_HIDDENPARAFLD:
+        case SwFieldIds::GetExp:
+        case SwFieldIds::SetExp:
+        case SwFieldIds::HiddenText:
+        case SwFieldIds::HiddenPara:
             // Expression fields are treated separately
             break;
         default:
@@ -394,11 +398,11 @@ void DocumentFieldsManager::InsDeletedFieldType( SwFieldType& rFieldTyp )
     // - If the same type is found, the deleted one has to be renamed.
 
     const SwFieldTypes::size_type nSize = mpFieldTypes->size();
-    const sal_uInt16 nFieldWhich = rFieldTyp.Which();
+    const SwFieldIds nFieldWhich = rFieldTyp.Which();
 
-    OSL_ENSURE( RES_SETEXPFLD == nFieldWhich ||
-            RES_USERFLD == nFieldWhich ||
-            RES_DDEFLD == nFieldWhich, "Wrong FieldType" );
+    OSL_ENSURE( SwFieldIds::SetExp == nFieldWhich ||
+            SwFieldIds::User == nFieldWhich ||
+            SwFieldIds::Dde == nFieldWhich, "Wrong FieldType" );
 
     const ::utl::TransliterationWrapper& rSCmp = GetAppCmpStrIgnore();
     const OUString& rFieldNm = rFieldTyp.GetName();
@@ -433,15 +437,16 @@ void DocumentFieldsManager::InsDeletedFieldType( SwFieldType& rFieldTyp )
     mpFieldTypes->insert( mpFieldTypes->begin() + nSize, &rFieldTyp );
     switch( nFieldWhich )
     {
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
         static_cast<SwSetExpFieldType&>(rFieldTyp).SetDeleted( false );
         break;
-    case RES_USERFLD:
+    case SwFieldIds::User:
         static_cast<SwUserFieldType&>(rFieldTyp).SetDeleted( false );
         break;
-    case RES_DDEFLD:
+    case SwFieldIds::Dde:
         static_cast<SwDDEFieldType&>(rFieldTyp).SetDeleted( false );
         break;
+    default: break;
     }
 }
 
@@ -471,7 +476,7 @@ bool DocumentFieldsManager::UpdateField(SwTextField * pDstTextField, SwField & r
 
     SwFormatField * pDstFormatField = const_cast<SwFormatField*>(&pDstTextField->GetFormatField());
     SwField * pDstField = pDstFormatField->GetField();
-    sal_uInt16 nFieldWhich = rSrcField.GetTyp()->Which();
+    SwFieldIds nFieldWhich = rSrcField.GetTyp()->Which();
     SwNodeIndex aTableNdIdx(pDstTextField->GetTextNode());
 
     if (pDstField->GetTyp()->Which() ==
@@ -491,14 +496,14 @@ bool DocumentFieldsManager::UpdateField(SwTextField * pDstTextField, SwField & r
 
         switch( nFieldWhich )
         {
-        case RES_SETEXPFLD:
-        case RES_GETEXPFLD:
-        case RES_HIDDENTXTFLD:
-        case RES_HIDDENPARAFLD:
+        case SwFieldIds::SetExp:
+        case SwFieldIds::GetExp:
+        case SwFieldIds::HiddenText:
+        case SwFieldIds::HiddenPara:
             UpdateExpFields( pDstTextField, true );
             break;
 
-        case RES_TABLEFLD:
+        case SwFieldIds::Table:
             {
                 const SwTableNode* pTableNd =
                     m_rDoc.IsIdxInTable(aTableNdIdx);
@@ -517,22 +522,22 @@ bool DocumentFieldsManager::UpdateField(SwTextField * pDstTextField, SwField & r
             }
             break;
 
-        case RES_MACROFLD:
+        case SwFieldIds::Macro:
             if( bUpdateFields && pDstTextField->GetpTextNode() )
                 (pDstTextField->GetpTextNode())->
                     ModifyNotification( nullptr, pDstFormatField );
             break;
 
-        case RES_DBNAMEFLD:
-        case RES_DBNEXTSETFLD:
-        case RES_DBNUMSETFLD:
-        case RES_DBSETNUMBERFLD:
+        case SwFieldIds::DatabaseName:
+        case SwFieldIds::DbNextSet:
+        case SwFieldIds::DbNumSet:
+        case SwFieldIds::DbSetNumber:
             m_rDoc.ChgDBData(static_cast<SwDBNameInfField*>( pNewField)->GetRealDBData());
             pNewField->GetTyp()->UpdateFields();
 
             break;
 
-        case RES_DBFLD:
+        case SwFieldIds::Database:
 #if HAVE_FEATURE_DBCONNECTIVITY
             {
                 // JP 10.02.96: call ChgValue, so that the style change sets the
@@ -553,7 +558,7 @@ bool DocumentFieldsManager::UpdateField(SwTextField * pDstTextField, SwField & r
 
         // The fields we can calculate here are being triggered for an update
         // here explicitly.
-        if( nFieldWhich == RES_USERFLD )
+        if( nFieldWhich == SwFieldIds::User )
             UpdateUsrFields();
     }
 
@@ -564,7 +569,7 @@ bool DocumentFieldsManager::UpdateField(SwTextField * pDstTextField, SwField & r
 void DocumentFieldsManager::UpdateRefFields()
 {
     for( auto pFieldType : *mpFieldTypes )
-        if( RES_GETREFFLD == pFieldType->Which() )
+        if( SwFieldIds::GetRef == pFieldType->Which() )
             pFieldType->ModifyNotification( nullptr, nullptr );
 }
 
@@ -577,7 +582,7 @@ void DocumentFieldsManager::UpdateTableFields( SfxPoolItem* pHt )
 
     for (auto pFieldTypeTmp : *mpFieldTypes)
     {
-        if( RES_TABLEFLD == pFieldTypeTmp->Which() )
+        if( SwFieldIds::Table == pFieldTypeTmp->Which() )
         {
             SwTableFormulaUpdate* pUpdateField = nullptr;
             if( pHt && RES_TABLEFML_UPDATE == pHt->Which() )
@@ -845,7 +850,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
         return ;
     }
 
-    sal_uInt16 nWhich;
+    SwFieldIds nWhich;
 
     // Hash table for all string replacements is filled on-the-fly.
     // Try to fabricate an uneven number.
@@ -861,7 +866,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
         for( auto n = mpFieldTypes->size(); n; )
             switch( ( pFieldType = (*mpFieldTypes)[ --n ] )->Which() )
             {
-            case RES_USERFLD:
+            case SwFieldIds::User:
                 {
                     // Entry present?
                     sal_uInt16 nPos;
@@ -877,9 +882,10 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
                                                 static_cast<HashStr*>(*(pHashStrTable + nPos)) );
                 }
                 break;
-            case RES_SETEXPFLD:
+            case SwFieldIds::SetExp:
                 const_cast<SwSetExpFieldType*>(static_cast<const SwSetExpFieldType*>(pFieldType))->SetOutlineChgNd( nullptr );
                 break;
+            default: break;
             }
     }
 
@@ -955,7 +961,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
 
         switch( nWhich = pField->GetTyp()->Which() )
         {
-        case RES_HIDDENTXTFLD:
+        case SwFieldIds::HiddenText:
         {
             SwHiddenTextField* pHField = const_cast<SwHiddenTextField*>(static_cast<const SwHiddenTextField*>(pField));
             SwSbxValue aValue = aCalc.Calculate( pHField->GetPar1() );
@@ -968,7 +974,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
             }
         }
         break;
-        case RES_HIDDENPARAFLD:
+        case SwFieldIds::HiddenPara:
         {
             SwHiddenParaField* pHPField = const_cast<SwHiddenParaField*>(static_cast<const SwHiddenParaField*>(pField));
             SwSbxValue aValue = aCalc.Calculate( pHPField->GetPar1() );
@@ -977,7 +983,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
                 pHPField->SetHidden( bValue );
         }
         break;
-        case RES_DBSETNUMBERFLD:
+        case SwFieldIds::DbSetNumber:
 #if HAVE_FEATURE_DBCONNECTIVITY
         {
             const_cast<SwDBSetNumberField*>(static_cast<const SwDBSetNumberField*>(pField))->Evaluate(&m_rDoc);
@@ -986,8 +992,8 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
         }
 #endif
         break;
-        case RES_DBNEXTSETFLD:
-        case RES_DBNUMSETFLD:
+        case SwFieldIds::DbNextSet:
+        case SwFieldIds::DbNumSet:
 #if HAVE_FEATURE_DBCONNECTIVITY
         {
             UpdateDBNumFields( *const_cast<SwDBNameInfField*>(static_cast<const SwDBNameInfField*>(pField)), aCalc );
@@ -996,7 +1002,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
         }
 #endif
         break;
-        case RES_DBFLD:
+        case SwFieldIds::Database:
         {
 #if HAVE_FEATURE_DBCONNECTIVITY
             // evaluate field
@@ -1028,12 +1034,12 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
 #endif
         }
         break;
-        case RES_GETEXPFLD:
-        case RES_SETEXPFLD:
+        case SwFieldIds::GetExp:
+        case SwFieldIds::SetExp:
         {
             if( nsSwGetSetExpType::GSE_STRING & pField->GetSubType() )        // replace String
             {
-                if( RES_GETEXPFLD == nWhich )
+                if( SwFieldIds::GetExp == nWhich )
                 {
                     SwGetExpField* pGField = const_cast<SwGetExpField*>(static_cast<const SwGetExpField*>(pField));
 
@@ -1081,7 +1087,7 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
             }
             else            // recalculate formula
             {
-                if( RES_GETEXPFLD == nWhich )
+                if( SwFieldIds::GetExp == nWhich )
                 {
                     SwGetExpField* pGField = const_cast<SwGetExpField*>(static_cast<const SwGetExpField*>(pField));
 
@@ -1136,15 +1142,17 @@ void DocumentFieldsManager::UpdateExpFields( SwTextField* pUpdateField, bool bUp
                 }
             }
         }
+        break;
+        default: break;
         } // switch
 
         pFormatField->ModifyNotification( nullptr, nullptr );        // trigger formatting
 
         if( pUpdateField == pTextField )       // if only &m_rDoc one is updated
         {
-            if( RES_GETEXPFLD == nWhich ||      // only GetField or
-                RES_HIDDENTXTFLD == nWhich ||   // HiddenText?
-                RES_HIDDENPARAFLD == nWhich)    // HiddenParaField?
+            if( SwFieldIds::GetExp == nWhich ||      // only GetField or
+                SwFieldIds::HiddenText == nWhich ||   // HiddenText?
+                SwFieldIds::HiddenPara == nWhich)    // HiddenParaField?
                 break;                          // quit
             pUpdateField = nullptr;                       // update all from here on
         }
@@ -1171,7 +1179,7 @@ void DocumentFieldsManager::UpdateUsrFields()
     for( SwFieldTypes::size_type i = INIT_FLDTYPES; i < mpFieldTypes->size(); ++i )
     {
         const SwFieldType* pFieldType;
-        if( RES_USERFLD == ( pFieldType = (*mpFieldTypes)[i] )->Which() )
+        if( SwFieldIds::User == ( pFieldType = (*mpFieldTypes)[i] )->Which() )
         {
             if( !pCalc )
                 pCalc = new SwCalc( m_rDoc );
@@ -1206,8 +1214,8 @@ sal_Int32 DocumentFieldsManager::GetRecordsPerDocument() const
 
         switch( pField->GetTyp()->Which() )
         {
-        case RES_DBNEXTSETFLD:
-        case RES_DBNUMSETFLD:
+        case SwFieldIds::DbNextSet:
+        case SwFieldIds::DbNumSet:
             nRecords++;
             break;
         default:
@@ -1225,15 +1233,16 @@ void DocumentFieldsManager::UpdatePageFields( SfxPoolItem* pMsgHint )
         SwFieldType* pFieldType = (*mpFieldTypes)[ i ];
         switch( pFieldType->Which() )
         {
-        case RES_PAGENUMBERFLD:
-        case RES_CHAPTERFLD:
-        case RES_GETEXPFLD:
-        case RES_REFPAGEGETFLD:
+        case SwFieldIds::PageNumber:
+        case SwFieldIds::Chapter:
+        case SwFieldIds::GetExp:
+        case SwFieldIds::RefPageGet:
             pFieldType->ModifyNotification( nullptr, pMsgHint );
             break;
-        case RES_DOCSTATFLD:
+        case SwFieldIds::DocStat:
             pFieldType->ModifyNotification( nullptr, nullptr );
             break;
+        default: break;
         }
     }
     SetNewFieldLst(true);
@@ -1324,14 +1333,14 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
         nTime = tools::Time( tools::Time::SYSTEM ).GetTime();
     }
 
-    sal_uInt16 aTypes[5] = {
-        /*0*/   RES_DOCINFOFLD,
-        /*1*/   RES_AUTHORFLD,
-        /*2*/   RES_EXTUSERFLD,
-        /*3*/   RES_FILENAMEFLD,
-        /*4*/   RES_DATETIMEFLD };  // MUST be at the end!
+    SwFieldIds aTypes[5] = {
+        /*0*/   SwFieldIds::DocInfo,
+        /*1*/   SwFieldIds::Author,
+        /*2*/   SwFieldIds::ExtUser,
+        /*3*/   SwFieldIds::Filename,
+        /*4*/   SwFieldIds::DateTime };  // MUST be at the end!
 
-    for(sal_uInt16 aType : aTypes)
+    for(SwFieldIds aType : aTypes)
     {
         SwFieldType* pFieldType = GetSysFieldType( aType );
         SwIterator<SwFormatField,SwFieldType> aIter( *pFieldType );
@@ -1342,7 +1351,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                 bool bChgd = false;
                 switch( aType )
                 {
-                case RES_DOCINFOFLD:
+                case SwFieldIds::DocInfo:
                     if( static_cast<SwDocInfoField*>(pFormatField->GetField())->IsFixed() )
                     {
                         bChgd = true;
@@ -1356,7 +1365,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                     }
                     break;
 
-                case RES_AUTHORFLD:
+                case SwFieldIds::Author:
                     if( static_cast<SwAuthorField*>(pFormatField->GetField())->IsFixed() )
                     {
                         bChgd = true;
@@ -1365,7 +1374,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                     }
                     break;
 
-                case RES_EXTUSERFLD:
+                case SwFieldIds::ExtUser:
                     if( static_cast<SwExtUserField*>(pFormatField->GetField())->IsFixed() )
                     {
                         bChgd = true;
@@ -1376,7 +1385,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                     }
                     break;
 
-                case RES_DATETIMEFLD:
+                case SwFieldIds::DateTime:
                     if( static_cast<SwDateTimeField*>(pFormatField->GetField())->IsFixed() )
                     {
                         bChgd = true;
@@ -1385,7 +1394,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                     }
                     break;
 
-                case RES_FILENAMEFLD:
+                case SwFieldIds::Filename:
                     if( static_cast<SwFileNameField*>(pFormatField->GetField())->IsFixed() )
                     {
                         bChgd = true;
@@ -1396,6 +1405,7 @@ void DocumentFieldsManager::SetFixFields( const DateTime* pNewDateTime )
                                             pFileNameField->GetFormat() ) );
                     }
                     break;
+                default: break;
                 }
 
                 // Trigger formatting
@@ -1489,7 +1499,7 @@ void DocumentFieldsManager::FieldsToExpand( SwHash**& ppHashTable, sal_uInt16& r
         const SwField* pField = pTextField->GetFormatField().GetField();
         switch( pField->GetTyp()->Which() )
         {
-        case RES_SETEXPFLD:
+        case SwFieldIds::SetExp:
             if( nsSwGetSetExpType::GSE_STRING & pField->GetSubType() )
             {
                 // set the new value in the hash table
@@ -1518,7 +1528,7 @@ void DocumentFieldsManager::FieldsToExpand( SwHash**& ppHashTable, sal_uInt16& r
                             pSField->GetExpStr(), static_cast<HashStr*>(*(ppHashTable + nPos)) );
             }
             break;
-        case RES_DBFLD:
+        case SwFieldIds::Database:
             {
                 const OUString& rName = pField->GetTyp()->GetName();
 
@@ -1540,6 +1550,7 @@ void DocumentFieldsManager::FieldsToExpand( SwHash**& ppHashTable, sal_uInt16& r
                 }
             }
             break;
+        default: break;
         }
     }
 }
@@ -1662,11 +1673,11 @@ void DocumentFieldsManager::UpdateDBNumFields( SwDBNameInfField& rDBField, SwCal
 #else
     SwDBManager* pMgr = m_rDoc.GetDBManager();
 
-    sal_uInt16 nFieldType = rDBField.Which();
+    SwFieldIds nFieldType = rDBField.Which();
 
     bool bPar1 = rCalc.Calculate( rDBField.GetPar1() ).GetBool();
 
-    if( RES_DBNEXTSETFLD == nFieldType )
+    if( SwFieldIds::DbNextSet == nFieldType )
         static_cast<SwDBNextSetField&>(rDBField).SetCondValid( bPar1 );
     else
         static_cast<SwDBNumSetField&>(rDBField).SetCondValid( bPar1 );
@@ -1674,7 +1685,7 @@ void DocumentFieldsManager::UpdateDBNumFields( SwDBNameInfField& rDBField, SwCal
     if( !rDBField.GetRealDBData().sDataSource.isEmpty() )
     {
         // Edit a certain database
-        if( RES_DBNEXTSETFLD == nFieldType )
+        if( SwFieldIds::DbNextSet == nFieldType )
             static_cast<SwDBNextSetField&>(rDBField).Evaluate(&m_rDoc);
         else
             static_cast<SwDBNumSetField&>(rDBField).Evaluate(&m_rDoc);
diff --git a/sw/source/core/doc/DocumentStatisticsManager.cxx b/sw/source/core/doc/DocumentStatisticsManager.cxx
index 77a91eb..f529d54 100644
--- a/sw/source/core/doc/DocumentStatisticsManager.cxx
+++ b/sw/source/core/doc/DocumentStatisticsManager.cxx
@@ -81,8 +81,8 @@ DocumentStatisticsManager::DocumentStatisticsManager( SwDoc& i_rSwdoc ) : m_rDoc
 
 void DocumentStatisticsManager::DocInfoChgd(bool const isEnableSetModified)
 {
-    m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( RES_DOCINFOFLD )->UpdateFields();
-    m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( RES_TEMPLNAMEFLD )->UpdateFields();
+    m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::DocInfo )->UpdateFields();
+    m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::TemplateName )->UpdateFields();
     if (isEnableSetModified)
     {
         m_rDoc.getIDocumentState().SetModified();
@@ -164,7 +164,7 @@ bool DocumentStatisticsManager::IncrementalDocStatCalculate(long nChars, bool bF
 
     // #i93174#: notes contain paragraphs that are not nodes
     {
-        SwFieldType * const pPostits( m_rDoc.getIDocumentFieldsAccess().GetSysFieldType(RES_POSTITFLD) );
+        SwFieldType * const pPostits( m_rDoc.getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Postit) );
         SwIterator<SwFormatField,SwFieldType> aIter( *pPostits );
         for( SwFormatField* pFormatField = aIter.First(); pFormatField;  pFormatField = aIter.Next() )
         {
@@ -226,7 +226,7 @@ bool DocumentStatisticsManager::IncrementalDocStatCalculate(long nChars, bool bF
     // optionally update stat. fields
     if (bFields)
     {
-        SwFieldType *pType = m_rDoc.getIDocumentFieldsAccess().GetSysFieldType(RES_DOCSTATFLD);
+        SwFieldType *pType = m_rDoc.getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DocStat);
         pType->UpdateFields();
     }
 
diff --git a/sw/source/core/doc/DocumentTimerManager.cxx b/sw/source/core/doc/DocumentTimerManager.cxx
index d65f623..83ce6fe 100644
--- a/sw/source/core/doc/DocumentTimerManager.cxx
+++ b/sw/source/core/doc/DocumentTimerManager.cxx
@@ -150,7 +150,7 @@ IMPL_LINK( DocumentTimerManager, DoIdleJobs, Timer*, pIdle, void )
             const bool bOldLockView = pShell->IsViewLocked();
             pShell->LockView( true );
 
-            m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( RES_CHAPTERFLD )->ModifyNotification( nullptr, nullptr );    // ChapterField
+            m_rDoc.getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::Chapter )->ModifyNotification( nullptr, nullptr );    // ChapterField
             m_rDoc.getIDocumentFieldsAccess().UpdateExpFields( nullptr, false );      // Updates ExpressionFields
             m_rDoc.getIDocumentFieldsAccess().UpdateTableFields(nullptr);                // Tables
             m_rDoc.getIDocumentFieldsAccess().UpdateRefFields();                // References
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index fa00bff..eb51f11 100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -488,7 +488,7 @@ void SwDoc::ChgDBData(const SwDBData& rNewData)
         maDBData = rNewData;
         getIDocumentState().SetModified();
     }
-    getIDocumentFieldsAccess().GetSysFieldType(RES_DBNAMEFLD)->UpdateFields();
+    getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DatabaseName)->UpdateFields();
 }
 
 struct PostItField_ : public SetGetExpField
@@ -542,7 +542,7 @@ bool sw_GetPostIts(
 {
     bool bHasPostIts = false;
 
-    SwFieldType* pFieldType = pIDFA->GetSysFieldType( RES_POSTITFLD );
+    SwFieldType* pFieldType = pIDFA->GetSysFieldType( SwFieldIds::Postit );
     assert(pFieldType);
 
     if( pFieldType->HasWriterListeners() )
@@ -1317,7 +1317,7 @@ bool SwDoc::RemoveInvisibleContent()
 
     {
         SwTextNode* pTextNd;
-        SwIterator<SwFormatField,SwFieldType> aIter( *getIDocumentFieldsAccess().GetSysFieldType( RES_HIDDENPARAFLD )  );
+        SwIterator<SwFormatField,SwFieldType> aIter( *getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::HiddenPara )  );
         for( SwFormatField* pFormatField = aIter.First(); pFormatField;  pFormatField = aIter.Next() )
         {
             if( pFormatField->GetTextField() &&
@@ -1480,7 +1480,7 @@ bool SwDoc::RemoveInvisibleContent()
 
 bool SwDoc::HasInvisibleContent() const
 {
-    if(SwIterator<SwFormatField,SwFieldType>(*getIDocumentFieldsAccess().GetSysFieldType( RES_HIDDENPARAFLD)).First())
+    if(SwIterator<SwFormatField,SwFieldType>(*getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::HiddenPara)).First())
         return true;
 
     // Search for any hidden paragraph (hidden text attribute)
@@ -1533,7 +1533,7 @@ bool SwDoc::ConvertFieldsToText()
     {
         const SwFieldType *pCurType = (*pMyFieldTypes)[nType - 1];
 
-        if ( RES_POSTITFLD == pCurType->Which() )
+        if ( SwFieldIds::Postit == pCurType->Which() )
             continue;
 
         SwIterator<SwFormatField,SwFieldType> aIter( *pCurType );
@@ -1559,20 +1559,20 @@ bool SwDoc::ConvertFieldsToText()
                 const SwField*  pField = rFormatField.GetField();
 
                 //#i55595# some fields have to be excluded in headers/footers
-                sal_uInt16 nWhich = pField->GetTyp()->Which();
+                SwFieldIds nWhich = pField->GetTyp()->Which();
                 if(!bInHeaderFooter ||
-                        (nWhich != RES_PAGENUMBERFLD &&
-                        nWhich != RES_CHAPTERFLD &&
-                        nWhich != RES_GETEXPFLD&&
-                        nWhich != RES_SETEXPFLD&&
-                        nWhich != RES_INPUTFLD&&
-                        nWhich != RES_REFPAGEGETFLD&&
-                        nWhich != RES_REFPAGESETFLD))
+                        (nWhich != SwFieldIds::PageNumber &&
+                        nWhich != SwFieldIds::Chapter &&
+                        nWhich != SwFieldIds::GetExp&&
+                        nWhich != SwFieldIds::SetExp&&
+                        nWhich != SwFieldIds::Input&&
+                        nWhich != SwFieldIds::RefPageGet&&
+                        nWhich != SwFieldIds::RefPageSet))
                 {
                     OUString sText = pField->ExpandField(true);
 
                     // database fields should not convert their command into text
-                    if( RES_DBFLD == pCurType->Which() && !static_cast<const SwDBField*>(pField)->IsInitialized())
+                    if( SwFieldIds::Database == pCurType->Which() && !static_cast<const SwDBField*>(pField)->IsInitialized())
                         sText.clear();
 
                     SwPaM aInsertPam(*pTextField->GetpTextNode(), pTextField->GetStart());
diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx
index 4c24f87..583d8bb 100644
--- a/sw/source/core/doc/docdesc.cxx
+++ b/sw/source/core/doc/docdesc.cxx
@@ -410,8 +410,8 @@ void SwDoc::ChgPageDesc( size_t i, const SwPageDesc &rChged )
     {
         rDesc.SetNumType( rChged.GetNumType() );
         // Notify page number fields that NumFormat has changed
-        getIDocumentFieldsAccess().GetSysFieldType( RES_PAGENUMBERFLD )->UpdateFields();
-        getIDocumentFieldsAccess().GetSysFieldType( RES_REFPAGEGETFLD )->UpdateFields();
+        getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::PageNumber )->UpdateFields();
+        getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::RefPageGet )->UpdateFields();
 
         // If the numbering scheme has changed we could have QuoVadis/ErgoSum texts
         // that refer to a changed page, so we invalidate foot notes.
diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx
index 7dc05e7..bfbb19a 100644
--- a/sw/source/core/doc/docfld.cxx
+++ b/sw/source/core/doc/docfld.cxx
@@ -355,22 +355,22 @@ const SwDBData& SwDoc::GetDBDesc()
         for(SwFieldTypes::size_type i = 0; i < nSize && maDBData.sDataSource.isEmpty(); ++i)
         {
             SwFieldType& rFieldType = *((*getIDocumentFieldsAccess().GetFieldTypes())[i]);
-            sal_uInt16 nWhich = rFieldType.Which();
+            SwFieldIds nWhich = rFieldType.Which();
             if(IsUsed(rFieldType))
             {
                 switch(nWhich)
                 {
-                    case RES_DBFLD:
-                    case RES_DBNEXTSETFLD:
-                    case RES_DBNUMSETFLD:
-                    case RES_DBSETNUMBERFLD:
+                    case SwFieldIds::Database:
+                    case SwFieldIds::DbNextSet:
+                    case SwFieldIds::DbNumSet:
+                    case SwFieldIds::DbSetNumber:
                     {
                         SwIterator<SwFormatField,SwFieldType> aIter( rFieldType );
                         for( SwFormatField* pField = aIter.First(); pField; pField = aIter.Next() )
                         {
                             if(pField->IsFieldInDoc())
                             {
-                                if(RES_DBFLD == nWhich)
+                                if(SwFieldIds::Database == nWhich)
                                     maDBData = (static_cast < SwDBFieldType * > (pField->GetField()->GetTyp()))->GetDBData();
                                 else
                                     maDBData = (static_cast < SwDBNameInfField* > (pField->GetField()))->GetRealDBData();
@@ -379,6 +379,7 @@ const SwDBData& SwDoc::GetDBDesc()
                         }
                     }
                     break;
+                    default: break;
                 }
             }
         }
@@ -454,37 +455,38 @@ void SwDoc::GetAllUsedDB( std::vector<OUString>& rDBNameList,
         const SwField* pField = pFormatField->GetField();
         switch( pField->GetTyp()->Which() )
         {
-            case RES_DBFLD:
+            case SwFieldIds::Database:
                 AddUsedDBToList( rDBNameList,
                                 lcl_DBDataToString(static_cast<const SwDBField*>(pField)->GetDBData() ));
                 break;
 
-            case RES_DBSETNUMBERFLD:
-            case RES_DBNAMEFLD:
+            case SwFieldIds::DbSetNumber:
+            case SwFieldIds::DatabaseName:
                 AddUsedDBToList( rDBNameList,
                                 lcl_DBDataToString(static_cast<const SwDBNameInfField*>(pField)->GetRealDBData() ));
                 break;
 
-            case RES_DBNUMSETFLD:
-            case RES_DBNEXTSETFLD:
+            case SwFieldIds::DbNumSet:
+            case SwFieldIds::DbNextSet:
                 AddUsedDBToList( rDBNameList,
                                 lcl_DBDataToString(static_cast<const SwDBNameInfField*>(pField)->GetRealDBData() ));
                 SAL_FALLTHROUGH; // JP: is that right like that?
 
-            case RES_HIDDENTXTFLD:
-            case RES_HIDDENPARAFLD:
+            case SwFieldIds::HiddenText:
+            case SwFieldIds::HiddenPara:
                 AddUsedDBToList(rDBNameList, FindUsedDBs( *pAllDBNames,
                                             pField->GetPar1(), aUsedDBNames ));
                 aUsedDBNames.clear();
                 break;
 
-            case RES_SETEXPFLD:
-            case RES_GETEXPFLD:
-            case RES_TABLEFLD:
+            case SwFieldIds::SetExp:
+            case SwFieldIds::GetExp:
+            case SwFieldIds::Table:
                 AddUsedDBToList(rDBNameList, FindUsedDBs( *pAllDBNames,
                                         pField->GetFormula(), aUsedDBNames ));
                 aUsedDBNames.clear();
                 break;
+            default: break;
         }
     }
 #endif
@@ -612,7 +614,7 @@ void SwDoc::ChangeDBFields( const std::vector<OUString>& rOldNames,
 
         switch( pField->GetTyp()->Which() )
         {
-            case RES_DBFLD:
+            case SwFieldIds::Database:
 #if HAVE_FEATURE_DBCONNECTIVITY
                 if( IsNameInArray( rOldNames, lcl_DBDataToString(static_cast<SwDBField*>(pField)->GetDBData())))
                 {
@@ -632,8 +634,8 @@ void SwDoc::ChangeDBFields( const std::vector<OUString>& rOldNames,
 #endif
                 break;
 
-            case RES_DBSETNUMBERFLD:
-            case RES_DBNAMEFLD:
+            case SwFieldIds::DbSetNumber:
+            case SwFieldIds::DatabaseName:
                 if( IsNameInArray( rOldNames,
                                 lcl_DBDataToString(static_cast<SwDBNameInfField*>(pField)->GetRealDBData())))
                 {
@@ -642,26 +644,27 @@ void SwDoc::ChangeDBFields( const std::vector<OUString>& rOldNames,
                 }
                 break;
 
-            case RES_DBNUMSETFLD:
-            case RES_DBNEXTSETFLD:
+            case SwFieldIds::DbNumSet:
+            case SwFieldIds::DbNextSet:
                 if( IsNameInArray( rOldNames,
                                 lcl_DBDataToString(static_cast<SwDBNameInfField*>(pField)->GetRealDBData())))
                 {
                     static_cast<SwDBNameInfField*>(pField)->SetDBData(aNewDBData);
                 }
                 SAL_FALLTHROUGH;
-            case RES_HIDDENTXTFLD:
-            case RES_HIDDENPARAFLD:
+            case SwFieldIds::HiddenText:
+            case SwFieldIds::HiddenPara:
                 pField->SetPar1( ReplaceUsedDBs(rOldNames, rNewName, pField->GetPar1()) );
                 bExpand = true;
                 break;
 
-            case RES_SETEXPFLD:
-            case RES_GETEXPFLD:
-            case RES_TABLEFLD:
+            case SwFieldIds::SetExp:
+            case SwFieldIds::GetExp:
+            case SwFieldIds::Table:
                 pField->SetPar2( ReplaceUsedDBs(rOldNames, rNewName, pField->GetFormula()) );
                 bExpand = true;
                 break;
+            default: break;
         }
 
         if (bExpand)
@@ -740,7 +743,7 @@ void SwDoc::ChangeAuthorityData( const SwAuthEntry* pNewData )
     for( SwFieldTypes::size_type i = INIT_FLDTYPES; i < nSize; ++i )
     {
         SwFieldType* pFieldType = (*getIDocumentFieldsAccess().GetFieldTypes())[i];
-        if( RES_AUTHORITY  == pFieldType->Which() )
+        if( SwFieldIds::TableOfAuthorities  == pFieldType->Which() )
         {
             SwAuthorityFieldType* pAuthType = static_cast<SwAuthorityFieldType*>(pFieldType);
             pAuthType->ChangeEntryContent(pNewData);
@@ -752,17 +755,17 @@ void SwDoc::ChangeAuthorityData( const SwAuthEntry* pNewData )
 
 void SwDocUpdateField::InsDelFieldInFieldLst( bool bIns, const SwTextField& rField )
 {
-    const sal_uInt16 nWhich = rField.GetFormatField().GetField()->GetTyp()->Which();
+    const SwFieldIds nWhich = rField.GetFormatField().GetField()->GetTyp()->Which();
     switch( nWhich )
     {
-    case RES_DBFLD:
-    case RES_SETEXPFLD:
-    case RES_HIDDENPARAFLD:
-    case RES_HIDDENTXTFLD:
-    case RES_DBNUMSETFLD:
-    case RES_DBNEXTSETFLD:
-    case RES_DBSETNUMBERFLD:
-    case RES_GETEXPFLD:
+    case SwFieldIds::Database:
+    case SwFieldIds::SetExp:
+    case SwFieldIds::HiddenPara:
+    case SwFieldIds::HiddenText:
+    case SwFieldIds::DbNumSet:
+    case SwFieldIds::DbNextSet:
+    case SwFieldIds::DbSetNumber:
+    case SwFieldIds::GetExp:
         break;          // these have to be added/removed!
 
     default:
@@ -887,21 +890,21 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
 
         OUString sFormula;
         const SwField* pField = pFormatField->GetField();
-        const sal_uInt16 nWhich = pField->GetTyp()->Which();
+        const SwFieldIds nWhich = pField->GetTyp()->Which();
         switch( nWhich )
         {
-            case RES_DBSETNUMBERFLD:
-            case RES_GETEXPFLD:
+            case SwFieldIds::DbSetNumber:
+            case SwFieldIds::GetExp:
                 if( GETFLD_ALL == eGetMode )
                     sFormula = sTrue;
                 break;
 
-            case RES_DBFLD:
+            case SwFieldIds::Database:
                 if( GETFLD_EXPAND & eGetMode )
                     sFormula = sTrue;
                 break;
 
-            case RES_SETEXPFLD:
+            case SwFieldIds::SetExp:
                 if ( !(eGetMode == GETFLD_EXPAND) ||
                      (nsSwGetSetExpType::GSE_STRING & pField->GetSubType()) )
                 {
@@ -909,7 +912,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
                 }
                 break;
 
-            case RES_HIDDENPARAFLD:
+            case SwFieldIds::HiddenPara:
                 if( GETFLD_ALL == eGetMode )
                 {
                     sFormula = pField->GetPar1();
@@ -926,7 +929,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
                 }
                 break;
 
-            case RES_HIDDENTXTFLD:
+            case SwFieldIds::HiddenText:
                 if( GETFLD_ALL == eGetMode )
                 {
                     sFormula = pField->GetPar1();
@@ -947,7 +950,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
                 break;
 
 #if HAVE_FEATURE_DBCONNECTIVITY
-            case RES_DBNUMSETFLD:
+            case SwFieldIds::DbNumSet:
             {
                 SwDBData aDBData(const_cast<SwDBNumSetField*>(static_cast<const SwDBNumSetField*>(pField))->GetDBData(&rDoc));
 
@@ -960,7 +963,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
                 }
             }
             break;
-            case RES_DBNEXTSETFLD:
+            case SwFieldIds::DbNextSet:
             {
                 SwDBData aDBData(const_cast<SwDBNextSetField*>(static_cast<const SwDBNextSetField*>(pField))->GetDBData(&rDoc));
 
@@ -974,6 +977,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
             }
             break;
 #endif
+            default: break;
         }
 
         if (!sFormula.isEmpty())
@@ -985,7 +989,7 @@ void SwDocUpdateField::MakeFieldList_( SwDoc& rDoc, int eGetMode )
     nNodes = rDoc.GetNodes().Count();
 }
 
-void SwDocUpdateField::GetBodyNode( const SwTextField& rTField, sal_uInt16 nFieldWhich )
+void SwDocUpdateField::GetBodyNode( const SwTextField& rTField, SwFieldIds nFieldWhich )
 {
     const SwTextNode& rTextNd = rTField.GetTextNode();
     const SwDoc& rDoc = *rTextNd.GetDoc();
@@ -1021,13 +1025,13 @@ void SwDocUpdateField::GetBodyNode( const SwTextField& rTField, sal_uInt16 nFiel
     }
 
     // always set the BodyTextFlag in GetExp or DB fields
-    if( RES_GETEXPFLD == nFieldWhich )
+    if( SwFieldIds::GetExp == nFieldWhich )
     {
         SwGetExpField* pGetField = const_cast<SwGetExpField*>(static_cast<const SwGetExpField*>(rTField.GetFormatField().GetField()));
         pGetField->ChgBodyTextFlag( bIsInBody );
     }
 #if HAVE_FEATURE_DBCONNECTIVITY
-    else if( RES_DBFLD == nFieldWhich )
+    else if( SwFieldIds::Database == nFieldWhich )
     {
         SwDBField* pDBField = const_cast<SwDBField*>(static_cast<const SwDBField*>(rTField.GetFormatField().GetField()));
         pDBField->ChgBodyTextFlag( bIsInBody );
@@ -1081,10 +1085,10 @@ void SwDocUpdateField::InsertFieldType( const SwFieldType& rType )
     OUString sFieldName;
     switch( rType.Which() )
     {
-    case RES_USERFLD :
+    case SwFieldIds::User :
         sFieldName = static_cast<const SwUserFieldType&>(rType).GetName();
         break;
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
         sFieldName = static_cast<const SwSetExpFieldType&>(rType).GetName();
         break;
     default:
@@ -1114,12 +1118,13 @@ void SwDocUpdateField::RemoveFieldType( const SwFieldType& rType )
     OUString sFieldName;
     switch( rType.Which() )
     {
-    case RES_USERFLD :
+    case SwFieldIds::User :
         sFieldName = static_cast<const SwUserFieldType&>(rType).GetName();
         break;
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
         sFieldName = static_cast<const SwSetExpFieldType&>(rType).GetName();
         break;
+    default: break;
     }
 
     if( !sFieldName.isEmpty() )
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 6f70be5..cab0d32 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1738,7 +1738,7 @@ SwTableNumFormatMerge::SwTableNumFormatMerge( const SwDoc& rSrc, SwDoc& rDest )
         ( pNFormat = rDest.GetNumberFormatter())->MergeFormatter( *pN );
 
     if( &rSrc != &rDest )
-        static_cast<SwGetRefFieldType*>(rSrc.getIDocumentFieldsAccess().GetSysFieldType( RES_GETREFFLD ))->
+        static_cast<SwGetRefFieldType*>(rSrc.getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::GetRef ))->
             MergeWithOtherDoc( rDest );
 }
 
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index 38b9f87..260adba 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -644,7 +644,7 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable,
     OSL_ENSURE( nId == USHRT_MAX  || nId < rDoc.getIDocumentFieldsAccess().GetFieldTypes()->size(),
             "FieldType index out of bounds." );
     SwFieldType *pType = (nId != USHRT_MAX) ? (*rDoc.getIDocumentFieldsAccess().GetFieldTypes())[nId] : nullptr;
-    OSL_ENSURE(!pType || pType->Which() == RES_SETEXPFLD, "wrong Id for Label");
+    OSL_ENSURE(!pType || pType->Which() == SwFieldIds::SetExp, "wrong Id for Label");
 
     SwTextFormatColl * pColl = nullptr;
     if( pType )
@@ -1005,7 +1005,7 @@ lcl_InsertDrawLabel( SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable
     OSL_ENSURE( nId == USHRT_MAX  || nId < rDoc.getIDocumentFieldsAccess().GetFieldTypes()->size(),
             "FieldType index out of bounds" );
     SwFieldType *pType = nId != USHRT_MAX ? (*rDoc.getIDocumentFieldsAccess().GetFieldTypes())[nId] : nullptr;
-    OSL_ENSURE( !pType || pType->Which() == RES_SETEXPFLD, "Wrong label id" );
+    OSL_ENSURE( !pType || pType->Which() == SwFieldIds::SetExp, "Wrong label id" );
 
     SwTextFormatColl *pColl = nullptr;
     if( pType )
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index 7be0795..df5d5d0 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -1254,7 +1254,7 @@ void SwTOXBaseSection::UpdateTemplate( const SwTextNode* pOwnChapterNode )
 void SwTOXBaseSection::UpdateSequence( const SwTextNode* pOwnChapterNode )
 {
     SwDoc* pDoc = GetFormat()->GetDoc();
-    SwFieldType* pSeqField = pDoc->getIDocumentFieldsAccess().GetFieldType(RES_SETEXPFLD, GetSequenceName(), false);
+    SwFieldType* pSeqField = pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::SetExp, GetSequenceName(), false);
     if(!pSeqField)
         return;
 
@@ -1296,7 +1296,7 @@ void SwTOXBaseSection::UpdateSequence( const SwTextNode* pOwnChapterNode )
 void SwTOXBaseSection::UpdateAuthorities( const SwTOXInternational& rIntl )
 {
     SwDoc* pDoc = GetFormat()->GetDoc();
-    SwFieldType* pAuthField = pDoc->getIDocumentFieldsAccess().GetFieldType(RES_AUTHORITY, OUString(), false);
+    SwFieldType* pAuthField = pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::TableOfAuthorities, OUString(), false);
     if(!pAuthField)
         return;
 
diff --git a/sw/source/core/docnode/ndnum.cxx b/sw/source/core/docnode/ndnum.cxx
index 78d0b98..6e19eb0 100644
--- a/sw/source/core/docnode/ndnum.cxx
+++ b/sw/source/core/docnode/ndnum.cxx
@@ -69,7 +69,7 @@ void SwNodes::UpdateOutlineNode(SwNode & rNd)
         pTextNd->UpdateOutlineState();
 
         // update the structure fields
-        GetDoc()->getIDocumentFieldsAccess().GetSysFieldType( RES_CHAPTERFLD )->UpdateFields();
+        GetDoc()->getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::Chapter )->UpdateFields();
     }
 }
 
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index 7c5d983..1f69c67 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -273,7 +273,7 @@ void SwNodes::ChgNode( SwNodeIndex& rDelPos, sal_uLong nSz,
                                     rNds.GetDoc()->getIDocumentFieldsAccess().InsDelFieldInFieldLst( !bToUndo, *pTextField );
 
                                     const SwFieldType* pTyp = pTextField->GetFormatField().GetField()->GetTyp();
-                                    if ( RES_POSTITFLD == pTyp->Which() )
+                                    if ( SwFieldIds::Postit == pTyp->Which() )
                                     {
                                         rNds.GetDoc()->GetDocShell()->Broadcast(
                                             SwFormatFieldHint(
@@ -282,7 +282,7 @@ void SwNodes::ChgNode( SwNodeIndex& rDelPos, sal_uLong nSz,
                                                   ? SwFormatFieldHintWhich::INSERTED
                                                   : SwFormatFieldHintWhich::REMOVED ) ) );
                                     }
-                                    else if( RES_DDEFLD == pTyp->Which() )
+                                    else if( SwFieldIds::Dde == pTyp->Which() )
                                     {
                                         if( bToUndo )
                                             const_cast<SwDDEFieldType*>(static_cast<const SwDDEFieldType*>(pTyp))->DecRefCnt();
diff --git a/sw/source/core/edit/edfld.cxx b/sw/source/core/edit/edfld.cxx
index 273840b..69b900a 100644
--- a/sw/source/core/edit/edfld.cxx
+++ b/sw/source/core/edit/edfld.cxx
@@ -41,12 +41,12 @@
 #include <DocumentSettingManager.hxx>
 #include <IDocumentContentOperations.hxx>
 
-/// count field types with a ResId, if 0 count all
-size_t SwEditShell::GetFieldTypeCount(sal_uInt16 nResId ) const
+/// count field types with a ResId, if SwFieldIds::Unknown count all
+size_t SwEditShell::GetFieldTypeCount(SwFieldIds nResId ) const
 {
     const SwFieldTypes* pFieldTypes = GetDoc()->getIDocumentFieldsAccess().GetFieldTypes();
 
-    if(nResId == USHRT_MAX)
+    if(nResId == SwFieldIds::Unknown)
     {
         return static_cast<sal_uInt16>(pFieldTypes->size());
     }
@@ -63,11 +63,11 @@ size_t SwEditShell::GetFieldTypeCount(sal_uInt16 nResId ) const
 }
 
 /// get field types with a ResId, if 0 get all
-SwFieldType* SwEditShell::GetFieldType(size_t nField, sal_uInt16 nResId ) const
+SwFieldType* SwEditShell::GetFieldType(size_t nField, SwFieldIds nResId ) const
 {
     const SwFieldTypes* pFieldTypes = GetDoc()->getIDocumentFieldsAccess().GetFieldTypes();
 
-    if(nResId == USHRT_MAX && nField < pFieldTypes->size())
+    if(nResId == SwFieldIds::Unknown && nField < pFieldTypes->size())
     {
         return (*pFieldTypes)[nField];
     }
@@ -87,7 +87,7 @@ SwFieldType* SwEditShell::GetFieldType(size_t nField, sal_uInt16 nResId ) const
 }
 
 /// get first type with given ResId and name
-SwFieldType* SwEditShell::GetFieldType(sal_uInt16 nResId, const OUString& rName) const
+SwFieldType* SwEditShell::GetFieldType(SwFieldIds nResId, const OUString& rName) const
 {
     return GetDoc()->getIDocumentFieldsAccess().GetFieldType( nResId, rName, false );
 }
@@ -99,7 +99,7 @@ void SwEditShell::RemoveFieldType(size_t nField)
 }
 
 /// delete field type based on its name
-void SwEditShell::RemoveFieldType(sal_uInt16 nResId, const OUString& rStr)
+void SwEditShell::RemoveFieldType(SwFieldIds nResId, const OUString& rStr)
 {
     const SwFieldTypes* pFieldTypes = GetDoc()->getIDocumentFieldsAccess().GetFieldTypes();
     const SwFieldTypes::size_type nSize = pFieldTypes->size();
@@ -172,7 +172,7 @@ static SwTextField* lcl_FindInputField( SwDoc* pDoc, SwField& rField )
 {
     // Search field via its address. For input fields this needs to be done in protected fields.
     SwTextField* pTField = nullptr;
-    if( RES_INPUTFLD == rField.Which() )
+    if( SwFieldIds::Input == rField.Which() )
     {
         const sal_uInt32 nMaxItems =
             pDoc->GetAttrPool().GetItemCount2( RES_TXTATR_INPUTFIELD );
@@ -187,7 +187,7 @@ static SwTextField* lcl_FindInputField( SwDoc* pDoc, SwField& rField )
             }
         }
     }
-    else if( RES_SETEXPFLD == rField.Which()
+    else if( SwFieldIds::SetExp == rField.Which()
         && static_cast<SwSetExpField&>(rField).GetInputFlag() )
     {
         const sal_uInt32 nMaxItems =
@@ -214,8 +214,8 @@ void SwEditShell::UpdateFields( SwField &rField )
         // If there are no selections so take the value of the current cursor position.
         SwMsgPoolItem* pMsgHint = nullptr;
         SwRefMarkFieldUpdate aRefMkHt( GetOut() );
-        sal_uInt16 nFieldWhich = rField.GetTyp()->Which();
-        if( RES_GETREFFLD == nFieldWhich )
+        SwFieldIds nFieldWhich = rField.GetTyp()->Which();
+        if( SwFieldIds::GetRef == nFieldWhich )
             pMsgHint = &aRefMkHt;
 
         SwPaM* pCursor = GetCursor();
@@ -402,10 +402,10 @@ bool SwEditShell::IsAnyDatabaseFieldInDoc()const
         {
             switch(pFieldType->Which())
             {
-                case RES_DBFLD:
-                case RES_DBNEXTSETFLD:
-                case RES_DBNUMSETFLD:
-                case RES_DBSETNUMBERFLD:
+                case SwFieldIds::Database:
+                case SwFieldIds::DbNextSet:
+                case SwFieldIds::DbNumSet:
+                case SwFieldIds::DbSetNumber:
                 {
                     SwIterator<SwFormatField,SwFieldType> aIter( *pFieldType );
                     SwFormatField* pField = aIter.First();
@@ -417,6 +417,7 @@ bool SwEditShell::IsAnyDatabaseFieldInDoc()const
                     }
                 }
                 break;
+                default: break;
             }
         }
     }
diff --git a/sw/source/core/edit/edfldexp.cxx b/sw/source/core/edit/edfldexp.cxx
index 9a47917..946be7d 100644
--- a/sw/source/core/edit/edfldexp.cxx
+++ b/sw/source/core/edit/edfldexp.cxx
@@ -40,34 +40,27 @@ bool SwEditShell::IsFieldDataSourceAvailable(OUString& rUsedDataSource) const
     uno::Reference<sdb::XDatabaseContext> xDBContext = sdb::DatabaseContext::create(xContext);
     for(const auto pFieldType : *pFieldTypes)
     {
-        if(IsUsed(*pFieldType))
+        if(IsUsed(*pFieldType) && pFieldType->Which() == SwFieldIds::Database)
         {
-            switch(pFieldType->Which())
+            SwIterator<SwFormatField,SwFieldType> aIter( *pFieldType );
+            SwFormatField* pFormatField = aIter.First();
+            while(pFormatField)
             {
-                case RES_DBFLD:
+                if(pFormatField->IsFieldInDoc())
                 {
-                    SwIterator<SwFormatField,SwFieldType> aIter( *pFieldType );
-                    SwFormatField* pFormatField = aIter.First();
-                    while(pFormatField)
+                    const SwDBData& rData =
+                            static_cast<SwDBFieldType*>(pFormatField->GetField()->GetTyp())->GetDBData();
+                    try
                     {
-                        if(pFormatField->IsFieldInDoc())
-                        {
-                            const SwDBData& rData =
-                                    static_cast<SwDBFieldType*>(pFormatField->GetField()->GetTyp())->GetDBData();
-                            try
-                            {
-                                return xDBContext->getByName(rData.sDataSource).hasValue();
-                            }
-                            catch(uno::Exception const &)
-                            {
-                                rUsedDataSource = rData.sDataSource;
-                                return false;
-                            }
-                        }
-                        pFormatField = aIter.Next();
+                        return xDBContext->getByName(rData.sDataSource).hasValue();
+                    }
+                    catch(uno::Exception const &)
+                    {
+                        rUsedDataSource = rData.sDataSource;
+                        return false;
                     }
                 }
-                break;
+                pFormatField = aIter.Next();
             }
         }
     }
diff --git a/sw/source/core/fields/authfld.cxx b/sw/source/core/fields/authfld.cxx
index de3e7af..bf7cabb 100644
--- a/sw/source/core/fields/authfld.cxx
+++ b/sw/source/core/fields/authfld.cxx
@@ -64,7 +64,7 @@ bool    SwAuthEntry::operator==(const SwAuthEntry& rComp)
 }
 
 SwAuthorityFieldType::SwAuthorityFieldType(SwDoc* pDoc)
-    : SwFieldType( RES_AUTHORITY ),
+    : SwFieldType( SwFieldIds::TableOfAuthorities ),
     m_pDoc(pDoc),
     m_SortKeyArr(3),
     m_cPrefix('['),
diff --git a/sw/source/core/fields/cellfml.cxx b/sw/source/core/fields/cellfml.cxx
index d45c070..0c0d96c 100644
--- a/sw/source/core/fields/cellfml.cxx
+++ b/sw/source/core/fields/cellfml.cxx
@@ -162,13 +162,13 @@ double SwTableBox::GetValue( SwTableCalcPara& rCalcPara ) const
             const SwField* pField = pTextField->GetFormatField().GetField();
             switch ( pField->GetTyp()->Which() )
             {
-            case RES_SETEXPFLD:
+            case SwFieldIds::SetExp:
                 nRet = static_cast<const SwSetExpField*>(pField)->GetValue();
                 break;
-            case RES_USERFLD:
+            case SwFieldIds::User:
                 nRet = static_cast<const SwUserField*>(pField)->GetValue();
                 break;
-            case RES_TABLEFLD:
+            case SwFieldIds::Table:
                 {
                     SwTableField* pTableField = const_cast<SwTableField*>(static_cast<const SwTableField*>(pField));
                     if( !pTableField->IsValid() )
@@ -183,11 +183,11 @@ double SwTableBox::GetValue( SwTableCalcPara& rCalcPara ) const
                 }
                 break;
 
-            case RES_DATETIMEFLD:
+            case SwFieldIds::DateTime:
                 nRet = static_cast<const SwDateTimeField*>( pField )->GetValue();
                 break;
 
-            case RES_JUMPEDITFLD:
+            case SwFieldIds::JumpEdit:
                 //JP 14.09.98: Bug 56112 - placeholder never have the right content!
                 nRet = 0;
                 break;
diff --git a/sw/source/core/fields/chpfld.cxx b/sw/source/core/fields/chpfld.cxx
index f7cf4ea..de93b31 100644
--- a/sw/source/core/fields/chpfld.cxx
+++ b/sw/source/core/fields/chpfld.cxx
@@ -52,7 +52,7 @@ OUString removeControlChars(const OUString& sIn)
 }
 
 SwChapterFieldType::SwChapterFieldType()
-    : SwFieldType( RES_CHAPTERFLD )
+    : SwFieldType( SwFieldIds::Chapter )
 {
 }
 
diff --git a/sw/source/core/fields/dbfld.cxx b/sw/source/core/fields/dbfld.cxx
index beea51a..e6724c2 100644
--- a/sw/source/core/fields/dbfld.cxx
+++ b/sw/source/core/fields/dbfld.cxx
@@ -53,7 +53,7 @@ static OUString lcl_DBTrennConv(const OUString& aContent)
 // database field type
 
 SwDBFieldType::SwDBFieldType(SwDoc* pDocPtr, const OUString& rNam, const SwDBData& rDBData ) :
-    SwValueFieldType( pDocPtr, RES_DBFLD ),
+    SwValueFieldType( pDocPtr, SwFieldIds::Database ),
     aDBData(rDBData),
     sName(rNam),
     sColumn(rNam),
@@ -550,7 +550,7 @@ void SwDBNameInfField::SetSubType(sal_uInt16 nType)
 // next dataset
 
 SwDBNextSetFieldType::SwDBNextSetFieldType()
-    : SwFieldType( RES_DBNEXTSETFLD )
+    : SwFieldType( SwFieldIds::DbNextSet )
 {
 }
 
@@ -636,7 +636,7 @@ bool SwDBNextSetField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // dataset with certain ID
 
 SwDBNumSetFieldType::SwDBNumSetFieldType() :
-    SwFieldType( RES_DBNUMSETFLD )
+    SwFieldType( SwFieldIds::DbNumSet )
 {
 }
 
@@ -745,7 +745,7 @@ bool    SwDBNumSetField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwDBNameFieldType::SwDBNameFieldType(SwDoc* pDocument)
-    : SwFieldType( RES_DBNAMEFLD )
+    : SwFieldType( SwFieldIds::DatabaseName )
 {
     pDoc = pDocument;
 }
@@ -795,7 +795,7 @@ bool SwDBNameField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwDBSetNumberFieldType::SwDBSetNumberFieldType()
-    : SwFieldType( RES_DBSETNUMBERFLD )
+    : SwFieldType( SwFieldIds::DbSetNumber )
 {
 }
 
diff --git a/sw/source/core/fields/ddefld.cxx b/sw/source/core/fields/ddefld.cxx
index e83b66c..3ff1406 100644
--- a/sw/source/core/fields/ddefld.cxx
+++ b/sw/source/core/fields/ddefld.cxx
@@ -232,7 +232,7 @@ bool SwIntrnlRefLink::IsInRange( sal_uLong nSttNd, sal_uLong nEndNd,
 
 SwDDEFieldType::SwDDEFieldType(const OUString& rName,
                                const OUString& rCmd, SfxLinkUpdateMode nUpdateType )
-    : SwFieldType( RES_DDEFLD ),
+    : SwFieldType( SwFieldIds::Dde ),
     aName( rName ), pDoc( nullptr ), nRefCnt( 0 )
 {
     bCRLFFlag = bDeleted = false;
diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx
index 912a810..a43179f 100644
--- a/sw/source/core/fields/docufld.cxx
+++ b/sw/source/core/fields/docufld.cxx
@@ -97,7 +97,7 @@ using namespace ::com::sun::star::uno;
 using namespace nsSwDocInfoSubType;
 
 SwPageNumberFieldType::SwPageNumberFieldType()
-    : SwFieldType( RES_PAGENUMBERFLD ),
+    : SwFieldType( SwFieldIds::PageNumber ),
     nNumberingType( SVX_NUM_ARABIC ),
     bVirtuell( false )
 {
@@ -309,7 +309,7 @@ bool SwPageNumberField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwAuthorFieldType::SwAuthorFieldType()
-    : SwFieldType( RES_AUTHORFLD )
+    : SwFieldType( SwFieldIds::Author )
 {
 }
 
@@ -398,7 +398,7 @@ bool SwAuthorField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwFileNameFieldType::SwFileNameFieldType(SwDoc *pDocument)
-    : SwFieldType( RES_FILENAMEFLD )
+    : SwFieldType( SwFieldIds::Filename )
 {
     pDoc = pDocument;
 }
@@ -571,7 +571,7 @@ bool SwFileNameField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwTemplNameFieldType::SwTemplNameFieldType(SwDoc *pDocument)
-    : SwFieldType( RES_TEMPLNAMEFLD )
+    : SwFieldType( SwFieldIds::TemplateName )
 {
     pDoc = pDocument;
 }
@@ -715,7 +715,7 @@ bool SwTemplNameField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwDocStatFieldType::SwDocStatFieldType(SwDoc* pDocument)
-    : SwFieldType( RES_DOCSTATFLD ), nNumberingType( SVX_NUM_ARABIC )
+    : SwFieldType( SwFieldIds::DocStat ), nNumberingType( SVX_NUM_ARABIC )
 {
     pDoc = pDocument;
 }
@@ -836,7 +836,7 @@ bool SwDocStatField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // Document info field type
 
 SwDocInfoFieldType::SwDocInfoFieldType(SwDoc* pDc)
-    : SwValueFieldType( pDc, RES_DOCINFOFLD )
+    : SwValueFieldType( pDc, SwFieldIds::DocInfo )
 {
 }
 
@@ -1255,7 +1255,7 @@ bool SwDocInfoField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwHiddenTextFieldType::SwHiddenTextFieldType( bool bSetHidden )
-    : SwFieldType( RES_HIDDENTXTFLD ), bHidden( bSetHidden )
+    : SwFieldType( SwFieldIds::HiddenText ), bHidden( bSetHidden )
 {
 }
 
@@ -1545,7 +1545,7 @@ OUString SwHiddenTextField::GetDBName(const OUString& rName, SwDoc *pDoc)
 // field type for line height 0
 
 SwHiddenParaFieldType::SwHiddenParaFieldType()
-    : SwFieldType( RES_HIDDENPARAFLD )
+    : SwFieldType( SwFieldIds::HiddenPara )
 {
 }
 
@@ -1624,7 +1624,7 @@ OUString SwHiddenParaField::GetPar1() const
 // PostIt field type
 
 SwPostItFieldType::SwPostItFieldType(SwDoc *pDoc)
-    : SwFieldType( RES_POSTITFLD )
+    : SwFieldType( SwFieldIds::Postit )
     , mpDoc(pDoc)
 {}
 
@@ -1846,7 +1846,7 @@ void SwPostItField::dumpAsXml(xmlTextWriterPtr pWriter) const
 // extended user information field type
 
 SwExtUserFieldType::SwExtUserFieldType()
-    : SwFieldType( RES_EXTUSERFLD )
+    : SwFieldType( SwFieldIds::ExtUser )
 {
 }
 
@@ -1976,7 +1976,7 @@ bool SwExtUserField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // field type for relative page numbers
 
 SwRefPageSetFieldType::SwRefPageSetFieldType()
-    : SwFieldType( RES_REFPAGESETFLD )
+    : SwFieldType( SwFieldIds::RefPageSet )
 {
 }
 
@@ -2053,7 +2053,7 @@ bool SwRefPageSetField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // relative page numbers - query field
 
 SwRefPageGetFieldType::SwRefPageGetFieldType( SwDoc* pDc )
-    : SwFieldType( RES_REFPAGEGETFLD ), pDoc( pDc ), nNumberingType( SVX_NUM_ARABIC )
+    : SwFieldType( SwFieldIds::RefPageGet ), pDoc( pDc ), nNumberingType( SVX_NUM_ARABIC )
 {
 }
 
@@ -2087,7 +2087,7 @@ void SwRefPageGetFieldType::Modify( const SfxPoolItem* pOld, const SfxPoolItem*
 
 bool SwRefPageGetFieldType::MakeSetList( SetGetExpFields& rTmpLst )
 {
-    SwIterator<SwFormatField,SwFieldType> aIter(*pDoc->getIDocumentFieldsAccess().GetSysFieldType( RES_REFPAGESETFLD));
+    SwIterator<SwFormatField,SwFieldType> aIter(*pDoc->getIDocumentFieldsAccess().GetSysFieldType( SwFieldIds::RefPageSet));
     for ( SwFormatField* pFormatField = aIter.First(); pFormatField; pFormatField = aIter.Next() )
     {
             // update only the GetRef fields
@@ -2299,7 +2299,7 @@ bool SwRefPageGetField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // field type to jump to and edit
 
 SwJumpEditFieldType::SwJumpEditFieldType( SwDoc* pD )
-    : SwFieldType( RES_JUMPEDITFLD ), pDoc( pD ), aDep( this, nullptr )
+    : SwFieldType( SwFieldIds::JumpEdit ), pDoc( pD ), aDep( this, nullptr )
 {
 }
 
@@ -2427,7 +2427,7 @@ bool SwJumpEditField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 // combined character field type
 
 SwCombinedCharFieldType::SwCombinedCharFieldType()
-    : SwFieldType( RES_COMBINED_CHARS )
+    : SwFieldType( SwFieldIds::CombinedChars )
 {
 }
 
diff --git a/sw/source/core/fields/expfld.cxx b/sw/source/core/fields/expfld.cxx
index 1f1e688..813f8e1 100644
--- a/sw/source/core/fields/expfld.cxx
+++ b/sw/source/core/fields/expfld.cxx
@@ -261,7 +261,7 @@ const SwTextNode* GetBodyTextNode( const SwDoc& rDoc, SwPosition& rPos,
 }
 
 SwGetExpFieldType::SwGetExpFieldType(SwDoc* pDc)
-    : SwValueFieldType( pDc, RES_GETEXPFLD )
+    : SwValueFieldType( pDc, SwFieldIds::GetExp )
 {
 }
 
@@ -342,7 +342,7 @@ void SwGetExpField::ChangeExpansion( const SwFrame& rFrame, const SwTextField& r
     // #i82544#
     if( bLateInitialization )
     {
-        SwFieldType* pSetExpField = rDoc.getIDocumentFieldsAccess().GetFieldType(RES_SETEXPFLD, GetFormula(), false);
+        SwFieldType* pSetExpField = rDoc.getIDocumentFieldsAccess().GetFieldType(SwFieldIds::SetExp, GetFormula(), false);
         if( pSetExpField )
         {
             bLateInitialization = false;
@@ -486,7 +486,7 @@ bool SwGetExpField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 }
 
 SwSetExpFieldType::SwSetExpFieldType( SwDoc* pDc, const OUString& rName, sal_uInt16 nTyp )
-    : SwValueFieldType( pDc, RES_SETEXPFLD ),
+    : SwValueFieldType( pDc, SwFieldIds::SetExp ),
     sName( rName ),
     pOutlChgNd( nullptr ),
     sDelim( "." ),
@@ -1110,7 +1110,7 @@ bool SwSetExpField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const
 }
 
 SwInputFieldType::SwInputFieldType( SwDoc* pD )
-    : SwFieldType( RES_INPUTFLD )
+    : SwFieldType( SwFieldIds::Input )
     , pDoc( pD )
 {
 }
@@ -1155,7 +1155,7 @@ void SwInputField::applyFieldContent( const OUString& rNewFieldContent )
     else if( (nSubType & 0x00ff) == INP_USR )
     {
         SwUserFieldType* pUserTyp = static_cast<SwUserFieldType*>(
-            static_cast<SwInputFieldType*>(GetTyp())->GetDoc()->getIDocumentFieldsAccess().GetFieldType( RES_USERFLD, getContent(), false ) );
+            static_cast<SwInputFieldType*>(GetTyp())->GetDoc()->getIDocumentFieldsAccess().GetFieldType( SwFieldIds::User, getContent(), false ) );
         if( pUserTyp )
         {
             pUserTyp->SetContent( rNewFieldContent );
@@ -1220,7 +1220,7 @@ OUString SwInputField::Expand() const
     if( (nSubType & 0x00ff) == INP_USR )
     {
         SwUserFieldType* pUserTyp = static_cast<SwUserFieldType*>(
-            static_cast<SwInputFieldType*>(GetTyp())->GetDoc()->getIDocumentFieldsAccess().GetFieldType( RES_USERFLD, getContent(), false ) );
+            static_cast<SwInputFieldType*>(GetTyp())->GetDoc()->getIDocumentFieldsAccess().GetFieldType( SwFieldIds::User, getContent(), false ) );
         if( pUserTyp )
             return pUserTyp->GetContent();
     }
diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx
index 69233a9..b24f6c1 100644
--- a/sw/source/core/fields/fldbas.cxx
+++ b/sw/source/core/fields/fldbas.cxx
@@ -28,6 +28,7 @@
 #include <svl/zforlist.hxx>
 #include <svl/zformat.hxx>
 #include <editeng/unolingu.hxx>
+#include <o3tl/enumarray.hxx>
 #include <unofldmid.h>
 #include <doc.hxx>
 #include <editsh.hxx>
@@ -78,47 +79,47 @@ std::vector<OUString>* SwFieldType::s_pFieldNames = nullptr;
 namespace
 {
 
-    const sal_uInt16 aTypeTab[] = {
-    /* RES_DBFLD            */      TYP_DBFLD,
-    /* RES_USERFLD          */      TYP_USERFLD,
-    /* RES_FILENAMEFLD      */      TYP_FILENAMEFLD,
-    /* RES_DBNAMEFLD        */      TYP_DBNAMEFLD,
-    /* RES_DATEFLD          */      TYP_DATEFLD,
-    /* RES_TIMEFLD          */      TYP_TIMEFLD,
-    /* RES_PAGENUMBERFLD    */      TYP_PAGENUMBERFLD,  // dynamic
-    /* RES_AUTHORFLD        */      TYP_AUTHORFLD,
-    /* RES_CHAPTERFLD       */      TYP_CHAPTERFLD,
-    /* RES_DOCSTATFLD       */      TYP_DOCSTATFLD,
-    /* RES_GETEXPFLD        */      TYP_GETFLD,         // dynamic
-    /* RES_SETEXPFLD        */      TYP_SETFLD,         // dynamic
-    /* RES_GETREFFLD        */      TYP_GETREFFLD,
-    /* RES_HIDDENTXTFLD     */      TYP_HIDDENTXTFLD,
-    /* RES_POSTITFLD        */      TYP_POSTITFLD,
-    /* RES_FIXDATEFLD       */      TYP_FIXDATEFLD,
-    /* RES_FIXTIMEFLD       */      TYP_FIXTIMEFLD,
-    /* RES_REGFLD           */      0,                  // old (no change since 2000)
-    /* RES_VARREGFLD        */      0,                  // old (no change since 2000)
-    /* RES_SETREFFLD        */      TYP_SETREFFLD,
-    /* RES_INPUTFLD         */      TYP_INPUTFLD,
-    /* RES_MACROFLD         */      TYP_MACROFLD,
-    /* RES_DDEFLD           */      TYP_DDEFLD,
-    /* RES_TABLEFLD         */      TYP_FORMELFLD,
-    /* RES_HIDDENPARAFLD    */      TYP_HIDDENPARAFLD,
-    /* RES_DOCINFOFLD       */      TYP_DOCINFOFLD,
-    /* RES_TEMPLNAMEFLD     */      TYP_TEMPLNAMEFLD,
-    /* RES_DBNEXTSETFLD     */      TYP_DBNEXTSETFLD,
-    /* RES_DBNUMSETFLD      */      TYP_DBNUMSETFLD,
-    /* RES_DBSETNUMBERFLD   */      TYP_DBSETNUMBERFLD,
-    /* RES_EXTUSERFLD       */      TYP_EXTUSERFLD,
-    /* RES_REFPAGESETFLD    */      TYP_SETREFPAGEFLD,
-    /* RES_REFPAGEGETFLD    */      TYP_GETREFPAGEFLD,
-    /* RES_INTERNETFLD      */      TYP_INTERNETFLD,
-    /* RES_JUMPEDITFLD      */      TYP_JUMPEDITFLD,
-    /* RES_SCRIPTFLD        */      TYP_SCRIPTFLD,
-    /* RES_DATETIMEFLD      */      0,                  // dynamic
-    /* RES_AUTHORITY        */      TYP_AUTHORITY,
-    /* RES_COMBINED_CHARS   */      TYP_COMBINED_CHARS,
-    /* RES_DROPDOWN         */      TYP_DROPDOWN
+    const o3tl::enumarray<SwFieldIds,SwFieldTypesEnum> aTypeTab {
+    /* SwFieldIds::Database      */      TYP_DBFLD,
+    /* SwFieldIds::User          */      TYP_USERFLD,
+    /* SwFieldIds::Filename      */      TYP_FILENAMEFLD,
+    /* SwFieldIds::DatabaseName  */      TYP_DBNAMEFLD,
+    /* SwFieldIds::Date          */      TYP_DATEFLD,
+    /* SwFieldIds::Time          */      TYP_TIMEFLD,
+    /* SwFieldIds::PageNumber    */      TYP_PAGENUMBERFLD,  // dynamic
+    /* SwFieldIds::Author        */      TYP_AUTHORFLD,
+    /* SwFieldIds::Chapter       */      TYP_CHAPTERFLD,
+    /* SwFieldIds::DocStat       */      TYP_DOCSTATFLD,
+    /* SwFieldIds::GetExp        */      TYP_GETFLD,         // dynamic
+    /* SwFieldIds::SetExp        */      TYP_SETFLD,         // dynamic
+    /* SwFieldIds::GetRef        */      TYP_GETREFFLD,
+    /* SwFieldIds::HiddenText    */      TYP_HIDDENTXTFLD,
+    /* SwFieldIds::Postit        */      TYP_POSTITFLD,
+    /* SwFieldIds::FixDate       */      TYP_FIXDATEFLD,
+    /* SwFieldIds::FixTime       */      TYP_FIXTIMEFLD,
+    /* SwFieldIds::Reg           */      TYP_BEGIN,         // old (no change since 2000)
+    /* SwFieldIds::VarReg        */      TYP_BEGIN,         // old (no change since 2000)
+    /* SwFieldIds::SetRef        */      TYP_SETREFFLD,
+    /* SwFieldIds::Input         */      TYP_INPUTFLD,
+    /* SwFieldIds::Macro         */      TYP_MACROFLD,
+    /* SwFieldIds::Dde           */      TYP_DDEFLD,
+    /* SwFieldIds::Table         */      TYP_FORMELFLD,
+    /* SwFieldIds::HiddenPara    */      TYP_HIDDENPARAFLD,
+    /* SwFieldIds::DocInfo       */      TYP_DOCINFOFLD,
+    /* SwFieldIds::TemplateName  */      TYP_TEMPLNAMEFLD,
+    /* SwFieldIds::DbNextSet     */      TYP_DBNEXTSETFLD,
+    /* SwFieldIds::DbNumSet      */      TYP_DBNUMSETFLD,
+    /* SwFieldIds::DbSetNumber   */      TYP_DBSETNUMBERFLD,
+    /* SwFieldIds::ExtUser       */      TYP_EXTUSERFLD,
+    /* SwFieldIds::RefPageSet    */      TYP_SETREFPAGEFLD,
+    /* SwFieldIds::RefPageGet    */      TYP_GETREFPAGEFLD,
+    /* SwFieldIds::Internet      */      TYP_INTERNETFLD,
+    /* SwFieldIds::JumpEdit      */      TYP_JUMPEDITFLD,
+    /* SwFieldIds::Script        */      TYP_SCRIPTFLD,
+    /* SwFieldIds::DateTime      */      TYP_BEGIN,         // dynamic
+    /* SwFieldIds::TableOfAuthorities*/  TYP_AUTHORITY,
+    /* SwFieldIds::CombinedChars */      TYP_COMBINED_CHARS,
+    /* SwFieldIds::Dropdown      */      TYP_DROPDOWN
     };
 
 }
@@ -134,7 +135,7 @@ OUString SwFieldType::GetTypeStr(sal_uInt16 nTypeId)
 }
 
 // each field refences a field type that is unique for each document
-SwFieldType::SwFieldType( sal_uInt16 nWhichId )
+SwFieldType::SwFieldType( SwFieldIds nWhichId )
     : SwModify(nullptr)
     , m_nWhich(nWhichId)
 {
@@ -192,7 +193,7 @@ SwField::~SwField()
 // instead of indirectly via the type
 
 #ifdef DBG_UTIL
-sal_uInt16 SwField::Which() const
+SwFieldIds SwField::Which() const
 {
     assert(m_pType);
     return m_pType->Which();
@@ -205,21 +206,21 @@ sal_uInt16 SwField::GetTypeId() const
     sal_uInt16 nRet;
     switch (m_pType->Which())
     {
-    case RES_DATETIMEFLD:
+    case SwFieldIds::DateTime:
         if (GetSubType() & FIXEDFLD)
             nRet = static_cast<sal_uInt16>(GetSubType() & DATEFLD ? TYP_FIXDATEFLD : TYP_FIXTIMEFLD);
         else
             nRet = static_cast<sal_uInt16>(GetSubType() & DATEFLD ? TYP_DATEFLD : TYP_TIMEFLD);
         break;
-    case RES_GETEXPFLD:
+    case SwFieldIds::GetExp:
         nRet = static_cast<sal_uInt16>(nsSwGetSetExpType::GSE_FORMULA & GetSubType() ? TYP_FORMELFLD : TYP_GETFLD);
         break;
 
-    case RES_HIDDENTXTFLD:
+    case SwFieldIds::HiddenText:
         nRet = GetSubType();
         break;
 
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
         if( nsSwGetSetExpType::GSE_SEQ & GetSubType() )
             nRet = TYP_SEQFLD;
         else if( static_cast<const SwSetExpField*>(this)->GetInputFlag() )
@@ -228,7 +229,7 @@ sal_uInt16 SwField::GetTypeId() const
             nRet = TYP_SETFLD;
         break;
 
-    case RES_PAGENUMBERFLD:
+    case SwFieldIds::PageNumber:
         nRet = GetSubType();
         if( PG_NEXT == nRet )
             nRet = TYP_NEXTPAGEFLD;
@@ -248,7 +249,7 @@ sal_uInt16 SwField::GetTypeId() const
 OUString SwField::GetFieldName() const
 {
     sal_uInt16 nTypeId = GetTypeId();
-    if (RES_DATETIMEFLD == GetTyp()->Which())
+    if (SwFieldIds::DateTime == GetTyp()->Which())
     {
         nTypeId = static_cast<sal_uInt16>(
             ((GetSubType() & DATEFLD) != 0) ? TYP_DATEFLD : TYP_TIMEFLD);
@@ -343,18 +344,19 @@ bool SwField::HasClickHdl() const
     bool bRet = false;
     switch (m_pType->Which())
     {
-    case RES_INTERNETFLD:
-    case RES_JUMPEDITFLD:
-    case RES_GETREFFLD:
-    case RES_MACROFLD:
-    case RES_INPUTFLD:
-    case RES_DROPDOWN :
+    case SwFieldIds::Internet:
+    case SwFieldIds::JumpEdit:
+    case SwFieldIds::GetRef:
+    case SwFieldIds::Macro:
+    case SwFieldIds::Input:
+    case SwFieldIds::Dropdown :
         bRet = true;
         break;
 
-    case RES_SETEXPFLD:
+    case SwFieldIds::SetExp:
         bRet = static_cast<const SwSetExpField*>(this)->GetInputFlag();
         break;
+    default: break;
     }
     return bRet;
 }
@@ -374,27 +376,28 @@ bool SwField::IsFixed() const
     bool bRet = false;
     switch (m_pType->Which())
     {
-    case RES_FIXDATEFLD:
-    case RES_FIXTIMEFLD:
+    case SwFieldIds::FixDate:
+    case SwFieldIds::FixTime:
         bRet = true;
         break;
 
-    case RES_DATETIMEFLD:
+    case SwFieldIds::DateTime:
         bRet = 0 != (GetSubType() & FIXEDFLD);
         break;
 
-    case RES_EXTUSERFLD:
-    case RES_AUTHORFLD:
+    case SwFieldIds::ExtUser:
+    case SwFieldIds::Author:
         bRet = 0 != (GetFormat() & AF_FIXED);
         break;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list