vcal-conduitbase.h
00001 #ifndef _KPILOT_VCAL_CONDUITBASE_H
00002 #define _KPILOT_VCAL_CONDUITBASE_H
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
00029
00030
00031
00032 #include <plugin.h>
00033 #include <options.h>
00034
00035
00036
00037 namespace KCal
00038 {
00039 class Calendar;
00040 class Incidence;
00041 }
00042
00043 class PilotRecord;
00044 class PilotSerialDatabase;
00045 class PilotLocalDatabase;
00046 class PilotAppCategory;
00047
00048
00049 class VCalConduitPrivateBase
00050 {
00051 protected:
00052 bool reading;
00053 KCal::Calendar *fCalendar;
00054 public:
00055 VCalConduitPrivateBase(KCal::Calendar *buddy):fCalendar(buddy) { reading=false;};
00056
00057 virtual int updateIncidences()=0;
00058 virtual void addIncidence(KCal::Incidence*)=0;
00059 virtual void removeIncidence(KCal::Incidence *)=0;
00060 virtual KCal::Incidence *findIncidence(recordid_t)=0;
00061 virtual KCal::Incidence *findIncidence(PilotAppCategory*tosearch)=0;
00062 virtual KCal::Incidence *getNextIncidence()=0;
00063 virtual KCal::Incidence *getNextModifiedIncidence()=0;
00064 virtual int count()=0;
00065 } ;
00066
00067
00068
00069 class VCalConduitBase : public ConduitAction
00070 {
00071 Q_OBJECT
00072 public:
00073 VCalConduitBase(KPilotDeviceLink *,
00074 const char *name=0L,
00075 const QStringList &args = QStringList());
00076 virtual ~VCalConduitBase();
00077
00078 protected:
00079 virtual bool exec();
00080
00081 protected slots:
00085 void slotPalmRecToPC();
00089 void slotPCRecToPalm();
00090 void slotDeletedIncidence();
00091 void cleanup();
00092
00093
00094 protected:
00095
00096 virtual int resolveConflict(KCal::Incidence*e, PilotAppCategory*de);
00097
00098
00099 virtual KCal::Incidence* addRecord(PilotRecord *);
00100 virtual KCal::Incidence* changeRecord(PilotRecord *,PilotRecord *);
00101 virtual KCal::Incidence* deleteRecord(PilotRecord *,PilotRecord *);
00102
00103
00104 virtual void addPalmRecord(KCal::Incidence*e);
00105 virtual void changePalmRecord(KCal::Incidence*e, PilotRecord*s);
00106 virtual void deletePalmRecord(KCal::Incidence*e, PilotRecord*s);
00107
00108 virtual void updateIncidenceOnPalm(KCal::Incidence*e, PilotAppCategory*de);
00109
00110 virtual void readConfig();
00111 virtual bool openCalendar();
00112
00113
00114
00115
00116 virtual PilotRecord*recordFromIncidence(PilotAppCategory*de, const KCal::Incidence*e)=0;
00117 virtual KCal::Incidence *incidenceFromRecord(KCal::Incidence *e, const PilotAppCategory *de)=0;
00118
00119 virtual PilotAppCategory*newPilotEntry(PilotRecord*r)=0;
00120 virtual KCal::Incidence*newIncidence()=0;
00121
00122
00123
00124 virtual const QString configGroup() { return VCalConduitFactoryBase::getGroup(); };
00125 virtual const QString dbname() = 0;
00126
00127 virtual const QString getTitle(PilotAppCategory*de)=0;
00128
00129
00130
00131 virtual void preSync(){};
00132 virtual void postSync();
00133 virtual void preRecord(PilotRecord*){};
00134 virtual void preIncidence(KCal::Incidence *){};
00135
00136 protected:
00137 KCal::Calendar *fCalendar;
00138
00139 QString fCalendarFile;
00140 bool archive;
00141 int pilotindex;
00142 enum eCalendarTypeEnum {
00143 eCalendarResource=0,
00144 eCalendarLocal
00145 } fCalendarType;
00146
00147 protected:
00148 VCalConduitPrivateBase *fP;
00149 virtual VCalConduitPrivateBase* newVCalPrivate(KCal::Calendar *fCalendar)=0;
00150 } ;
00151
00152 #endif
This file is part of the documentation for kpilot Library Version 3.2.2.