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
00027
00028
00029
00030
00031 #ifndef OEVENT_H
00032 #define OEVENT_H
00033
00034
00035 #include <opie2/opimtimezone.h>
00036 #include <opie2/opimrecord.h>
00037 #include <qpe/recordfields.h>
00038 #include <qpe/palmtopuidgen.h>
00039
00040
00041 #include <qstring.h>
00042 #include <qdatetime.h>
00043 #include <qvaluelist.h>
00044
00045 namespace Opie
00046 {
00047 struct OCalendarHelper
00048 {
00050 static int week( const QDate& );
00052 static int ocurrence( const QDate& );
00053
00054
00055
00056 static int dayOfWeek( char day );
00057
00059 static int monthDiff( const QDate& first, const QDate& second );
00060
00061 };
00062
00063 class OPimNotifyManager;
00064 class OPimRecurrence;
00065
00071 class OPimEvent : public OPimRecord
00072 {
00073 public:
00074 typedef QValueList<OPimEvent> ValueList;
00079 enum RecordFields {
00080 FUid = Qtopia::UID_ID,
00081 FCategories = Qtopia::CATEGORY_ID,
00082 FDescription ,
00083 FLocation,
00084 FType,
00085 FAlarm,
00086 FSound,
00087 FRType,
00088 FRWeekdays,
00089 FRPosition,
00090 FRFreq,
00091 FRHasEndDate,
00092 FREndDate,
00093 FRCreated,
00094 FRExceptions,
00095 FStart,
00096 FEnd,
00097 FNote,
00098 FTimeZone,
00099 FRecParent,
00100 FRecChildren,
00101 };
00102
00106 OPimEvent( int uid = 0 );
00107
00111 OPimEvent( const OPimEvent& );
00112
00117 OPimEvent( const QMap<int, QString> map );
00118 ~OPimEvent();
00119 OPimEvent &operator=( const OPimEvent& );
00120
00122 QString description() const;
00123 void setDescription( const QString& description );
00124
00125 QString location() const;
00126 void setLocation( const QString& loc );
00128
00130 bool hasNotifiers() const;
00131 OPimNotifyManager ¬ifiers() const;
00133
00135 OPimRecurrence recurrence() const;
00136 void setRecurrence( const OPimRecurrence& );
00137 bool hasRecurrence() const;
00139
00141 QString note() const;
00142 void setNote( const QString& note );
00144
00145
00146 QDateTime createdDateTime() const;
00147 void setCreatedDateTime( const QDateTime& dt );
00148
00150 void setStartDateTime( const QDateTime& );
00152 QDateTime startDateTime() const;
00153
00155 QDateTime startDateTimeInZone() const;
00156
00158 void setEndDateTime( const QDateTime& );
00160 QDateTime endDateTime() const;
00161 QDateTime endDateTimeInZone() const;
00162
00163 bool isMultipleDay() const;
00164 bool isAllDay() const;
00165 void setAllDay( bool isAllDay );
00166
00167
00168 void setTimeZone( const QString& timeZone );
00169 QString timeZone() const;
00170
00171
00173
00174 QArray<int> children() const;
00175 void setChildren( const QArray<int>& );
00176 void addChild( int uid );
00177 void removeChild( int uid );
00179
00181 int parent() const;
00182 void setParent( int uid );
00183
00184
00185
00187 virtual bool match( const QRegExp& ) const;
00188 QString toRichText() const;
00189 QString toShortText() const;
00190 QString type() const;
00191
00192 QMap<int, QString> toMap() const;
00193 void fromMap( const QMap<int, QString>& map );
00194 QString recordField( int ) const;
00195
00196 bool loadFromStream( QDataStream& );
00197 bool saveToStream( QDataStream& ) const;
00199
00201 int rtti() const;
00202 static OPimEvent* safeCast( const OPimRecord* );
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213 private:
00214 inline void changeOrModify();
00215 void deref();
00216 struct Data;
00217 Data* data;
00218 class Private;
00219 Private* priv;
00220
00221 };
00222 }
00223
00224 #endif