-rw-r--r-- | libopie/pim/otodo.cpp | 72 |
1 files changed, 35 insertions, 37 deletions
diff --git a/libopie/pim/otodo.cpp b/libopie/pim/otodo.cpp index 6fcf9f6..ece624a 100644 --- a/libopie/pim/otodo.cpp +++ b/libopie/pim/otodo.cpp | |||
@@ -12,12 +12,13 @@ | |||
12 | #include <qpe/categoryselect.h> | 12 | #include <qpe/categoryselect.h> |
13 | 13 | ||
14 | 14 | ||
15 | #include "opimstate.h" | 15 | #include "opimstate.h" |
16 | #include "orecur.h" | 16 | #include "orecur.h" |
17 | #include "opimmaintainer.h" | 17 | #include "opimmaintainer.h" |
18 | #include "opimnotifymanager.h" | ||
18 | 19 | ||
19 | #include "otodo.h" | 20 | #include "otodo.h" |
20 | 21 | ||
21 | 22 | ||
22 | struct OTodo::OTodoData : public QShared { | 23 | struct OTodo::OTodoData : public QShared { |
23 | OTodoData() : QShared() { | 24 | OTodoData() : QShared() { |
@@ -28,17 +29,18 @@ struct OTodo::OTodoData : public QShared { | |||
28 | bool hasDate:1; | 29 | bool hasDate:1; |
29 | int priority; | 30 | int priority; |
30 | QString desc; | 31 | QString desc; |
31 | QString sum; | 32 | QString sum; |
32 | QMap<QString, QString> extra; | 33 | QMap<QString, QString> extra; |
33 | ushort prog; | 34 | ushort prog; |
34 | bool hasAlarmDateTime :1; | ||
35 | QDateTime alarmDateTime; | ||
36 | OPimState state; | 35 | OPimState state; |
37 | ORecur recur; | 36 | ORecur recur; |
38 | OPimMaintainer maintainer; | 37 | OPimMaintainer maintainer; |
38 | QDate start; | ||
39 | QDate completed; | ||
40 | OPimNotifyManager notifiers; | ||
39 | }; | 41 | }; |
40 | 42 | ||
41 | OTodo::OTodo(const OTodo &event ) | 43 | OTodo::OTodo(const OTodo &event ) |
42 | : OPimRecord( event ), data( event.data ) | 44 | : OPimRecord( event ), data( event.data ) |
43 | { | 45 | { |
44 | data->ref(); | 46 | data->ref(); |
@@ -70,14 +72,12 @@ OTodo::OTodo(bool completed, int priority, | |||
70 | data->isCompleted = completed; | 72 | data->isCompleted = completed; |
71 | data->hasDate = hasDate; | 73 | data->hasDate = hasDate; |
72 | data->priority = priority; | 74 | data->priority = priority; |
73 | data->sum = summary; | 75 | data->sum = summary; |
74 | data->prog = progress; | 76 | data->prog = progress; |
75 | data->desc = Qtopia::simplifyMultiLineSpace(description ); | 77 | data->desc = Qtopia::simplifyMultiLineSpace(description ); |
76 | data->hasAlarmDateTime = false; | ||
77 | |||
78 | } | 78 | } |
79 | OTodo::OTodo(bool completed, int priority, | 79 | OTodo::OTodo(bool completed, int priority, |
80 | const QStringList &category, | 80 | const QStringList &category, |
81 | const QString& summary, | 81 | const QString& summary, |
82 | const QString &description, | 82 | const QString &description, |
83 | ushort progress, | 83 | ushort progress, |
@@ -93,14 +93,12 @@ OTodo::OTodo(bool completed, int priority, | |||
93 | data->isCompleted = completed; | 93 | data->isCompleted = completed; |
94 | data->hasDate = hasDate; | 94 | data->hasDate = hasDate; |
95 | data->priority = priority; | 95 | data->priority = priority; |
96 | data->sum = summary; | 96 | data->sum = summary; |
97 | data->prog = progress; | 97 | data->prog = progress; |
98 | data->desc = Qtopia::simplifyMultiLineSpace(description ); | 98 | data->desc = Qtopia::simplifyMultiLineSpace(description ); |
99 | data->hasAlarmDateTime = false; | ||
100 | |||
101 | } | 99 | } |
102 | bool OTodo::match( const QRegExp ®Exp )const | 100 | bool OTodo::match( const QRegExp ®Exp )const |
103 | { | 101 | { |
104 | if( QString::number( data->priority ).find( regExp ) != -1 ){ | 102 | if( QString::number( data->priority ).find( regExp ) != -1 ){ |
105 | return true; | 103 | return true; |
106 | }else if( data->hasDate && data->date.toString().find( regExp) != -1 ){ | 104 | }else if( data->hasDate && data->date.toString().find( regExp) != -1 ){ |
@@ -117,15 +115,17 @@ bool OTodo::isCompleted() const | |||
117 | return data->isCompleted; | 115 | return data->isCompleted; |
118 | } | 116 | } |
119 | bool OTodo::hasDueDate() const | 117 | bool OTodo::hasDueDate() const |
120 | { | 118 | { |
121 | return data->hasDate; | 119 | return data->hasDate; |
122 | } | 120 | } |
123 | bool OTodo::hasAlarmDateTime() const | 121 | bool OTodo::hasStartDate()const { |
124 | { | 122 | return data->start.isValid(); |
125 | return data->hasAlarmDateTime; | 123 | } |
124 | bool OTodo::hasCompletedDate()const { | ||
125 | return data->completed.isValid(); | ||
126 | } | 126 | } |
127 | int OTodo::priority()const | 127 | int OTodo::priority()const |
128 | { | 128 | { |
129 | return data->priority; | 129 | return data->priority; |
130 | } | 130 | } |
131 | QString OTodo::summary() const | 131 | QString OTodo::summary() const |
@@ -137,18 +137,18 @@ ushort OTodo::progress() const | |||
137 | return data->prog; | 137 | return data->prog; |
138 | } | 138 | } |
139 | QDate OTodo::dueDate()const | 139 | QDate OTodo::dueDate()const |
140 | { | 140 | { |
141 | return data->date; | 141 | return data->date; |
142 | } | 142 | } |
143 | 143 | QDate OTodo::startDate()const { | |
144 | QDateTime OTodo::alarmDateTime() const | 144 | return data->start; |
145 | { | 145 | } |
146 | return data->alarmDateTime; | 146 | QDate OTodo::completedDate()const { |
147 | return data->completed; | ||
147 | } | 148 | } |
148 | |||
149 | QString OTodo::description()const | 149 | QString OTodo::description()const |
150 | { | 150 | { |
151 | return data->desc; | 151 | return data->desc; |
152 | } | 152 | } |
153 | OPimState OTodo::state()const { | 153 | OPimState OTodo::state()const { |
154 | return data->state; | 154 | return data->state; |
@@ -166,17 +166,12 @@ void OTodo::setCompleted( bool completed ) | |||
166 | } | 166 | } |
167 | void OTodo::setHasDueDate( bool hasDate ) | 167 | void OTodo::setHasDueDate( bool hasDate ) |
168 | { | 168 | { |
169 | changeOrModify(); | 169 | changeOrModify(); |
170 | data->hasDate = hasDate; | 170 | data->hasDate = hasDate; |
171 | } | 171 | } |
172 | void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime ) | ||
173 | { | ||
174 | changeOrModify(); | ||
175 | data->hasAlarmDateTime = hasAlarmDateTime; | ||
176 | } | ||
177 | void OTodo::setDescription(const QString &desc ) | 172 | void OTodo::setDescription(const QString &desc ) |
178 | { | 173 | { |
179 | // qWarning( "desc " + desc ); | 174 | // qWarning( "desc " + desc ); |
180 | changeOrModify(); | 175 | changeOrModify(); |
181 | data->desc = Qtopia::simplifyMultiLineSpace(desc ); | 176 | data->desc = Qtopia::simplifyMultiLineSpace(desc ); |
182 | } | 177 | } |
@@ -187,21 +182,24 @@ void OTodo::setSummary( const QString& sum ) | |||
187 | } | 182 | } |
188 | void OTodo::setPriority(int prio ) | 183 | void OTodo::setPriority(int prio ) |
189 | { | 184 | { |
190 | changeOrModify(); | 185 | changeOrModify(); |
191 | data->priority = prio; | 186 | data->priority = prio; |
192 | } | 187 | } |
193 | void OTodo::setDueDate( QDate date ) | 188 | void OTodo::setDueDate( const QDate& date ) |
194 | { | 189 | { |
195 | changeOrModify(); | 190 | changeOrModify(); |
196 | data->date = date; | 191 | data->date = date; |
197 | } | 192 | } |
198 | void OTodo::setAlarmDateTime( const QDateTime& alarm ) | 193 | void OTodo::setStartDate( const QDate& date ) { |
199 | { | ||
200 | changeOrModify(); | 194 | changeOrModify(); |
201 | data->alarmDateTime = alarm; | 195 | data->start = date; |
196 | } | ||
197 | void OTodo::setCompletedDate( const QDate& date ) { | ||
198 | changeOrModify(); | ||
199 | data->completed = date; | ||
202 | } | 200 | } |
203 | void OTodo::setState( const OPimState& state ) { | 201 | void OTodo::setState( const OPimState& state ) { |
204 | changeOrModify(); | 202 | changeOrModify(); |
205 | data->state = state; | 203 | data->state = state; |
206 | } | 204 | } |
207 | void OTodo::setRecurrence( const ORecur& rec) { | 205 | void OTodo::setRecurrence( const ORecur& rec) { |
@@ -251,24 +249,22 @@ QString OTodo::toRichText() const | |||
251 | + QString::number( progress() ) + " %<br>"; | 249 | + QString::number( progress() ) + " %<br>"; |
252 | if (hasDueDate() ){ | 250 | if (hasDueDate() ){ |
253 | text += "<b>" + QObject::tr( "Deadline:") + " </b>"; | 251 | text += "<b>" + QObject::tr( "Deadline:") + " </b>"; |
254 | text += dueDate().toString(); | 252 | text += dueDate().toString(); |
255 | text += "<br>"; | 253 | text += "<br>"; |
256 | } | 254 | } |
257 | if (hasAlarmDateTime() ){ | ||
258 | text += "<b>" + QObject::tr( "Alarmed Notification:") + " </b>"; | ||
259 | text += alarmDateTime().toString(); | ||
260 | text += "<br>"; | ||
261 | } | ||
262 | 255 | ||
263 | text += "<b>" + QObject::tr( "Category:") + "</b> "; | 256 | text += "<b>" + QObject::tr( "Category:") + "</b> "; |
264 | text += categoryNames().join(", "); | 257 | text += categoryNames().join(", "); |
265 | text += "<br>"; | 258 | text += "<br>"; |
266 | 259 | ||
267 | return text; | 260 | return text; |
268 | } | 261 | } |
262 | OPimNotifyManager& OTodo::notifiers() { | ||
263 | return data->notifiers; | ||
264 | } | ||
269 | 265 | ||
270 | bool OTodo::operator<( const OTodo &toDoEvent )const{ | 266 | bool OTodo::operator<( const OTodo &toDoEvent )const{ |
271 | if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true; | 267 | if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true; |
272 | if( !hasDueDate() && toDoEvent.hasDueDate() ) return false; | 268 | if( !hasDueDate() && toDoEvent.hasDueDate() ) return false; |
273 | if( hasDueDate() && toDoEvent.hasDueDate() ){ | 269 | if( hasDueDate() && toDoEvent.hasDueDate() ){ |
274 | if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide | 270 | if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide |
@@ -324,16 +320,12 @@ bool OTodo::operator==(const OTodo &toDoEvent )const | |||
324 | if ( data->priority != toDoEvent.data->prog ) return false; | 320 | if ( data->priority != toDoEvent.data->prog ) return false; |
325 | if ( data->isCompleted != toDoEvent.data->isCompleted ) return false; | 321 | if ( data->isCompleted != toDoEvent.data->isCompleted ) return false; |
326 | if ( data->hasDate != toDoEvent.data->hasDate ) return false; | 322 | if ( data->hasDate != toDoEvent.data->hasDate ) return false; |
327 | if ( data->date != toDoEvent.data->date ) return false; | 323 | if ( data->date != toDoEvent.data->date ) return false; |
328 | if ( data->sum != toDoEvent.data->sum ) return false; | 324 | if ( data->sum != toDoEvent.data->sum ) return false; |
329 | if ( data->desc != toDoEvent.data->desc ) return false; | 325 | if ( data->desc != toDoEvent.data->desc ) return false; |
330 | if ( data->hasAlarmDateTime != toDoEvent.data->hasAlarmDateTime ) | ||
331 | return false; | ||
332 | if ( data->alarmDateTime != toDoEvent.data->alarmDateTime ) | ||
333 | return false; | ||
334 | if ( data->maintainer != toDoEvent.data->maintainer ) | 326 | if ( data->maintainer != toDoEvent.data->maintainer ) |
335 | return false; | 327 | return false; |
336 | 328 | ||
337 | return OPimRecord::operator==( toDoEvent ); | 329 | return OPimRecord::operator==( toDoEvent ); |
338 | } | 330 | } |
339 | void OTodo::deref() { | 331 | void OTodo::deref() { |
@@ -368,15 +360,17 @@ QMap<int, QString> OTodo::toMap() const { | |||
368 | map.insert( Priority, QString::number( data->priority ) ); | 360 | map.insert( Priority, QString::number( data->priority ) ); |
369 | map.insert( DateDay, QString::number( data->date.day() ) ); | 361 | map.insert( DateDay, QString::number( data->date.day() ) ); |
370 | map.insert( DateMonth, QString::number( data->date.month() ) ); | 362 | map.insert( DateMonth, QString::number( data->date.month() ) ); |
371 | map.insert( DateYear, QString::number( data->date.year() ) ); | 363 | map.insert( DateYear, QString::number( data->date.year() ) ); |
372 | map.insert( Progress, QString::number( data->prog ) ); | 364 | map.insert( Progress, QString::number( data->prog ) ); |
373 | // map.insert( CrossReference, crossToString() ); | 365 | // map.insert( CrossReference, crossToString() ); |
374 | map.insert( HasAlarmDateTime, QString::number( data->hasAlarmDateTime ) ); | 366 | /* FIXME!!! map.insert( State, ); |
375 | map.insert( AlarmDateTime, data->alarmDateTime.toString() ); | 367 | map.insert( Recurrence, ); |
376 | 368 | map.insert( Reminders, ); | |
369 | map. | ||
370 | */ | ||
377 | return map; | 371 | return map; |
378 | } | 372 | } |
379 | 373 | ||
380 | QMap<QString, QString> OTodo::toExtraMap()const { | 374 | QMap<QString, QString> OTodo::toExtraMap()const { |
381 | return data->extra; | 375 | return data->extra; |
382 | } | 376 | } |
@@ -405,19 +399,23 @@ void OTodo::copy( OTodoData* src, OTodoData* dest ) { | |||
405 | dest->hasDate = src->hasDate; | 399 | dest->hasDate = src->hasDate; |
406 | dest->priority = src->priority; | 400 | dest->priority = src->priority; |
407 | dest->desc = src->desc; | 401 | dest->desc = src->desc; |
408 | dest->sum = src->sum; | 402 | dest->sum = src->sum; |
409 | dest->extra = src->extra; | 403 | dest->extra = src->extra; |
410 | dest->prog = src->prog; | 404 | dest->prog = src->prog; |
411 | dest->hasAlarmDateTime = src->hasAlarmDateTime; | ||
412 | dest->alarmDateTime = src->alarmDateTime; | ||
413 | dest->state = src->state; | 405 | dest->state = src->state; |
414 | dest->recur = src->recur; | 406 | dest->recur = src->recur; |
415 | dest->maintainer = src->maintainer; | 407 | dest->maintainer = src->maintainer; |
408 | dest->start = src->start; | ||
409 | dest->completed = src->completed; | ||
410 | dest->notifiers = src->notifiers; | ||
416 | } | 411 | } |
417 | QString OTodo::type() const { | 412 | QString OTodo::type() const { |
418 | return QString::fromLatin1("OTodo"); | 413 | return QString::fromLatin1("OTodo"); |
419 | } | 414 | } |
420 | QString OTodo::recordField(int /*id*/ )const { | 415 | QString OTodo::recordField(int /*id*/ )const { |
421 | return QString::null; | 416 | return QString::null; |
422 | } | 417 | } |
423 | 418 | ||
419 | int OTodo::rtti(){ | ||
420 | return 1; | ||
421 | } | ||