kalarm
alarmcalendar.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef ALARMCALENDAR_H
00022 #define ALARMCALENDAR_H
00023
00024 #include <qobject.h>
00025 #include <kurl.h>
00026 #include <libkcal/calendarlocal.h>
00027 #include "alarmevent.h"
00028
00029 class KConfig;
00030
00031
00036 class AlarmCalendar : public QObject
00037 {
00038 Q_OBJECT
00039 public:
00040 virtual ~AlarmCalendar();
00041 bool valid() const { return mUrl.isValid(); }
00042 KAEvent::Status type() const { return mType; }
00043 bool open();
00044 int load();
00045 bool reload();
00046 bool save();
00047 void close();
00048 void startUpdate();
00049 bool endUpdate();
00050 KCal::Event* event(const QString& uniqueID);
00051 KCal::Event::List events();
00052 KCal::Event::List eventsWithAlarms(const QDateTime& from, const QDateTime& to);
00053 KCal::Event* addEvent(KAEvent&, bool useEventID = false);
00054 void updateEvent(const KAEvent&);
00055 bool deleteEvent(const QString& eventID, bool save = false);
00056 void emitEmptyStatus();
00057 void purgeAll() { purge(0); }
00058 void setPurgeDays(int days);
00059 void purgeIfQueued();
00060 bool isOpen() const { return mOpen; }
00061 QString path() const { return mUrl.prettyURL(); }
00062 QString urlString() const { return mUrl.url(); }
00063
00064 static QString icalProductId();
00065 static bool initialiseCalendars();
00066 static void terminateCalendars();
00067 static AlarmCalendar* activeCalendar() { return mCalendars[ACTIVE]; }
00068 static AlarmCalendar* expiredCalendar() { return mCalendars[EXPIRED]; }
00069 static AlarmCalendar* displayCalendar() { return mCalendars[DISPLAY]; }
00070 static AlarmCalendar* templateCalendar() { return mCalendars[TEMPLATE]; }
00071 static AlarmCalendar* activeCalendarOpen() { return calendarOpen(ACTIVE); }
00072 static AlarmCalendar* expiredCalendarOpen() { return calendarOpen(EXPIRED); }
00073 static AlarmCalendar* displayCalendarOpen() { return calendarOpen(DISPLAY); }
00074 static AlarmCalendar* templateCalendarOpen() { return calendarOpen(TEMPLATE); }
00075 static bool importAlarms(QWidget*);
00076 static const KCal::Event* getEvent(const QString& uniqueID);
00077
00078 enum CalID { ACTIVE, EXPIRED, DISPLAY, TEMPLATE, NCALS };
00079
00080 signals:
00081 void calendarSaved(AlarmCalendar*);
00082 void purged();
00083 void emptyStatus(bool empty);
00084
00085 private slots:
00086 void slotPurge();
00087
00088 private:
00089 AlarmCalendar(const QString& file, CalID, const QString& icalFile = QString::null,
00090 const QString& configKey = QString::null);
00091 bool create();
00092 bool saveCal(const QString& newFile = QString::null);
00093 void purge(int daysToKeep);
00094 void startPurgeTimer();
00095 static AlarmCalendar* createCalendar(CalID, KConfig*, QString& writePath, const QString& configKey = QString::null);
00096 static AlarmCalendar* calendarOpen(CalID);
00097
00098 static AlarmCalendar* mCalendars[NCALS];
00099
00100 KCal::CalendarLocal* mCalendar;
00101 KURL mUrl;
00102 KURL mICalUrl;
00103 QString mLocalFile;
00104 QString mConfigKey;
00105 KAEvent::Status mType;
00106 int mPurgeDays;
00107 bool mOpen;
00108 int mPurgeDaysQueued;
00109 int mUpdateCount;
00110 bool mUpdateSave;
00111 bool mVCal;
00112 };
00113
00114 #endif // ALARMCALENDAR_H
|