author | zautrix <zautrix> | 2005-04-15 07:31:29 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-15 07:31:29 (UTC) |
commit | 6a16de9a18235d2ddd771c97a4bb4512b43d181a (patch) (side-by-side diff) | |
tree | 3fec37074addd6afc6eebb191d57a1d5ef5127ab /libkcal | |
parent | 7e87a287a0860882af27e26288bc9cc553dd3a0b (diff) | |
download | kdepimpi-6a16de9a18235d2ddd771c97a4bb4512b43d181a.zip kdepimpi-6a16de9a18235d2ddd771c97a4bb4512b43d181a.tar.gz kdepimpi-6a16de9a18235d2ddd771c97a4bb4512b43d181a.tar.bz2 |
fix
-rw-r--r-- | libkcal/todo.cpp | 36 | ||||
-rw-r--r-- | libkcal/todo.h | 1 |
2 files changed, 34 insertions, 3 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp index 90e7eb9..b89abce 100644 --- a/libkcal/todo.cpp +++ b/libkcal/todo.cpp @@ -23,6 +23,7 @@ #include <klocale.h> #include <kdebug.h> #include <qregexp.h> +#include <qfileinfo.h> #include "calendarlocal.h" #include "icalformat.h" @@ -30,7 +31,7 @@ using namespace KCal; -Todo::Todo(): Incidence() +Todo::Todo(): QObject(), Incidence() { // mStatus = TENTATIVE; @@ -43,7 +44,7 @@ Todo::Todo(): Incidence() mRunSaveTimer = 0; } -Todo::Todo(const Todo &t) : Incidence(t) +Todo::Todo(const Todo &t) : QObject(),Incidence(t) { mDtDue = t.mDtDue; mHasDueDate = t.mHasDueDate; @@ -81,8 +82,10 @@ void Todo::setRunning( bool run ) void Todo::saveRunningInfoToFile() { //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1()); - if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 30 ) + if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 30 ) { + qDebug("Running time < 30 seconds. Skipped. "); return; + } QString dir = KGlobalSettings::timeTrackerDir(); //qDebug("%s ", dir.latin1()); QString file = "%1%2%3-%4%5%6-"; @@ -103,8 +106,35 @@ void Todo::saveRunningInfoToFile() ICalFormat format; file = dir +"/" +file +".ics"; format.save( &cal, file ); + saveParents(); } +void Todo::saveParents() +{ + if (!relatedTo() ) + return; + Incidence * inc = relatedTo(); + if ( inc->type() != "Todo" ) + return; + Todo* to = (Todo*)inc; + bool saveTodo = false; + QString file = KGlobalSettings::timeTrackerDir() + "/"+ to->uid() + ".ics"; + QFileInfo fi ( file ); + if ( fi.exists() ) { + if ( fi.lastModified () < to->lastModified ()) + saveTodo = true; + } else { + saveTodo = true; + } + if ( saveTodo ) { + CalendarLocal cal; + cal.setTimeZoneId( " 00:00 Europe/London(UTC)" ); + Todo * par = (Todo *) to->clone(); + cal.addIncidence( par ); + ICalFormat format; + format.save( &cal, file ); + } +} int Todo::runTime() { diff --git a/libkcal/todo.h b/libkcal/todo.h index fe43357..ec1ffda 100644 --- a/libkcal/todo.h +++ b/libkcal/todo.h @@ -124,6 +124,7 @@ namespace KCal { QDateTime runStart () const { return mRunStart;} public slots: void saveRunningInfoToFile(); + void saveParents(); private: bool mRunning; QTimer * mRunSaveTimer; |