summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/oevent.cpp14
-rw-r--r--libopie2/opiepim/oevent.cpp14
2 files changed, 26 insertions, 2 deletions
diff --git a/libopie/pim/oevent.cpp b/libopie/pim/oevent.cpp
index 28cf873..b731c8a 100644
--- a/libopie/pim/oevent.cpp
+++ b/libopie/pim/oevent.cpp
@@ -157,193 +157,205 @@ void OEvent::setCreatedDateTime( const QDateTime& time ) {
157 data->created = time; 157 data->created = time;
158} 158}
159QDateTime OEvent::startDateTime()const { 159QDateTime OEvent::startDateTime()const {
160 if ( data->isAllDay ) 160 if ( data->isAllDay )
161 return QDateTime( data->start.date(), QTime(0, 0, 0 ) ); 161 return QDateTime( data->start.date(), QTime(0, 0, 0 ) );
162 return data->start; 162 return data->start;
163} 163}
164QDateTime OEvent::startDateTimeInZone()const { 164QDateTime OEvent::startDateTimeInZone()const {
165 /* if no timezone, or all day event or if the current and this timeZone match... */ 165 /* if no timezone, or all day event or if the current and this timeZone match... */
166 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime(); 166 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime();
167 167
168 OTimeZone zone(data->timezone ); 168 OTimeZone zone(data->timezone );
169 return zone.toDateTime( data->start, OTimeZone::current() ); 169 return zone.toDateTime( data->start, OTimeZone::current() );
170} 170}
171void OEvent::setStartDateTime( const QDateTime& dt ) { 171void OEvent::setStartDateTime( const QDateTime& dt ) {
172 changeOrModify(); 172 changeOrModify();
173 data->start = dt; 173 data->start = dt;
174} 174}
175QDateTime OEvent::endDateTime()const { 175QDateTime OEvent::endDateTime()const {
176 /* 176 /*
177 * if all Day event the end time needs 177 * if all Day event the end time needs
178 * to be on the same day as the start 178 * to be on the same day as the start
179 */ 179 */
180 if ( data->isAllDay ) 180 if ( data->isAllDay )
181 return QDateTime( data->start.date(), QTime(23, 59, 59 ) ); 181 return QDateTime( data->start.date(), QTime(23, 59, 59 ) );
182 return data->end; 182 return data->end;
183} 183}
184QDateTime OEvent::endDateTimeInZone()const { 184QDateTime OEvent::endDateTimeInZone()const {
185 /* if no timezone, or all day event or if the current and this timeZone match... */ 185 /* if no timezone, or all day event or if the current and this timeZone match... */
186 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime(); 186 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime();
187 187
188 OTimeZone zone(data->timezone ); 188 OTimeZone zone(data->timezone );
189 return zone.toDateTime( data->end, OTimeZone::current() ); 189 return zone.toDateTime( data->end, OTimeZone::current() );
190} 190}
191void OEvent::setEndDateTime( const QDateTime& dt ) { 191void OEvent::setEndDateTime( const QDateTime& dt ) {
192 changeOrModify(); 192 changeOrModify();
193 data->end = dt; 193 data->end = dt;
194} 194}
195bool OEvent::isMultipleDay()const { 195bool OEvent::isMultipleDay()const {
196 return data->end.date().day() - data->start.date().day(); 196 return data->end.date().day() - data->start.date().day();
197} 197}
198bool OEvent::isAllDay()const { 198bool OEvent::isAllDay()const {
199 return data->isAllDay; 199 return data->isAllDay;
200} 200}
201void OEvent::setAllDay( bool allDay ) { 201void OEvent::setAllDay( bool allDay ) {
202 changeOrModify(); 202 changeOrModify();
203 data->isAllDay = allDay; 203 data->isAllDay = allDay;
204 if (allDay ) data->timezone = "UTC"; 204 if (allDay ) data->timezone = "UTC";
205} 205}
206void OEvent::setTimeZone( const QString& tz ) { 206void OEvent::setTimeZone( const QString& tz ) {
207 changeOrModify(); 207 changeOrModify();
208 data->timezone = tz; 208 data->timezone = tz;
209} 209}
210QString OEvent::timeZone()const { 210QString OEvent::timeZone()const {
211 if (data->isAllDay ) return QString::fromLatin1("UTC"); 211 if (data->isAllDay ) return QString::fromLatin1("UTC");
212 return data->timezone; 212 return data->timezone;
213} 213}
214bool OEvent::match( const QRegExp& re )const { 214bool OEvent::match( const QRegExp& re )const {
215 if (data->description.contains( re ) ) 215 if (data->description.contains( re ) )
216 return true; 216 return true;
217 if ( data->note.contains( re ) ) 217 if ( data->note.contains( re ) )
218 return true; 218 return true;
219 if ( data->location.contains( re ) ) 219 if ( data->location.contains( re ) )
220 return true; 220 return true;
221 if ( data->start.toString().contains( re ) ) 221 if ( data->start.toString().contains( re ) )
222 return true; 222 return true;
223 if ( data->end.toString().contains( re ) ) 223 if ( data->end.toString().contains( re ) )
224 return true; 224 return true;
225 return false; 225 return false;
226} 226}
227QString OEvent::toRichText()const { 227QString OEvent::toRichText()const {
228 QString text; 228 QString text;
229 if ( !description().isEmpty() ) { 229 if ( !description().isEmpty() ) {
230 text += "<b>" + QObject::tr( "Description:") + "</b><br>"; 230 text += "<b>" + QObject::tr( "Description:") + "</b><br>";
231 text += Qtopia::escapeString(description() ). 231 text += Qtopia::escapeString(description() ).
232 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 232 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
233 } 233 }
234 if ( startDateTime().isValid() ) { 234 if ( startDateTime().isValid() ) {
235 text += "<b>" + QObject::tr( "Start:") + "</b> "; 235 text += "<b>" + QObject::tr( "Start:") + "</b> ";
236 text += Qtopia::escapeString(startDateTime().toString() ). 236 text += Qtopia::escapeString(startDateTime().toString() ).
237 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 237 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
238 } 238 }
239 if ( endDateTime().isValid() ) { 239 if ( endDateTime().isValid() ) {
240 text += "<b>" + QObject::tr( "End:") + "</b> "; 240 text += "<b>" + QObject::tr( "End:") + "</b> ";
241 text += Qtopia::escapeString(endDateTime().toString() ). 241 text += Qtopia::escapeString(endDateTime().toString() ).
242 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 242 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
243 } 243 }
244 if ( !note().isEmpty() ) { 244 if ( !note().isEmpty() ) {
245 text += "<b>" + QObject::tr( "Note:") + "</b><br>"; 245 text += "<b>" + QObject::tr( "Note:") + "</b><br>";
246 text += note(); 246 text += note();
247// text += Qtopia::escapeString(note() ). 247// text += Qtopia::escapeString(note() ).
248// replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 248// replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
249 } 249 }
250 return text; 250 return text;
251} 251}
252QString OEvent::toShortText()const { 252QString OEvent::toShortText()const {
253 return description(); 253 QString text;
254 text += QString::number( startDateTime().date().day() );
255 text += ".";
256 text += QString::number( startDateTime().date().month() );
257 text += ".";
258 text += QString::number( startDateTime().date().year() );
259 text += " ";
260 text += QString::number( startDateTime().time().hour() );
261 text += ":";
262 text += QString::number( startDateTime().time().minute() );
263 text += " - ";
264 text += description();
265 return text;
254} 266}
255QString OEvent::type()const { 267QString OEvent::type()const {
256 return QString::fromLatin1("OEvent"); 268 return QString::fromLatin1("OEvent");
257} 269}
258QString OEvent::recordField( int /*id */ )const { 270QString OEvent::recordField( int /*id */ )const {
259 return QString::null; 271 return QString::null;
260} 272}
261int OEvent::rtti() { 273int OEvent::rtti() {
262 return OPimResolver::DateBook; 274 return OPimResolver::DateBook;
263} 275}
264bool OEvent::loadFromStream( QDataStream& ) { 276bool OEvent::loadFromStream( QDataStream& ) {
265 return true; 277 return true;
266} 278}
267bool OEvent::saveToStream( QDataStream& )const { 279bool OEvent::saveToStream( QDataStream& )const {
268 return true; 280 return true;
269} 281}
270void OEvent::changeOrModify() { 282void OEvent::changeOrModify() {
271 if ( data->count != 1 ) { 283 if ( data->count != 1 ) {
272 data->deref(); 284 data->deref();
273 Data* d2 = new Data; 285 Data* d2 = new Data;
274 d2->description = data->description; 286 d2->description = data->description;
275 d2->location = data->location; 287 d2->location = data->location;
276 288
277 if (data->manager ) 289 if (data->manager )
278 d2->manager = new OPimNotifyManager( *data->manager ); 290 d2->manager = new OPimNotifyManager( *data->manager );
279 291
280 if ( data->recur ) 292 if ( data->recur )
281 d2->recur = new ORecur( *data->recur ); 293 d2->recur = new ORecur( *data->recur );
282 294
283 d2->note = data->note; 295 d2->note = data->note;
284 d2->created = data->created; 296 d2->created = data->created;
285 d2->start = data->start; 297 d2->start = data->start;
286 d2->end = data->end; 298 d2->end = data->end;
287 d2->isAllDay = data->isAllDay; 299 d2->isAllDay = data->isAllDay;
288 d2->timezone = data->timezone; 300 d2->timezone = data->timezone;
289 d2->parent = data->parent; 301 d2->parent = data->parent;
290 302
291 if ( data->child ) { 303 if ( data->child ) {
292 d2->child = new QArray<int>( *data->child ); 304 d2->child = new QArray<int>( *data->child );
293 d2->child->detach(); 305 d2->child->detach();
294 } 306 }
295 307
296 data = d2; 308 data = d2;
297 } 309 }
298} 310}
299void OEvent::deref() { 311void OEvent::deref() {
300 if ( data->deref() ) { 312 if ( data->deref() ) {
301 delete data; 313 delete data;
302 data = 0; 314 data = 0;
303 } 315 }
304} 316}
305// FIXME 317// FIXME
306QMap<int, QString> OEvent::toMap()const { 318QMap<int, QString> OEvent::toMap()const {
307 return QMap<int, QString>(); 319 return QMap<int, QString>();
308} 320}
309QMap<QString, QString> OEvent::toExtraMap()const { 321QMap<QString, QString> OEvent::toExtraMap()const {
310 return QMap<QString, QString>(); 322 return QMap<QString, QString>();
311} 323}
312int OEvent::parent()const { 324int OEvent::parent()const {
313 return data->parent; 325 return data->parent;
314} 326}
315void OEvent::setParent( int uid ) { 327void OEvent::setParent( int uid ) {
316 changeOrModify(); 328 changeOrModify();
317 data->parent = uid; 329 data->parent = uid;
318} 330}
319QArray<int> OEvent::children() const{ 331QArray<int> OEvent::children() const{
320 if (!data->child) return QArray<int>(); 332 if (!data->child) return QArray<int>();
321 else 333 else
322 return data->child->copy(); 334 return data->child->copy();
323} 335}
324void OEvent::setChildren( const QArray<int>& arr ) { 336void OEvent::setChildren( const QArray<int>& arr ) {
325 changeOrModify(); 337 changeOrModify();
326 if (data->child) delete data->child; 338 if (data->child) delete data->child;
327 339
328 data->child = new QArray<int>( arr ); 340 data->child = new QArray<int>( arr );
329 data->child->detach(); 341 data->child->detach();
330} 342}
331void OEvent::addChild( int uid ) { 343void OEvent::addChild( int uid ) {
332 changeOrModify(); 344 changeOrModify();
333 if (!data->child ) { 345 if (!data->child ) {
334 data->child = new QArray<int>(1); 346 data->child = new QArray<int>(1);
335 (*data->child)[0] = uid; 347 (*data->child)[0] = uid;
336 }else{ 348 }else{
337 int count = data->child->count(); 349 int count = data->child->count();
338 data->child->resize( count + 1 ); 350 data->child->resize( count + 1 );
339 (*data->child)[count] = uid; 351 (*data->child)[count] = uid;
340 } 352 }
341} 353}
342void OEvent::removeChild( int uid ) { 354void OEvent::removeChild( int uid ) {
343 if (!data->child || !data->child->contains( uid ) ) return; 355 if (!data->child || !data->child->contains( uid ) ) return;
344 changeOrModify(); 356 changeOrModify();
345 QArray<int> newAr( data->child->count() - 1 ); 357 QArray<int> newAr( data->child->count() - 1 );
346 int j = 0; 358 int j = 0;
347 uint count = data->child->count(); 359 uint count = data->child->count();
348 for ( uint i = 0; i < count; i++ ) { 360 for ( uint i = 0; i < count; i++ ) {
349 if ( (*data->child)[i] != uid ) { 361 if ( (*data->child)[i] != uid ) {
diff --git a/libopie2/opiepim/oevent.cpp b/libopie2/opiepim/oevent.cpp
index 28cf873..b731c8a 100644
--- a/libopie2/opiepim/oevent.cpp
+++ b/libopie2/opiepim/oevent.cpp
@@ -157,193 +157,205 @@ void OEvent::setCreatedDateTime( const QDateTime& time ) {
157 data->created = time; 157 data->created = time;
158} 158}
159QDateTime OEvent::startDateTime()const { 159QDateTime OEvent::startDateTime()const {
160 if ( data->isAllDay ) 160 if ( data->isAllDay )
161 return QDateTime( data->start.date(), QTime(0, 0, 0 ) ); 161 return QDateTime( data->start.date(), QTime(0, 0, 0 ) );
162 return data->start; 162 return data->start;
163} 163}
164QDateTime OEvent::startDateTimeInZone()const { 164QDateTime OEvent::startDateTimeInZone()const {
165 /* if no timezone, or all day event or if the current and this timeZone match... */ 165 /* if no timezone, or all day event or if the current and this timeZone match... */
166 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime(); 166 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime();
167 167
168 OTimeZone zone(data->timezone ); 168 OTimeZone zone(data->timezone );
169 return zone.toDateTime( data->start, OTimeZone::current() ); 169 return zone.toDateTime( data->start, OTimeZone::current() );
170} 170}
171void OEvent::setStartDateTime( const QDateTime& dt ) { 171void OEvent::setStartDateTime( const QDateTime& dt ) {
172 changeOrModify(); 172 changeOrModify();
173 data->start = dt; 173 data->start = dt;
174} 174}
175QDateTime OEvent::endDateTime()const { 175QDateTime OEvent::endDateTime()const {
176 /* 176 /*
177 * if all Day event the end time needs 177 * if all Day event the end time needs
178 * to be on the same day as the start 178 * to be on the same day as the start
179 */ 179 */
180 if ( data->isAllDay ) 180 if ( data->isAllDay )
181 return QDateTime( data->start.date(), QTime(23, 59, 59 ) ); 181 return QDateTime( data->start.date(), QTime(23, 59, 59 ) );
182 return data->end; 182 return data->end;
183} 183}
184QDateTime OEvent::endDateTimeInZone()const { 184QDateTime OEvent::endDateTimeInZone()const {
185 /* if no timezone, or all day event or if the current and this timeZone match... */ 185 /* if no timezone, or all day event or if the current and this timeZone match... */
186 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime(); 186 if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime();
187 187
188 OTimeZone zone(data->timezone ); 188 OTimeZone zone(data->timezone );
189 return zone.toDateTime( data->end, OTimeZone::current() ); 189 return zone.toDateTime( data->end, OTimeZone::current() );
190} 190}
191void OEvent::setEndDateTime( const QDateTime& dt ) { 191void OEvent::setEndDateTime( const QDateTime& dt ) {
192 changeOrModify(); 192 changeOrModify();
193 data->end = dt; 193 data->end = dt;
194} 194}
195bool OEvent::isMultipleDay()const { 195bool OEvent::isMultipleDay()const {
196 return data->end.date().day() - data->start.date().day(); 196 return data->end.date().day() - data->start.date().day();
197} 197}
198bool OEvent::isAllDay()const { 198bool OEvent::isAllDay()const {
199 return data->isAllDay; 199 return data->isAllDay;
200} 200}
201void OEvent::setAllDay( bool allDay ) { 201void OEvent::setAllDay( bool allDay ) {
202 changeOrModify(); 202 changeOrModify();
203 data->isAllDay = allDay; 203 data->isAllDay = allDay;
204 if (allDay ) data->timezone = "UTC"; 204 if (allDay ) data->timezone = "UTC";
205} 205}
206void OEvent::setTimeZone( const QString& tz ) { 206void OEvent::setTimeZone( const QString& tz ) {
207 changeOrModify(); 207 changeOrModify();
208 data->timezone = tz; 208 data->timezone = tz;
209} 209}
210QString OEvent::timeZone()const { 210QString OEvent::timeZone()const {
211 if (data->isAllDay ) return QString::fromLatin1("UTC"); 211 if (data->isAllDay ) return QString::fromLatin1("UTC");
212 return data->timezone; 212 return data->timezone;
213} 213}
214bool OEvent::match( const QRegExp& re )const { 214bool OEvent::match( const QRegExp& re )const {
215 if (data->description.contains( re ) ) 215 if (data->description.contains( re ) )
216 return true; 216 return true;
217 if ( data->note.contains( re ) ) 217 if ( data->note.contains( re ) )
218 return true; 218 return true;
219 if ( data->location.contains( re ) ) 219 if ( data->location.contains( re ) )
220 return true; 220 return true;
221 if ( data->start.toString().contains( re ) ) 221 if ( data->start.toString().contains( re ) )
222 return true; 222 return true;
223 if ( data->end.toString().contains( re ) ) 223 if ( data->end.toString().contains( re ) )
224 return true; 224 return true;
225 return false; 225 return false;
226} 226}
227QString OEvent::toRichText()const { 227QString OEvent::toRichText()const {
228 QString text; 228 QString text;
229 if ( !description().isEmpty() ) { 229 if ( !description().isEmpty() ) {
230 text += "<b>" + QObject::tr( "Description:") + "</b><br>"; 230 text += "<b>" + QObject::tr( "Description:") + "</b><br>";
231 text += Qtopia::escapeString(description() ). 231 text += Qtopia::escapeString(description() ).
232 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 232 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
233 } 233 }
234 if ( startDateTime().isValid() ) { 234 if ( startDateTime().isValid() ) {
235 text += "<b>" + QObject::tr( "Start:") + "</b> "; 235 text += "<b>" + QObject::tr( "Start:") + "</b> ";
236 text += Qtopia::escapeString(startDateTime().toString() ). 236 text += Qtopia::escapeString(startDateTime().toString() ).
237 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 237 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
238 } 238 }
239 if ( endDateTime().isValid() ) { 239 if ( endDateTime().isValid() ) {
240 text += "<b>" + QObject::tr( "End:") + "</b> "; 240 text += "<b>" + QObject::tr( "End:") + "</b> ";
241 text += Qtopia::escapeString(endDateTime().toString() ). 241 text += Qtopia::escapeString(endDateTime().toString() ).
242 replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 242 replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
243 } 243 }
244 if ( !note().isEmpty() ) { 244 if ( !note().isEmpty() ) {
245 text += "<b>" + QObject::tr( "Note:") + "</b><br>"; 245 text += "<b>" + QObject::tr( "Note:") + "</b><br>";
246 text += note(); 246 text += note();
247// text += Qtopia::escapeString(note() ). 247// text += Qtopia::escapeString(note() ).
248// replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 248// replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
249 } 249 }
250 return text; 250 return text;
251} 251}
252QString OEvent::toShortText()const { 252QString OEvent::toShortText()const {
253 return description(); 253 QString text;
254 text += QString::number( startDateTime().date().day() );
255 text += ".";
256 text += QString::number( startDateTime().date().month() );
257 text += ".";
258 text += QString::number( startDateTime().date().year() );
259 text += " ";
260 text += QString::number( startDateTime().time().hour() );
261 text += ":";
262 text += QString::number( startDateTime().time().minute() );
263 text += " - ";
264 text += description();
265 return text;
254} 266}
255QString OEvent::type()const { 267QString OEvent::type()const {
256 return QString::fromLatin1("OEvent"); 268 return QString::fromLatin1("OEvent");
257} 269}
258QString OEvent::recordField( int /*id */ )const { 270QString OEvent::recordField( int /*id */ )const {
259 return QString::null; 271 return QString::null;
260} 272}
261int OEvent::rtti() { 273int OEvent::rtti() {
262 return OPimResolver::DateBook; 274 return OPimResolver::DateBook;
263} 275}
264bool OEvent::loadFromStream( QDataStream& ) { 276bool OEvent::loadFromStream( QDataStream& ) {
265 return true; 277 return true;
266} 278}
267bool OEvent::saveToStream( QDataStream& )const { 279bool OEvent::saveToStream( QDataStream& )const {
268 return true; 280 return true;
269} 281}
270void OEvent::changeOrModify() { 282void OEvent::changeOrModify() {
271 if ( data->count != 1 ) { 283 if ( data->count != 1 ) {
272 data->deref(); 284 data->deref();
273 Data* d2 = new Data; 285 Data* d2 = new Data;
274 d2->description = data->description; 286 d2->description = data->description;
275 d2->location = data->location; 287 d2->location = data->location;
276 288
277 if (data->manager ) 289 if (data->manager )
278 d2->manager = new OPimNotifyManager( *data->manager ); 290 d2->manager = new OPimNotifyManager( *data->manager );
279 291
280 if ( data->recur ) 292 if ( data->recur )
281 d2->recur = new ORecur( *data->recur ); 293 d2->recur = new ORecur( *data->recur );
282 294
283 d2->note = data->note; 295 d2->note = data->note;
284 d2->created = data->created; 296 d2->created = data->created;
285 d2->start = data->start; 297 d2->start = data->start;
286 d2->end = data->end; 298 d2->end = data->end;
287 d2->isAllDay = data->isAllDay; 299 d2->isAllDay = data->isAllDay;
288 d2->timezone = data->timezone; 300 d2->timezone = data->timezone;
289 d2->parent = data->parent; 301 d2->parent = data->parent;
290 302
291 if ( data->child ) { 303 if ( data->child ) {
292 d2->child = new QArray<int>( *data->child ); 304 d2->child = new QArray<int>( *data->child );
293 d2->child->detach(); 305 d2->child->detach();
294 } 306 }
295 307
296 data = d2; 308 data = d2;
297 } 309 }
298} 310}
299void OEvent::deref() { 311void OEvent::deref() {
300 if ( data->deref() ) { 312 if ( data->deref() ) {
301 delete data; 313 delete data;
302 data = 0; 314 data = 0;
303 } 315 }
304} 316}
305// FIXME 317// FIXME
306QMap<int, QString> OEvent::toMap()const { 318QMap<int, QString> OEvent::toMap()const {
307 return QMap<int, QString>(); 319 return QMap<int, QString>();
308} 320}
309QMap<QString, QString> OEvent::toExtraMap()const { 321QMap<QString, QString> OEvent::toExtraMap()const {
310 return QMap<QString, QString>(); 322 return QMap<QString, QString>();
311} 323}
312int OEvent::parent()const { 324int OEvent::parent()const {
313 return data->parent; 325 return data->parent;
314} 326}
315void OEvent::setParent( int uid ) { 327void OEvent::setParent( int uid ) {
316 changeOrModify(); 328 changeOrModify();
317 data->parent = uid; 329 data->parent = uid;
318} 330}
319QArray<int> OEvent::children() const{ 331QArray<int> OEvent::children() const{
320 if (!data->child) return QArray<int>(); 332 if (!data->child) return QArray<int>();
321 else 333 else
322 return data->child->copy(); 334 return data->child->copy();
323} 335}
324void OEvent::setChildren( const QArray<int>& arr ) { 336void OEvent::setChildren( const QArray<int>& arr ) {
325 changeOrModify(); 337 changeOrModify();
326 if (data->child) delete data->child; 338 if (data->child) delete data->child;
327 339
328 data->child = new QArray<int>( arr ); 340 data->child = new QArray<int>( arr );
329 data->child->detach(); 341 data->child->detach();
330} 342}
331void OEvent::addChild( int uid ) { 343void OEvent::addChild( int uid ) {
332 changeOrModify(); 344 changeOrModify();
333 if (!data->child ) { 345 if (!data->child ) {
334 data->child = new QArray<int>(1); 346 data->child = new QArray<int>(1);
335 (*data->child)[0] = uid; 347 (*data->child)[0] = uid;
336 }else{ 348 }else{
337 int count = data->child->count(); 349 int count = data->child->count();
338 data->child->resize( count + 1 ); 350 data->child->resize( count + 1 );
339 (*data->child)[count] = uid; 351 (*data->child)[count] = uid;
340 } 352 }
341} 353}
342void OEvent::removeChild( int uid ) { 354void OEvent::removeChild( int uid ) {
343 if (!data->child || !data->child->contains( uid ) ) return; 355 if (!data->child || !data->child->contains( uid ) ) return;
344 changeOrModify(); 356 changeOrModify();
345 QArray<int> newAr( data->child->count() - 1 ); 357 QArray<int> newAr( data->child->count() - 1 );
346 int j = 0; 358 int j = 0;
347 uint count = data->child->count(); 359 uint count = data->child->count();
348 for ( uint i = 0; i < count; i++ ) { 360 for ( uint i = 0; i < count; i++ ) {
349 if ( (*data->child)[i] != uid ) { 361 if ( (*data->child)[i] != uid ) {