[Libreoffice-commits] core.git: include/svl sc/source svl/qa svl/source svx/source

Laurent Balland-Poirier laurent.balland-poirier at laposte.net
Wed Jun 29 14:38:39 UTC 2016


 include/svl/zforlist.hxx           |   17 ++++++++----
 sc/source/filter/excel/xlstyle.cxx |    4 +--
 svl/qa/unit/svl.cxx                |    7 ++++-
 svl/source/numbers/zforlist.cxx    |   49 ++++++++++++++++++++++++++++++-------
 svx/source/items/numfmtsh.cxx      |    2 -
 5 files changed, 60 insertions(+), 19 deletions(-)

New commits:
commit 6951f28bbac44b29741089e88f842f124baf317f
Author: Laurent Balland-Poirier <laurent.balland-poirier at laposte.net>
Date:   Fri Jun 24 23:28:39 2016 +0200

    tdf#100592 Add extra number formats for fraction
    
    Change-Id: Ia3a5fa02029e06e083fcc10748b0deb3048dae79
    Reviewed-on: https://gerrit.libreoffice.org/26675
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Eike Rathke <erack at redhat.com>

diff --git a/include/svl/zforlist.hxx b/include/svl/zforlist.hxx
index 1fdb306..de78ae5 100644
--- a/include/svl/zforlist.hxx
+++ b/include/svl/zforlist.hxx
@@ -100,9 +100,9 @@ enum NfIndexTableOffset
     NF_PERCENT_END = NF_PERCENT_DEC2,
 
     NF_FRACTION_START,
-    NF_FRACTION_1 = NF_FRACTION_START,      // # ?/?
-    NF_FRACTION_2,                          // # ??/??
-    NF_FRACTION_END = NF_FRACTION_2,
+    NF_FRACTION_1D = NF_FRACTION_START,      // # ?/?
+    NF_FRACTION_2D,                          // # ??/??
+    NF_FRACTION_END = NF_FRACTION_2D,
 
     NF_NUMERIC_END = NF_FRACTION_END,
 
@@ -172,12 +172,17 @@ enum NfIndexTableOffset
     // SvxNumberFormatShell::FillEListWithStd_Impl(), otherwise they will not
     // be be listed at all. Yes that is ugly.
 
-    NF_FRACTION_3 = NF_INDEX_TABLE_LOCALE_DATA_DEFAULTS,    // # ?/4
-    NF_FRACTION_4,                          // # ?/100
+    NF_FRACTION_3D = NF_INDEX_TABLE_LOCALE_DATA_DEFAULTS,    // # ???/???
+    NF_FRACTION_2,                          // # ?/2
+    NF_FRACTION_4,                          // # ?/4
+    NF_FRACTION_8,                          // # ?/8
+    NF_FRACTION_16,                         // # ??/16
+    NF_FRACTION_10,                         // # ??/10
+    NF_FRACTION_100,                        // # ??/100
 
     NF_DATETIME_ISO_YYYYMMDD_HHMMSS,        // 1997-10-08 01:23:45          ISO (with blank instead of T)
 
-    NF_INDEX_TABLE_ENTRIES                  // == 53, reserved up to 59 to not use in i18npool locale data.
+    NF_INDEX_TABLE_ENTRIES                  // == 59, reserved up to 59 to not use in i18npool locale data.
 };
 
 
diff --git a/sc/source/filter/excel/xlstyle.cxx b/sc/source/filter/excel/xlstyle.cxx
index 31d78d6..9a8bba6 100644
--- a/sc/source/filter/excel/xlstyle.cxx
+++ b/sc/source/filter/excel/xlstyle.cxx
@@ -829,8 +829,8 @@ static const XclBuiltInFormat spBuiltInFormats_DONTKNOW[] =
     EXC_NUMFMT_OFFSET(   9, NF_PERCENT_INT ),           // 0%
     EXC_NUMFMT_OFFSET(  10, NF_PERCENT_DEC2 ),          // 0.00%
     EXC_NUMFMT_OFFSET(  11, NF_SCIENTIFIC_000E00 ),     // 0.00E+00
