author | zautrix <zautrix> | 2005-09-25 01:27:36 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-09-25 01:27:36 (UTC) |
commit | 181bc87d92ecc48cb07c288cb2d135d8fde56716 (patch) (side-by-side diff) | |
tree | 97d972b99fc1a147cdbb0b9a295527e6d6fe119c | |
parent | bd991f0a33d85385735ed4911b794b8740e4d296 (diff) | |
download | kdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.zip kdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.tar.gz kdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.tar.bz2 |
todo timer fix
-rw-r--r-- | libkcal/todo.cpp | 32 | ||||
-rw-r--r-- | libkcal/todo.h | 1 |
2 files changed, 23 insertions, 10 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index de07496..f7d40ad 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp @@ -99,6 +99,4 @@ void Todo::setRunning( bool run ) if ( mRunning ) { - mRunSaveTimer->start( SAVETIMER_TIMEOUT_SECONDS * 1000 ); // 5 min + restartSaveTimer( SAVETIMER_TIMEOUT_SECONDS ); mRunStart = QDateTime::currentDateTime(); - mRunLastSave = QDateTime::currentDateTime(); - mCurrentTimerDelay = SAVETIMER_TIMEOUT_SECONDS; } else { @@ -116,2 +114,8 @@ void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end ) } +void Todo::restartSaveTimer( int secs ) +{ + mRunSaveTimer->start( secs * 1000 ); + mRunLastSave = QDateTime::currentDateTime(); + mCurrentTimerDelay = secs; +} void Todo::timerSlotSaveRunningInfoToFile() @@ -120,3 +124,3 @@ void Todo::timerSlotSaveRunningInfoToFile() int secsTo = mRunLastSave.secsTo( mRunEnd ); - if( secsTo == 8 ) ++secsTo; + //if( secsTo == 8 ) ++secsTo; qDebug("KO Todo::saveTimerTimeout %d %d", secsTo, mCurrentTimerDelay ); @@ -124,10 +128,18 @@ void Todo::timerSlotSaveRunningInfoToFile() qDebug("KO Todo::saveTimerTimeout restart %d ", SAVETIMER_TIMEOUT_RETRY_SECONDS ); - mRunSaveTimer->start( SAVETIMER_TIMEOUT_RETRY_SECONDS * 1000 ); - mRunLastSave = QDateTime::currentDateTime(); - mCurrentTimerDelay = SAVETIMER_TIMEOUT_RETRY_SECONDS; + restartSaveTimer( SAVETIMER_TIMEOUT_RETRY_SECONDS ); return; } - mRunSaveTimer->start( SAVETIMER_TIMEOUT_SECONDS * 1000 ); // 5 min - mRunLastSave = QDateTime::currentDateTime(); - mCurrentTimerDelay = SAVETIMER_TIMEOUT_SECONDS; + int msecs = mRunLastSave.time().msecsTo( mRunEnd.time()); + if ( msecs < 0 ) { + restartSaveTimer( SAVETIMER_TIMEOUT_RETRY_SECONDS ); + return; + } + // qDebug("KO Todo::saveTimerTimeout restarting! millisecs %d", msecs - ( ( mCurrentTimerDelay * 1000 ) + 50 ) ); + if ( msecs > ( ( mCurrentTimerDelay * 1000 ) + 50 )) { + qDebug("KO Todo::saveTimerTimeout restarting! millisecs %d", msecs - ( ( mCurrentTimerDelay * 1000 ) + 50 ) ); + restartSaveTimer( SAVETIMER_TIMEOUT_RETRY_SECONDS ); + return; + + } + restartSaveTimer( SAVETIMER_TIMEOUT_SECONDS ); saveRunningInfoToFile( QString::null ); diff --git a/libkcal/todo.h b/libkcal/todo.h index e6b8a21..71b7a4e 100644 --- a/libkcal/todo.h +++ b/libkcal/todo.h @@ -136,2 +136,3 @@ namespace KCal { private: + void restartSaveTimer( int secs ); int mCurrentTimerDelay; |