[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - svl/source

Eike Rathke erack at redhat.com
Fri Jun 3 00:56:42 UTC 2016


 svl/source/numbers/zforlist.cxx |   43 ++++++++++++++++++++++------------------
 1 file changed, 24 insertions(+), 19 deletions(-)

New commits:
commit b6230835b927e0053687fae6026fa3603600f321
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Jun 2 20:40:46 2016 +0200

    preserve ISO date+time format when editing such values
    
    Change-Id: I6dcbe6c9aeff87d735303713f328c84203f76b60
    (cherry picked from commit 020d395b59b4c631491ded910c0405584ef46e1c)
    Reviewed-on: https://gerrit.libreoffice.org/25843
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Eike Rathke <erack at redhat.com>

diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index df13480..0747e0c 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -1420,24 +1420,29 @@ sal_uInt32 SvNumberFormatter::GetEditFormat( double fNumber, sal_uInt32 nFIndex,
     {
     // #61619# always edit using 4-digit year
     case css::util::NumberFormat::DATE :
-        if (rtl::math::approxFloor( fNumber) != fNumber)
-            nKey = GetFormatIndex( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, eLang );
-        // fdo#34977 preserve time when editing even if only date was
-        // displayed.
-        /* FIXME: in case an ISO 8601 format was used, editing should
-         * also use such. Unfortunately we have no builtin combined
-         * date+time ISO format defined. Needs also locale data work.
-         * */
-        else
         {
             // Preserve ISO 8601 format.
-            if (    nFIndex == GetFormatIndex( NF_DATE_DIN_YYYYMMDD, eLang) ||
-                    nFIndex == GetFormatIndex( NF_DATE_DIN_YYMMDD, eLang) ||
-                    nFIndex == GetFormatIndex( NF_DATE_DIN_MMDD, eLang) ||
-                    (pFormat && pFormat->IsIso8601( 0 )))
-                nKey = GetFormatIndex( NF_DATE_DIN_YYYYMMDD, eLang);
+            bool bIsoDate =
+                nFIndex == GetFormatIndex( NF_DATE_DIN_YYYYMMDD, eLang) ||
+                nFIndex == GetFormatIndex( NF_DATE_DIN_YYMMDD, eLang) ||
+                nFIndex == GetFormatIndex( NF_DATE_DIN_MMDD, eLang) ||
+                (pFormat && pFormat->IsIso8601( 0 ));
+            if (rtl::math::approxFloor( fNumber) != fNumber)
+            {
+                // fdo#34977 preserve time when editing even if only date was
+                // displayed.
+                if (bIsoDate)
+                    nKey = GetFormatIndex( NF_DATETIME_ISO_YYYYMMDD_HHMMSS, eLang);
+                else
+                    nKey = GetFormatIndex( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, eLang );
+            }
             else
-                nKey = GetFormatIndex( NF_DATE_SYS_DDMMYYYY, eLang );
+            {
+                if (bIsoDate)
+                    nKey = GetFormatIndex( NF_DATE_ISO_YYYYMMDD, eLang);
+                else
+                    nKey = GetFormatIndex( NF_DATE_SYS_DDMMYYYY, eLang );
+            }
         }
         break;
     case css::util::NumberFormat::TIME :
@@ -1458,10 +1463,10 @@ sal_uInt32 SvNumberFormatter::GetEditFormat( double fNumber, sal_uInt32 nFIndex,
             nKey = GetStandardFormat( fNumber, nFIndex, eType, eLang );
         break;
     case css::util::NumberFormat::DATETIME :
-        nKey = GetFormatIndex( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, eLang );
-        /* FIXME: in case an ISO 8601 format was used, editing should
-         * also use such. Unfortunately we have no builtin combined
-         * date+time ISO format defined. Needs also locale data work. */
+        if (nFIndex == GetFormatIndex( NF_DATETIME_ISO_YYYYMMDD_HHMMSS, eLang) || (pFormat && pFormat->IsIso8601( 0 )))
+            nKey = GetFormatIndex( NF_DATETIME_ISO_YYYYMMDD_HHMMSS, eLang );
+        else
+            nKey = GetFormatIndex( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, eLang );
         break;
     default:
         nKey = GetStandardFormat( fNumber, nFIndex, eType, eLang );


More information about the Libreoffice-commits mailing list