summaryrefslogtreecommitdiffabout
path: root/libkcal
authorzautrix <zautrix>2005-07-01 04:42:26 (UTC)
committer zautrix <zautrix>2005-07-01 04:42:26 (UTC)
commit4a47a69978fd392be65ea67c5153d5e2ade74c19 (patch) (side-by-side diff)
tree4208a2955c206adc826209c7854e0c628c1c5441 /libkcal
parentd401e425af46703a89eb80802606edeea06c9538 (diff)
downloadkdepimpi-4a47a69978fd392be65ea67c5153d5e2ade74c19.zip
kdepimpi-4a47a69978fd392be65ea67c5153d5e2ade74c19.tar.gz
kdepimpi-4a47a69978fd392be65ea67c5153d5e2ade74c19.tar.bz2
alarm fixx
Diffstat (limited to 'libkcal') (more/less context) (show whitespace changes)
-rw-r--r--libkcal/todo.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index 5260051..4ada2d8 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -528,26 +528,40 @@ void Todo::setPercentComplete(int v)
{
if ( mHasRecurrenceID && v == 100 && mPercentComplete != 100 ) {
if ( !setRecurDates() )
v = 0;
}
mPercentComplete = v;
if ( v != 100 )
mHasCompletedDate = false;
updated();
}
QDateTime Todo::getNextAlarmDateTime( bool * ok, int * offset, QDateTime start_dt ) const
{
- if ( isCompleted() || ! hasDueDate() || cancelled() || !alarmEnabled() ) {
*ok = false;
+ if ( ! hasDueDate() || cancelled() || !alarmEnabled() ) {
+ return QDateTime ();
+ }
+ // if the recurring todo is set to complete and requested time < start time of todo
+ // we want to get the alarm.
+ bool iscompleted = isCompleted();
+ if ( iscompleted && doesRecur() ) {
+ Todo * to = (Todo*) this;
+ to->checkSetCompletedFalse();
+ iscompleted = isCompleted();
+ if ( hasStartDate() && start_dt < dtStart() ){
+ iscompleted = false;
+ }
+ }
+ if ( iscompleted ) {
return QDateTime ();
}
QDateTime incidenceStart;
incidenceStart = dtDue();
bool enabled = false;
Alarm* alarm;
int off = 0;
QDateTime alarmStart = QDateTime::currentDateTime().addDays( 3650 );;
// if ( QDateTime::currentDateTime() > incidenceStart ){
// *ok = false;
// return incidenceStart;
// }