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