summaryrefslogtreecommitdiffabout
path: root/libkcal
Unidiff
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/incidence.cpp32
-rw-r--r--libkcal/incidence.h5
2 files changed, 36 insertions, 1 deletions
diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp
index 708ee6b..9a36939 100644
--- a/libkcal/incidence.cpp
+++ b/libkcal/incidence.cpp
@@ -27,32 +27,36 @@
27#include "incidence.h" 27#include "incidence.h"
28#include "todo.h" 28#include "todo.h"
29 29
30using namespace KCal; 30using namespace KCal;
31 31
32Incidence::Incidence() : 32Incidence::Incidence() :
33 IncidenceBase(), 33 IncidenceBase(),
34 mRelatedTo(0), mSecrecy(SecrecyPublic), mPriority(3) 34 mRelatedTo(0), mSecrecy(SecrecyPublic), mPriority(3)
35{ 35{
36 mRecurrence = new Recurrence(this); 36 mRecurrence = new Recurrence(this);
37 mCancelled = false; 37 mCancelled = false;
38 recreate(); 38 recreate();
39 mHasStartDate = true; 39 mHasStartDate = true;
40 mAlarms.setAutoDelete(true); 40 mAlarms.setAutoDelete(true);
41 mAttachments.setAutoDelete(true); 41 mAttachments.setAutoDelete(true);
42 mHasRecurrenceID = false; 42 mHasRecurrenceID = false;
43 mHoliday = false;
44 mBirthday = false;
45 mAnniversary = false;
46
43} 47}
44 48
45Incidence::Incidence( const Incidence &i ) : IncidenceBase( i ) 49Incidence::Incidence( const Incidence &i ) : IncidenceBase( i )
46{ 50{
47// TODO: reenable attributes currently commented out. 51// TODO: reenable attributes currently commented out.
48 mRevision = i.mRevision; 52 mRevision = i.mRevision;
49 mCreated = i.mCreated; 53 mCreated = i.mCreated;
50 mDescription = i.mDescription; 54 mDescription = i.mDescription;
51 mSummary = i.mSummary; 55 mSummary = i.mSummary;
52 mCategories = i.mCategories; 56 mCategories = i.mCategories;
53// Incidence *mRelatedTo; Incidence *mRelatedTo; 57// Incidence *mRelatedTo; Incidence *mRelatedTo;
54 mRelatedTo = 0; 58 mRelatedTo = 0;
55 mRelatedToUid = i.mRelatedToUid; 59 mRelatedToUid = i.mRelatedToUid;
56// QPtrList<Incidence> mRelations; QPtrList<Incidence> mRelations; 60// QPtrList<Incidence> mRelations; QPtrList<Incidence> mRelations;
57 mExDates = i.mExDates; 61 mExDates = i.mExDates;
58 mAttachments = i.mAttachments; 62 mAttachments = i.mAttachments;
@@ -62,46 +66,65 @@ Incidence::Incidence( const Incidence &i ) : IncidenceBase( i )
62 mLocation = i.mLocation; 66 mLocation = i.mLocation;
63 mCancelled = i.mCancelled; 67 mCancelled = i.mCancelled;
64 mHasStartDate = i.mHasStartDate; 68 mHasStartDate = i.mHasStartDate;
65 QPtrListIterator<Alarm> it( i.mAlarms ); 69 QPtrListIterator<Alarm> it( i.mAlarms );
66 const Alarm *a; 70 const Alarm *a;
67 while( (a = it.current()) ) { 71 while( (a = it.current()) ) {
68 Alarm *b = new Alarm( *a ); 72 Alarm *b = new Alarm( *a );
69 b->setParent( this ); 73 b->setParent( this );
70 mAlarms.append( b ); 74 mAlarms.append( b );
71 75
72 ++it; 76 ++it;
73 } 77 }
74 mAlarms.setAutoDelete(true); 78 mAlarms.setAutoDelete(true);
75 mHasRecurrenceID = i.mHasRecurrenceID; 79 mHasRecurrenceID = i.mHasRecurrenceID;
76 mRecurrenceID = i.mRecurrenceID; 80 mRecurrenceID = i.mRecurrenceID;
77 mRecurrence = new Recurrence( *(i.mRecurrence), this ); 81 mRecurrence = new Recurrence( *(i.mRecurrence), this );
82 mHoliday = i.mHoliday ;
83 mBirthday = i.mBirthday;
84 mAnniversary = i.mAnniversary;
78} 85}
79 86
80Incidence::~Incidence() 87Incidence::~Incidence()
81{ 88{
82 89
83 Incidence *ev; 90 Incidence *ev;
84 QPtrList<Incidence> Relations = relations(); 91 QPtrList<Incidence> Relations = relations();
85 for (ev=Relations.first();ev;ev=Relations.next()) { 92 for (ev=Relations.first();ev;ev=Relations.next()) {
86 if (ev->relatedTo() == this) ev->setRelatedTo(0); 93 if (ev->relatedTo() == this) ev->setRelatedTo(0);
87 } 94 }
88 if (relatedTo()) relatedTo()->removeRelation(this); 95 if (relatedTo()) relatedTo()->removeRelation(this);
89 delete mRecurrence; 96 delete mRecurrence;
90 97
91} 98}
99
100bool Incidence::isHoliday() const
101{
102 return mHoliday;
103}
104bool Incidence::isBirthday() const
105{
106
107 return mBirthday ;
108}
109bool Incidence::isAnniversary() const
110{
111 return mAnniversary ;
112
113}
114
92bool Incidence::hasRecurrenceID() const 115bool Incidence::hasRecurrenceID() const
93{ 116{
94 return mHasRecurrenceID; 117 return mHasRecurrenceID;
95} 118}
96 119
97void Incidence::setHasRecurrenceID( bool b ) 120void Incidence::setHasRecurrenceID( bool b )
98{ 121{
99 mHasRecurrenceID = b; 122 mHasRecurrenceID = b;
100} 123}
101 124
102void Incidence::setRecurrenceID(QDateTime d) 125void Incidence::setRecurrenceID(QDateTime d)
103{ 126{
104 mRecurrenceID = d; 127 mRecurrenceID = d;
105 mHasRecurrenceID = true; 128 mHasRecurrenceID = true;
106 updated(); 129 updated();
107} 130}
@@ -289,55 +312,62 @@ QString Incidence::description() const
289{ 312{
290 return mDescription; 313 return mDescription;
291} 314}
292 315
293 316
294void Incidence::setSummary(const QString &summary) 317void Incidence::setSummary(const QString &summary)
295{ 318{
296 if (mReadOnly) return; 319 if (mReadOnly) return;
297 mSummary = summary; 320 mSummary = summary;
298 updated(); 321 updated();
299} 322}
300 323
301QString Incidence::summary() const 324QString Incidence::summary() const
302{ 325{
303 return mSummary; 326 return mSummary;
304} 327}
328void Incidence::checkCategories()
329{
330 mHoliday = mCategories.contains("Holiday") || mCategories.contains(i18n("Holiday"));
331 mBirthday = mCategories.contains("Birthday") || mCategories.contains(i18n("Birthday"));
332 mAnniversary = mCategories.contains("Anniversary") || mCategories.contains(i18n("Anniversary"));
333}
305 334
306void Incidence::setCategories(const QStringList &categories) 335void Incidence::setCategories(const QStringList &categories)
307{ 336{
308 if (mReadOnly) return; 337 if (mReadOnly) return;
309 mCategories = categories; 338 mCategories = categories;
339 checkCategories();
310 updated(); 340 updated();
311} 341}
312 342
313// TODO: remove setCategories(QString) function 343// TODO: remove setCategories(QString) function
314void Incidence::setCategories(const QString &catStr) 344void Incidence::setCategories(const QString &catStr)
315{ 345{
316 if (mReadOnly) return; 346 if (mReadOnly) return;
317 mCategories.clear(); 347 mCategories.clear();
318 348
319 if (catStr.isEmpty()) return; 349 if (catStr.isEmpty()) return;
320 350
321 mCategories = QStringList::split(",",catStr); 351 mCategories = QStringList::split(",",catStr);
322 352
323 QStringList::Iterator it; 353 QStringList::Iterator it;
324 for(it = mCategories.begin();it != mCategories.end(); ++it) { 354 for(it = mCategories.begin();it != mCategories.end(); ++it) {
325 *it = (*it).stripWhiteSpace(); 355 *it = (*it).stripWhiteSpace();
326 } 356 }
327 357 checkCategories();
328 updated(); 358 updated();
329} 359}
330 360
331QStringList Incidence::categories() const 361QStringList Incidence::categories() const
332{ 362{
333 return mCategories; 363 return mCategories;
334} 364}
335 365
336QString Incidence::categoriesStr() 366QString Incidence::categoriesStr()
337{ 367{
338 return mCategories.join(","); 368 return mCategories.join(",");
339} 369}
340 370
341void Incidence::setRelatedToUid(const QString &relatedToUid) 371void Incidence::setRelatedToUid(const QString &relatedToUid)
342{ 372{
343 if (mReadOnly) return; 373 if (mReadOnly) return;
diff --git a/libkcal/incidence.h b/libkcal/incidence.h
index 0ae9656..f8da342 100644
--- a/libkcal/incidence.h
+++ b/libkcal/incidence.h
@@ -257,40 +257,45 @@ class Incidence : public IncidenceBase
257 /** return the event's/todo's location. Do _not_ use it with journal */ 257 /** return the event's/todo's location. Do _not_ use it with journal */
258 QString location() const; 258 QString location() const;
259 /** returns TRUE or FALSE depending on whether the todo has a start date */ 259 /** returns TRUE or FALSE depending on whether the todo has a start date */
260 bool hasStartDate() const; 260 bool hasStartDate() const;
261 /** sets the event's hasStartDate value. */ 261 /** sets the event's hasStartDate value. */
262 void setHasStartDate(bool f); 262 void setHasStartDate(bool f);
263 QDateTime getNextOccurence( const QDateTime& dt, bool* yes ) const; 263 QDateTime getNextOccurence( const QDateTime& dt, bool* yes ) const;
264 bool cancelled() const; 264 bool cancelled() const;
265 void setCancelled( bool b ); 265 void setCancelled( bool b );
266 266
267 bool hasRecurrenceID() const; 267 bool hasRecurrenceID() const;
268 void setHasRecurrenceID( bool b ); 268 void setHasRecurrenceID( bool b );
269 269
270 void setRecurrenceID(QDateTime); 270 void setRecurrenceID(QDateTime);
271 QDateTime recurrenceID () const; 271 QDateTime recurrenceID () const;
272 QDateTime dtStart() const; 272 QDateTime dtStart() const;
273 bool isHoliday() const;
274 bool isBirthday() const;
275 bool isAnniversary() const;
273 276
274 277
275protected: 278protected:
276 QPtrList<Alarm> mAlarms; 279 QPtrList<Alarm> mAlarms;
277 QPtrList<Incidence> mRelations; 280 QPtrList<Incidence> mRelations;
278 QDateTime mRecurrenceID; 281 QDateTime mRecurrenceID;
279 bool mHasRecurrenceID; 282 bool mHasRecurrenceID;
280 private: 283 private:
284 void checkCategories();
285 bool mHoliday, mBirthday, mAnniversary;
281 int mRevision; 286 int mRevision;
282 bool mCancelled; 287 bool mCancelled;
283 288
284 // base components of jounal, event and todo 289 // base components of jounal, event and todo
285 QDateTime mCreated; 290 QDateTime mCreated;
286 QString mDescription; 291 QString mDescription;
287 QString mSummary; 292 QString mSummary;
288 QStringList mCategories; 293 QStringList mCategories;
289 Incidence *mRelatedTo; 294 Incidence *mRelatedTo;
290 QString mRelatedToUid; 295 QString mRelatedToUid;
291 DateList mExDates; 296 DateList mExDates;
292 QPtrList<Attachment> mAttachments; 297 QPtrList<Attachment> mAttachments;
293 QStringList mResources; 298 QStringList mResources;
294 bool mHasStartDate; // if todo has associated start date 299 bool mHasStartDate; // if todo has associated start date
295 300
296 int mSecrecy; 301 int mSecrecy;