summaryrefslogtreecommitdiffabout
path: root/libkcal/calendar.h
Unidiff
Diffstat (limited to 'libkcal/calendar.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/calendar.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index 4b8b3ff..0a94914 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -1,382 +1,383 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 1998 Preston Brown 3 Copyright (c) 1998 Preston Brown
4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 4 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#ifndef CALENDAR_H 22#ifndef CALENDAR_H
23#define CALENDAR_H 23#define CALENDAR_H
24 24
25#include <qobject.h> 25#include <qobject.h>
26#include <qstring.h> 26#include <qstring.h>
27#include <qdatetime.h> 27#include <qdatetime.h>
28#include <qptrlist.h> 28#include <qptrlist.h>
29#include <qdict.h> 29#include <qdict.h>
30 30
31#include "customproperties.h" 31#include "customproperties.h"
32#include "event.h" 32#include "event.h"
33#include "todo.h" 33#include "todo.h"
34#include "journal.h" 34#include "journal.h"
35#include "calfilter.h" 35#include "calfilter.h"
36 36
37//#define _TIME_ZONE "-0500" /* hardcoded, overridden in config file. */ 37//#define _TIME_ZONE "-0500" /* hardcoded, overridden in config file. */
38 38
39class KConfig; 39class KConfig;
40 40
41namespace KCal { 41namespace KCal {
42 42
43 43
44/** 44/**
45 This is the main "calendar" object class for KOrganizer. It holds 45 This is the main "calendar" object class for KOrganizer. It holds
46 information like all appointments/events, user information, etc. etc. 46 information like all appointments/events, user information, etc. etc.
47 one calendar is associated with each CalendarView (@see calendarview.h). 47 one calendar is associated with each CalendarView (@see calendarview.h).
48 This is an abstract base class defining the interface to a calendar. It is 48 This is an abstract base class defining the interface to a calendar. It is
49 implemented by subclasses like @see CalendarLocal, which use different 49 implemented by subclasses like @see CalendarLocal, which use different
50 methods to store and access the data. 50 methods to store and access the data.
51 51
52 Ownership of events etc. is handled by the following policy: As soon as an 52 Ownership of events etc. is handled by the following policy: As soon as an
53 event (or any other subclass of IncidenceBase) object is added to the 53 event (or any other subclass of IncidenceBase) object is added to the
54 Calendar by addEvent() it is owned by the Calendar object. The Calendar takes 54 Calendar by addEvent() it is owned by the Calendar object. The Calendar takes
55 care of deleting it. All Events returned by the query functions are returned 55 care of deleting it. All Events returned by the query functions are returned
56 as pointers, that means all changes to the returned events are immediately 56 as pointers, that means all changes to the returned events are immediately
57 visible in the Calendar. You shouldn't delete any Event object you get from 57 visible in the Calendar. You shouldn't delete any Event object you get from
58 Calendar. 58 Calendar.
59*/ 59*/
60class Calendar : public QObject, public CustomProperties, 60class Calendar : public QObject, public CustomProperties,
61 public IncidenceBase::Observer 61 public IncidenceBase::Observer
62{ 62{
63 Q_OBJECT 63 Q_OBJECT
64public: 64public:
65 Calendar(); 65 Calendar();
66 Calendar(const QString &timeZoneId); 66 Calendar(const QString &timeZoneId);
67 virtual ~Calendar(); 67 virtual ~Calendar();
68 Incidence * undoIncidence() { return mUndoIncidence; }; 68 Incidence * undoIncidence() { return mUndoIncidence; };
69 bool undoDeleteIncidence(); 69 bool undoDeleteIncidence();
70 void deleteIncidence(Incidence *in); 70 void deleteIncidence(Incidence *in);
71 void resetTempSyncStat(); 71 void resetTempSyncStat();
72 void resetPilotStat(int id); 72 void resetPilotStat(int id);
73 /** 73 /**
74 Clears out the current calendar, freeing all used memory etc. 74 Clears out the current calendar, freeing all used memory etc.
75 */ 75 */
76 virtual void close() = 0; 76 virtual void close() = 0;
77 virtual void addCalendar( Calendar* ) = 0; 77 virtual void addCalendar( Calendar* ) = 0;
78 virtual bool addCalendarFile( QString name, int id ) = 0; 78 virtual bool addCalendarFile( QString name, int id ) = 0;
79 virtual bool mergeCalendarFile( QString name ) = 0; 79 virtual bool mergeCalendarFile( QString name ) = 0;
80 virtual Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ) = 0; 80 virtual Incidence* incidenceForUid( const QString& uid, bool doNotCheckDuplicates ) = 0;
81 virtual void setSyncEventsReadOnly() = 0; 81 virtual void setSyncEventsReadOnly() = 0;
82 virtual void setSyncEventsEnabled() = 0;
82 virtual void stopAllTodos() = 0; 83 virtual void stopAllTodos() = 0;
83 virtual void clearUndo( Incidence * newUndo ); 84 virtual void clearUndo( Incidence * newUndo );
84 85
85 /** 86 /**
86 Sync changes in memory to persistant storage. 87 Sync changes in memory to persistant storage.
87 */ 88 */
88 virtual void save() = 0; 89 virtual void save() = 0;
89 virtual QPtrList<Event> getExternLastSyncEvents() = 0; 90 virtual QPtrList<Event> getExternLastSyncEvents() = 0;
90 virtual void removeSyncInfo( QString syncProfile) = 0; 91 virtual void removeSyncInfo( QString syncProfile) = 0;
91 virtual bool isSaving() { return false; } 92 virtual bool isSaving() { return false; }
92 93
93 /** 94 /**
94 Return the owner of the calendar's full name. 95 Return the owner of the calendar's full name.
95 */ 96 */
96 const QString &getOwner() const; 97 const QString &getOwner() const;
97 /** 98 /**
98 Set the owner of the calendar. Should be owner's full name. 99 Set the owner of the calendar. Should be owner's full name.
99 */ 100 */
100 void setOwner( const QString &os ); 101 void setOwner( const QString &os );
101 /** 102 /**
102 Return the email address of the calendar owner. 103 Return the email address of the calendar owner.
103 */ 104 */
104 const QString &getEmail(); 105 const QString &getEmail();
105 /** 106 /**
106 Set the email address of the calendar owner. 107 Set the email address of the calendar owner.
107 */ 108 */
108 void setEmail( const QString & ); 109 void setEmail( const QString & );
109 110
110 /** 111 /**
111 Set time zone from a timezone string (e.g. -2:00) 112 Set time zone from a timezone string (e.g. -2:00)
112 */ 113 */
113 void setTimeZone( const QString &tz ); 114 void setTimeZone( const QString &tz );
114 /** 115 /**
115 Set time zone from a minutes value (e.g. -60) 116 Set time zone from a minutes value (e.g. -60)
116 */ 117 */
117 void setTimeZone( int tz ); 118 void setTimeZone( int tz );
118 /** 119 /**
119 Return time zone as offest in minutes. 120 Return time zone as offest in minutes.
120 */ 121 */
121 int getTimeZone() const; 122 int getTimeZone() const;
122 /** 123 /**
123 Compute an ISO 8601 format string from the time zone. 124 Compute an ISO 8601 format string from the time zone.
124 */ 125 */
125 QString getTimeZoneStr() const; 126 QString getTimeZoneStr() const;
126 /** 127 /**
127 Set time zone id (see /usr/share/zoneinfo/zone.tab for list of legal 128 Set time zone id (see /usr/share/zoneinfo/zone.tab for list of legal
128 values). 129 values).
129 */ 130 */
130 void setTimeZoneId( const QString & ); 131 void setTimeZoneId( const QString & );
131 /** 132 /**
132 Return time zone id. 133 Return time zone id.
133 */ 134 */
134 QString timeZoneId() const; 135 QString timeZoneId() const;
135 /** 136 /**
136 Use local time, not UTC or a time zone. 137 Use local time, not UTC or a time zone.
137 */ 138 */
138 void setLocalTime(); 139 void setLocalTime();
139 /** 140 /**
140 Return whether local time is being used. 141 Return whether local time is being used.
141 */ 142 */
142 bool isLocalTime() const; 143 bool isLocalTime() const;
143 144
144 /** 145 /**
145 Add an incidence to calendar. 146 Add an incidence to calendar.
146 147
147 @return true on success, false on error. 148 @return true on success, false on error.
148 */ 149 */
149 virtual bool addIncidence( Incidence * ); 150 virtual bool addIncidence( Incidence * );
150 151
151 // Adds an incidence and all relatedto incidences to the cal 152 // Adds an incidence and all relatedto incidences to the cal
152 void addIncidenceBranch( Incidence * ); 153 void addIncidenceBranch( Incidence * );
153 /** 154 /**
154 Return filtered list of all incidences of this calendar. 155 Return filtered list of all incidences of this calendar.
155 */ 156 */
156 virtual QPtrList<Incidence> incidences(); 157 virtual QPtrList<Incidence> incidences();
157 158
158 /** 159 /**
159 Return unfiltered list of all incidences of this calendar. 160 Return unfiltered list of all incidences of this calendar.
160 */ 161 */
161 virtual QPtrList<Incidence> rawIncidences(); 162 virtual QPtrList<Incidence> rawIncidences();
162 163
163 /** 164 /**
164 Adds a Event to this calendar object. 165 Adds a Event to this calendar object.
165 @param anEvent a pointer to the event to add 166 @param anEvent a pointer to the event to add
166 167
167 @return true on success, false on error. 168 @return true on success, false on error.
168 */ 169 */
169 virtual bool addEventNoDup( Event *event ) = 0; 170 virtual bool addEventNoDup( Event *event ) = 0;
170 virtual bool addAnniversaryNoDup( Event *event ) = 0; 171 virtual bool addAnniversaryNoDup( Event *event ) = 0;
171 virtual bool addEvent( Event *anEvent ) = 0; 172 virtual bool addEvent( Event *anEvent ) = 0;
172 /** 173 /**
173 Delete event from calendar. 174 Delete event from calendar.
174 */ 175 */
175 virtual void deleteEvent( Event * ) = 0; 176 virtual void deleteEvent( Event * ) = 0;
176 /** 177 /**
177 Retrieves an event on the basis of the unique string ID. 178 Retrieves an event on the basis of the unique string ID.
178 */ 179 */
179 virtual Event *event( const QString &UniqueStr ) = 0; 180 virtual Event *event( const QString &UniqueStr ) = 0;
180 virtual Event *event( QString, QString ) = 0; 181 virtual Event *event( QString, QString ) = 0;
181 /** 182 /**
182 Builds and then returns a list of all events that match for the 183 Builds and then returns a list of all events that match for the
183 date specified. useful for dayView, etc. etc. 184 date specified. useful for dayView, etc. etc.
184 The calendar filter is applied. 185 The calendar filter is applied.
185 */ 186 */
186 QPtrList<Event> events( const QDate &date, bool sorted = false); 187 QPtrList<Event> events( const QDate &date, bool sorted = false);
187 /** 188 /**
188 Get events, which occur on the given date. 189 Get events, which occur on the given date.
189 The calendar filter is applied. 190 The calendar filter is applied.
190 */ 191 */
191 QPtrList<Event> events( const QDateTime &qdt ); 192 QPtrList<Event> events( const QDateTime &qdt );
192 /** 193 /**
193 Get events in a range of dates. If inclusive is set to true, only events 194 Get events in a range of dates. If inclusive is set to true, only events
194 are returned, which are completely included in the range. 195 are returned, which are completely included in the range.
195 The calendar filter is applied. 196 The calendar filter is applied.
196 */ 197 */
197 QPtrList<Event> events( const QDate &start, const QDate &end, 198 QPtrList<Event> events( const QDate &start, const QDate &end,
198 bool inclusive = false); 199 bool inclusive = false);
199 /** 200 /**
200 Return filtered list of all events in calendar. 201 Return filtered list of all events in calendar.
201 */ 202 */
202 virtual QPtrList<Event> events(); 203 virtual QPtrList<Event> events();
203 /** 204 /**
204 Return unfiltered list of all events in calendar. 205 Return unfiltered list of all events in calendar.
205 */ 206 */
206 virtual QPtrList<Event> rawEvents() = 0; 207 virtual QPtrList<Event> rawEvents() = 0;
207 208
208 /** 209 /**
209 Add a todo to the todolist. 210 Add a todo to the todolist.
210 211
211 @return true on success, false on error. 212 @return true on success, false on error.
212 */ 213 */
213 virtual bool addTodo( Todo *todo ) = 0; 214 virtual bool addTodo( Todo *todo ) = 0;
214 virtual bool addTodoNoDup( Todo *todo ) = 0; 215 virtual bool addTodoNoDup( Todo *todo ) = 0;
215 /** 216 /**
216 Remove a todo from the todolist. 217 Remove a todo from the todolist.
217 */ 218 */
218 virtual void deleteTodo( Todo * ) = 0; 219 virtual void deleteTodo( Todo * ) = 0;
219 virtual void deleteJournal( Journal * ) = 0; 220 virtual void deleteJournal( Journal * ) = 0;
220 /** 221 /**
221 Return filterd list of todos. 222 Return filterd list of todos.
222 */ 223 */
223 virtual QPtrList<Todo> todos(); 224 virtual QPtrList<Todo> todos();
224 /** 225 /**
225 Searches todolist for an event with this unique string identifier, 226 Searches todolist for an event with this unique string identifier,
226 returns a pointer or null. 227 returns a pointer or null.
227 */ 228 */
228 virtual Todo *todo( const QString &uid ) = 0; 229 virtual Todo *todo( const QString &uid ) = 0;
229 virtual Todo *todo( QString, QString ) = 0; 230 virtual Todo *todo( QString, QString ) = 0;
230 /** 231 /**
231 Returns list of todos due on the specified date. 232 Returns list of todos due on the specified date.
232 */ 233 */
233 virtual QPtrList<Todo> todos( const QDate &date ) = 0; 234 virtual QPtrList<Todo> todos( const QDate &date ) = 0;
234 /** 235 /**
235 Return unfiltered list of todos. 236 Return unfiltered list of todos.
236 */ 237 */
237 virtual QPtrList<Todo> rawTodos() = 0; 238 virtual QPtrList<Todo> rawTodos() = 0;
238 239
239 /** 240 /**
240 Add a Journal entry to calendar. 241 Add a Journal entry to calendar.
241 242
242 @return true on success, false on error. 243 @return true on success, false on error.
243 */ 244 */
244 virtual bool addJournal( Journal * ) = 0; 245 virtual bool addJournal( Journal * ) = 0;
245 /** 246 /**
246 Return Journal for given date. 247 Return Journal for given date.
247 */ 248 */
248 virtual Journal *journal( const QDate & ) = 0; 249 virtual Journal *journal( const QDate & ) = 0;
249 virtual QPtrList<Journal> journals4Date( const QDate & ) = 0; 250 virtual QPtrList<Journal> journals4Date( const QDate & ) = 0;
250 /** 251 /**
251 Return Journal with given UID. 252 Return Journal with given UID.
252 */ 253 */
253 virtual Journal *journal( const QString &UID ) = 0; 254 virtual Journal *journal( const QString &UID ) = 0;
254 /** 255 /**
255 Return list of all Journal entries. 256 Return list of all Journal entries.
256 */ 257 */
257 virtual QPtrList<Journal> journals() = 0; 258 virtual QPtrList<Journal> journals() = 0;
258 259
259 /** 260 /**
260 Searches all incidence types for an incidence with this unique 261 Searches all incidence types for an incidence with this unique
261 string identifier, returns a pointer or null. 262 string identifier, returns a pointer or null.
262 */ 263 */
263 Incidence* incidence( const QString&UID ); 264 Incidence* incidence( const QString&UID );
264 265
265 /** 266 /**
266 Setup relations for an incidence. 267 Setup relations for an incidence.
267 */ 268 */
268 virtual void setupRelations( Incidence * ); 269 virtual void setupRelations( Incidence * );
269 /** 270 /**
270 Remove all relations to an incidence 271 Remove all relations to an incidence
271 */ 272 */
272 virtual void removeRelations( Incidence * ); 273 virtual void removeRelations( Incidence * );
273 274
274 /** 275 /**
275 Set calendar filter, which filters events for the events() functions. 276 Set calendar filter, which filters events for the events() functions.
276 The Filter object is owned by the caller. 277 The Filter object is owned by the caller.
277 */ 278 */
278 void setFilter( CalFilter * ); 279 void setFilter( CalFilter * );
279 /** 280 /**
280 Return calendar filter. 281 Return calendar filter.
281 */ 282 */
282 CalFilter *filter(); 283 CalFilter *filter();
283 virtual QDateTime nextAlarm( int daysTo ) = 0; 284 virtual QDateTime nextAlarm( int daysTo ) = 0;
284 virtual QString nextSummary( ) const = 0; 285 virtual QString nextSummary( ) const = 0;
285 virtual void reInitAlarmSettings() = 0; 286 virtual void reInitAlarmSettings() = 0;
286 virtual QDateTime nextAlarmEventDateTime() const = 0; 287 virtual QDateTime nextAlarmEventDateTime() const = 0;
287 virtual void checkAlarmForIncidence( Incidence *, bool ) = 0; 288 virtual void checkAlarmForIncidence( Incidence *, bool ) = 0;
288 /** 289 /**
289 Return all alarms, which ocur in the given time interval. 290 Return all alarms, which ocur in the given time interval.
290 */ 291 */
291 virtual Alarm::List alarms( const QDateTime &from, 292 virtual Alarm::List alarms( const QDateTime &from,
292 const QDateTime &to ) = 0; 293 const QDateTime &to ) = 0;
293 294
294 class Observer { 295 class Observer {
295 public: 296 public:
296 virtual void calendarModified( bool, Calendar * ) = 0; 297 virtual void calendarModified( bool, Calendar * ) = 0;
297 }; 298 };
298 299
299 void registerObserver( Observer * ); 300 void registerObserver( Observer * );
300 301
301 void setModified( bool ); 302 void setModified( bool );
302 303
303 /** 304 /**
304 Set product id returned by loadedProductId(). This function is only 305 Set product id returned by loadedProductId(). This function is only
305 useful for the calendar loading code. 306 useful for the calendar loading code.
306 */ 307 */
307 void setLoadedProductId( const QString & ); 308 void setLoadedProductId( const QString & );
308 /** 309 /**
309 Return product id taken from file that has been loaded. Returns 310 Return product id taken from file that has been loaded. Returns
310 QString::null, if no calendar has been loaded. 311 QString::null, if no calendar has been loaded.
311 */ 312 */
312 QString loadedProductId(); 313 QString loadedProductId();
313 int defaultCalendar(); 314 int defaultCalendar();
314 void setDontDeleteIncidencesOnClose (); 315 void setDontDeleteIncidencesOnClose ();
315 public slots: 316 public slots:
316 void setDefaultCalendar( int ); 317 void setDefaultCalendar( int );
317 virtual void setCalendarEnabled( int id, bool enable ) = 0; 318 virtual void setCalendarEnabled( int id, bool enable ) = 0;
318 virtual void setAlarmEnabled( int id, bool enable ) = 0; 319 virtual void setAlarmEnabled( int id, bool enable ) = 0;
319 virtual void setReadOnly( int id, bool enable ) = 0; 320 virtual void setReadOnly( int id, bool enable ) = 0;
320 virtual void setDefaultCalendarEnabledOnly() = 0; 321 virtual void setDefaultCalendarEnabledOnly() = 0;
321 virtual void setCalendarRemove( int id ) = 0; 322 virtual void setCalendarRemove( int id ) = 0;
322 virtual void getIncidenceCount( int calId, int& events, int & todos, int & journals) = 0; 323 virtual void getIncidenceCount( int calId, int& events, int & todos, int & journals) = 0;
323 324
324 signals: 325 signals:
325 void calendarChanged(); 326 void calendarChanged();
326 void calendarSaved(); 327 void calendarSaved();
327 void calendarLoaded(); 328 void calendarLoaded();
328 void addAlarm(const QDateTime &qdt, const QString &noti ); 329 void addAlarm(const QDateTime &qdt, const QString &noti );
329 void removeAlarm(const QDateTime &qdt, const QString &noti ); 330 void removeAlarm(const QDateTime &qdt, const QString &noti );
330 331
331 protected: 332 protected:
332 /** 333 /**
333 Get unfiltered events, which occur on the given date. 334 Get unfiltered events, which occur on the given date.
334 */ 335 */
335 virtual QPtrList<Event> rawEventsForDate( const QDateTime &qdt ) = 0; 336 virtual QPtrList<Event> rawEventsForDate( const QDateTime &qdt ) = 0;
336 /** 337 /**
337 Get unfiltered events, which occur on the given date. 338 Get unfiltered events, which occur on the given date.
338 */ 339 */
339 virtual QPtrList<Event> rawEventsForDate( const QDate &date, 340 virtual QPtrList<Event> rawEventsForDate( const QDate &date,
340 bool sorted = false ) = 0; 341 bool sorted = false ) = 0;
341 /** 342 /**
342 Get events in a range of dates. If inclusive is set to true, only events 343 Get events in a range of dates. If inclusive is set to true, only events
343 are returned, which are completely included in the range. 344 are returned, which are completely included in the range.
344 */ 345 */
345 virtual QPtrList<Event> rawEvents( const QDate &start, const QDate &end, 346 virtual QPtrList<Event> rawEvents( const QDate &start, const QDate &end,
346 bool inclusive = false ) = 0; 347 bool inclusive = false ) = 0;
347 348
348 Incidence *mNextAlarmIncidence; 349 Incidence *mNextAlarmIncidence;
349 Incidence *mUndoIncidence; 350 Incidence *mUndoIncidence;
350 int mDefaultCalendar; 351 int mDefaultCalendar;
351 bool mDeleteIncidencesOnClose; 352 bool mDeleteIncidencesOnClose;
352 353
353private: 354private:
354 void init(); 355 void init();
355 356
356 QString mOwner; // who the calendar belongs to 357 QString mOwner; // who the calendar belongs to
357 QString mOwnerEmail; // email address of the owner 358 QString mOwnerEmail; // email address of the owner
358 int mTimeZone; // timezone OFFSET from GMT (MINUTES) 359 int mTimeZone; // timezone OFFSET from GMT (MINUTES)
359 bool mLocalTime; // use local time, not UTC or a time zone 360 bool mLocalTime; // use local time, not UTC or a time zone
360 361
361 362
362 CalFilter *mFilter; 363 CalFilter *mFilter;
363 CalFilter *mDefaultFilter; 364 CalFilter *mDefaultFilter;
364 365
365 366
366 QString mTimeZoneId; 367 QString mTimeZoneId;
367 368
368 Observer *mObserver; 369 Observer *mObserver;
369 bool mNewObserver; 370 bool mNewObserver;
370 371
371 bool mModified; 372 bool mModified;
372 373
373 QString mLoadedProductId; 374 QString mLoadedProductId;
374 375
375 // This list is used to put together related todos 376 // This list is used to put together related todos
376 QDict<Incidence> mOrphans; 377 QDict<Incidence> mOrphans;
377 QDict<Incidence> mOrphanUids; 378 QDict<Incidence> mOrphanUids;
378}; 379};
379 380
380} 381}
381 382
382#endif 383#endif