From cc29364f06178f8f6b457384f2ec37a042bd9d43 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 1 Sep 2010 00:37:02 +0000 Subject: * Massive set of changes to bring in all fixes and enhancements from the Enterprise PIM branch * Ensured that the Trinity changes were applied on top of those enhancements, and any redundancy removed * Added journal read support to the CalDAV resource * Fixed CalDAV resource to use events URL for tasks and journals when separate URL checkbox unchecked git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1170461 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- libkcal/todo.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'libkcal/todo.cpp') diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index 9787ff2ad..b3fe65d9c 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp @@ -116,10 +116,13 @@ void Todo::setDtDue(const TQDateTime &dtDue, bool first ) TQDateTime Todo::dtDue( bool first ) const { - if ( doesRecur() && !first && mDtRecurrence.isValid() ) + if ( doesRecur() && !first && mDtRecurrence.isValid() ) { return mDtRecurrence; - - return mDtDue; + } else if ( hasDueDate() ) { + return mDtDue; + } else { + return TQDateTime(); + } } TQString Todo::dtDueTimeStr() const @@ -173,10 +176,17 @@ void Todo::setHasStartDate(bool f) TQDateTime Todo::dtStart( bool first ) const { - if ( doesRecur() && !first ) - return mDtRecurrence.addDays( dtDue( first ).daysTo( IncidenceBase::dtStart() ) ); - else + if ( doesRecur() && !first ) { + TQDateTime dt = mDtRecurrence.addDays( dtDue( true ).daysTo( IncidenceBase::dtStart() ) ); + + // We want the dtStart's time, not dtDue's + dt.setTime( IncidenceBase::dtStart().time() ); + return dt; + } else if ( hasStartDate() ) { return IncidenceBase::dtStart(); + } else { + return TQDateTime(); + } } void Todo::setDtStart( const TQDateTime &dtStart ) @@ -255,10 +265,14 @@ int Todo::percentComplete() const return mPercentComplete; } -void Todo::setPercentComplete(int v) +void Todo::setPercentComplete( int v ) { mPercentComplete = v; - if ( v != 100 ) mHasCompletedDate = false; + if ( v != 100 ) { + mHasCompletedDate = false; + mCompleted = TQDateTime(); + } + updated(); } @@ -292,7 +306,8 @@ bool Todo::recurTodo() while ( !recursAt( nextDate ) || nextDate <= TQDateTime::currentDateTime() ) { - if ( !nextDate.isValid() || nextDate > endDateTime ) { + if ( !nextDate.isValid() || + ( nextDate > endDateTime && r->duration() != -1 ) ) { return false; } -- cgit v1.2.1