diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx index f8e1def68d8d..371948f2f19d 100644 --- a/sw/source/core/fields/fldbas.cxx +++ b/sw/source/core/fields/fldbas.cxx @@ -550,6 +550,8 @@ void SwField::SetUntypedSubType(sal_uInt16 n) case SwFieldIds::Database: static_cast(this)->SetSubType(static_cast(n)); break; + case SwFieldIds::RefPageSet: + break; default: assert(n == 0 && "trying to set a subtype on something I don't know about"); break; diff --git a/sw/source/ui/fldui/flddok.cxx b/sw/source/ui/fldui/flddok.cxx index 32cf2b6475ee..835b14799fac 100644 --- a/sw/source/ui/fldui/flddok.cxx +++ b/sw/source/ui/fldui/flddok.cxx @@ -610,6 +610,22 @@ bool SwFieldDokPage::FillItemSet(SfxItemSet* ) case SwFieldTypesEnum::PageNumber: case SwFieldTypesEnum::GetRefPage: { + switch (nTypeId) + { + case SwFieldTypesEnum::NextPage: + nSubType = static_cast(SwPageNumSubType::Next); + break; + case SwFieldTypesEnum::PreviousPage: + nSubType = static_cast(SwPageNumSubType::Previous); + break; + case SwFieldTypesEnum::PageNumber: + nSubType = static_cast(SwPageNumSubType::Random); + break; + default: + break; + } + + if( SVX_NUM_CHAR_SPECIAL != nFormat && (SwFieldTypesEnum::PreviousPage == nTypeId || SwFieldTypesEnum::NextPage == nTypeId)) { diff --git a/sw/source/ui/fldui/fldfunc.cxx b/sw/source/ui/fldui/fldfunc.cxx index 1206013ecf56..63d4fe3c2a85 100644 --- a/sw/source/ui/fldui/fldfunc.cxx +++ b/sw/source/ui/fldui/fldfunc.cxx @@ -549,6 +549,10 @@ bool SwFieldFuncPage::FillItemSet(SfxItemSet* ) case SwFieldTypesEnum::ConditionalText: aVal = OUString::Concat(m_xCond1ED->get_text()) + OUStringChar(CONDITIONAL_FIELD_SEPARATOR) + m_xCond2ED->get_text(); + nSubType = static_cast(nTypeId); + break; + case SwFieldTypesEnum::HiddenText: + nSubType = static_cast(nTypeId); break; case SwFieldTypesEnum::Dropdown : {