summaryrefslogtreecommitdiffabout
path: root/korganizer/kotodoeditor.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/kotodoeditor.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kotodoeditor.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index 069dda8..9232e09 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -321,6 +321,8 @@ void KOTodoEditor::checkRecurrence()
to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ;
from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ;
}
+ if ( to < from )
+ to = from;
mRecurrence->setDefaults(from,to,!time);
}
} else {
@@ -350,6 +352,33 @@ void KOTodoEditor::writeTodo(Todo *event)
}
if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) {
mRecurrence->writeEvent(event);
+ event->setRecurrenceID( event->dtStart().addSecs(-1) );
+ event->setRecurDates();
+#if 0
+ bool ok;
+ QDateTime next = event->getNextOccurence( event->dtStart().addSecs(-1), &ok );
+ if ( ok ) {
+ QDateTime from,to;
+ bool time = mGeneral->mTimeButton->isChecked();
+ if ( time ) {
+ to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ;
+ from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ;
+ } else {
+ to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ;
+ from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ;
+ }
+ if ( to < from )
+ to = from;
+ int secs = from.secsTo( to );
+ event->setRecurrenceID( next );
+ event->setDtStart( next );
+ event->setDtDue( next.addSecs( secs ) );
+ }
+ else {
+ event->setHasRecurrenceID( false );
+ event->recurrence()->unsetRecurs();
+ }
+#endif
} else
event->recurrence()->unsetRecurs();
}