[Libreoffice-commits] core.git: Branch 'feature/orcus-update' - sc/inc sc/source

Kohei Yoshida kohei.yoshida at gmail.com
Wed Apr 10 12:13:53 PDT 2013


 sc/inc/globalnames.hxx               |    2 ++
 sc/source/core/data/dbdocutl.cxx     |    7 +++----
 sc/source/core/data/dpgroup.cxx      |    5 ++---
 sc/source/core/data/dputil.cxx       |    5 ++---
 sc/source/core/tool/interpr2.cxx     |   13 ++++++-------
 sc/source/filter/orcus/interface.cxx |    5 ++---
 sc/source/ui/view/viewfun6.cxx       |    6 ++----
 7 files changed, 19 insertions(+), 24 deletions(-)

New commits:
commit 7c7e3f7e6a76e733be0dfe74c55e35c67774fbe9
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Wed Apr 10 15:14:02 2013 -0400

    Centralize D_TIMEFACTOR as DATE_TIME_FACTOR.
    
    It was about time.
    
    Change-Id: I87225be540c22b3031c6aee3f3fd9d26795abef8

diff --git a/sc/inc/globalnames.hxx b/sc/inc/globalnames.hxx
index 4fee471..b388a7c 100644
--- a/sc/inc/globalnames.hxx
+++ b/sc/inc/globalnames.hxx
@@ -36,6 +36,8 @@
 
 #define TEXTWIDTH_DIRTY 0xffff
 
+#define DATE_TIME_FACTOR 86400.0
+
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/dbdocutl.cxx b/sc/source/core/data/dbdocutl.cxx
index fcdfab5..eb244f7 100644
--- a/sc/source/core/data/dbdocutl.cxx
+++ b/sc/source/core/data/dbdocutl.cxx
@@ -26,11 +26,10 @@
 #include "document.hxx"
 #include "formula/errorcodes.hxx"
 #include "stringutil.hxx"
+#include "globalnames.hxx"
 
 using namespace ::com::sun::star;
 
-#define D_TIMEFACTOR              86400.0
-
 // ----------------------------------------------------------------------------
 
 ScDatabaseDocUtil::StrData::StrData() :
@@ -111,7 +110,7 @@ void ScDatabaseDocUtil::PutData( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB
 
                     util::Time aTime = xRow->getTime(nRowPos);
                     nVal = ( aTime.Hours * 3600 + aTime.Minutes * 60 +
-                             aTime.Seconds + aTime.HundredthSeconds / 100.0 ) / D_TIMEFACTOR;
+                             aTime.Seconds + aTime.HundredthSeconds / 100.0 ) / DATE_TIME_FACTOR;
                     bEmptyFlag = xRow->wasNull();
                     bValue = sal_True;
                 }
@@ -127,7 +126,7 @@ void ScDatabaseDocUtil::PutData( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB
                     nVal = ( Date( aStamp.Day, aStamp.Month, aStamp.Year ) -
                                                 *pFormTable->GetNullDate() ) +
                            ( aStamp.Hours * 3600 + aStamp.Minutes * 60 +
-                             aStamp.Seconds + aStamp.HundredthSeconds / 100.0 ) / D_TIMEFACTOR;
+                             aStamp.Seconds + aStamp.HundredthSeconds / 100.0 ) / DATE_TIME_FACTOR;
                     bEmptyFlag = xRow->wasNull();
                     bValue = sal_True;
                 }
diff --git a/sc/source/core/data/dpgroup.cxx b/sc/source/core/data/dpgroup.cxx
index bc2e132..5368523 100644
--- a/sc/source/core/data/dpgroup.cxx
+++ b/sc/source/core/data/dpgroup.cxx
@@ -27,6 +27,7 @@
 #include "dpobject.hxx"
 #include "dpglobal.hxx"
 #include "dputil.hxx"
+#include "globalnames.hxx"
 
 #include <rtl/math.hxx>
 
