summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-09-25 01:04:17 (UTC)
committer zautrix <zautrix>2005-09-25 01:04:17 (UTC)
commitbd991f0a33d85385735ed4911b794b8740e4d296 (patch) (side-by-side diff)
treef69fdacca2283e2602619e24bcbc30b46998d298
parentbada5cffd8f1b5f4f3719299e3615d7d06a1f0dc (diff)
downloadkdepimpi-bd991f0a33d85385735ed4911b794b8740e4d296.zip
kdepimpi-bd991f0a33d85385735ed4911b794b8740e4d296.tar.gz
kdepimpi-bd991f0a33d85385735ed4911b794b8740e4d296.tar.bz2
todo timer fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/todo.cpp31
-rw-r--r--libkcal/todo.h4
2 files changed, 33 insertions, 2 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index 48d37d5..de07496 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -31,2 +31,6 @@
+#define SAVETIMER_TIMEOUT_SECONDS 300
+//#define SAVETIMER_TIMEOUT_SECONDS 8
+#define SAVETIMER_TIMEOUT_RETRY_SECONDS 5
+
using namespace KCal;
@@ -45,2 +49,3 @@ Todo::Todo(): QObject(), Incidence()
setFloats( true );
+ mCurrentTimerDelay = 0;
}
@@ -56,2 +61,3 @@ Todo::Todo(const Todo &t) : QObject(),Incidence(t)
mRunSaveTimer = 0;
+ mCurrentTimerDelay = 0;
}
@@ -88,8 +94,11 @@ void Todo::setRunning( bool run )
mRunSaveTimer = new QTimer ( this );
- connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) );
+ connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( timerSlotSaveRunningInfoToFile() ) );
}
mRunning = run;
+ mRunLastSave = QDateTime::currentDateTime();
if ( mRunning ) {
- mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min
+ mRunSaveTimer->start( SAVETIMER_TIMEOUT_SECONDS * 1000 ); // 5 min
mRunStart = QDateTime::currentDateTime();
+ mRunLastSave = QDateTime::currentDateTime();
+ mCurrentTimerDelay = SAVETIMER_TIMEOUT_SECONDS;
} else {
@@ -107,2 +116,20 @@ void Todo::saveRunningInfo( QString comment, QDateTime start, QDateTime end )
}
+void Todo::timerSlotSaveRunningInfoToFile()
+{
+ mRunEnd = QDateTime::currentDateTime();
+ int secsTo = mRunLastSave.secsTo( mRunEnd );
+ 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;
+ return;
+ }
+ mRunSaveTimer->start( SAVETIMER_TIMEOUT_SECONDS * 1000 ); // 5 min
+ mRunLastSave = QDateTime::currentDateTime();
+ mCurrentTimerDelay = SAVETIMER_TIMEOUT_SECONDS;
+ saveRunningInfoToFile( QString::null );
+}
void Todo::saveRunningInfoToFile()
diff --git a/libkcal/todo.h b/libkcal/todo.h
index 7feb32e..e6b8a21 100644
--- a/libkcal/todo.h
+++ b/libkcal/todo.h
@@ -133,3 +133,6 @@ namespace KCal {
QString durationText();
+ private slots:
+ void timerSlotSaveRunningInfoToFile( );
private:
+ int mCurrentTimerDelay;
bool mRunning;
@@ -137,2 +140,3 @@ namespace KCal {
QDateTime mRunStart;
+ QDateTime mRunLastSave;
QDateTime mRunEnd;