summaryrefslogtreecommitdiffabout
path: root/libkcal/incidencebase.h
authorzautrix <zautrix>2004-06-26 19:01:18 (UTC)
committer zautrix <zautrix>2004-06-26 19:01:18 (UTC)
commitb9aad1f15dc600e4dbe4c62d3fcced6363188ba3 (patch) (unidiff)
tree2c3d4004fb21c72cba65793859f9bcd8ffd3a49c /libkcal/incidencebase.h
downloadkdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.zip
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.gz
kdepimpi-b9aad1f15dc600e4dbe4c62d3fcced6363188ba3.tar.bz2
Initial revision
Diffstat (limited to 'libkcal/incidencebase.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/incidencebase.h170
1 files changed, 170 insertions, 0 deletions
diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h
new file mode 100644
index 0000000..0ab7eef
--- a/dev/null
+++ b/libkcal/incidencebase.h
@@ -0,0 +1,170 @@
1/*
2 This file is part of libkcal.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20#ifndef KCAL_INCIDENCEBASE_H
21#define KCAL_INCIDENCEBASE_H
22//
23// Incidence - base class of calendaring components
24//
25
26#include <qdatetime.h>
27#include <qstringlist.h>
28#include <qvaluelist.h>
29#include <qptrlist.h>
30
31#include "customproperties.h"
32#include "attendee.h"
33
34namespace KCal {
35
36typedef QValueList<QDate> DateList;
37
38/**
39 This class provides the base class common to all calendar components.
40*/
41class IncidenceBase : public CustomProperties
42{
43 public:
44 class Observer {
45 public:
46 virtual void incidenceUpdated( IncidenceBase * ) = 0;
47 };
48
49 IncidenceBase();
50 IncidenceBase(const IncidenceBase &);
51 virtual ~IncidenceBase();
52
53 virtual QCString type() const = 0;
54
55 /** Set the unique id for the event */
56 void setUid(const QString &);
57 /** Return the unique id for the event */
58 QString uid() const;
59
60 /** Sets the time the incidence was last modified. */
61 void setLastModified(const QDateTime &lm);
62 /** Return the time the incidence was last modified. */
63 QDateTime lastModified() const;
64
65 /** sets the organizer for the event */
66 void setOrganizer(const QString &o);
67 QString organizer() const;
68
69 /** Set readonly status. */
70 virtual void setReadOnly( bool );
71 /** Return if the object is read-only. */
72 bool isReadOnly() const { return mReadOnly; }
73
74 /** for setting the event's starting date/time with a QDateTime. */
75 virtual void setDtStart(const QDateTime &dtStart);
76 /** returns an event's starting date/time as a QDateTime. */
77 QDateTime dtStart() const;
78 /** returns an event's starting time as a string formatted according to the
79 users locale settings */
80 QString dtStartTimeStr() const;
81 /** returns an event's starting date as a string formatted according to the
82 users locale settings */
83 QString dtStartDateStr(bool shortfmt=true) const;
84 /** returns an event's starting date and time as a string formatted according
85 to the users locale settings */
86 QString dtStartStr(bool shortfmt=true) const;
87
88 virtual void setDuration(int seconds);
89 int duration() const;
90 void setHasDuration(bool);
91 bool hasDuration() const;
92
93 /** Return true or false depending on whether the incidence "floats,"
94 * i.e. has a date but no time attached to it. */
95 bool doesFloat() const;
96 /** Set whether the incidence floats, i.e. has a date but no time attached to it. */
97 void setFloats(bool f);
98
99 /**
100 Add Attendee to this incidence. IncidenceBase takes ownership of the
101 Attendee object.
102 */
103 void addAttendee(Attendee *a, bool doupdate=true );
104// void removeAttendee(Attendee *a);
105// void removeAttendee(const char *n);
106 /** Remove all Attendees. */
107 void clearAttendees();
108 /** Return list of attendees. */
109 QPtrList<Attendee> attendees() const { return mAttendees; };
110 /** Return number of attendees. */
111 int attendeeCount() const { return mAttendees.count(); };
112 /** Return the Attendee with this email */
113 Attendee* attendeeByMail(const QString &);
114 /** Return first Attendee with one of this emails */
115 Attendee* attendeeByMails(const QStringList &, const QString& email = QString::null);
116
117 /** pilot syncronization states */
118 enum { SYNCNONE = 0, SYNCMOD = 1, SYNCDEL = 3 };
119 /** Set synchronisation satus. */
120 void setSyncStatus(int stat);
121 /** Return synchronisation status. */
122 int syncStatus() const;
123
124 /** Set Pilot Id. */
125 void setPilotId(int id);
126 /** Return Pilot Id. */
127 int pilotId() const;
128
129 void setZaurusId(int id);
130 int zaurusId() const;
131 void setZaurusUid(int id);
132 int zaurusUid() const;
133 void setZaurusStat(int id);
134 int zaurusStat() const;
135
136 void registerObserver( Observer * );
137 void unRegisterObserver( Observer * );
138 void updated();
139
140 protected:
141 bool mReadOnly;
142 QDateTime getEvenTime( QDateTime );
143
144 private:
145 // base components
146 QDateTime mDtStart;
147 QString mOrganizer;
148 QString mUid;
149 QDateTime mLastModified;
150 QPtrList<Attendee> mAttendees;
151
152 bool mFloats;
153
154 int mDuration;
155 bool mHasDuration;
156 int mZaurusId;
157 int mZaurusUid;
158 int mZaurusStat;
159
160 // PILOT SYNCHRONIZATION STUFF
161 int mPilotId; // unique id for pilot sync
162 int mSyncStatus; // status (for sync)
163
164 QPtrList<Observer> mObservers;
165};
166
167bool operator==( const IncidenceBase&, const IncidenceBase& );
168}
169
170#endif