icalformatimpl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KCAL_ICALFORMATIMPL_H
00022 #define KCAL_ICALFORMATIMPL_H
00023
00024 #include <qstring.h>
00025 #include <qdict.h>
00026
00027 #include "scheduler.h"
00028 #include "freebusy.h"
00029
00030 extern "C" {
00031 #include <ical.h>
00032 #include <icalss.h>
00033 }
00034
00035 namespace KCal {
00036
00037 class Compat;
00038
00044 class ICalFormatImpl
00045 {
00046 public:
00048 ICalFormatImpl( ICalFormat *parent );
00049 virtual ~ICalFormatImpl();
00050
00051 bool populate( Calendar *, icalcomponent *fs);
00052
00053 icalcomponent *writeIncidence(Incidence *incidence);
00054 icalcomponent *writeTodo(Todo *todo);
00055 icalcomponent *writeEvent(Event *event);
00056 icalcomponent *writeFreeBusy(FreeBusy *freebusy,
00057 Scheduler::Method method);
00058 icalcomponent *writeJournal(Journal *journal);
00059 void writeIncidence(icalcomponent *parent,Incidence *incidence);
00060 icalproperty *writeAttendee(Attendee *attendee);
00061 icalproperty *writeAttachment(Attachment *attach);
00062 icalproperty *writeRecurrenceRule(Recurrence *);
00063 icalproperty *writeAlarm(Alarm *alarm);
00064
00065 QString extractErrorProperty(icalcomponent *);
00066 Todo *readTodo(icalcomponent *vtodo);
00067 Event *readEvent(icalcomponent *vevent);
00068 FreeBusy *readFreeBusy(icalcomponent *vfreebusy);
00069 Journal *readJournal(icalcomponent *vjournal);
00070 Attendee *readAttendee(icalproperty *attendee);
00071 Attachment *readAttachment(icalproperty *attach);
00072 void readIncidence(icalcomponent *parent,Incidence *incidence);
00073 void readRecurrenceRule(icalproperty *rrule,Incidence *event);
00074 void readRecurrence( const struct icalrecurrencetype &r, Recurrence* recur );
00075 void readAlarm(icalcomponent *alarm,Incidence *incidence);
00077 const QString &loadedProductId() { return mLoadedProductId; }
00078
00079 icaltimetype writeICalDate(const QDate &);
00080 QDate readICalDate(icaltimetype);
00081 icaltimetype writeICalDateTime(const QDateTime &);
00082 QDateTime readICalDateTime(icaltimetype);
00083 icaldurationtype writeICalDuration(int seconds);
00084 int readICalDuration(icaldurationtype);
00085 icalcomponent *createCalendarComponent(Calendar * = 0);
00086 icalcomponent *createScheduleComponent(IncidenceBase *,Scheduler::Method);
00087
00088 private:
00089 void writeIncidenceBase(icalcomponent *parent,IncidenceBase *);
00090 void readIncidenceBase(icalcomponent *parent,IncidenceBase *);
00091 void writeCustomProperties(icalcomponent *parent,CustomProperties *);
00092 void readCustomProperties(icalcomponent *parent,CustomProperties *);
00093 void dumpIcalRecurrence(icalrecurrencetype);
00094 void readTimezone(icalcomponent *vtimezone);
00095 void readTzidParameter( icalcomponent *parent, icaltimetype &t );
00096
00097 ICalFormat *mParent;
00098 Calendar *mCalendar;
00099 QDict<class Timezone> mTimezones;
00100
00101 QString mLoadedProductId;
00102 int mCalendarVersion;
00103
00104 Event::List mEventsRelate;
00105 Todo::List mTodosRelate;
00106
00107 static const int mSecondsPerWeek;
00108 static const int mSecondsPerDay;
00109 static const int mSecondsPerHour;
00110 static const int mSecondsPerMinute;
00111
00112 Compat *mCompat;
00113
00114 class Private;
00115 Private *d;
00116 };
00117
00118 }
00119
00120 #endif
This file is part of the documentation for libkcal Library Version 3.2.2.