Index: sources/maintimer.cpp =================================================================== diff -u -rd04653f0fbf1ed98178b6c7094beb4ec226a777f -r0a2ca0373a422201d5316df8fb891ef38799e3f9 --- sources/maintimer.cpp (.../maintimer.cpp) (revision d04653f0fbf1ed98178b6c7094beb4ec226a777f) +++ sources/maintimer.cpp (.../maintimer.cpp) (revision 0a2ca0373a422201d5316df8fb891ef38799e3f9) @@ -60,13 +60,39 @@ * \details Checks the date has been changed * \return true if date changed. */ -bool MainTimer::isDateChanged() +bool MainTimer::isDateChanged(bool vIncludeTime) { - static int oy,om,od; // old date - int cy,cm,cd; // current date - QDate::currentDate().getDate(&cy, &cm, &cd); + // 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); + if (vIncludeTime) { + QTime currentTime = QDateTime::currentDateTime().time(); + cH = currentTime.hour(); + cM = currentTime.minute(); + cS = currentTime.second(); + } + if (oy == cy && om == cm && od == cd) { - return false; + 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; + } + } + else + return false; } else { oy = cy; @@ -86,6 +112,10 @@ void MainTimer::timerEvent(QTimerEvent *) { emit didTimeout(); - if (isDateChanged()) + // 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(); + } }