summaryrefslogtreecommitdiffabout
path: root/libkcal/incidence.h
Unidiff
Diffstat (limited to 'libkcal/incidence.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/incidence.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libkcal/incidence.h b/libkcal/incidence.h
index 7dc6f10..1807bc4 100644
--- a/libkcal/incidence.h
+++ b/libkcal/incidence.h
@@ -29,192 +29,193 @@
29 29
30#include "recurrence.h" 30#include "recurrence.h"
31#include "alarm.h" 31#include "alarm.h"
32#include "attachment.h" 32#include "attachment.h"
33#include "listbase.h" 33#include "listbase.h"
34#include "incidencebase.h" 34#include "incidencebase.h"
35 35
36namespace KCal { 36namespace KCal {
37 37
38class Event; 38class Event;
39class Todo; 39class Todo;
40class Journal; 40class Journal;
41 41
42/** 42/**
43 This class provides the base class common to all calendar components. 43 This class provides the base class common to all calendar components.
44*/ 44*/
45class Incidence : public IncidenceBase 45class Incidence : public IncidenceBase
46{ 46{
47 public: 47 public:
48 /** 48 /**
49 This class provides the interface for a visitor of calendar components. It 49 This class provides the interface for a visitor of calendar components. It
50 serves as base class for concrete visitors, which implement certain actions on 50 serves as base class for concrete visitors, which implement certain actions on
51 calendar components. It allows to add functions, which operate on the concrete 51 calendar components. It allows to add functions, which operate on the concrete
52 types of calendar components, without changing the calendar component classes. 52 types of calendar components, without changing the calendar component classes.
53 */ 53 */
54 class Visitor 54 class Visitor
55 { 55 {
56 public: 56 public:
57 /** Destruct Incidence::Visitor */ 57 /** Destruct Incidence::Visitor */
58 virtual ~Visitor() {} 58 virtual ~Visitor() {}
59 59
60 /** 60 /**
61 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions 61 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions
62 on an Event object. 62 on an Event object.
63 */ 63 */
64 virtual bool visit(Event *) { return false; } 64 virtual bool visit(Event *) { return false; }
65 /** 65 /**
66 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions 66 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions
67 on an Todo object. 67 on an Todo object.
68 */ 68 */
69 virtual bool visit(Todo *) { return false; } 69 virtual bool visit(Todo *) { return false; }
70 /** 70 /**
71 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions 71 Reimplement this function in your concrete subclass of IncidenceVisitor to perform actions
72 on an Journal object. 72 on an Journal object.
73 */ 73 */
74 virtual bool visit(Journal *) { return false; } 74 virtual bool visit(Journal *) { return false; }
75 75
76 protected: 76 protected:
77 /** Constructor is protected to prevent direct creation of visitor base class. */ 77 /** Constructor is protected to prevent direct creation of visitor base class. */
78 Visitor() {} 78 Visitor() {}
79 }; 79 };
80 80
81 /** 81 /**
82 This class implements a visitor for adding an Incidence to a resource 82 This class implements a visitor for adding an Incidence to a resource
83 supporting addEvent(), addTodo() and addJournal() calls. 83 supporting addEvent(), addTodo() and addJournal() calls.
84 */ 84 */
85 template<class T> 85 template<class T>
86 class AddVisitor : public Visitor 86 class AddVisitor : public Visitor
87 { 87 {
88 public: 88 public:
89 AddVisitor( T *r ) : mResource( r ) {} 89 AddVisitor( T *r ) : mResource( r ) {}
90 bool visit( Event *e ) { return mResource->addEvent( e ); } 90 bool visit( Event *e ) { return mResource->addEvent( e ); }
91 bool visit( Todo *t ) { return mResource->addTodo( t ); } 91 bool visit( Todo *t ) { return mResource->addTodo( t ); }
92 bool visit( Journal *j ) { return mResource->addJournal( j ); } 92 bool visit( Journal *j ) { return mResource->addJournal( j ); }
93 93
94 private: 94 private:
95 T *mResource; 95 T *mResource;
96 }; 96 };
97 97
98 /** enumeration for describing an event's secrecy. */ 98 /** enumeration for describing an event's secrecy. */
99 enum { SecrecyPublic = 0, SecrecyPrivate = 1, SecrecyConfidential = 2 }; 99 enum { SecrecyPublic = 0, SecrecyPrivate = 1, SecrecyConfidential = 2 };
100 typedef ListBase<Incidence> List; 100 typedef ListBase<Incidence> List;
101 Incidence(); 101 Incidence();
102 Incidence(const Incidence &); 102 Incidence(const Incidence &);
103 ~Incidence(); 103 ~Incidence();
104 104
105 /** 105 /**
106 Accept IncidenceVisitor. A class taking part in the visitor mechanism has to 106 Accept IncidenceVisitor. A class taking part in the visitor mechanism has to
107 provide this implementation: 107 provide this implementation:
108 <pre> 108 <pre>
109 bool accept(Visitor &v) { return v.visit(this); } 109 bool accept(Visitor &v) { return v.visit(this); }
110 </pre> 110 </pre>
111 */ 111 */
112 virtual bool accept(Visitor &) { return false; } 112 virtual bool accept(Visitor &) { return false; }
113 113
114 virtual Incidence *clone() = 0; 114 virtual Incidence *clone() = 0;
115 115
116 virtual QDateTime getNextAlarmDateTime( bool * ok, int * offset ) const = 0; 116 virtual QDateTime getNextAlarmDateTime( bool * ok, int * offset ) const = 0;
117 void setReadOnly( bool ); 117 void setReadOnly( bool );
118 118
119 /** 119 /**
120 Recreate event. The event is made a new unique event, but already stored 120 Recreate event. The event is made a new unique event, but already stored
121 event information is preserved. Sets uniquie id, creation date, last 121 event information is preserved. Sets uniquie id, creation date, last
122 modification date and revision number. 122 modification date and revision number.
123 */ 123 */
124 void recreate(); 124 void recreate();
125 Incidence* recreateCloneException(QDate);
125 126
126 /** set creation date */ 127 /** set creation date */
127 void setCreated(QDateTime); 128 void setCreated(QDateTime);
128 /** return time and date of creation. */ 129 /** return time and date of creation. */
129 QDateTime created() const; 130 QDateTime created() const;
130 131
131 /** set the number of revisions this event has seen */ 132 /** set the number of revisions this event has seen */
132 void setRevision(int rev); 133 void setRevision(int rev);
133 /** return the number of revisions this event has seen */ 134 /** return the number of revisions this event has seen */
134 int revision() const; 135 int revision() const;
135 136
136 /** Set starting date/time. */ 137 /** Set starting date/time. */
137 virtual void setDtStart(const QDateTime &dtStart); 138 virtual void setDtStart(const QDateTime &dtStart);
138 /** Return the incidence's ending date/time as a QDateTime. */ 139 /** Return the incidence's ending date/time as a QDateTime. */
139 virtual QDateTime dtEnd() const { return QDateTime(); } 140 virtual QDateTime dtEnd() const { return QDateTime(); }
140 141
141 /** sets the event's lengthy description. */ 142 /** sets the event's lengthy description. */
142 void setDescription(const QString &description); 143 void setDescription(const QString &description);
143 /** returns a reference to the event's description. */ 144 /** returns a reference to the event's description. */
144 QString description() const; 145 QString description() const;
145 146
146 /** sets the event's short summary. */ 147 /** sets the event's short summary. */
147 void setSummary(const QString &summary); 148 void setSummary(const QString &summary);
148 /** returns a reference to the event's summary. */ 149 /** returns a reference to the event's summary. */
149 QString summary() const; 150 QString summary() const;
150 151
151 /** set event's applicable categories */ 152 /** set event's applicable categories */
152 void setCategories(const QStringList &categories); 153 void setCategories(const QStringList &categories);
153 /** set event's categories based on a comma delimited string */ 154 /** set event's categories based on a comma delimited string */
154 void setCategories(const QString &catStr); 155 void setCategories(const QString &catStr);
155 /** return categories in a list */ 156 /** return categories in a list */
156 QStringList categories() const; 157 QStringList categories() const;
157 /** return categories as a comma separated string */ 158 /** return categories as a comma separated string */
158 QString categoriesStr(); 159 QString categoriesStr();
159 160
160 /** point at some other event to which the event relates. This function should 161 /** point at some other event to which the event relates. This function should
161 * only be used when constructing a calendar before the related Event 162 * only be used when constructing a calendar before the related Event
162 * exists. */ 163 * exists. */
163 void setRelatedToUid(const QString &); 164 void setRelatedToUid(const QString &);
164 /** what event does this one relate to? This function should 165 /** what event does this one relate to? This function should
165 * only be used when constructing a calendar before the related Event 166 * only be used when constructing a calendar before the related Event
166 * exists. */ 167 * exists. */
167 QString relatedToUid() const; 168 QString relatedToUid() const;
168 /** point at some other event to which the event relates */ 169 /** point at some other event to which the event relates */
169 void setRelatedTo(Incidence *relatedTo); 170 void setRelatedTo(Incidence *relatedTo);
170 /** what event does this one relate to? */ 171 /** what event does this one relate to? */
171 Incidence *relatedTo() const; 172 Incidence *relatedTo() const;
172 /** All events that are related to this event */ 173 /** All events that are related to this event */
173 QPtrList<Incidence> relations() const; 174 QPtrList<Incidence> relations() const;
174 /** Add an event which is related to this event */ 175 /** Add an event which is related to this event */
175 void addRelation(Incidence *); 176 void addRelation(Incidence *);
176 /** Remove event that is related to this event */ 177 /** Remove event that is related to this event */
177 void removeRelation(Incidence *); 178 void removeRelation(Incidence *);
178 179
179 /** returns the list of dates which are exceptions to the recurrence rule */ 180 /** returns the list of dates which are exceptions to the recurrence rule */
180 DateList exDates() const; 181 DateList exDates() const;
181 /** sets the list of dates which are exceptions to the recurrence rule */ 182 /** sets the list of dates which are exceptions to the recurrence rule */
182 void setExDates(const DateList &_exDates); 183 void setExDates(const DateList &_exDates);
183 void setExDates(const char *dates); 184 void setExDates(const char *dates);
184 /** Add a date to the list of exceptions of the recurrence rule. */ 185 /** Add a date to the list of exceptions of the recurrence rule. */
185 void addExDate(const QDate &date); 186 void addExDate(const QDate &date);
186 187
187 /** returns true if there is an exception for this date in the recurrence 188 /** returns true if there is an exception for this date in the recurrence
188 rule set, or false otherwise. */ 189 rule set, or false otherwise. */
189 bool isException(const QDate &qd) const; 190 bool isException(const QDate &qd) const;
190 191
191 /** add attachment to this event */ 192 /** add attachment to this event */
192 void addAttachment(Attachment *attachment); 193 void addAttachment(Attachment *attachment);
193 /** remove and delete a specific attachment */ 194 /** remove and delete a specific attachment */
194 void deleteAttachment(Attachment *attachment); 195 void deleteAttachment(Attachment *attachment);
195 /** remove and delete all attachments with this mime type */ 196 /** remove and delete all attachments with this mime type */
196 void deleteAttachments(const QString& mime); 197 void deleteAttachments(const QString& mime);
197 /** return list of all associated attachments */ 198 /** return list of all associated attachments */
198 QPtrList<Attachment> attachments() const; 199 QPtrList<Attachment> attachments() const;
199 /** find a list of attachments with this mime type */ 200 /** find a list of attachments with this mime type */
200 QPtrList<Attachment> attachments(const QString& mime) const; 201 QPtrList<Attachment> attachments(const QString& mime) const;
201 202
202 /** sets the event's status the value specified. See the enumeration 203 /** sets the event's status the value specified. See the enumeration
203 * above for possible values. */ 204 * above for possible values. */
204 void setSecrecy(int); 205 void setSecrecy(int);
205 /** return the event's secrecy. */ 206 /** return the event's secrecy. */
206 int secrecy() const; 207 int secrecy() const;
207 /** return the event's secrecy in string format. */ 208 /** return the event's secrecy in string format. */
208 QString secrecyStr() const; 209 QString secrecyStr() const;
209 /** return list of all availbale secrecy classes */ 210 /** return list of all availbale secrecy classes */
210 static QStringList secrecyList(); 211 static QStringList secrecyList();
211 /** return human-readable name of secrecy class */ 212 /** return human-readable name of secrecy class */
212 static QString secrecyName(int); 213 static QString secrecyName(int);
213 214
214 /** returns TRUE if the date specified is one on which the event will 215 /** returns TRUE if the date specified is one on which the event will
215 * recur. */ 216 * recur. */
216 bool recursOn(const QDate &qd) const; 217 bool recursOn(const QDate &qd) const;
217 218
218 // VEVENT and VTODO, but not VJOURNAL (move to EventBase class?): 219 // VEVENT and VTODO, but not VJOURNAL (move to EventBase class?):
219 220
220 /** set resources used, such as Office, Car, etc. */ 221 /** set resources used, such as Office, Car, etc. */