sw/source/uibase/shells/tabsh.cxx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)
New commits: commit 173d71fe18f4fc5f523291d4b5ac80249ccddd55 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sun Dec 22 23:10:55 2024 +0500 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Tue Dec 24 12:04:21 2024 +0100 tdf#132111: don't claim a number format for multiselection / no set format The "not set" state for RES_BOXATR_FORMAT is handled explicitly in many places, e.g., in SwTableBox::HasNumContent. This allows to detect number entered into cells without explicit format. Thus, this state is not the same as "text" number format, and it must not be selected in the Number Format dialog. The same is for multiselection with different formats. Change-Id: I4f4aa66a2cbfd1bf2efa8b99a6e7a2cf9c119712 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179177 Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> Tested-by: Jenkins (cherry picked from commit d74738ef156b6c468fd8aa0fb9e0528f04cf5c07) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179201 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx index 57e066669db7..e75bb001df08 100644 --- a/sw/source/uibase/shells/tabsh.cxx +++ b/sw/source/uibase/shells/tabsh.cxx @@ -697,16 +697,12 @@ void SwTableShell::Execute(SfxRequest &rReq) aBoxSet( *pCoreSet->GetPool() ); rSh.GetTableBoxFormulaAttrs( aBoxSet ); - SfxItemState eState = aBoxSet.GetItemState(RES_BOXATR_FORMAT); - if(eState == SfxItemState::DEFAULT) - { - pCoreSet->Put( SfxUInt32Item( SID_ATTR_NUMBERFORMAT_VALUE, - pFormatter->GetFormatIndex(NF_TEXT, LANGUAGE_SYSTEM))); - } - else - pCoreSet->Put( SfxUInt32Item( SID_ATTR_NUMBERFORMAT_VALUE, - aBoxSet.Get( - RES_BOXATR_FORMAT ).GetValue() )); + // tdf#132111: if RES_BOXATR_FORMAT state is DEFAULT (no number format set to cell + // explicitly), it's not equal to any specific format (the rules are special, e.g. + // it's considered numeric for empty or number text in SwTableBox::HasNumContent). + // For multiselection, it's INVALID, also not equal to any single format. + if (auto pFormat = aBoxSet.GetItemIfSet(RES_BOXATR_FORMAT)) + pCoreSet->Put(SfxUInt32Item(SID_ATTR_NUMBERFORMAT_VALUE, pFormat->GetValue())); pCoreSet->Put( SvxNumberInfoItem( pFormatter, aBoxSet.Get(