summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/todo.cpp10
-rw-r--r--libkcal/todo.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index e98af3c..d062492 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -48,75 +48,83 @@ Todo::Todo(const Todo &t) : QObject(),Incidence(t)
48{ 48{
49 mDtDue = t.mDtDue; 49 mDtDue = t.mDtDue;
50 mHasDueDate = t.mHasDueDate; 50 mHasDueDate = t.mHasDueDate;
51 mCompleted = t.mCompleted; 51 mCompleted = t.mCompleted;
52 mHasCompletedDate = t.mHasCompletedDate; 52 mHasCompletedDate = t.mHasCompletedDate;
53 mPercentComplete = t.mPercentComplete; 53 mPercentComplete = t.mPercentComplete;
54 mRunning = false; 54 mRunning = false;
55 mRunSaveTimer = 0; 55 mRunSaveTimer = 0;
56} 56}
57 57
58Todo::~Todo() 58Todo::~Todo()
59{ 59{
60 setRunning( false ); 60 setRunning( false );
61 //qDebug("Todo::~Todo() "); 61 //qDebug("Todo::~Todo() ");
62} 62}
63 63
64void Todo::setRunningFalse( QString s ) 64void Todo::setRunningFalse( QString s )
65{ 65{
66 if ( ! mRunning ) 66 if ( ! mRunning )
67 return; 67 return;
68 mRunning = false; 68 mRunning = false;
69 mRunSaveTimer->stop(); 69 mRunSaveTimer->stop();
70 saveRunningInfoToFile( s ); 70 saveRunningInfoToFile( s );
71} 71}
72void Todo::stopRunning()
73{
74 if ( !mRunning )
75 return;
76 if ( mRunSaveTimer )
77 mRunSaveTimer->stop();
78 mRunning = false;
79}
72void Todo::setRunning( bool run ) 80void Todo::setRunning( bool run )
73{ 81{
74 if ( run == mRunning ) 82 if ( run == mRunning )
75 return; 83 return;
76 //qDebug("Todo::setRunning %d ", run); 84 //qDebug("Todo::setRunning %d ", run);
77 if ( !mRunSaveTimer ) { 85 if ( !mRunSaveTimer ) {
78 mRunSaveTimer = new QTimer ( this ); 86 mRunSaveTimer = new QTimer ( this );
79 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) ); 87 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) );
80 } 88 }
81 mRunning = run; 89 mRunning = run;
82 if ( mRunning ) { 90 if ( mRunning ) {
83 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min 91 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min
84 mRunStart = QDateTime::currentDateTime(); 92 mRunStart = QDateTime::currentDateTime();
85 } else { 93 } else {
86 mRunSaveTimer->stop(); 94 mRunSaveTimer->stop();
87 saveRunningInfoToFile(); 95 saveRunningInfoToFile();
88 } 96 }
89} 97}
90 98
91void Todo::saveRunningInfoToFile() 99void Todo::saveRunningInfoToFile()
92{ 100{
93 saveRunningInfoToFile( QString::null ); 101 saveRunningInfoToFile( QString::null );
94} 102}
95void Todo::saveRunningInfoToFile( QString comment ) 103void Todo::saveRunningInfoToFile( QString comment )
96{ 104{
97 //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1()); 105 //qDebug("Todo::saveRunningInfoToFile() %s", summary().latin1());
98 if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 30 ) { 106 if ( mRunStart.secsTo ( QDateTime::currentDateTime() ) < 10 ) {
99 qDebug("Running time < 30 seconds. Skipped. "); 107 qDebug("Running time < 30 seconds. Skipped. ");
100 return; 108 return;
101 } 109 }
102 QString dir = KGlobalSettings::timeTrackerDir(); 110 QString dir = KGlobalSettings::timeTrackerDir();
103 //qDebug("%s ", dir.latin1()); 111 //qDebug("%s ", dir.latin1());
104 QString file = "%1%2%3-%4%5%6-"; 112 QString file = "%1%2%3-%4%5%6-";
105 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 ); 113 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 );
106 file.replace ( QRegExp (" "), "0" ); 114 file.replace ( QRegExp (" "), "0" );
107 file += uid(); 115 file += uid();
108 //qDebug("File %s ",file.latin1() ); 116 //qDebug("File %s ",file.latin1() );
109 CalendarLocal cal; 117 CalendarLocal cal;
110 cal.setLocalTime(); 118 cal.setLocalTime();
111 Todo * to = (Todo*) clone(); 119 Todo * to = (Todo*) clone();
112 to->setFloats( false ); 120 to->setFloats( false );
113 to->setDtStart( mRunStart ); 121 to->setDtStart( mRunStart );
114 to->setHasStartDate( true ); 122 to->setHasStartDate( true );
115 to->setDtDue( QDateTime::currentDateTime() ); 123 to->setDtDue( QDateTime::currentDateTime() );
116 to->setHasDueDate( true ); 124 to->setHasDueDate( true );
117 to->setUid( file ); 125 to->setUid( file );
118 if ( !comment.isEmpty() ) { 126 if ( !comment.isEmpty() ) {
119 QString des = to->description(); 127 QString des = to->description();
120 if ( des.isEmpty () ) 128 if ( des.isEmpty () )
121 to->setDescription( "TT-Note: " + comment ); 129 to->setDescription( "TT-Note: " + comment );
122 else 130 else
diff --git a/libkcal/todo.h b/libkcal/todo.h
index 6fc4d4b..42db025 100644
--- a/libkcal/todo.h
+++ b/libkcal/todo.h
@@ -101,48 +101,49 @@ namespace KCal {
101 between 0 and 100. 101 between 0 and 100.
102 */ 102 */
103 int percentComplete() const; 103 int percentComplete() const;
104 /** 104 /**
105 Set how many percent of the task are completed. Valid values are in the 105 Set how many percent of the task are completed. Valid values are in the
106 range from 0 to 100. 106 range from 0 to 100.
107 */ 107 */
108 void setPercentComplete(int); 108 void setPercentComplete(int);
109 109
110 /** return date and time when todo was completed */ 110 /** return date and time when todo was completed */
111 QDateTime completed() const; 111 QDateTime completed() const;
112 QString completedStr(bool shortF = true) const; 112 QString completedStr(bool shortF = true) const;
113 /** set date and time of completion */ 113 /** set date and time of completion */
114 void setCompleted(const QDateTime &completed); 114 void setCompleted(const QDateTime &completed);
115 115
116 /** Return true, if todo has a date associated with completion */ 116 /** Return true, if todo has a date associated with completion */
117 bool hasCompletedDate() const; 117 bool hasCompletedDate() const;
118 bool contains ( Todo*); 118 bool contains ( Todo*);
119 void checkSetCompletedFalse(); 119 void checkSetCompletedFalse();
120 bool setRecurDates(); 120 bool setRecurDates();
121 bool isRunning() {return mRunning;} 121 bool isRunning() {return mRunning;}
122 bool hasRunningSub(); 122 bool hasRunningSub();
123 void setRunning( bool ); 123 void setRunning( bool );
124 void setRunningFalse( QString ); 124 void setRunningFalse( QString );
125 void stopRunning();
125 int runTime(); 126 int runTime();
126 QDateTime runStart () const { return mRunStart;} 127 QDateTime runStart () const { return mRunStart;}
127 public slots: 128 public slots:
128 void saveRunningInfoToFile( QString st ); 129 void saveRunningInfoToFile( QString st );
129 void saveRunningInfoToFile( ); 130 void saveRunningInfoToFile( );
130 void saveParents(); 131 void saveParents();
131 private: 132 private:
132 bool mRunning; 133 bool mRunning;
133 QTimer * mRunSaveTimer; 134 QTimer * mRunSaveTimer;
134 QDateTime mRunStart; 135 QDateTime mRunStart;
135 bool accept(Visitor &v) { return v.visit(this); } 136 bool accept(Visitor &v) { return v.visit(this); }
136 137
137 QDateTime mDtDue; // due date of todo 138 QDateTime mDtDue; // due date of todo
138 139
139 bool mHasDueDate; // if todo has associated due date 140 bool mHasDueDate; // if todo has associated due date
140 141
141// int mStatus; // confirmed/delegated/tentative/etc 142// int mStatus; // confirmed/delegated/tentative/etc
142 143
143 QDateTime mCompleted; 144 QDateTime mCompleted;
144 bool mHasCompletedDate; 145 bool mHasCompletedDate;
145 146
146 int mPercentComplete; 147 int mPercentComplete;
147}; 148};
148 149