summaryrefslogtreecommitdiff
path: root/sc/source/core/data/column3.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2019-06-27 14:12:32 +0200
committerEike Rathke <erack@redhat.com>2019-06-27 17:10:08 +0200
commitf800f73d8d115e05134fd3cd25573e2d5acaddd3 (patch)
tree693a684d7babfc9cadd1eb718007f9417c2d9dac /sc/source/core/data/column3.cxx
parent92e3eb149c6611aa8b6b3d01e1775c5afc95dec5 (diff)
Resolves: tdf#126116 keep original date format if detected type is identical
Regression from commit 478e051f4ea13b15120fdf74faf94a6c2cfcb50c CommitDate: Tue May 21 15:35:07 2019 +0200 Resolves: tdf#125109 prefer edit format's acceptance patterns and YMD order Change-Id: If1240f75ca7c4d46c156966a72b6a98c83448770 Reviewed-on: https://gerrit.libreoffice.org/74803 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit e6a1bbe6690474e752416c81e1ca8c82b2843539) Reviewed-on: https://gerrit.libreoffice.org/74806
Diffstat (limited to 'sc/source/core/data/column3.cxx')
-rw-r--r--sc/source/core/data/column3.cxx22
1 files changed, 17 insertions, 5 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 26096767906e..96a077b410c4 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -2072,11 +2072,23 @@ bool ScColumn::ParseString(
if (!bIsNumberFormat)
break;
- // convert back to the original language if a built-in format was detected
- if (!pOldFormat)
- pOldFormat = aParam.mpNumFormatter->GetEntry( nOldIndex );
- if ( pOldFormat )
- nIndex = aParam.mpNumFormatter->GetFormatForLanguageIfBuiltIn( nIndex, pOldFormat->GetLanguage() );
+ // If we have bForceFormatDate, the pOldFormat was/is of
+ // nOldIndex date(+time) type already, if detected type is
+ // compatible keep the original format.
+ if (bForceFormatDate && SvNumberFormatter::IsCompatible(
+ eNumFormatType, aParam.mpNumFormatter->GetType( nIndex)))
+ {
+ nIndex = nOldIndex;
+ }
+ else
+ {
+ // convert back to the original language if a built-in format was detected
+ if (!pOldFormat)
+ pOldFormat = aParam.mpNumFormatter->GetEntry( nOldIndex );
+ if (pOldFormat)
+ nIndex = aParam.mpNumFormatter->GetFormatForLanguageIfBuiltIn(
+ nIndex, pOldFormat->GetLanguage());
+ }
rCell.set(nVal);
if ( nIndex != nOldIndex)