tdf#171999 fixes field editing
Editing fields with conditional/hidden text and (previous/next) page number
resets required sub type which invalidates the fields.
Came in with
commit 9257e94e5d
Author: Noel Grandin <noelgrandin@gmail.com>
Date: Sat Jul 5 16:35:17 2025 +0200
Change-Id: Ie07186be2fecad713dceb92f45e29621c99fe41e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204899
Tested-by: Jenkins
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
This commit is contained in:
@@ -550,6 +550,8 @@ void SwField::SetUntypedSubType(sal_uInt16 n)
|
||||
case SwFieldIds::Database:
|
||||
static_cast<SwDBField*>(this)->SetSubType(static_cast<SwDBFieldSubType>(n));
|
||||
break;
|
||||
case SwFieldIds::RefPageSet:
|
||||
break;
|
||||
default:
|
||||
assert(n == 0 && "trying to set a subtype on something I don't know about");
|
||||
break;
|
||||
|
||||
@@ -610,6 +610,22 @@ bool SwFieldDokPage::FillItemSet(SfxItemSet* )
|
||||
case SwFieldTypesEnum::PageNumber:
|
||||
case SwFieldTypesEnum::GetRefPage:
|
||||
{
|
||||
switch (nTypeId)
|
||||
{
|
||||
case SwFieldTypesEnum::NextPage:
|
||||
nSubType = static_cast<sal_uInt16>(SwPageNumSubType::Next);
|
||||
break;
|
||||
case SwFieldTypesEnum::PreviousPage:
|
||||
nSubType = static_cast<sal_uInt16>(SwPageNumSubType::Previous);
|
||||
break;
|
||||
case SwFieldTypesEnum::PageNumber:
|
||||
nSubType = static_cast<sal_uInt16>(SwPageNumSubType::Random);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if( SVX_NUM_CHAR_SPECIAL != nFormat &&
|
||||
(SwFieldTypesEnum::PreviousPage == nTypeId || SwFieldTypesEnum::NextPage == nTypeId))
|
||||
{
|
||||
|
||||
@@ -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<sal_uInt16>(nTypeId);
|
||||
break;
|
||||
case SwFieldTypesEnum::HiddenText:
|
||||
nSubType = static_cast<sal_uInt16>(nTypeId);
|
||||
break;
|
||||
case SwFieldTypesEnum::Dropdown :
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user