libkcal
incidencebase.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KCAL_INCIDENCEBASE_H
00023 #define KCAL_INCIDENCEBASE_H
00024
00025 #include <qdatetime.h>
00026 #include <qstringlist.h>
00027 #include <qvaluelist.h>
00028 #include <qptrlist.h>
00029
00030 #include "customproperties.h"
00031 #include "attendee.h"
00032
00033 namespace KCal {
00034
00035 typedef QValueList<QDate> DateList;
00036 typedef QValueList<QDateTime> DateTimeList;
00037 class Event;
00038 class Todo;
00039 class Journal;
00040 class FreeBusy;
00041
00045 class LIBKCAL_EXPORT IncidenceBase : public CustomProperties
00046 {
00047 public:
00054 class Visitor
00055 {
00056 public:
00058 virtual ~Visitor() {}
00059
00064 virtual bool visit(Event *) { return false; }
00069 virtual bool visit(Todo *) { return false; }
00074 virtual bool visit(Journal *) { return false; }
00079 virtual bool visit(FreeBusy *) { return false; }
00080
00081 protected:
00083 Visitor() {}
00084 };
00085
00086 class Observer {
00087 public:
00088 virtual ~Observer() {}
00089 virtual void incidenceUpdated( IncidenceBase * ) = 0;
00090 virtual void incidenceUpdatedSilent( IncidenceBase * ) {};
00091 };
00092
00093 IncidenceBase();
00094 IncidenceBase( const IncidenceBase & );
00095 virtual ~IncidenceBase();
00096
00097 IncidenceBase& operator=( const IncidenceBase &i );
00098 bool operator==( const IncidenceBase & ) const;
00099
00107 virtual bool accept(Visitor &) { return false; }
00108
00109 virtual QCString type() const = 0;
00110
00112 void setUid( const QString & );
00114 QString uid() const;
00115
00117 void setLastModified( const QDateTime &lm );
00119 QDateTime lastModified() const;
00120
00122 void setOrganizer( const Person &o );
00123 void setOrganizer( const QString &o );
00124 Person organizer() const;
00125
00127 virtual void setReadOnly( bool );
00129 bool isReadOnly() const { return mReadOnly; }
00130
00132 virtual void setDtStart( const QDateTime &dtStart );
00134 virtual QDateTime dtStart() const;
00137 virtual QString dtStartTimeStr() const;
00140 virtual QString dtStartDateStr( bool shortfmt = true ) const;
00143 virtual QString dtStartStr() const;
00144
00145 virtual void setDuration( int seconds );
00146 int duration() const;
00147 void setHasDuration( bool );
00148 bool hasDuration() const;
00149
00152 bool doesFloat() const;
00154 void setFloats( bool f );
00155
00156
00157
00158
00159
00167 void addComment(const QString& comment);
00168
00177 bool removeComment( const QString& comment );
00178
00180 void clearComments();
00181
00183 QStringList comments() const;
00184
00192 void addAttendee( Attendee *attendee, bool doUpdate = true );
00196 void clearAttendees();
00200 const Attendee::List &attendees() const { return mAttendees; };
00204 int attendeeCount() const { return mAttendees.count(); };
00208 Attendee *attendeeByMail( const QString & ) const;
00212 Attendee *attendeeByMails( const QStringList &,
00213 const QString &email = QString::null ) const;
00217 Attendee *attendeeByUid( const QString &uid ) const;
00218
00222 enum { SYNCNONE = 0, SYNCMOD = 1, SYNCDEL = 3 };
00226 void setSyncStatus( int status );
00227 void setSyncStatusSilent( int status );
00231 int syncStatus() const;
00232
00236 void setPilotId( unsigned long id );
00240 unsigned long pilotId() const;
00241
00246 void registerObserver( Observer * );
00250 void unRegisterObserver( Observer * );
00255 void updated();
00256 void updatedSilent();
00257
00258 protected:
00263 virtual void customPropertyUpdated();
00264
00265 bool mReadOnly;
00266
00267 private:
00268
00269 QDateTime mDtStart;
00270 Person mOrganizer;
00271 QString mUid;
00272 QDateTime mLastModified;
00273 Attendee::List mAttendees;
00274 QStringList mComments;
00275
00276 bool mFloats;
00277
00278 int mDuration;
00279 bool mHasDuration;
00280
00281
00282 unsigned long mPilotId;
00283 int mSyncStatus;
00284
00285 QPtrList<Observer> mObservers;
00286
00287 class Private;
00288 Private *d;
00289 };
00290
00291 }
00292
00293 #endif
|