-    EXC_NUMFMT_OFFSET(  12, NF_FRACTION_1 ),            // # ?/?
-    EXC_NUMFMT_OFFSET(  13, NF_FRACTION_2 ),            // # ??/??
+    EXC_NUMFMT_OFFSET(  12, NF_FRACTION_1D ),            // # ?/?
+    EXC_NUMFMT_OFFSET(  13, NF_FRACTION_2D ),            // # ??/??
 
     // 14...22 date and time formats
     EXC_NUMFMT_OFFSET(  14, NF_DATE_SYS_DDMMYYYY ),
diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx
index d54fda3..5c6b745 100644
--- a/svl/qa/unit/svl.cxx
+++ b/svl/qa/unit/svl.cxx
@@ -146,7 +146,12 @@ void Test::testNumberFormat()
 // Followings aren't in range of NF_FRACTION_START and NF_FRACTION_END
 // see enum NfIndexTableOffset in svl/inc/svl/zforlist.hxx
     const char* pFractionExt[] = {
+        "# \?\?\?/\?\?\?",
+        "# \?/2",
         "# \?/4",
+        "# \?/8",
+        "# \?\?/16",
+        "# \?\?/10",
         "# \?\?/100",
         nullptr
     };
@@ -223,7 +228,7 @@ void Test::testNumberFormat()
         { NF_SCIENTIFIC_START, NF_SCIENTIFIC_END, 2, pScientific },
         { NF_PERCENT_START, NF_PERCENT_END, 2, pPercent },
         { NF_FRACTION_START, NF_FRACTION_END, 2, pFraction },
-        { NF_FRACTION_3, NF_FRACTION_4, 2, pFractionExt },
+        { NF_FRACTION_3D, NF_FRACTION_100, 7, pFractionExt },
         { NF_CURRENCY_START, NF_CURRENCY_END, 6, pCurrency },
         { NF_DATE_START, NF_DATE_END, 21, pDate },
         { NF_TIME_START, NF_TIME_END, 7, pTime },
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 29f95bc..bd67e25 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -67,7 +67,7 @@ using namespace ::std;
 #define ZF_STANDARD_TIME        40
 #define ZF_STANDARD_DATETIME    50
 #define ZF_STANDARD_SCIENTIFIC  60
-#define ZF_STANDARD_FRACTION    70
+#define ZF_STANDARD_FRACTION    65
 
 // Additional builtin formats not fitting into the first 10 of a category (TLOT
 // = The Legacy Of Templin; unfortunately TLOT intended only 10 builtin formats
