kpilot/kpilot
syncCalendar.cc00001
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
00028 #include "options.h"
00029
00030 #include <kpilotlink.h>
00031 #include <pilotDatabase.h>
00032 #include <pilotDateEntry.h>
00033
00034 #include <libkcal/calendarlocal.h>
00035 #include <libkcal/event.h>
00036
00037
00038 typedef DatabaseInterpreter<KCal::Event,PilotDateEntry,PilotDateEntry::Mapper> DatebookDB;
00039
00040 class CalendarDumper
00041 {
00042 public:
00043 CalendarDumper() {}
00044
00045 KCal::CalendarLocal *retrieve(int fd);
00046 KCal::CalendarLocal *retrieve(const QString &filename);
00047
00048 protected:
00049 KCal::CalendarLocal *retrieve(DatebookDB *db);
00050 } ;
00051
00052
00053
00054 KCal::CalendarLocal *CalendarDumper::retrieve(int fd)
00055 {
00056 PilotSerialDatabase sdb( fd, CSL1("DatebookDB") );
00057 DatebookDB db(&sdb);
00058 return retrieve(db);
00059 }
00060
00061 KCal::CalendarLocal *CalendarDumped::retrieve(const QString &fn)
00062 {
00063 PilotLocalDatabase ldb( fn );
00064 DatebookDB db(&ldb);
00065 return retrieve(db);
00066 }
00067
00068 KCal::CalendarLocal *retrieve(DatebookDB *db)
00069 {
00070 KCal::CalendarLocal *cal = new CalendarLocal( QString::null );
00071
00072 int count = db->db()->recordCount();
00073
00074 if (count < 1)
00075 {
00076 return cal;
00077 }
00078
00079 for (int i=0; i<count; i++)
00080 {
00081 KCal::Event *e = db->readRecordByIndex(i);
00082 if (!e) continue;
00083 cal->addEvent(e);
00084 }
00085
00086 return cal;
00087 }
|