Branch 'kolab/integration/4.13.0' - kcalcore/tests kcalcore/todo.cpp

Sandro Knauß knauss at kolabsys.com
Mon Mar 9 19:49:22 CET 2015


 kcalcore/tests/testtodo.cpp |    7 ++++++-
 kcalcore/todo.cpp           |    4 +++-
 2 files changed, 9 insertions(+), 2 deletions(-)

New commits:
commit 78686a98e09c8edc167de7ee3c17d597587e3a6c
Author: Sandro Knauß <knauss at kolabsys.com>
Date:   Mon Mar 9 19:32:55 2015 +0100

    Mark todo as completed, according to their status
    
    todo can have two ways to indicate, that are completed. Either with 100%
    completed and one with the status StatusCompleted.
    
    KOLAB: 4818

diff --git a/kcalcore/tests/testtodo.cpp b/kcalcore/tests/testtodo.cpp
index fd895be..30b6a09 100644
--- a/kcalcore/tests/testtodo.cpp
+++ b/kcalcore/tests/testtodo.cpp
@@ -121,9 +121,10 @@ void TodoTest::testAssign()
 
 void TodoTest::testSetCompleted() {
 
-    Todo todo1, todo2;
+    Todo todo1, todo2, todo3;
     todo1.setSummary("Todo Summary");
     todo2.setSummary("Todo Summary");
+    todo3.setSummary("Todo Summary");
     KDateTime today = KDateTime::currentUtcDateTime();
 
     // due yesterday
@@ -136,9 +137,13 @@ void TodoTest::testSetCompleted() {
 
     todo2.setCompleted(true);
 
+    todo3.setStatus(Incidence::StatusCompleted);
+
     QVERIFY(originalDueDate != todo1.dtDue());
     QVERIFY(!todo1.isCompleted());
     QVERIFY(todo2.isCompleted());
+    QCOMPARE(todo2.status(), Incidence::StatusCompleted);
+    QVERIFY(todo3.isCompleted());
 }
 
 void TodoTest::testStatus() {
diff --git a/kcalcore/todo.cpp b/kcalcore/todo.cpp
index be2c4d5..fdc55f2 100644
--- a/kcalcore/todo.cpp
+++ b/kcalcore/todo.cpp
@@ -282,7 +282,7 @@ void Todo::setDtStart(const KDateTime &dtStart)
 
 bool Todo::isCompleted() const
 {
-    return d->mPercentComplete == 100;
+    return d->mPercentComplete == 100 || status() == StatusCompleted;
 }
 
 void Todo::setCompleted(bool completed)
@@ -290,11 +290,13 @@ void Todo::setCompleted(bool completed)
     update();
     if (completed) {
         d->mPercentComplete = 100;
+        setStatus(StatusCompleted);
     } else {
         d->mPercentComplete = 0;
         d->mCompleted = KDateTime();
     }
     setFieldDirty(FieldCompleted);
+    setFieldDirty(FieldStatus);
     updated();
 }
 




More information about the commits mailing list