@@ -48,8 +49,6 @@ using ::com::sun::star::uno::UNO_QUERY_THROW;
 using ::std::vector;
 using ::boost::shared_ptr;
 
-#define D_TIMEFACTOR              86400.0
-
 const sal_uInt16 SC_DP_LEAPYEAR = 1648;     // arbitrary leap year for date calculations
 
 class ScDPGroupNumFilter : public ScDPFilteredCache::FilterBase
@@ -155,7 +154,7 @@ bool ScDPGroupDateFilter::match( const ScDPItemData & rCellData ) const
         // (as in the cell functions, ScInterpreter::ScGetHour etc.: seconds are rounded)
 
         double time = rCellData.GetValue() - approxFloor(rCellData.GetValue());
-        long seconds = static_cast<long>(approxFloor(time*D_TIMEFACTOR + 0.5));
+        long seconds = static_cast<long>(approxFloor(time*DATE_TIME_FACTOR + 0.5));
 
         switch (nGroupType)
         {
diff --git a/sc/source/core/data/dputil.cxx b/sc/source/core/data/dputil.cxx
index a842d7d..bbf0489 100644
--- a/sc/source/core/data/dputil.cxx
+++ b/sc/source/core/data/dputil.cxx
@@ -30,6 +30,7 @@
 #include "global.hxx"
 #include "dpitemdata.hxx"
 #include "dpnumgroupinfo.hxx"
+#include "globalnames.hxx"
 
 #include "comphelper/string.hxx"
 #include "unotools/localedatawrapper.hxx"
@@ -40,8 +41,6 @@
 #include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
 #include <com/sun/star/i18n/CalendarDisplayIndex.hpp>
 
-#define D_TIMEFACTOR 86400.0
-
 using namespace com::sun::star;
 
 namespace {
@@ -314,7 +313,7 @@ sal_Int32 ScDPUtil::getDatePartValue(
         // (as in the cell functions, ScInterpreter::ScGetHour etc.: seconds are rounded)
 
         double fTime = fValue - rtl::math::approxFloor(fValue);
-        long nSeconds = (long)rtl::math::approxFloor(fTime*D_TIMEFACTOR+0.5);
+        long nSeconds = (long)rtl::math::approxFloor(fTime*DATE_TIME_FACTOR+0.5);
 
         switch (nDatePart)
         {
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx
index 883a2e9..ad4daa7 100644
--- a/sc/source/core/tool/interpr2.cxx
+++ b/sc/source/core/tool/interpr2.cxx
@@ -43,14 +43,13 @@
 #include "dpobject.hxx"
 #include "postit.hxx"
 #include "tokenarray.hxx"
+#include "globalnames.hxx"
 
 #include <string.h>
 #include <math.h>
 
 using namespace formula;
-// STATIC DATA -----------------------------------------------------------
 
-#define D_TIMEFACTOR              86400.0
 #define SCdEpsilon                1.0E-7
 
 //-----------------------------------------------------------------------------
@@ -117,7 +116,7 @@ void ScInterpreter::ScGetActTime()
     double nTime = ((double)aActTime.Get100Sec() / 100 +
                     (double)(aActTime.GetSec()        +
                             (aActTime.GetMin()  * 60) +
-                            (aActTime.GetHour() * 3600))) / D_TIMEFACTOR;
+                            (aActTime.GetHour() * 3600))) / DATE_TIME_FACTOR;
     PushDouble( (double) nDiff + nTime );
 }
 
@@ -150,7 +149,7 @@ void ScInterpreter::ScGetMin()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScGetMin" );
     double fTime = GetDouble();
     fTime -= ::rtl::math::approxFloor(fTime);       // Datumsanteil weg
-    long nVal = (long)::rtl::math::approxFloor(fTime*D_TIMEFACTOR+0.5) % 3600;
+    long nVal = (long)::rtl::math::approxFloor(fTime*DATE_TIME_FACTOR+0.5) % 3600;
     PushDouble( (double) (nVal/60) );
 }
 
