00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _ALARMDAEMON_H
00028 #define _ALARMDAEMON_H
00029
00030 #include <ksimpleconfig.h>
00031
00032 #include <libkcal/calendarlocal.h>
00033
00034 #include "alarmdaemoniface.h"
00035 #include "clientinfo.h"
00036 #include "adcalendar.h"
00037 #include "adconfigdatarw.h"
00038
00039 class AlarmDaemon : public QObject, public ADConfigDataRW, virtual public AlarmDaemonIface
00040 {
00041 Q_OBJECT
00042 public:
00043 AlarmDaemon(QObject *parent = 0L, const char *name = 0L);
00044 virtual ~AlarmDaemon();
00045
00046 private slots:
00047 void calendarLoaded( ADCalendarBase *, bool success );
00048 void checkAlarmsSlot();
00049 void checkAlarms();
00050
00051 private:
00052
00053 void enableAutoStart(bool enable);
00054 void enableCal(const QString& urlString, bool enable)
00055 { enableCal_(expandURL(urlString), enable); }
00056 void reloadCal(const QCString& appname, const QString& urlString)
00057 { reloadCal_(appname, expandURL(urlString), false); }
00058 void reloadMsgCal(const QCString& appname, const QString& urlString)
00059 { reloadCal_(appname, expandURL(urlString), true); }
00060 void addCal(const QCString& appname, const QString& urlString)
00061 { addCal_(appname, expandURL(urlString), false); }
00062 void addMsgCal(const QCString& appname, const QString& urlString)
00063 { addCal_(appname, expandURL(urlString), true); }
00064 void removeCal(const QString& urlString)
00065 { removeCal_(expandURL(urlString)); }
00066 void resetMsgCal(const QCString& appname, const QString& urlString)
00067 { resetMsgCal_(appname, expandURL(urlString)); }
00068 void registerApp(const QCString& appName, const QString& appTitle,
00069 const QCString& dcopObject, int notificationType,
00070 bool displayCalendarName)
00071 { registerApp_(appName, appTitle, dcopObject, notificationType,
00072 displayCalendarName, false); }
00073 void reregisterApp(const QCString& appName, const QString& appTitle,
00074 const QCString& dcopObject, int notificationType,
00075 bool displayCalendarName)
00076 { registerApp_(appName, appTitle, dcopObject, notificationType,
00077 displayCalendarName, true); }
00078 void registerGui(const QCString& appName, const QCString& dcopObject);
00079 void readConfig();
00080 void quit();
00081 void forceAlarmCheck() { checkAlarms(); }
00082 void dumpDebug();
00083 QStringList dumpAlarms();
00084
00085 private:
00086
00087 struct GuiInfo
00088 {
00089 GuiInfo() { }
00090 explicit GuiInfo(const QCString &dcopObj) : dcopObject(dcopObj) { }
00091 QCString dcopObject;
00092 };
00093 typedef QMap<QCString, GuiInfo> GuiMap;
00094
00095 void registerApp_(const QCString& appName, const QString& appTitle,
00096 const QCString& dcopObject, int notificationType,
00097 bool displayCalendarName, bool reregister);
00098 void enableCal_(const QString& urlString, bool enable);
00099 void addCal_(const QCString& appname, const QString& urlString, bool msgCal);
00100 void reloadCal_(const QCString& appname, const QString& urlString, bool msgCal);
00101 void reloadCal_(ADCalendarBase*);
00102 void resetMsgCal_(const QCString& appname, const QString& urlString);
00103 void removeCal_(const QString& urlString);
00104 bool checkAlarms(ADCalendarBase*);
00105 void checkAlarms(const QCString& appName);
00106 void checkEventAlarms(const Event& event, QValueList<QDateTime>& alarmtimes);
00107 bool notifyEvent(ADCalendarBase*, const QString& eventID);
00108 void notifyGuiCalStatus(const ADCalendarBase*);
00109 void notifyGui(AlarmGuiChangeType, const QString& calendarURL = QString::null);
00110 void notifyGui(AlarmGuiChangeType, const QString& calendarURL, const QCString &appname);
00111
00112 const GuiInfo* getGuiInfo(const QCString &appName) const;
00113 void addConfigClient(KSimpleConfig&, const QCString& appName, const QString& key);
00114 void readCheckInterval();
00115 void setTimerStatus();
00116
00117 GuiMap mGuis;
00118 QTimer* mAlarmTimer;
00119 QString mClientDataFile;
00120 int mCheckInterval;
00121 bool mAlarmTimerSyncing;
00122 };
00123
00124 #endif