adcalendar.cpp
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 = mEventsHandled.find(EventKey(event->uid(), urlIndex()));
00050 if (it == mEventsHandled.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 EventKey key(event->uid(), urlIndex());
00077 EventsMap::Iterator it = mEventsHandled.find(key);
00078 if (it != mEventsHandled.end())
00079 {
00080
00081 it.data().alarmTimes = alarmtimes;
00082 it.data().eventSequence = event->revision();
00083 }
00084 else
00085 mEventsHandled.insert(key, EventItem(event->revision(), alarmtimes));
00086 }
00087 }
00088
00089
00090
00091
00092 void ADCalendar::clearEventsHandled(const QString& calendarURL)
00093 {
00094 int urlIndex = mCalendarUrls.findIndex(calendarURL);
00095 if (urlIndex >= 0)
00096 {
00097 for (EventsMap::Iterator it = mEventsHandled.begin(); it != mEventsHandled.end(); )
00098 {
00099 if (it.key().calendarIndex == urlIndex)
00100 {
00101 EventsMap::Iterator i = it;
00102 ++it;
00103 mEventsHandled.remove(i);
00104 }
00105 else
00106 ++it;
00107 }
00108 }
00109 }
This file is part of the documentation for kalarmd Library Version 3.3.2.