@@ -159,7 +158,7 @@ void ScInterpreter::ScGetSec()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScGetSec" );
     double fTime = GetDouble();
     fTime -= ::rtl::math::approxFloor(fTime);       // Datumsanteil weg
-    long nVal = (long)::rtl::math::approxFloor(fTime*D_TIMEFACTOR+0.5) % 60;
+    long nVal = (long)::rtl::math::approxFloor(fTime*DATE_TIME_FACTOR+0.5) % 60;
     PushDouble( (double) nVal );
 }
 
@@ -168,7 +167,7 @@ void ScInterpreter::ScGetHour()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScGetHour" );
     double fTime = GetDouble();
     fTime -= ::rtl::math::approxFloor(fTime);       // Datumsanteil weg
-    long nVal = (long)::rtl::math::approxFloor(fTime*D_TIMEFACTOR+0.5) / 3600;
+    long nVal = (long)::rtl::math::approxFloor(fTime*DATE_TIME_FACTOR+0.5) / 3600;
     PushDouble((double) nVal);
 }
 
@@ -289,7 +288,7 @@ void ScInterpreter::ScGetTime()
         double nSec = GetDouble();
         double nMin = GetDouble();
         double nHour = GetDouble();
-        double fTime = fmod( (nHour * 3600) + (nMin * 60) + nSec, D_TIMEFACTOR) / D_TIMEFACTOR;
+        double fTime = fmod( (nHour * 3600) + (nMin * 60) + nSec, DATE_TIME_FACTOR) / DATE_TIME_FACTOR;
         if (fTime < 0)
             PushIllegalArgument();
         else
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index 06d03ba..e843467 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -14,12 +14,11 @@
 #include "rangenam.hxx"
 #include "tokenarray.hxx"
 #include "stringutil.hxx"
+#include "globalnames.hxx"
 
 #include "formula/token.hxx"
 #include "tools/datetime.hxx"
 
-#define D_TIMEFACTOR              86400.0
-
 using orcus::spreadsheet::row_t;
 using orcus::spreadsheet::col_t;
 using orcus::spreadsheet::formula_grammar_t;
@@ -169,7 +168,7 @@ void ScOrcusSheet::set_date_time(
         aTime.GetMin() * 60.0 +
         aTime.GetHour() * 3600.0;
 
-    fTime /= D_TIMEFACTOR;
+    fTime /= DATE_TIME_FACTOR;
 
     mrDoc.SetValue(col, row, mnTab, nDateDiff + fTime);
 }
diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx
index 37376e4..ec0f6d4 100644
--- a/sc/source/ui/view/viewfun6.cxx
+++ b/sc/source/ui/view/viewfun6.cxx
@@ -43,14 +43,12 @@
 #include "formulacell.hxx"
 #include "markdata.hxx"
 #include "drawview.hxx"
+#include "globalnames.hxx"
 
 #include <vector>
 
 using ::std::vector;
 
-#define D_TIMEFACTOR              86400.0
-
-
 void ScViewFunc::DetectiveAddPred()
 {
     ScDocShell* pDocSh = GetViewData()->GetDocShell();
@@ -255,7 +253,7 @@ void ScViewFunc::InsertCurrentTime(short nCellFmt, const OUString& rUndoStr)
     double fTime =
         aActTime.Get100Sec() / 100.0 + aActTime.GetSec() +
         (aActTime.GetMin() * 60.0) + (aActTime.GetHour() * 3600.0);
-    fTime /= D_TIMEFACTOR;
+    fTime /= DATE_TIME_FACTOR;
     pUndoMgr->EnterListAction(rUndoStr, rUndoStr);
     pDocSh->GetDocFunc().SetValueCell(aCurPos, fDate+fTime, true);
 


More information about the Libreoffice-commits mailing list