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
#include <kdebug.h>
00027
00028
#include "adcalendar.h"
00029
00030 ADCalendar::ADCalendar(
const QString& url,
const QCString& appname, Type type)
00031 : ADCalendarBase(url, appname, type),
00032 available_( false ),
00033 enabled_(true)
00034 {
00035 loadFile();
00036 }
00037
00038 ADCalendar *ADCalendarFactory::create(
const QString& url,
const QCString& appname, ADCalendarBase::Type type)
00039 {
00040
return new ADCalendar(url, appname, type);
00041 }
00042
00043
00044
00045
00046
00047
bool ADCalendar::eventHandled(
const Event* event,
const QValueList<QDateTime>& alarmtimes)
00048 {
00049 EventsMap::ConstIterator it = eventsHandled_.find(event->uid());
00050
if (it == eventsHandled_.end())
00051
return false;
00052
00053
int oldCount = it.data().alarmTimes.count();
00054
int count = alarmtimes.count();
00055
for (
int i = 0; i < count; ++i) {
00056
if (alarmtimes[i].isValid()) {
00057
if (i >= oldCount
00058 || !it.data().alarmTimes[i].isValid()
00059 || it.data().alarmTimes[i].isValid()
00060 && alarmtimes[i] != it.data().alarmTimes[i])
00061
return false;
00062 }
00063 }
00064
return true;
00065 }
00066
00067
00068
00069
00070
00071
void ADCalendar::setEventHandled(
const Event* event,
const QValueList<QDateTime>& alarmtimes)
00072 {
00073
if (event)
00074 {
00075 kdDebug(5900) <<
"ADCalendar::setEventHandled(" << event->uid() <<
")\n";
00076 EventsMap::Iterator it = eventsHandled_.find(event->uid());
00077
if (it != eventsHandled_.end())
00078 {
00079
00080 it.data().alarmTimes = alarmtimes;
00081 it.data().eventSequence = event->revision();
00082 }
00083
else
00084 eventsHandled_.insert(event->uid(),EventItem(urlString(),
00085 event->revision(),
00086 alarmtimes));
00087 }
00088 }
00089
00090
00091
00092
00093
void ADCalendar::clearEventsHandled(
const QString& calendarURL)
00094 {
00095
for (EventsMap::Iterator it = eventsHandled_.begin(); it != eventsHandled_.end(); )
00096 {
00097
if (it.data().calendarURL == calendarURL)
00098 {
00099 EventsMap::Iterator i = it;
00100 ++it;
00101 eventsHandled_.remove(i);
00102 }
00103
else
00104 ++it;
00105 }
00106 }