00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef KPIM_EXCHANGECALENDAR_H
00021
#define KPIM_EXCHANGECALENDAR_H
00022
00023
#include <qmap.h>
00024
#include <libkcal/calendar.h>
00025
#include <libkcal/calendarlocal.h>
00026
00027
class DateSet;
00028
00029
namespace KPIM {
00030
class ExchangeAccount;
00031
class ExchangeClient;
00032 }
00033
00034
namespace KCal {
00035
class Event;
00036 }
00037
00038
namespace KCal {
00039
00040
class CalFormat;
00041
00045 class ExchangeCalendar :
public Calendar,
public IncidenceBase::Observer
00046 {
00047
public:
00049
ExchangeCalendar( KPIM::ExchangeAccount* account );
00051
ExchangeCalendar( KPIM::ExchangeAccount* account,
const QString &timeZoneId );
00052
virtual ~
ExchangeCalendar();
00053
00061
bool load(
const QString &fileName );
00068
bool save(
const QString &fileName, CalFormat *format = 0 );
00069
00071
void close();
00072
00074
void addEvent(Event *anEvent);
00076
void deleteEvent(Event *);
00077
00081 Event *
event(
const QString &UniqueStr);
00085
00090 QPtrList<Event>
rawEvents();
00091
00092
00093
00094
00095
00096 QString getHolidayForDate(
const QDate &qd);
00097
00101
void addTodo( Todo *
todo );
00105
void deleteTodo( Todo * );
00110 Todo *todo(
const QString &uid );
00114 QPtrList<Todo>
rawTodos()
const;
00118 QPtrList<Todo>
todos(
const QDate &date );
00124 QPtrList<Todo>
todos() {
return Calendar::todos(); }
00125
00127
virtual void addJournal(Journal *);
00129
virtual Journal *journal(
const QDate &);
00131
virtual Journal *journal(
const QString &UID);
00133 QPtrList<Journal>
journals();
00134
00136 Alarm::List alarms(
const QDateTime &from,
const QDateTime &to );
00137
00139 Alarm::List alarmsTo(
const QDateTime &to );
00140
00141
protected:
00146 QPtrList<Event> rawEventsForDate(
const QDate &date,
bool sorted =
false );
00150 QPtrList<Event> rawEventsForDate(
const QDateTime &qdt );
00155 QPtrList<Event>
rawEvents(
const QDate &start,
const QDate &end,
00156
bool inclusive =
false );
00157
00161
void update(IncidenceBase *incidence);
00162
00164 void incidenceUpdated( IncidenceBase *i ) { mCache->update( i ); update( i ); }
00165
00167
void insertEvent(
const Event *anEvent);
00168
00170
00171
00172
00174
00175
00176
00177
private:
00178
void init( KPIM::ExchangeAccount* account );
00179
00180 KPIM::ExchangeAccount* mAccount;
00181 KPIM::ExchangeClient* mClient;
00182 CalendarLocal* mCache;
00183 DateSet* mDates;
00184 QMap<Event, QDateTime>* mEventDates;
00185 QMap<QDate, QDateTime>* mCacheDates;
00186
int mCachedSeconds;
00187 };
00188
00189 }
00190
00191
#endif