KCal Library
incidencebase.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00054 #ifndef KCAL_INCIDENCEBASE_H
00055 #define KCAL_INCIDENCEBASE_H
00056
00057 #include "attendee.h"
00058 #include "customproperties.h"
00059 #include "duration.h"
00060 #include "sortablelist.h"
00061
00062 #include <kdatetime.h>
00063
00064 #include <QtCore/QStringList>
00065 #include <QtCore/QByteArray>
00066
00067 class KUrl;
00068
00069 namespace KCal {
00070
00072 typedef SortableList<QDate> DateList;
00074 typedef SortableList<KDateTime> DateTimeList;
00075 class Event;
00076 class Todo;
00077 class Journal;
00078 class FreeBusy;
00079
00102 class KCAL_EXPORT IncidenceBase : public CustomProperties
00103 {
00104 public:
00112 class KCAL_EXPORT Visitor
00113 {
00114 public:
00116 virtual ~Visitor() {}
00117
00123 virtual bool visit( Event *event );
00124
00130 virtual bool visit( Todo *todo );
00131
00137 virtual bool visit( Journal *journal );
00138
00144 virtual bool visit( FreeBusy *freebusy );
00145
00146 protected:
00151 Visitor() {}
00152 };
00153
00157 class IncidenceObserver
00158 {
00159 public:
00160
00164 virtual ~IncidenceObserver() {}
00165
00171 virtual void incidenceUpdated( IncidenceBase *incidenceBase ) = 0;
00172 };
00173
00177 IncidenceBase();
00178
00185 IncidenceBase( const IncidenceBase &ib );
00186
00190 virtual ~IncidenceBase();
00191
00203
00204 IncidenceBase &operator=( const IncidenceBase &other );
00205
00216
00217 bool operator==( const IncidenceBase &ib ) const;
00218
00228 virtual bool accept( Visitor &v )
00229 {
00230 Q_UNUSED( v );
00231 return false;
00232 }
00233
00237 virtual QByteArray type() const = 0;
00238
00246 void setUid( const QString &uid );
00247
00253 QString uid() const;
00254
00258 KUrl uri() const;
00259
00268 void setLastModified( const KDateTime &lm );
00269
00275 KDateTime lastModified() const;
00276
00283 void setOrganizer( const Person &organizer );
00284
00291 void setOrganizer( const QString &organizer );
00292
00298 Person organizer() const;
00299
00307 virtual void setReadOnly( bool readOnly );
00308
00313 bool isReadOnly() const { return mReadOnly; }
00314
00323 virtual void setDtStart( const KDateTime &dtStart );
00324
00329 virtual KDateTime dtStart() const;
00330
00342 virtual KDE_DEPRECATED QString dtStartTimeStr(
00343 bool shortfmt = true, const KDateTime::Spec &spec = KDateTime::Spec() ) const;
00344
00356 virtual KDE_DEPRECATED QString dtStartDateStr(
00357 bool shortfmt = true, const KDateTime::Spec &spec = KDateTime::Spec() ) const;
00358
00370 virtual KDE_DEPRECATED QString dtStartStr(
00371 bool shortfmt = true, const KDateTime::Spec &spec = KDateTime::Spec() ) const;
00372
00380 virtual void setDuration( const Duration &duration );
00381
00387 Duration duration() const;
00388
00396 void setHasDuration( bool hasDuration );
00397
00403 bool hasDuration() const;
00404
00411 bool allDay() const;
00412
00421 void setAllDay( bool allDay );
00422
00437 virtual void shiftTimes( const KDateTime::Spec &oldSpec,
00438 const KDateTime::Spec &newSpec );
00439
00447 void addComment( const QString &comment );
00448
00457 bool removeComment( const QString &comment );
00458
00462 void clearComments();
00463
00467 QStringList comments() const;
00468
00476 void addAttendee( Attendee *attendee, bool doUpdate = true );
00477
00481 void clearAttendees();
00482
00486 const Attendee::List &attendees() const;
00487
00491 int attendeeCount() const;
00492
00500 Attendee *attendeeByMail( const QString &email ) const;
00501
00512 Attendee *attendeeByMails( const QStringList &emails,
00513 const QString &email = QString() ) const;
00514
00521 Attendee *attendeeByUid( const QString &uid ) const;
00522
00531 void registerObserver( IncidenceObserver *observer );
00532
00540 void unRegisterObserver( IncidenceObserver *observer );
00541
00546 void updated();
00547
00553 void startUpdates();
00554
00560 void endUpdates();
00561
00562 protected:
00567 virtual void customPropertyUpdated();
00568
00572 bool mReadOnly;
00573
00574 private:
00575
00576 class Private;
00577 Private *const d;
00578
00579 };
00580
00581 }
00582
00583 #endif