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