summaryrefslogtreecommitdiffabout
path: root/libkcal/todo.cpp
authorzautrix <zautrix>2005-09-25 01:27:36 (UTC)
committer zautrix <zautrix>2005-09-25 01:27:36 (UTC)
commit181bc87d92ecc48cb07c288cb2d135d8fde56716 (patch) (side-by-side diff)
tree97d972b99fc1a147cdbb0b9a295527e6d6fe119c /libkcal/todo.cpp
parentbd991f0a33d85385735ed4911b794b8740e4d296 (diff)
downloadkdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.zip
kdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.tar.gz
kdepimpi-181bc87d92ecc48cb07c288cb2d135d8fde56716.tar.bz2
todo timer fix
Diffstat (limited to 'libkcal/todo.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libkcal/todo.cpp32
1 files changed, 22 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
@@ -96,12 +96,10 @@ void Todo::setRunning( bool run )
}
mRunning = run;
mRunLastSave = QDateTime::currentDateTime();
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 {
mRunSaveTimer->stop();
saveRunningInfoToFile();
}
@@ -113,24 +111,38 @@ void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end )
mRunStart = start;
mRunEnd = end;
saveRunningInfoToFile( comment );
}
+void Todo::restartSaveTimer( int secs )
+{
+ mRunSaveTimer->start( secs * 1000 );
+ mRunLastSave = QDateTime::currentDateTime();
+ mCurrentTimerDelay = secs;
+}
void Todo::timerSlotSaveRunningInfoToFile()
{
mRunEnd = QDateTime::currentDateTime();
int secsTo = mRunLastSave.secsTo( mRunEnd );
- if( secsTo == 8 ) ++secsTo;
+ //if( secsTo == 8 ) ++secsTo;
qDebug("KO Todo::saveTimerTimeout %d %d", secsTo, mCurrentTimerDelay );
if ( secsTo > mCurrentTimerDelay ) {
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 );
}
void Todo::saveRunningInfoToFile()
{