summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-04-10 09:32:33 (UTC)
committer zautrix <zautrix>2005-04-10 09:32:33 (UTC)
commit04fe8f3523c46511e846a42e4bb92d6b8d33758b (patch) (unidiff)
tree78e810d665f02a234c936ecceb59b0d23217742d
parenteda44f28d633f852caebd21a1e375f3e8e91a5cb (diff)
downloadkdepimpi-04fe8f3523c46511e846a42e4bb92d6b8d33758b.zip
kdepimpi-04fe8f3523c46511e846a42e4bb92d6b8d33758b.tar.gz
kdepimpi-04fe8f3523c46511e846a42e4bb92d6b8d33758b.tar.bz2
nf
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/todo.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index 19a7ffd..90e7eb9 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -19,137 +19,138 @@
19*/ 19*/
20 20
21#include <kglobal.h> 21#include <kglobal.h>
22#include <kglobalsettings.h> 22#include <kglobalsettings.h>
23#include <klocale.h> 23#include <klocale.h>
24#include <kdebug.h> 24#include <kdebug.h>
25#include <qregexp.h> 25#include <qregexp.h>
26 26
27#include "calendarlocal.h" 27#include "calendarlocal.h"
28#include "icalformat.h" 28#include "icalformat.h"
29#include "todo.h" 29#include "todo.h"
30 30
31using namespace KCal; 31using namespace KCal;
32 32
33Todo::Todo(): Incidence() 33Todo::Todo(): Incidence()
34{ 34{
35// mStatus = TENTATIVE; 35// mStatus = TENTATIVE;
36 36
37 mHasDueDate = false; 37 mHasDueDate = false;
38 setHasStartDate( false ); 38 setHasStartDate( false );
39 mCompleted = getEvenTime(QDateTime::currentDateTime()); 39 mCompleted = getEvenTime(QDateTime::currentDateTime());
40 mHasCompletedDate = false; 40 mHasCompletedDate = false;
41 mPercentComplete = 0; 41 mPercentComplete = 0;
42 mRunning = false; 42 mRunning = false;
43 mRunSaveTimer = 0; 43 mRunSaveTimer = 0;
44} 44}
45 45
46Todo::Todo(const Todo &t) : Incidence(t) 46Todo::Todo(const Todo &t) : Incidence(t)
47{ 47{
48 mDtDue = t.mDtDue; 48 mDtDue = t.mDtDue;
49 mHasDueDate = t.mHasDueDate; 49 mHasDueDate = t.mHasDueDate;
50 mCompleted = t.mCompleted; 50 mCompleted = t.mCompleted;
51 mHasCompletedDate = t.mHasCompletedDate; 51 mHasCompletedDate = t.mHasCompletedDate;
52 mPercentComplete = t.mPercentComplete; 52 mPercentComplete = t.mPercentComplete;
53 mRunning = false; 53 mRunning = false;
54 mRunSaveTimer = 0; 54 mRunSaveTimer = 0;
55} 55}
56 56
57Todo::~Todo() 57Todo::~Todo()
58{ 58{
59 setRunning( false ); 59 setRunning( false );
60 //qDebug("Todo::~Todo() "); 60 //qDebug("Todo::~Todo() ");
61} 61}
62 62
63void Todo::setRunning( bool run ) 63void Todo::setRunning( bool run )
64{ 64{
65 if ( run == mRunning ) 65 if ( run == mRunning )
66 return; 66 return;
67 if ( !mRunSaveTimer ) { 67 if ( !mRunSaveTimer ) {
68 mRunSaveTimer = new QTimer ( this ); 68 mRunSaveTimer = new QTimer ( this );
69 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) ); 69 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) );
70 } 70 }
71 mRunning = run; 71 mRunning = run;
72 if ( mRunning ) { 72 if ( mRunning ) {
73 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min 73 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min
74 mRunStart = QDateTime::currentDateTime(); 74 mRunStart = QDateTime::currentDateTime();
75 } else { 75 } else {
76 mRunSaveTimer->stop(); 76 mRunSaveTimer->stop();
77 saveRunningInfoToFile(); 77 saveRunningInfoToFile();
78 } 78 }
79} 79}
80 80
81void Todo::saveRunningInfoToFile() 81void Todo::saveRunningInfoToFile()
82{ 82{
83 qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1()); 83 //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1());
84 84 if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 30 )
85 return;
85 QString dir = KGlobalSettings::timeTrackerDir(); 86 QString dir = KGlobalSettings::timeTrackerDir();
86 qDebug("%s ", dir.latin1()); 87 //qDebug("%s ", dir.latin1());
87 QString file = "%1%2%3-%4%5%6-"; 88 QString file = "%1%2%3-%4%5%6-";
88 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); 89 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 );
89 file.replace ( QRegExp (" "), "0" ); 90 file.replace ( QRegExp (" "), "0" );
90 file += uid(); 91 file += uid();
91 qDebug("File %s ",file.latin1() ); 92 //qDebug("File %s ",file.latin1() );
92 CalendarLocal cal; 93 CalendarLocal cal;
93 cal.setTimeZoneId( " 00:00 Europe/London(UTC)" ); 94 cal.setTimeZoneId( " 00:00 Europe/London(UTC)" );
94 Todo * to = (Todo*) clone(); 95 Todo * to = (Todo*) clone();
95 to->setFloats( false ); 96 to->setFloats( false );
96 to->setDtStart( mRunStart ); 97 to->setDtStart( mRunStart );
97 to->setHasStartDate( true ); 98 to->setHasStartDate( true );
98 to->setDtDue( QDateTime::currentDateTime() ); 99 to->setDtDue( QDateTime::currentDateTime() );
99 to->setHasDueDate( true ); 100 to->setHasDueDate( true );
100 to->setUid( file ); 101 to->setUid( file );
101 cal.addIncidence( to ); 102 cal.addIncidence( to );
102 ICalFormat format; 103 ICalFormat format;
103 file = dir +"/" +file +".ics"; 104 file = dir +"/" +file +".ics";
104 format.save( &cal, file ); 105 format.save( &cal, file );
105 106
106} 107}
107 108
108int Todo::runTime() 109int Todo::runTime()
109{ 110{
110 if ( !mRunning ) 111 if ( !mRunning )
111 return 0; 112 return 0;
112 return mRunStart.secsTo( QDateTime::currentDateTime() ); 113 return mRunStart.secsTo( QDateTime::currentDateTime() );
113} 114}
114bool Todo::hasRunningSub() 115bool Todo::hasRunningSub()
115{ 116{
116 if ( mRunning ) 117 if ( mRunning )
117 return true; 118 return true;
118 Incidence *aTodo; 119 Incidence *aTodo;
119 for (aTodo = mRelations.first(); aTodo; aTodo = mRelations.next()) { 120 for (aTodo = mRelations.first(); aTodo; aTodo = mRelations.next()) {
120 if ( ((Todo*)aTodo)->hasRunningSub() ) 121 if ( ((Todo*)aTodo)->hasRunningSub() )
121 return true; 122 return true;
122 } 123 }
123 return false; 124 return false;
124} 125}
125Incidence *Todo::clone() 126Incidence *Todo::clone()
126{ 127{
127 return new Todo(*this); 128 return new Todo(*this);
128} 129}
129 130
130bool Todo::contains ( Todo* from ) 131bool Todo::contains ( Todo* from )
131{ 132{
132 133
133 if ( !from->summary().isEmpty() ) 134 if ( !from->summary().isEmpty() )
134 if ( !summary().startsWith( from->summary() )) 135 if ( !summary().startsWith( from->summary() ))
135 return false; 136 return false;
136 if ( from->hasStartDate() ) { 137 if ( from->hasStartDate() ) {
137 if ( !hasStartDate() ) 138 if ( !hasStartDate() )
138 return false; 139 return false;
139 if ( from->dtStart() != dtStart()) 140 if ( from->dtStart() != dtStart())
140 return false; 141 return false;
141 } 142 }
142 if ( from->hasDueDate() ){ 143 if ( from->hasDueDate() ){
143 if ( !hasDueDate() ) 144 if ( !hasDueDate() )
144 return false; 145 return false;
145 if ( from->dtDue() != dtDue()) 146 if ( from->dtDue() != dtDue())
146 return false; 147 return false;
147 } 148 }
148 if ( !from->location().isEmpty() ) 149 if ( !from->location().isEmpty() )
149 if ( !location().startsWith( from->location() ) ) 150 if ( !location().startsWith( from->location() ) )
150 return false; 151 return false;
151 if ( !from->description().isEmpty() ) 152 if ( !from->description().isEmpty() )
152 if ( !description().startsWith( from->description() )) 153 if ( !description().startsWith( from->description() ))
153 return false; 154 return false;
154 if ( from->alarms().count() ) { 155 if ( from->alarms().count() ) {
155 Alarm *a = from->alarms().first(); 156 Alarm *a = from->alarms().first();