kpilot
pilotDateEntry.hGo to the documentation of this file.00001 #ifndef _KPILOT_PILOTDATEENTRY_H
00002 #define _KPILOT_PILOTDATEENTRY_H
00003
00004
00005
00006
00007
00008
00009
00010
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <pi-macros.h>
00035 #include <pi-datebook.h>
00036
00037 #include <qbitarray.h>
00038 #include <qdatetime.h>
00039 #include <qnamespace.h>
00040
00041 #include "pilotRecord.h"
00042 #include "pilotAppInfo.h"
00043
00044 namespace KCal
00045 {
00046 class Event;
00047 }
00048
00050 typedef PilotAppInfo<
00051 AppointmentAppInfo,
00052 unpack_AppointmentAppInfo,
00053 pack_AppointmentAppInfo> PilotDateInfo_;
00054
00055
00056 class PilotDateInfo : public PilotDateInfo_
00057 {
00058 public:
00059 PilotDateInfo(PilotDatabase *d) : PilotDateInfo_(d)
00060 {
00061 }
00062
00067 void resetToDefault();
00068
00069 };
00070
00072 class KDE_EXPORT PilotDateEntry : public PilotRecordBase
00073 {
00074 public:
00076 PilotDateEntry();
00077
00079 PilotDateEntry(PilotRecord *rec);
00080
00082 PilotDateEntry(const PilotDateEntry &e);
00083
00085 ~PilotDateEntry()
00086 {
00087 free_Appointment(&fAppointmentInfo);
00088 }
00089
00091 PilotDateEntry& operator=(const PilotDateEntry &e);
00092
00097 QString getTextRepresentation(Qt::TextFormat richText);
00098
00107 inline bool doesFloat() const
00108 {
00109 return fAppointmentInfo.event;
00110 }
00111
00115 inline bool isEvent() const
00116 {
00117 return doesFloat();
00118 }
00119
00128 inline void setFloats(bool f)
00129 {
00130 fAppointmentInfo.event = (f ? 1 : 0) ;
00131 }
00132
00134 inline struct tm getEventStart() const { return fAppointmentInfo.begin; }
00135
00137 inline const struct tm *getEventStart_p() const
00138 {
00139 return &fAppointmentInfo.begin;
00140 }
00141
00143 inline void setEventStart(struct tm& start)
00144 {
00145 fAppointmentInfo.begin = start;
00146 }
00147
00154 QDateTime dtStart() const;
00155
00157 inline struct tm getEventEnd() const
00158 {
00159 return fAppointmentInfo.end;
00160 }
00161
00163 inline const struct tm *getEventEnd_p() const
00164 {
00165 return &fAppointmentInfo.end;
00166 }
00167
00169 inline void setEventEnd(struct tm& end)
00170 {
00171 fAppointmentInfo.end = end;
00172 }
00173
00180 QDateTime dtEnd() const;
00181
00186 inline bool isAlarmEnabled() const
00187 {
00188 return fAppointmentInfo.alarm;
00189 }
00190
00192 inline void setAlarmEnabled(bool b)
00193 {
00194 fAppointmentInfo.alarm = (b?1:0) ;
00195 }
00196
00206 inline int getAdvance() const
00207 {
00208 return fAppointmentInfo.advance;
00209 }
00210
00212 inline void setAdvance(int advance)
00213 {
00214 fAppointmentInfo.advance = advance;
00215 }
00216
00218 inline int getAdvanceUnits() const
00219 {
00220 return fAppointmentInfo.advanceUnits;
00221 }
00222
00224 inline void setAdvanceUnits(int units)
00225 {
00226 fAppointmentInfo.advanceUnits = units;
00227 }
00228
00233 unsigned int alarmLeadTime() const;
00234
00238 inline QDateTime dtAlarm() const
00239 {
00240 return dtStart().addSecs(-alarmLeadTime());
00241 }
00242
00243
00244 inline repeatTypes getRepeatType() const
00245 {
00246 return fAppointmentInfo.repeatType;
00247 }
00248 inline void setRepeatType(repeatTypes r)
00249 {
00250 fAppointmentInfo.repeatType = r;
00251 }
00252
00253 inline int getRepeatForever() const
00254 {
00255 return fAppointmentInfo.repeatForever;
00256 }
00257 inline void setRepeatForever(int f = 1)
00258 {
00259 fAppointmentInfo.repeatForever = f;
00260 }
00261
00262 inline struct tm getRepeatEnd() const
00263 {
00264 return fAppointmentInfo.repeatEnd;
00265 }
00266 inline void setRepeatEnd(struct tm tm)
00267 {
00268 fAppointmentInfo.repeatEnd = tm;
00269 }
00270
00274 QDateTime dtRepeatEnd() const;
00275
00276 inline int getRepeatFrequency() const
00277 {
00278 return fAppointmentInfo.repeatFrequency;
00279 }
00280 inline void setRepeatFrequency(int f)
00281 {
00282 fAppointmentInfo.repeatFrequency = f;
00283 }
00284
00285 inline DayOfMonthType getRepeatDay() const
00286 {
00287 return fAppointmentInfo.repeatDay;
00288 }
00289 inline void setRepeatDay(DayOfMonthType rd)
00290 {
00291 fAppointmentInfo.repeatDay = rd;
00292 };
00293
00294 inline const int *getRepeatDays() const
00295 {
00296 return fAppointmentInfo.repeatDays;
00297 }
00298 inline void setRepeatDays(int *rd)
00299 {
00300 for (int i = 0; i < 7; i++)
00301 {
00302 fAppointmentInfo.repeatDays[i] = rd[i];
00303 }
00304 }
00305 inline void setRepeatDays(QBitArray rba)
00306 {
00307 for (int i = 0; i < 7; i++)
00308 {
00309 fAppointmentInfo.repeatDays[i] = (rba[i] ? 1 : 0);
00310 }
00311 }
00312
00313 inline int getExceptionCount() const
00314 {
00315 return fAppointmentInfo.exceptions;
00316 }
00317 inline void setExceptionCount(int e)
00318 {
00319 fAppointmentInfo.exceptions = e;
00320 }
00321
00322 inline const struct tm *getExceptions() const
00323 {
00324 return fAppointmentInfo.exception;
00325 }
00326 void setExceptions(struct tm *e);
00327
00332 void setDescription(const QString &);
00334 QString getDescription() const;
00335
00340 void setNote(const QString &);
00342 QString getNote() const;
00343
00351 void setLocation(const QString &);
00352
00354 QString getLocation() const;
00355
00356 protected:
00357 void setDescriptionP(const char* desc, int l=-1);
00358 const char* getDescriptionP() const
00359 {
00360 return fAppointmentInfo.description;
00361 }
00362
00363 void setNoteP(const char* note, int l=-1);
00364 const char* getNoteP() const
00365 {
00366 return fAppointmentInfo.note;
00367 }
00368
00369 public:
00370 bool isMultiDay() const
00371 {
00372 return ((fAppointmentInfo.repeatType == repeatDaily) &&
00373 (fAppointmentInfo.repeatFrequency == 1) &&
00374 ( !getRepeatForever() ) &&
00375 !doesFloat() );
00376 }
00377
00378 PilotRecord *pack() const;
00379
00380 private:
00381 struct Appointment fAppointmentInfo;
00382 void _copyExceptions(const PilotDateEntry &e);
00383 };
00384
00385
00386
00387 #endif
00388
|