00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#include <kdebug.h>
00023
00024
#include "calendarsyncee.h"
00025
00026 CalendarSyncEntry::CalendarSyncEntry(Incidence *incidence) :
00027 mIncidence(incidence)
00028 {
00029 }
00030
00031
QString CalendarSyncEntry::name()
00032 {
00033
return mIncidence->summary();
00034 }
00035
00036
QString CalendarSyncEntry::id()
00037 {
00038
return mIncidence->uid();
00039 }
00040
00041
QString CalendarSyncEntry::timestamp()
00042 {
00043
return mIncidence->lastModified().toString();
00044 }
00045
00046
bool CalendarSyncEntry::equals(
KSyncEntry *entry)
00047 {
00048 CalendarSyncEntry *calEntry = dynamic_cast<CalendarSyncEntry *>(entry);
00049
if (!calEntry) {
00050 kdDebug() <<
"CalendarSyncee::addEntry(): Wrong type." << endl;
00051
return false;
00052 }
00053
00054
if (mIncidence->uid() != calEntry->incidence()->uid())
return false;
00055
if (mIncidence->lastModified() != calEntry->incidence()->lastModified())
00056
return false;
00057
00058
return true;
00059 }
00060
00061 CalendarSyncee::CalendarSyncee()
00062 {
00063 mCalendar =
new CalendarLocal;
00064
00065 mEntries.setAutoDelete(
true);
00066 }
00067
00068 CalendarSyncee::~CalendarSyncee()
00069 {
00070
delete mCalendar;
00071 }
00072
00073 bool CalendarSyncee::read()
00074 {
00075 mCalendar->close();
00076
return mCalendar->load(
filename());
00077 }
00078
00079 bool CalendarSyncee::write()
00080 {
00081
return mCalendar->save(
filename());
00082 }
00083
00084
00085 CalendarSyncEntry *
CalendarSyncee::firstEntry()
00086 {
00087 mEvents = mCalendar->events();
00088 mCurrentEvent = mEvents.begin();
00089
return createEntry( *mCurrentEvent );
00090 }
00091
00092 CalendarSyncEntry *
CalendarSyncee::nextEntry()
00093 {
00094 ++mCurrentEvent;
00095
return createEntry( *mCurrentEvent );
00096 }
00097
00098
#if 0
00099
CalendarSyncEntry *CalendarSyncee::findEntry(
const QString &
id)
00100 {
00101 Event *event = mCalendar->getEvent(
id);
00102
return createEntry(event);
00103 }
00104
#endif
00105
00106 void CalendarSyncee::addEntry(
KSyncEntry *entry)
00107 {
00108 CalendarSyncEntry *calEntry = dynamic_cast<CalendarSyncEntry *>(entry);
00109
if (!calEntry) {
00110 kdDebug() <<
"CalendarSyncee::addEntry(): SyncEntry has wrong type."
00111 << endl;
00112 }
else {
00113 Event *sourceEvent = dynamic_cast<Event *>(calEntry->incidence());
00114
if (!sourceEvent) {
00115 kdDebug() <<
"CalendarSyncee::addEntry(): Incidence is not of type Event."
00116 << endl;
00117 }
else {
00118 kdDebug() <<
"Cloning..." << endl;
00119 Event *event = dynamic_cast<Event *>(sourceEvent->clone());
00120 kdDebug() <<
"Cloning...." << endl;
00121 mCalendar->addEvent(event);
00122 kdDebug() <<
"Cloning....." << endl;
00123 }
00124 }
00125 }
00126
00127 void CalendarSyncee::removeEntry(
KSyncEntry *entry)
00128 {
00129 CalendarSyncEntry *calEntry = dynamic_cast<CalendarSyncEntry *>(entry);
00130
if (!calEntry) {
00131 kdDebug() <<
"CalendarSyncee::removeEntry(): SyncEntry has wrong type."
00132 << endl;
00133 }
else {
00134 Event *ev = dynamic_cast<Event *>(calEntry->incidence());
00135
if (ev) {
00136 mCalendar->deleteEvent(ev);
00137 }
else {
00138 kdDebug() <<
"CalendarSyncee::removeEntry(): Incidence has wrong type."
00139 << endl;
00140 }
00141 }
00142 }
00143
00144 CalendarSyncEntry *CalendarSyncee::createEntry(Incidence *incidence)
00145 {
00146
if (incidence) {
00147 CalendarSyncEntry *entry =
new CalendarSyncEntry(incidence);
00148 mEntries.append(entry);
00149
return entry;
00150 }
else {
00151
return 0;
00152 }
00153 }