diff options
author | Eike Rathke <erack@redhat.com> | 2019-06-27 14:12:32 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-07-17 21:31:10 +0200 |
commit | bb329b0fbcc416b122885511f6120992bb369959 (patch) | |
tree | 514e6414185b3d19969333394335dc4d699013ac | |
parent | 3173e00f428ea8cf79f36efb38d15028aca01d4a (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/74856
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/source/core/data/column3.cxx | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 903111b20769..013cbd0850cc 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -2057,11 +2057,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) |