Index: sources/maintimer.cpp =================================================================== diff -u -r44a85c96ab55e424866ec4cca0270aa218355f82 -rd2035a8728794afeefaa244bf8d1597926d945f5 --- sources/maintimer.cpp (.../maintimer.cpp) (revision 44a85c96ab55e424866ec4cca0270aa218355f82) +++ sources/maintimer.cpp (.../maintimer.cpp) (revision d2035a8728794afeefaa244bf8d1597926d945f5) @@ -15,6 +15,7 @@ #include "maintimer.h" //Qt +#include //Project #include "logger.h" @@ -45,7 +46,7 @@ else { startTimer(_interval); } - LOG_EVENT(QObject::tr("Main Timer Initialized")); + LOG_EVENT("UI," + tr("Main Timer Initialized")); return true; } @@ -56,6 +57,56 @@ void MainTimer::quit() { } /*! + * \brief MainTimer::isDateChanged + * \details Checks the date has been changed + * \return true if date changed. + */ +bool MainTimer::isDateChanged(bool vIncludeTime) +{ + // old date // current date + static int oy,om,od; int cy,cm,cd; + // old time // current time + static int oH,oM,oS; int cH,cM,cS; + + QDateTime::currentDateTime().date().getDate(&cy, &cm, &cd); + // coco begin validated: Decided to not to check each second + // has been tested manually + if (vIncludeTime) { + QTime currentTime = QDateTime::currentDateTime().time(); + cH = currentTime.hour(); + cM = currentTime.minute(); + cS = currentTime.second(); + } + + if (oy == cy && om == cm && od == cd) { + if (vIncludeTime) { + if (oH == cH && oM == cM && oS == cS) { + return false; + } + else { + // date + oy = cy; + om = cm; + od = cd; + // time + oH = cH; + oM = cM; + oS = cS; + } + // coco end + } + else + return false; + } + else { + oy = cy; + om = cm; + od = cd; + } + return true; +} + +/*! * \brief MainTimer::timerEvent * \details This event handler has been re-implemented in here * to receive timer events for the object @@ -65,4 +116,10 @@ void MainTimer::timerEvent(QTimerEvent *) { emit didTimeout(); + // I'm not sure how often we need to check for this. + // if it needs to be checked each second pass true + // if it needs to be checked each day pass false + if (isDateChanged(false)) { + emit didDateChange(); + } }