summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie/pim/ocontact.cpp11
-rw-r--r--libopie/pim/opimrecord.h0
-rw-r--r--libopie/pim/opimstate.cpp64
-rw-r--r--libopie/pim/opimstate.h44
-rw-r--r--libopie/pim/orecordlist.h0
-rw-r--r--libopie/pim/orecur.cpp9
-rw-r--r--libopie/pim/orecur.h2
-rw-r--r--libopie/pim/otodo.cpp23
-rw-r--r--libopie/pim/otodo.h27
-rw-r--r--libopie2/opiepim/core/opimrecord.h0
-rw-r--r--libopie2/opiepim/core/opimstate.cpp64
-rw-r--r--libopie2/opiepim/core/opimstate.h44
-rw-r--r--libopie2/opiepim/core/orecur.cpp9
-rw-r--r--libopie2/opiepim/core/orecur.h2
-rw-r--r--libopie2/opiepim/ocontact.cpp11
-rw-r--r--libopie2/opiepim/orecordlist.h0
-rw-r--r--libopie2/opiepim/otodo.cpp23
-rw-r--r--libopie2/opiepim/otodo.h27
18 files changed, 352 insertions, 8 deletions
diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp
index acd65c4..cd238ef 100644
--- a/libopie/pim/ocontact.cpp
+++ b/libopie/pim/ocontact.cpp
@@ -1455,25 +1455,34 @@ void OContact::writeVCard( const QString &filename, const OContact &contact)
1455 Returns the set of contacts read as VCards from the file \a filename. 1455 Returns the set of contacts read as VCards from the file \a filename.
1456*/ 1456*/
1457QValueList<OContact> OContact::readVCard( const QString &filename ) 1457QValueList<OContact> OContact::readVCard( const QString &filename )
1458{ 1458{
1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() ); 1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() );
1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() ); 1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() );
1461 1461
1462 qDebug("vobject = %p", obj ); 1462 qDebug("vobject = %p", obj );
1463 1463
1464 QValueList<OContact> contacts; 1464 QValueList<OContact> contacts;
1465 1465
1466 while ( obj ) { 1466 while ( obj ) {
1467 contacts.append( parseVObject( obj ) ); 1467 OContact con = parseVObject( obj );
1468 /*
1469 * if uid is 0 assign a new one
1470 * this at least happens on
1471 * Nokia6210
1472 */
1473 if ( con.uid() == 0 )
1474 con.setUid( 1 );
1475
1476 contacts.append(con );
1468 1477
1469 VObject *t = obj; 1478 VObject *t = obj;
1470 obj = nextVObjectInList(obj); 1479 obj = nextVObjectInList(obj);
1471 cleanVObject( t ); 1480 cleanVObject( t );
1472 } 1481 }
1473 1482
1474 return contacts; 1483 return contacts;
1475} 1484}
1476 1485
1477/*! 1486/*!
1478 Returns TRUE if the contact matches the regular expression \a regexp. 1487 Returns TRUE if the contact matches the regular expression \a regexp.
1479 Otherwise returns FALSE. 1488 Otherwise returns FALSE.
diff --git a/libopie/pim/opimrecord.h b/libopie/pim/opimrecord.h
index dbb94ed..d9ccad4 100644
--- a/libopie/pim/opimrecord.h
+++ b/libopie/pim/opimrecord.h
diff --git a/libopie/pim/opimstate.cpp b/libopie/pim/opimstate.cpp
new file mode 100644
index 0000000..6fb2feb
--- a/dev/null
+++ b/libopie/pim/opimstate.cpp
@@ -0,0 +1,64 @@
1#include <qshared.h>
2
3#include "opimstate.h"
4
5/*
6 * for one int this does not make
7 * much sense but never the less
8 * we will do it for the future
9 */
10struct OPimState::Data : public QShared {
11 Data() : QShared(),state(Undefined) {
12 }
13 int state;
14};
15
16OPimState::OPimState( int state ) {
17 data = new Data;
18 data->state = state;
19}
20OPimState::OPimState( const OPimState& st) :
21 data( st.data ) {
22 /* ref up */
23 data->ref();
24}
25OPimState::~OPimState() {
26 if ( data->deref() ) {
27 delete data ;
28 data = 0;
29 }
30}
31bool OPimState::operator==( const OPimState& st) {
32 if ( data->state == st.data->state ) return true;
33
34 return false;
35}
36OPimState &OPimState::operator=( const OPimState& st) {
37 st.data->ref();
38 deref();
39 data = st.data;
40
41 return *this;
42}
43void OPimState::setState( int st) {
44 copyInternally();
45 data->state = st;
46}
47int OPimState::state()const {
48 return data->state;
49}
50void OPimState::deref() {
51 if ( data->deref() ) {
52 delete data;
53 data = 0l;
54 }
55}
56void OPimState::copyInternally() {
57 /* we need to change it */
58 if ( data->count != 1 ) {
59 data->deref();
60 Data* d2 = new Data;
61 d2->state = data->state;
62 data = d2;
63 }
64}
diff --git a/libopie/pim/opimstate.h b/libopie/pim/opimstate.h
new file mode 100644
index 0000000..731181e
--- a/dev/null
+++ b/libopie/pim/opimstate.h
@@ -0,0 +1,44 @@
1#ifndef OPIE_PIM_STATE_H
2#define OPIE_PIM_STATE_H
3
4#include <qstring.h>
5
6/**
7 * The State of a Task
8 * This class encapsules the state of a todo
9 * and it's shared too
10 */
11/*
12 * in c a simple struct would be enough ;)
13 * g_new_state();
14 * g_do_some_thing( state_t* );
15 * ;)
16 */
17class OPimState {
18public:
19 enum State {
20 Started = 0,
21 Postponed,
22 Finished,
23 NotStarted,
24 Undefined
25 };
26 OPimState( int state = Undefined );
27 OPimState( const OPimState& );
28 ~OPimState();
29
30 bool operator==( const OPimState& );
31 OPimState &operator=( const OPimState& );
32 void setState( int state);
33 int state()const;
34private:
35 void deref();
36 inline void copyInternally();
37 struct Data;
38 Data* data;
39 class Private;
40 Private *d;
41};
42
43
44#endif
diff --git a/libopie/pim/orecordlist.h b/libopie/pim/orecordlist.h
index 2f4a5d3..8ed41e2 100644
--- a/libopie/pim/orecordlist.h
+++ b/libopie/pim/orecordlist.h
diff --git a/libopie/pim/orecur.cpp b/libopie/pim/orecur.cpp
index 6c81f8f..257d4fd 100644
--- a/libopie/pim/orecur.cpp
+++ b/libopie/pim/orecur.cpp
@@ -12,24 +12,25 @@ struct ORecur::Data : public QShared {
12 pos = 0; 12 pos = 0;
13 create = -1; 13 create = -1;
14 hasEnd = FALSE; 14 hasEnd = FALSE;
15 end = 0; 15 end = 0;
16 } 16 }
17 char days; // Q_UINT8 for 8 seven days;) 17 char days; // Q_UINT8 for 8 seven days;)
18 ORecur::RepeatType type; 18 ORecur::RepeatType type;
19 int freq; 19 int freq;
20 int pos; 20 int pos;
21 bool hasEnd : 1; 21 bool hasEnd : 1;
22 time_t end; 22 time_t end;
23 time_t create; 23 time_t create;
24 int rep;
24}; 25};
25 26
26 27
27ORecur::ORecur() { 28ORecur::ORecur() {
28 data = new Data; 29 data = new Data;
29} 30}
30ORecur::ORecur( const ORecur& rec) 31ORecur::ORecur( const ORecur& rec)
31 : data( rec.data ) 32 : data( rec.data )
32{ 33{
33 data->ref(); 34 data->ref();
34} 35}
35ORecur::~ORecur() { 36ORecur::~ORecur() {
@@ -69,24 +70,27 @@ char ORecur::days() const{
69bool ORecur::hasEndDate()const { 70bool ORecur::hasEndDate()const {
70 return data->hasEnd; 71 return data->hasEnd;
71} 72}
72QDate ORecur::endDate()const { 73QDate ORecur::endDate()const {
73 return TimeConversion::fromUTC( data->end ).date(); 74 return TimeConversion::fromUTC( data->end ).date();
74} 75}
75time_t ORecur::endDateUTC()const { 76time_t ORecur::endDateUTC()const {
76 return data->end; 77 return data->end;
77} 78}
78time_t ORecur::createTime()const { 79time_t ORecur::createTime()const {
79 return data->create; 80 return data->create;
80} 81}
82int ORecur::repetition()const {
83 return data->rep;
84}
81void ORecur::setType( const RepeatType& z) { 85void ORecur::setType( const RepeatType& z) {
82 checkOrModify(); 86 checkOrModify();
83 data->type = z; 87 data->type = z;
84} 88}
85void ORecur::setFrequency( int freq ) { 89void ORecur::setFrequency( int freq ) {
86 checkOrModify(); 90 checkOrModify();
87 data->freq = freq; 91 data->freq = freq;
88} 92}
89void ORecur::setPosition( int pos ) { 93void ORecur::setPosition( int pos ) {
90 checkOrModify(); 94 checkOrModify();
91 data->pos = pos; 95 data->pos = pos;
92} 96}
@@ -101,27 +105,32 @@ void ORecur::setEndDate( const QDate& dt) {
101void ORecur::setEndDateUTC( time_t t) { 105void ORecur::setEndDateUTC( time_t t) {
102 checkOrModify(); 106 checkOrModify();
103 data->end = t; 107 data->end = t;
104} 108}
105void ORecur::setCreateTime( time_t t) { 109void ORecur::setCreateTime( time_t t) {
106 checkOrModify(); 110 checkOrModify();
107 data->create = t; 111 data->create = t;
108} 112}
109void ORecur::setHasEndDate( bool b) { 113void ORecur::setHasEndDate( bool b) {
110 checkOrModify(); 114 checkOrModify();
111 data->hasEnd = b; 115 data->hasEnd = b;
112} 116}
117void ORecur::setRepitition( int rep ) {
118 checkOrModify();
119 data->rep = rep;
120}
113void ORecur::checkOrModify() { 121void ORecur::checkOrModify() {
114 if ( data->count != 1 ) { 122 if ( data->count != 1 ) {
115 data->deref(); 123 data->deref();
116 Data* d2 = new Data; 124 Data* d2 = new Data;
117 d2->days = data->days; 125 d2->days = data->days;
118 d2->type = data->type; 126 d2->type = data->type;
119 d2->freq = data->freq; 127 d2->freq = data->freq;
120 d2->pos = data->pos; 128 d2->pos = data->pos;
121 d2->hasEnd = data->hasEnd; 129 d2->hasEnd = data->hasEnd;
122 d2->end = data->end; 130 d2->end = data->end;
123 d2->create = data->create; 131 d2->create = data->create;
132 d2->rep = data->rep;
124 data = d2; 133 data = d2;
125 } 134 }
126} 135}
127 136
diff --git a/libopie/pim/orecur.h b/libopie/pim/orecur.h
index 89258f8..d24d72d 100644
--- a/libopie/pim/orecur.h
+++ b/libopie/pim/orecur.h
@@ -22,33 +22,35 @@ public:
22 ~ORecur(); 22 ~ORecur();
23 23
24 ORecur &operator=( const ORecur& ); 24 ORecur &operator=( const ORecur& );
25 bool operator==(const ORecur& )const; 25 bool operator==(const ORecur& )const;
26 RepeatType type()const; 26 RepeatType type()const;
27 int frequency()const; 27 int frequency()const;
28 int position()const; 28 int position()const;
29 char days()const; 29 char days()const;
30 bool hasEndDate()const; 30 bool hasEndDate()const;
31 QDate endDate()const; 31 QDate endDate()const;
32 time_t endDateUTC()const; 32 time_t endDateUTC()const;
33 time_t createTime()const; 33 time_t createTime()const;
34 int repetition()const;
34 35
35 void setType( const RepeatType& ); 36 void setType( const RepeatType& );
36 void setFrequency( int freq ); 37 void setFrequency( int freq );
37 void setPosition( int pos ); 38 void setPosition( int pos );
38 void setDays( char c); 39 void setDays( char c);
39 void setEndDate( const QDate& dt ); 40 void setEndDate( const QDate& dt );
40 void setEndDateUTC( time_t ); 41 void setEndDateUTC( time_t );
41 void setCreateTime( time_t ); 42 void setCreateTime( time_t );
42 void setHasEndDate( bool b ); 43 void setHasEndDate( bool b );
44 void setRepitition(int );
43private: 45private:
44 void deref(); 46 void deref();
45 inline void checkOrModify(); 47 inline void checkOrModify();
46 48
47 49
48 class Data; 50 class Data;
49 Data* data; 51 Data* data;
50 class ORecurPrivate; 52 class ORecurPrivate;
51 ORecurPrivate *d; 53 ORecurPrivate *d;
52}; 54};
53 55
54#endif 56#endif
diff --git a/libopie/pim/otodo.cpp b/libopie/pim/otodo.cpp
index 765d5a9..0d5b1d3 100644
--- a/libopie/pim/otodo.cpp
+++ b/libopie/pim/otodo.cpp
@@ -3,42 +3,45 @@
3#include <qshared.h> 3#include <qshared.h>
4 4
5 5
6 6
7#include <qpe/palmtopuidgen.h> 7#include <qpe/palmtopuidgen.h>
8#include <qpe/stringutil.h> 8#include <qpe/stringutil.h>
9#include <qpe/palmtoprecord.h> 9#include <qpe/palmtoprecord.h>
10#include <qpe/stringutil.h> 10#include <qpe/stringutil.h>
11#include <qpe/categories.h> 11#include <qpe/categories.h>
12#include <qpe/categoryselect.h> 12#include <qpe/categoryselect.h>
13 13
14 14
15 15#include "opimstate.h"
16#include "orecur.h"
16#include "otodo.h" 17#include "otodo.h"
17 18
18 19
19struct OTodo::OTodoData : public QShared { 20struct OTodo::OTodoData : public QShared {
20 OTodoData() : QShared() { 21 OTodoData() : QShared() {
21 }; 22 };
22 23
23 QDate date; 24 QDate date;
24 bool isCompleted:1; 25 bool isCompleted:1;
25 bool hasDate:1; 26 bool hasDate:1;
26 int priority; 27 int priority;
27 QString desc; 28 QString desc;
28 QString sum; 29 QString sum;
29 QMap<QString, QString> extra; 30 QMap<QString, QString> extra;
30 ushort prog; 31 ushort prog;
31 bool hasAlarmDateTime :1; 32 bool hasAlarmDateTime :1;
32 QDateTime alarmDateTime; 33 QDateTime alarmDateTime;
34 OPimState state;
35 ORecur recur;
33}; 36};
34 37
35OTodo::OTodo(const OTodo &event ) 38OTodo::OTodo(const OTodo &event )
36 : OPimRecord( event ), data( event.data ) 39 : OPimRecord( event ), data( event.data )
37{ 40{
38 data->ref(); 41 data->ref();
39// qWarning("ref up"); 42// qWarning("ref up");
40} 43}
41OTodo::~OTodo() { 44OTodo::~OTodo() {
42 45
43// qWarning("~OTodo " ); 46// qWarning("~OTodo " );
44 if ( data->deref() ) { 47 if ( data->deref() ) {
@@ -135,24 +138,30 @@ QDate OTodo::dueDate()const
135 return data->date; 138 return data->date;
136} 139}
137 140
138QDateTime OTodo::alarmDateTime() const 141QDateTime OTodo::alarmDateTime() const
139{ 142{
140 return data->alarmDateTime; 143 return data->alarmDateTime;
141} 144}
142 145
143QString OTodo::description()const 146QString OTodo::description()const
144{ 147{
145 return data->desc; 148 return data->desc;
146} 149}
150OPimState OTodo::state()const {
151 return data->state;
152}
153ORecur OTodo::recurrence()const {
154 return data->recur;
155}
147void OTodo::setCompleted( bool completed ) 156void OTodo::setCompleted( bool completed )
148{ 157{
149 changeOrModify(); 158 changeOrModify();
150 data->isCompleted = completed; 159 data->isCompleted = completed;
151} 160}
152void OTodo::setHasDueDate( bool hasDate ) 161void OTodo::setHasDueDate( bool hasDate )
153{ 162{
154 changeOrModify(); 163 changeOrModify();
155 data->hasDate = hasDate; 164 data->hasDate = hasDate;
156} 165}
157void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime ) 166void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime )
158{ 167{
@@ -176,24 +185,32 @@ void OTodo::setPriority(int prio )
176 data->priority = prio; 185 data->priority = prio;
177} 186}
178void OTodo::setDueDate( QDate date ) 187void OTodo::setDueDate( QDate date )
179{ 188{
180 changeOrModify(); 189 changeOrModify();
181 data->date = date; 190 data->date = date;
182} 191}
183void OTodo::setAlarmDateTime( const QDateTime& alarm ) 192void OTodo::setAlarmDateTime( const QDateTime& alarm )
184{ 193{
185 changeOrModify(); 194 changeOrModify();
186 data->alarmDateTime = alarm; 195 data->alarmDateTime = alarm;
187} 196}
197void OTodo::setState( const OPimState& state ) {
198 changeOrModify();
199 data->state = state;
200}
201void OTodo::setRecurrence( const ORecur& rec) {
202 changeOrModify();
203 data->recur = rec;
204}
188bool OTodo::isOverdue( ) 205bool OTodo::isOverdue( )
189{ 206{
190 if( data->hasDate && !data->isCompleted) 207 if( data->hasDate && !data->isCompleted)
191 return QDate::currentDate() > data->date; 208 return QDate::currentDate() > data->date;
192 return false; 209 return false;
193} 210}
194void OTodo::setProgress(ushort progress ) 211void OTodo::setProgress(ushort progress )
195{ 212{
196 changeOrModify(); 213 changeOrModify();
197 data->prog = progress; 214 data->prog = progress;
198} 215}
199QString OTodo::toShortText() const { 216QString OTodo::toShortText() const {
@@ -349,38 +366,40 @@ QMap<int, QString> OTodo::toMap() const {
349} 366}
350 367
351QMap<QString, QString> OTodo::toExtraMap()const { 368QMap<QString, QString> OTodo::toExtraMap()const {
352 return data->extra; 369 return data->extra;
353} 370}
354/** 371/**
355 * change or modify looks at the ref count and either 372 * change or modify looks at the ref count and either
356 * creates a new QShared Object or it can modify it 373 * creates a new QShared Object or it can modify it
357 * right in place 374 * right in place
358 */ 375 */
359void OTodo::changeOrModify() { 376void OTodo::changeOrModify() {
360 if ( data->count != 1 ) { 377 if ( data->count != 1 ) {
361// qWarning("changeOrModify"); 378 qWarning("changeOrModify");
362 data->deref(); 379 data->deref();
363 OTodoData* d2 = new OTodoData(); 380 OTodoData* d2 = new OTodoData();
364 copy(data, d2 ); 381 copy(data, d2 );
365 data = d2; 382 data = d2;
366 } 383 }
367} 384}
368void OTodo::copy( OTodoData* src, OTodoData* dest ) { 385void OTodo::copy( OTodoData* src, OTodoData* dest ) {
369 dest->date = src->date; 386 dest->date = src->date;
370 dest->isCompleted = src->isCompleted; 387 dest->isCompleted = src->isCompleted;
371 dest->hasDate = src->hasDate; 388 dest->hasDate = src->hasDate;
372 dest->priority = src->priority; 389 dest->priority = src->priority;
373 dest->desc = src->desc; 390 dest->desc = src->desc;
374 dest->sum = src->sum; 391 dest->sum = src->sum;
375 dest->extra = src->extra; 392 dest->extra = src->extra;
376 dest->prog = src->prog; 393 dest->prog = src->prog;
377 dest->hasAlarmDateTime = src->hasAlarmDateTime; 394 dest->hasAlarmDateTime = src->hasAlarmDateTime;
378 dest->alarmDateTime = src->alarmDateTime; 395 dest->alarmDateTime = src->alarmDateTime;
396 dest->state = src->state;
397 dest->recur = src->recur;
379} 398}
380QString OTodo::type() const { 399QString OTodo::type() const {
381 return QString::fromLatin1("OTodo"); 400 return QString::fromLatin1("OTodo");
382} 401}
383QString OTodo::recordField(int id )const { 402QString OTodo::recordField(int id )const {
384 return QString::null; 403 return QString::null;
385} 404}
386 405
diff --git a/libopie/pim/otodo.h b/libopie/pim/otodo.h
index 5bd91d6..2cdc587 100644
--- a/libopie/pim/otodo.h
+++ b/libopie/pim/otodo.h
@@ -7,42 +7,49 @@
7#include <qmap.h> 7#include <qmap.h>
8#include <qregexp.h> 8#include <qregexp.h>
9#include <qstringlist.h> 9#include <qstringlist.h>
10#include <qdatetime.h> 10#include <qdatetime.h>
11#include <qvaluelist.h> 11#include <qvaluelist.h>
12 12
13#include <qpe/recordfields.h> 13#include <qpe/recordfields.h>
14#include <qpe/palmtopuidgen.h> 14#include <qpe/palmtopuidgen.h>
15 15
16#include <opie/opimrecord.h> 16#include <opie/opimrecord.h>
17 17
18 18
19class OPimState;
20class ORecur;
19class OTodo : public OPimRecord { 21class OTodo : public OPimRecord {
20public: 22public:
21 typedef QValueList<OTodo> ValueList; 23 typedef QValueList<OTodo> ValueList;
22 enum RecordFields { 24 enum RecordFields {
23 Uid = Qtopia::UID_ID, 25 Uid = Qtopia::UID_ID,
24 Category = Qtopia::CATEGORY_ID, 26 Category = Qtopia::CATEGORY_ID,
25 HasDate, 27 HasDate,
26 Completed, 28 Completed,
27 Description, 29 Description,
28 Summary, 30 Summary,
29 Priority, 31 Priority,
30 DateDay, 32 DateDay,
31 DateMonth, 33 DateMonth,
32 DateYear, 34 DateYear,
33 Progress, 35 Progress,
34 CrossReference, 36 CrossReference,
35 HasAlarmDateTime, 37 HasAlarmDateTime,
36 AlarmDateTime 38 AlarmDateTime,
39 State,
40 Recurrance,
41 Alarms,
42 Reminders,
43 Notifiers
37 }; 44 };
38 public: 45 public:
39 // priorities from Very low to very high 46 // priorities from Very low to very high
40 enum TaskPriority { VeryHigh=1, High, Normal, Low, VeryLow }; 47 enum TaskPriority { VeryHigh=1, High, Normal, Low, VeryLow };
41 48
42 /* Constructs a new ToDoEvent 49 /* Constructs a new ToDoEvent
43 @param completed Is the TodoEvent completed 50 @param completed Is the TodoEvent completed
44 @param priority What is the priority of this ToDoEvent 51 @param priority What is the priority of this ToDoEvent
45 @param category Which category does it belong( uid ) 52 @param category Which category does it belong( uid )
46 @param summary A small summary of the todo 53 @param summary A small summary of the todo
47 @param description What is this ToDoEvent about 54 @param description What is this ToDoEvent about
48 @param hasDate Does this Event got a deadline 55 @param hasDate Does this Event got a deadline
@@ -102,24 +109,34 @@ public:
102 109
103 /** 110 /**
104 * The due Date 111 * The due Date
105 */ 112 */
106 QDate dueDate()const; 113 QDate dueDate()const;
107 114
108 /** 115 /**
109 * Alarm Date and Time 116 * Alarm Date and Time
110 */ 117 */
111 QDateTime alarmDateTime()const; 118 QDateTime alarmDateTime()const;
112 119
113 /** 120 /**
121 * What is the state of this OTodo?
122 */
123 OPimState state()const;
124
125 /**
126 * the recurrance of this
127 */
128 ORecur recurrence()const;
129
130 /**
114 * The description of the todo 131 * The description of the todo
115 */ 132 */
116 QString description()const; 133 QString description()const;
117 134
118 /** 135 /**
119 * A small summary of the todo 136 * A small summary of the todo
120 */ 137 */
121 QString summary() const; 138 QString summary() const;
122 139
123 /** 140 /**
124 * @reimplemented 141 * @reimplemented
125 * Return this todoevent in a RichText formatted QString 142 * Return this todoevent in a RichText formatted QString
@@ -161,31 +178,39 @@ public:
161 void setPriority(int priority ); 178 void setPriority(int priority );
162 179
163 /** 180 /**
164 * Set the progress. 181 * Set the progress.
165 */ 182 */
166 void setProgress( ushort progress ); 183 void setProgress( ushort progress );
167 184
168 /** 185 /**
169 * set the end date 186 * set the end date
170 */ 187 */
171 void setDueDate( QDate date ); 188 void setDueDate( QDate date );
172 189
190
191 void setRecurrence( const ORecur& );
173 /** 192 /**
174 * set the alarm time 193 * set the alarm time
175 */ 194 */
176 void setAlarmDateTime ( const QDateTime& alarm ); 195 void setAlarmDateTime ( const QDateTime& alarm );
177 196
178 void setDescription(const QString& ); 197 void setDescription(const QString& );
179 void setSummary(const QString& ); 198 void setSummary(const QString& );
199
200 /**
201 * set the state of a Todo
202 * @param state State what the todo should take
203 */
204 void setState( const OPimState& state);
180 bool isOverdue(); 205 bool isOverdue();
181 206
182 207
183 bool match( const QRegExp &r )const; 208 bool match( const QRegExp &r )const;
184 209
185 bool operator<(const OTodo &toDoEvent )const; 210 bool operator<(const OTodo &toDoEvent )const;
186 bool operator<=(const OTodo &toDoEvent )const; 211 bool operator<=(const OTodo &toDoEvent )const;
187 bool operator!=(const OTodo &toDoEvent )const; 212 bool operator!=(const OTodo &toDoEvent )const;
188 bool operator>(const OTodo &toDoEvent )const; 213 bool operator>(const OTodo &toDoEvent )const;
189 bool operator>=(const OTodo &toDoEvent)const; 214 bool operator>=(const OTodo &toDoEvent)const;
190 bool operator==(const OTodo &toDoEvent )const; 215 bool operator==(const OTodo &toDoEvent )const;
191 OTodo &operator=(const OTodo &toDoEvent ); 216 OTodo &operator=(const OTodo &toDoEvent );
diff --git a/libopie2/opiepim/core/opimrecord.h b/libopie2/opiepim/core/opimrecord.h
index dbb94ed..d9ccad4 100644
--- a/libopie2/opiepim/core/opimrecord.h
+++ b/libopie2/opiepim/core/opimrecord.h
diff --git a/libopie2/opiepim/core/opimstate.cpp b/libopie2/opiepim/core/opimstate.cpp
new file mode 100644
index 0000000..6fb2feb
--- a/dev/null
+++ b/libopie2/opiepim/core/opimstate.cpp
@@ -0,0 +1,64 @@
1#include <qshared.h>
2
3#include "opimstate.h"
4
5/*
6 * for one int this does not make
7 * much sense but never the less
8 * we will do it for the future
9 */
10struct OPimState::Data : public QShared {
11 Data() : QShared(),state(Undefined) {
12 }
13 int state;
14};
15
16OPimState::OPimState( int state ) {
17 data = new Data;
18 data->state = state;
19}
20OPimState::OPimState( const OPimState& st) :
21 data( st.data ) {
22 /* ref up */
23 data->ref();
24}
25OPimState::~OPimState() {
26 if ( data->deref() ) {
27 delete data ;
28 data = 0;
29 }
30}
31bool OPimState::operator==( const OPimState& st) {
32 if ( data->state == st.data->state ) return true;
33
34 return false;
35}
36OPimState &OPimState::operator=( const OPimState& st) {
37 st.data->ref();
38 deref();
39 data = st.data;
40
41 return *this;
42}
43void OPimState::setState( int st) {
44 copyInternally();
45 data->state = st;
46}
47int OPimState::state()const {
48 return data->state;
49}
50void OPimState::deref() {
51 if ( data->deref() ) {
52 delete data;
53 data = 0l;
54 }
55}
56void OPimState::copyInternally() {
57 /* we need to change it */
58 if ( data->count != 1 ) {
59 data->deref();
60 Data* d2 = new Data;
61 d2->state = data->state;
62 data = d2;
63 }
64}
diff --git a/libopie2/opiepim/core/opimstate.h b/libopie2/opiepim/core/opimstate.h
new file mode 100644
index 0000000..731181e
--- a/dev/null
+++ b/libopie2/opiepim/core/opimstate.h
@@ -0,0 +1,44 @@
1#ifndef OPIE_PIM_STATE_H
2#define OPIE_PIM_STATE_H
3
4#include <qstring.h>
5
6/**
7 * The State of a Task
8 * This class encapsules the state of a todo
9 * and it's shared too
10 */
11/*
12 * in c a simple struct would be enough ;)
13 * g_new_state();
14 * g_do_some_thing( state_t* );
15 * ;)
16 */
17class OPimState {
18public:
19 enum State {
20 Started = 0,
21 Postponed,
22 Finished,
23 NotStarted,
24 Undefined
25 };
26 OPimState( int state = Undefined );
27 OPimState( const OPimState& );
28 ~OPimState();
29
30 bool operator==( const OPimState& );
31 OPimState &operator=( const OPimState& );
32 void setState( int state);
33 int state()const;
34private:
35 void deref();
36 inline void copyInternally();
37 struct Data;
38 Data* data;
39 class Private;
40 Private *d;
41};
42
43
44#endif
diff --git a/libopie2/opiepim/core/orecur.cpp b/libopie2/opiepim/core/orecur.cpp
index 6c81f8f..257d4fd 100644
--- a/libopie2/opiepim/core/orecur.cpp
+++ b/libopie2/opiepim/core/orecur.cpp
@@ -12,24 +12,25 @@ struct ORecur::Data : public QShared {
12 pos = 0; 12 pos = 0;
13 create = -1; 13 create = -1;
14 hasEnd = FALSE; 14 hasEnd = FALSE;
15 end = 0; 15 end = 0;
16 } 16 }
17 char days; // Q_UINT8 for 8 seven days;) 17 char days; // Q_UINT8 for 8 seven days;)
18 ORecur::RepeatType type; 18 ORecur::RepeatType type;
19 int freq; 19 int freq;
20 int pos; 20 int pos;
21 bool hasEnd : 1; 21 bool hasEnd : 1;
22 time_t end; 22 time_t end;
23 time_t create; 23 time_t create;
24 int rep;
24}; 25};
25 26
26 27
27ORecur::ORecur() { 28ORecur::ORecur() {
28 data = new Data; 29 data = new Data;
29} 30}
30ORecur::ORecur( const ORecur& rec) 31ORecur::ORecur( const ORecur& rec)
31 : data( rec.data ) 32 : data( rec.data )
32{ 33{
33 data->ref(); 34 data->ref();
34} 35}
35ORecur::~ORecur() { 36ORecur::~ORecur() {
@@ -69,24 +70,27 @@ char ORecur::days() const{
69bool ORecur::hasEndDate()const { 70bool ORecur::hasEndDate()const {
70 return data->hasEnd; 71 return data->hasEnd;
71} 72}
72QDate ORecur::endDate()const { 73QDate ORecur::endDate()const {
73 return TimeConversion::fromUTC( data->end ).date(); 74 return TimeConversion::fromUTC( data->end ).date();
74} 75}
75time_t ORecur::endDateUTC()const { 76time_t ORecur::endDateUTC()const {
76 return data->end; 77 return data->end;
77} 78}
78time_t ORecur::createTime()const { 79time_t ORecur::createTime()const {
79 return data->create; 80 return data->create;
80} 81}
82int ORecur::repetition()const {
83 return data->rep;
84}
81void ORecur::setType( const RepeatType& z) { 85void ORecur::setType( const RepeatType& z) {
82 checkOrModify(); 86 checkOrModify();
83 data->type = z; 87 data->type = z;
84} 88}
85void ORecur::setFrequency( int freq ) { 89void ORecur::setFrequency( int freq ) {
86 checkOrModify(); 90 checkOrModify();
87 data->freq = freq; 91 data->freq = freq;
88} 92}
89void ORecur::setPosition( int pos ) { 93void ORecur::setPosition( int pos ) {
90 checkOrModify(); 94 checkOrModify();
91 data->pos = pos; 95 data->pos = pos;
92} 96}
@@ -101,27 +105,32 @@ void ORecur::setEndDate( const QDate& dt) {
101void ORecur::setEndDateUTC( time_t t) { 105void ORecur::setEndDateUTC( time_t t) {
102 checkOrModify(); 106 checkOrModify();
103 data->end = t; 107 data->end = t;
104} 108}
105void ORecur::setCreateTime( time_t t) { 109void ORecur::setCreateTime( time_t t) {
106 checkOrModify(); 110 checkOrModify();
107 data->create = t; 111 data->create = t;
108} 112}
109void ORecur::setHasEndDate( bool b) { 113void ORecur::setHasEndDate( bool b) {
110 checkOrModify(); 114 checkOrModify();
111 data->hasEnd = b; 115 data->hasEnd = b;
112} 116}
117void ORecur::setRepitition( int rep ) {
118 checkOrModify();
119 data->rep = rep;
120}
113void ORecur::checkOrModify() { 121void ORecur::checkOrModify() {
114 if ( data->count != 1 ) { 122 if ( data->count != 1 ) {
115 data->deref(); 123 data->deref();
116 Data* d2 = new Data; 124 Data* d2 = new Data;
117 d2->days = data->days; 125 d2->days = data->days;
118 d2->type = data->type; 126 d2->type = data->type;
119 d2->freq = data->freq; 127 d2->freq = data->freq;
120 d2->pos = data->pos; 128 d2->pos = data->pos;
121 d2->hasEnd = data->hasEnd; 129 d2->hasEnd = data->hasEnd;
122 d2->end = data->end; 130 d2->end = data->end;
123 d2->create = data->create; 131 d2->create = data->create;
132 d2->rep = data->rep;
124 data = d2; 133 data = d2;
125 } 134 }
126} 135}
127 136
diff --git a/libopie2/opiepim/core/orecur.h b/libopie2/opiepim/core/orecur.h
index 89258f8..d24d72d 100644
--- a/libopie2/opiepim/core/orecur.h
+++ b/libopie2/opiepim/core/orecur.h
@@ -22,33 +22,35 @@ public:
22 ~ORecur(); 22 ~ORecur();
23 23
24 ORecur &operator=( const ORecur& ); 24 ORecur &operator=( const ORecur& );
25 bool operator==(const ORecur& )const; 25 bool operator==(const ORecur& )const;
26 RepeatType type()const; 26 RepeatType type()const;
27 int frequency()const; 27 int frequency()const;
28 int position()const; 28 int position()const;
29 char days()const; 29 char days()const;
30 bool hasEndDate()const; 30 bool hasEndDate()const;
31 QDate endDate()const; 31 QDate endDate()const;
32 time_t endDateUTC()const; 32 time_t endDateUTC()const;
33 time_t createTime()const; 33 time_t createTime()const;
34 int repetition()const;
34 35
35 void setType( const RepeatType& ); 36 void setType( const RepeatType& );
36 void setFrequency( int freq ); 37 void setFrequency( int freq );
37 void setPosition( int pos ); 38 void setPosition( int pos );
38 void setDays( char c); 39 void setDays( char c);
39 void setEndDate( const QDate& dt ); 40 void setEndDate( const QDate& dt );
40 void setEndDateUTC( time_t ); 41 void setEndDateUTC( time_t );
41 void setCreateTime( time_t ); 42 void setCreateTime( time_t );
42 void setHasEndDate( bool b ); 43 void setHasEndDate( bool b );
44 void setRepitition(int );
43private: 45private:
44 void deref(); 46 void deref();
45 inline void checkOrModify(); 47 inline void checkOrModify();
46 48
47 49
48 class Data; 50 class Data;
49 Data* data; 51 Data* data;
50 class ORecurPrivate; 52 class ORecurPrivate;
51 ORecurPrivate *d; 53 ORecurPrivate *d;
52}; 54};
53 55
54#endif 56#endif
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp
index acd65c4..cd238ef 100644
--- a/libopie2/opiepim/ocontact.cpp
+++ b/libopie2/opiepim/ocontact.cpp
@@ -1455,25 +1455,34 @@ void OContact::writeVCard( const QString &filename, const OContact &contact)
1455 Returns the set of contacts read as VCards from the file \a filename. 1455 Returns the set of contacts read as VCards from the file \a filename.
1456*/ 1456*/
1457QValueList<OContact> OContact::readVCard( const QString &filename ) 1457QValueList<OContact> OContact::readVCard( const QString &filename )
1458{ 1458{
1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() ); 1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() );
1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() ); 1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() );
1461 1461
1462 qDebug("vobject = %p", obj ); 1462 qDebug("vobject = %p", obj );
1463 1463
1464 QValueList<OContact> contacts; 1464 QValueList<OContact> contacts;
1465 1465
1466 while ( obj ) { 1466 while ( obj ) {
1467 contacts.append( parseVObject( obj ) ); 1467 OContact con = parseVObject( obj );
1468 /*
1469 * if uid is 0 assign a new one
1470 * this at least happens on
1471 * Nokia6210
1472 */
1473 if ( con.uid() == 0 )
1474 con.setUid( 1 );
1475
1476 contacts.append(con );
1468 1477
1469 VObject *t = obj; 1478 VObject *t = obj;
1470 obj = nextVObjectInList(obj); 1479 obj = nextVObjectInList(obj);
1471 cleanVObject( t ); 1480 cleanVObject( t );
1472 } 1481 }
1473 1482
1474 return contacts; 1483 return contacts;
1475} 1484}
1476 1485
1477/*! 1486/*!
1478 Returns TRUE if the contact matches the regular expression \a regexp. 1487 Returns TRUE if the contact matches the regular expression \a regexp.
1479 Otherwise returns FALSE. 1488 Otherwise returns FALSE.
diff --git a/libopie2/opiepim/orecordlist.h b/libopie2/opiepim/orecordlist.h
index 2f4a5d3..8ed41e2 100644
--- a/libopie2/opiepim/orecordlist.h
+++ b/libopie2/opiepim/orecordlist.h
diff --git a/libopie2/opiepim/otodo.cpp b/libopie2/opiepim/otodo.cpp
index 765d5a9..0d5b1d3 100644
--- a/libopie2/opiepim/otodo.cpp
+++ b/libopie2/opiepim/otodo.cpp
@@ -3,42 +3,45 @@
3#include <qshared.h> 3#include <qshared.h>
4 4
5 5
6 6
7#include <qpe/palmtopuidgen.h> 7#include <qpe/palmtopuidgen.h>
8#include <qpe/stringutil.h> 8#include <qpe/stringutil.h>
9#include <qpe/palmtoprecord.h> 9#include <qpe/palmtoprecord.h>
10#include <qpe/stringutil.h> 10#include <qpe/stringutil.h>
11#include <qpe/categories.h> 11#include <qpe/categories.h>
12#include <qpe/categoryselect.h> 12#include <qpe/categoryselect.h>
13 13
14 14
15 15#include "opimstate.h"
16#include "orecur.h"
16#include "otodo.h" 17#include "otodo.h"
17 18
18 19
19struct OTodo::OTodoData : public QShared { 20struct OTodo::OTodoData : public QShared {
20 OTodoData() : QShared() { 21 OTodoData() : QShared() {
21 }; 22 };
22 23
23 QDate date; 24 QDate date;
24 bool isCompleted:1; 25 bool isCompleted:1;
25 bool hasDate:1; 26 bool hasDate:1;
26 int priority; 27 int priority;
27 QString desc; 28 QString desc;
28 QString sum; 29 QString sum;
29 QMap<QString, QString> extra; 30 QMap<QString, QString> extra;
30 ushort prog; 31 ushort prog;
31 bool hasAlarmDateTime :1; 32 bool hasAlarmDateTime :1;
32 QDateTime alarmDateTime; 33 QDateTime alarmDateTime;
34 OPimState state;
35 ORecur recur;
33}; 36};
34 37
35OTodo::OTodo(const OTodo &event ) 38OTodo::OTodo(const OTodo &event )
36 : OPimRecord( event ), data( event.data ) 39 : OPimRecord( event ), data( event.data )
37{ 40{
38 data->ref(); 41 data->ref();
39// qWarning("ref up"); 42// qWarning("ref up");
40} 43}
41OTodo::~OTodo() { 44OTodo::~OTodo() {
42 45
43// qWarning("~OTodo " ); 46// qWarning("~OTodo " );
44 if ( data->deref() ) { 47 if ( data->deref() ) {
@@ -135,24 +138,30 @@ QDate OTodo::dueDate()const
135 return data->date; 138 return data->date;
136} 139}
137 140
138QDateTime OTodo::alarmDateTime() const 141QDateTime OTodo::alarmDateTime() const
139{ 142{
140 return data->alarmDateTime; 143 return data->alarmDateTime;
141} 144}
142 145
143QString OTodo::description()const 146QString OTodo::description()const
144{ 147{
145 return data->desc; 148 return data->desc;
146} 149}
150OPimState OTodo::state()const {
151 return data->state;
152}
153ORecur OTodo::recurrence()const {
154 return data->recur;
155}
147void OTodo::setCompleted( bool completed ) 156void OTodo::setCompleted( bool completed )
148{ 157{
149 changeOrModify(); 158 changeOrModify();
150 data->isCompleted = completed; 159 data->isCompleted = completed;
151} 160}
152void OTodo::setHasDueDate( bool hasDate ) 161void OTodo::setHasDueDate( bool hasDate )
153{ 162{
154 changeOrModify(); 163 changeOrModify();
155 data->hasDate = hasDate; 164 data->hasDate = hasDate;
156} 165}
157void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime ) 166void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime )
158{ 167{
@@ -176,24 +185,32 @@ void OTodo::setPriority(int prio )
176 data->priority = prio; 185 data->priority = prio;
177} 186}
178void OTodo::setDueDate( QDate date ) 187void OTodo::setDueDate( QDate date )
179{ 188{
180 changeOrModify(); 189 changeOrModify();
181 data->date = date; 190 data->date = date;
182} 191}
183void OTodo::setAlarmDateTime( const QDateTime& alarm ) 192void OTodo::setAlarmDateTime( const QDateTime& alarm )
184{ 193{
185 changeOrModify(); 194 changeOrModify();
186 data->alarmDateTime = alarm; 195 data->alarmDateTime = alarm;
187} 196}
197void OTodo::setState( const OPimState& state ) {
198 changeOrModify();
199 data->state = state;
200}
201void OTodo::setRecurrence( const ORecur& rec) {
202 changeOrModify();
203 data->recur = rec;
204}
188bool OTodo::isOverdue( ) 205bool OTodo::isOverdue( )
189{ 206{
190 if( data->hasDate && !data->isCompleted) 207 if( data->hasDate && !data->isCompleted)
191 return QDate::currentDate() > data->date; 208 return QDate::currentDate() > data->date;
192 return false; 209 return false;
193} 210}
194void OTodo::setProgress(ushort progress ) 211void OTodo::setProgress(ushort progress )
195{ 212{
196 changeOrModify(); 213 changeOrModify();
197 data->prog = progress; 214 data->prog = progress;
198} 215}
199QString OTodo::toShortText() const { 216QString OTodo::toShortText() const {
@@ -349,38 +366,40 @@ QMap<int, QString> OTodo::toMap() const {
349} 366}
350 367
351QMap<QString, QString> OTodo::toExtraMap()const { 368QMap<QString, QString> OTodo::toExtraMap()const {
352 return data->extra; 369 return data->extra;
353} 370}
354/** 371/**
355 * change or modify looks at the ref count and either 372 * change or modify looks at the ref count and either
356 * creates a new QShared Object or it can modify it 373 * creates a new QShared Object or it can modify it
357 * right in place 374 * right in place
358 */ 375 */
359void OTodo::changeOrModify() { 376void OTodo::changeOrModify() {
360 if ( data->count != 1 ) { 377 if ( data->count != 1 ) {
361// qWarning("changeOrModify"); 378 qWarning("changeOrModify");
362 data->deref(); 379 data->deref();
363 OTodoData* d2 = new OTodoData(); 380 OTodoData* d2 = new OTodoData();
364 copy(data, d2 ); 381 copy(data, d2 );
365 data = d2; 382 data = d2;
366 } 383 }
367} 384}
368void OTodo::copy( OTodoData* src, OTodoData* dest ) { 385void OTodo::copy( OTodoData* src, OTodoData* dest ) {
369 dest->date = src->date; 386 dest->date = src->date;
370 dest->isCompleted = src->isCompleted; 387 dest->isCompleted = src->isCompleted;
371 dest->hasDate = src->hasDate; 388 dest->hasDate = src->hasDate;
372 dest->priority = src->priority; 389 dest->priority = src->priority;
373 dest->desc = src->desc; 390 dest->desc = src->desc;
374 dest->sum = src->sum; 391 dest->sum = src->sum;
375 dest->extra = src->extra; 392 dest->extra = src->extra;
376 dest->prog = src->prog; 393 dest->prog = src->prog;
377 dest->hasAlarmDateTime = src->hasAlarmDateTime; 394 dest->hasAlarmDateTime = src->hasAlarmDateTime;
378 dest->alarmDateTime = src->alarmDateTime; 395 dest->alarmDateTime = src->alarmDateTime;
396 dest->state = src->state;
397 dest->recur = src->recur;
379} 398}
380QString OTodo::type() const { 399QString OTodo::type() const {
381 return QString::fromLatin1("OTodo"); 400 return QString::fromLatin1("OTodo");
382} 401}
383QString OTodo::recordField(int id )const { 402QString OTodo::recordField(int id )const {
384 return QString::null; 403 return QString::null;
385} 404}
386 405
diff --git a/libopie2/opiepim/otodo.h b/libopie2/opiepim/otodo.h
index 5bd91d6..2cdc587 100644
--- a/libopie2/opiepim/otodo.h
+++ b/libopie2/opiepim/otodo.h
@@ -7,42 +7,49 @@
7#include <qmap.h> 7#include <qmap.h>
8#include <qregexp.h> 8#include <qregexp.h>
9#include <qstringlist.h> 9#include <qstringlist.h>
10#include <qdatetime.h> 10#include <qdatetime.h>
11#include <qvaluelist.h> 11#include <qvaluelist.h>
12 12
13#include <qpe/recordfields.h> 13#include <qpe/recordfields.h>
14#include <qpe/palmtopuidgen.h> 14#include <qpe/palmtopuidgen.h>
15 15
16#include <opie/opimrecord.h> 16#include <opie/opimrecord.h>
17 17
18 18
19class OPimState;
20class ORecur;
19class OTodo : public OPimRecord { 21class OTodo : public OPimRecord {
20public: 22public:
21 typedef QValueList<OTodo> ValueList; 23 typedef QValueList<OTodo> ValueList;
22 enum RecordFields { 24 enum RecordFields {
23 Uid = Qtopia::UID_ID, 25 Uid = Qtopia::UID_ID,
24 Category = Qtopia::CATEGORY_ID, 26 Category = Qtopia::CATEGORY_ID,
25 HasDate, 27 HasDate,
26 Completed, 28 Completed,
27 Description, 29 Description,
28 Summary, 30 Summary,
29 Priority, 31 Priority,
30 DateDay, 32 DateDay,
31 DateMonth, 33 DateMonth,
32 DateYear, 34 DateYear,
33 Progress, 35 Progress,
34 CrossReference, 36 CrossReference,
35 HasAlarmDateTime, 37 HasAlarmDateTime,
36 AlarmDateTime 38 AlarmDateTime,
39 State,
40 Recurrance,
41 Alarms,
42 Reminders,
43 Notifiers
37 }; 44 };
38 public: 45 public:
39 // priorities from Very low to very high 46 // priorities from Very low to very high
40 enum TaskPriority { VeryHigh=1, High, Normal, Low, VeryLow }; 47 enum TaskPriority { VeryHigh=1, High, Normal, Low, VeryLow };
41 48
42 /* Constructs a new ToDoEvent 49 /* Constructs a new ToDoEvent
43 @param completed Is the TodoEvent completed 50 @param completed Is the TodoEvent completed
44 @param priority What is the priority of this ToDoEvent 51 @param priority What is the priority of this ToDoEvent
45 @param category Which category does it belong( uid ) 52 @param category Which category does it belong( uid )
46 @param summary A small summary of the todo 53 @param summary A small summary of the todo
47 @param description What is this ToDoEvent about 54 @param description What is this ToDoEvent about
48 @param hasDate Does this Event got a deadline 55 @param hasDate Does this Event got a deadline
@@ -102,24 +109,34 @@ public:
102 109
103 /** 110 /**
104 * The due Date 111 * The due Date
105 */ 112 */
106 QDate dueDate()const; 113 QDate dueDate()const;
107 114
108 /** 115 /**
109 * Alarm Date and Time 116 * Alarm Date and Time
110 */ 117 */
111 QDateTime alarmDateTime()const; 118 QDateTime alarmDateTime()const;
112 119
113 /** 120 /**
121 * What is the state of this OTodo?
122 */
123 OPimState state()const;
124
125 /**
126 * the recurrance of this
127 */
128 ORecur recurrence()const;
129
130 /**
114 * The description of the todo 131 * The description of the todo
115 */ 132 */
116 QString description()const; 133 QString description()const;
117 134
118 /** 135 /**
119 * A small summary of the todo 136 * A small summary of the todo
120 */ 137 */
121 QString summary() const; 138 QString summary() const;
122 139
123 /** 140 /**
124 * @reimplemented 141 * @reimplemented
125 * Return this todoevent in a RichText formatted QString 142 * Return this todoevent in a RichText formatted QString
@@ -161,31 +178,39 @@ public:
161 void setPriority(int priority ); 178 void setPriority(int priority );
162 179
163 /** 180 /**
164 * Set the progress. 181 * Set the progress.
165 */ 182 */
166 void setProgress( ushort progress ); 183 void setProgress( ushort progress );
167 184
168 /** 185 /**
169 * set the end date 186 * set the end date
170 */ 187 */
171 void setDueDate( QDate date ); 188 void setDueDate( QDate date );
172 189
190
191 void setRecurrence( const ORecur& );
173 /** 192 /**
174 * set the alarm time 193 * set the alarm time
175 */ 194 */
176 void setAlarmDateTime ( const QDateTime& alarm ); 195 void setAlarmDateTime ( const QDateTime& alarm );
177 196
178 void setDescription(const QString& ); 197 void setDescription(const QString& );
179 void setSummary(const QString& ); 198 void setSummary(const QString& );
199
200 /**
201 * set the state of a Todo
202 * @param state State what the todo should take
203 */
204 void setState( const OPimState& state);
180 bool isOverdue(); 205 bool isOverdue();
181 206
182 207
183 bool match( const QRegExp &r )const; 208 bool match( const QRegExp &r )const;
184 209
185 bool operator<(const OTodo &toDoEvent )const; 210 bool operator<(const OTodo &toDoEvent )const;
186 bool operator<=(const OTodo &toDoEvent )const; 211 bool operator<=(const OTodo &toDoEvent )const;
187 bool operator!=(const OTodo &toDoEvent )const; 212 bool operator!=(const OTodo &toDoEvent )const;
188 bool operator>(const OTodo &toDoEvent )const; 213 bool operator>(const OTodo &toDoEvent )const;
189 bool operator>=(const OTodo &toDoEvent)const; 214 bool operator>=(const OTodo &toDoEvent)const;
190 bool operator==(const OTodo &toDoEvent )const; 215 bool operator==(const OTodo &toDoEvent )const;
191 OTodo &operator=(const OTodo &toDoEvent ); 216 OTodo &operator=(const OTodo &toDoEvent );