summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-11-21 14:55:04 +0100
committerEike Rathke <erack@redhat.com>2017-11-21 15:25:41 +0100
commitf2f0a7c5a9d8185fedef5c737d1b7479b9fc0c1e (patch)
treed7cdc16f120d44e682d0e1b4eb9fa29fcdfa8c78
parent0246bfaf132a275e10367a188a0f79549bdf69e4 (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.cxx12
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);