diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-01 00:37:02 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-01 00:37:02 +0000 |
commit | cc29364f06178f8f6b457384f2ec37a042bd9d43 (patch) | |
tree | 7c77a3184c698bbf9d98cef09fb1ba8124daceba /libkcal/todo.cpp | |
parent | 4f6c584bacc8c3c694228f36ada3de77a76614a6 (diff) | |
download | tdepim-cc29364f06178f8f6b457384f2ec37a042bd9d43.tar.gz tdepim-cc29364f06178f8f6b457384f2ec37a042bd9d43.zip |
* 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
Diffstat (limited to 'libkcal/todo.cpp')
-rw-r--r-- | libkcal/todo.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
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; } |