diff options
author | Eike Rathke <erack@redhat.com> | 2017-11-21 14:55:04 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-11-21 15:25:41 +0100 |
commit | f2f0a7c5a9d8185fedef5c737d1b7479b9fc0c1e (patch) | |
tree | d7cdc16f120d44e682d0e1b4eb9fa29fcdfa8c78 | |
parent | 0246bfaf132a275e10367a188a0f79549bdf69e4 (diff) |
Invert logic of ScSetStringParam::* enum value checks, tdf#103234 follow-up
In preparation for adding a new enum value to keep existing
formatting in any case.
Change-Id: Ic15a900adba0281d1267d95f821e1e898f80f566
-rw-r--r-- | sc/source/core/data/column3.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 9a5a57205436..7a4672978a68 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -1796,7 +1796,8 @@ bool ScColumn::ParseString( } } } - else if (aParam.meSetTextNumFormat != ScSetStringParam::Always) + else if (aParam.meSetTextNumFormat == ScSetStringParam::Never || + aParam.meSetTextNumFormat == ScSetStringParam::SpecialNumberOnly) { // Only check if the string is a regular number. const LocaleDataWrapper* pLocale = aParam.mpNumFormatter->GetLocaleData(); @@ -1824,7 +1825,14 @@ bool ScColumn::ParseString( if (rCell.meType == CELLTYPE_NONE) { - if (aParam.meSetTextNumFormat != ScSetStringParam::Never && aParam.mpNumFormatter->IsNumberFormat(rString, nIndex, nVal)) + // If we reach here with ScSetStringParam::SpecialNumberOnly it + // means a simple number was not detected above, so test for + // special numbers. In any case ScSetStringParam::Always does not + // mean always, but only always for content that could be any + // numeric. + if ((aParam.meSetTextNumFormat == ScSetStringParam::Always || + aParam.meSetTextNumFormat == ScSetStringParam::SpecialNumberOnly) && + aParam.mpNumFormatter->IsNumberFormat(rString, nIndex, nVal)) { // Set the cell format type to Text. applyTextNumFormat(*this, nRow, aParam.mpNumFormatter); |