@@ -104,8 +104,8 @@ static sal_uInt32 const indexTable[NF_INDEX_TABLE_ENTRIES] = {
     ZF_STANDARD_SCIENTIFIC + 1, // NF_SCIENTIFIC_000E00
     ZF_STANDARD_PERCENT, // NF_PERCENT_INT
     ZF_STANDARD_PERCENT + 1, // NF_PERCENT_DEC2
-    ZF_STANDARD_FRACTION, // NF_FRACTION_1
-    ZF_STANDARD_FRACTION + 1, // NF_FRACTION_2
+    ZF_STANDARD_FRACTION, // NF_FRACTION_1D
+    ZF_STANDARD_FRACTION + 1, // NF_FRACTION_2D
     ZF_STANDARD_CURRENCY, // NF_CURRENCY_1000INT
     ZF_STANDARD_CURRENCY + 1, // NF_CURRENCY_1000DEC2
     ZF_STANDARD_CURRENCY + 2, // NF_CURRENCY_1000INT_RED
@@ -144,8 +144,13 @@ static sal_uInt32 const indexTable[NF_INDEX_TABLE_ENTRIES] = {
     ZF_STANDARD_DATETIME + 1, // NF_DATETIME_SYS_DDMMYYYY_HHMMSS
     ZF_STANDARD_LOGICAL, // NF_BOOLEAN
     ZF_STANDARD_TEXT, // NF_TEXT
-    ZF_STANDARD_FRACTION + 2, // NF_FRACTION_3
-    ZF_STANDARD_FRACTION + 3, // NF_FRACTION_4
+    ZF_STANDARD_FRACTION + 2, // NF_FRACTION_3D
+    ZF_STANDARD_FRACTION + 3, // NF_FRACTION_2
+    ZF_STANDARD_FRACTION + 4, // NF_FRACTION_4
+    ZF_STANDARD_FRACTION + 5, // NF_FRACTION_8
+    ZF_STANDARD_FRACTION + 6, // NF_FRACTION_16
+    ZF_STANDARD_FRACTION + 7, // NF_FRACTION_10
+    ZF_STANDARD_FRACTION + 8, // NF_FRACTION_100
     ZF_STANDARD_DATETIME + 2 // NF_DATETIME_ISO_YYYYMMDD_HHMMSS
 };
 
@@ -2596,23 +2601,49 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio
      // # ?/?
     aSingleFormatCode.Code = "# ?/?";
     ImpInsertFormat( aSingleFormatCode,
-                     CLOffset + ZF_STANDARD_FRACTION /* NF_FRACTION_1 */ );
+                     CLOffset + ZF_STANDARD_FRACTION /* NF_FRACTION_1D */ );
 
     // # ??/??
     //! "??/" would be interpreted by the compiler as a trigraph for '\'
     aSingleFormatCode.Code = "# ?\?/?\?";
     ImpInsertFormat( aSingleFormatCode,
-                     CLOffset + ZF_STANDARD_FRACTION+1 /* NF_FRACTION_2 */ );
+                     CLOffset + ZF_STANDARD_FRACTION+1 /* NF_FRACTION_2D */ );
+
+    // # ???/???
+    //! "??/" would be interpreted by the compiler as a trigraph for '\'
+    aSingleFormatCode.Code = "# ?\?\?/?\?\?";
+    ImpInsertFormat( aSingleFormatCode,
+                     CLOffset + ZF_STANDARD_FRACTION+2 /* NF_FRACTION_3D */ );
+
+    // # ?/2
+    aSingleFormatCode.Code = "# ?/2";
+    ImpInsertFormat( aSingleFormatCode,
+                     CLOffset + ZF_STANDARD_FRACTION+3 /* NF_FRACTION_2 */ );
 
     // # ?/4
     aSingleFormatCode.Code = "# ?/4";
     ImpInsertFormat( aSingleFormatCode,
-                     CLOffset + ZF_STANDARD_FRACTION+2 /* NF_FRACTION_3 */ );
+                     CLOffset + ZF_STANDARD_FRACTION+4 /* NF_FRACTION_4 */ );
+
+    // # ?/8
+    aSingleFormatCode.Code = "# ?/8";
+    ImpInsertFormat( aSingleFormatCode,
+                     CLOffset + ZF_STANDARD_FRACTION+5 /* NF_FRACTION_8 */ );
+
+    // # ??/16
+    aSingleFormatCode.Code = "# ?\?/16";
+    ImpInsertFormat( aSingleFormatCode,
+                     CLOffset + ZF_STANDARD_FRACTION+6 /* NF_FRACTION_16 */ );
+
+    // # ??/10
+    aSingleFormatCode.Code = "# ?\?/10";
+    ImpInsertFormat( aSingleFormatCode,
+                     CLOffset + ZF_STANDARD_FRACTION+7 /* NF_FRACTION_10 */ );
 
     // # ??/100
     aSingleFormatCode.Code = "# ?\?/100";
     ImpInsertFormat( aSingleFormatCode,
-                     CLOffset + ZF_STANDARD_FRACTION+3 /* NF_FRACTION_4 */ );
+                     CLOffset + ZF_STANDARD_FRACTION+8 /* NF_FRACTION_100 */ );
 
 
     // Week of year
diff --git a/svx/source/items/numfmtsh.cxx b/svx/source/items/numfmtsh.cxx
index 67ad366..f27f8c5 100644
--- a/svx/source/items/numfmtsh.cxx
+++ b/svx/source/items/numfmtsh.cxx
@@ -642,7 +642,7 @@ void SvxNumberFormatShell::FillEListWithStd_Impl( std::vector<OUString>& rList,
             case CAT_FRACTION       :eOffsetStart=NF_FRACTION_START;
                                      eOffsetEnd=NF_FRACTION_END;
                                      nSelPos = FillEListWithFormats_Impl( rList, nSelPos, eOffsetStart, eOffsetEnd);
-                                     nSelPos = FillEListWithFormats_Impl( rList, nSelPos, NF_FRACTION_3, NF_FRACTION_4);
+                                     nSelPos = FillEListWithFormats_Impl( rList, nSelPos, NF_FRACTION_3D, NF_FRACTION_100);
                                      return;
             case CAT_BOOLEAN        :eOffsetStart=NF_BOOLEAN;
                                      eOffsetEnd=NF_BOOLEAN;


More information about the Libreoffice-commits mailing list