summaryrefslogtreecommitdiffabout
path: root/libkcal/calendar.cpp
Unidiff
Diffstat (limited to 'libkcal/calendar.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/calendar.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libkcal/calendar.cpp b/libkcal/calendar.cpp
index b1806ee..8535191 100644
--- a/libkcal/calendar.cpp
+++ b/libkcal/calendar.cpp
@@ -255,257 +255,257 @@ const QString &Calendar::getEmail()
255 return mOwnerEmail; 255 return mOwnerEmail;
256} 256}
257 257
258void Calendar::setEmail(const QString &e) 258void Calendar::setEmail(const QString &e)
259{ 259{
260 mOwnerEmail = e; 260 mOwnerEmail = e;
261 261
262 setModified( true ); 262 setModified( true );
263} 263}
264 264
265void Calendar::setFilter(CalFilter *filter) 265void Calendar::setFilter(CalFilter *filter)
266{ 266{
267 mFilter = filter; 267 mFilter = filter;
268} 268}
269 269
270CalFilter *Calendar::filter() 270CalFilter *Calendar::filter()
271{ 271{
272 return mFilter; 272 return mFilter;
273} 273}
274 274
275QPtrList<Incidence> Calendar::incidences() 275QPtrList<Incidence> Calendar::incidences()
276{ 276{
277 QPtrList<Incidence> incidences; 277 QPtrList<Incidence> incidences;
278 278
279 Incidence *i; 279 Incidence *i;
280 280
281 QPtrList<Event> e = events(); 281 QPtrList<Event> e = events();
282 for( i = e.first(); i; i = e.next() ) incidences.append( i ); 282 for( i = e.first(); i; i = e.next() ) incidences.append( i );
283 283
284 QPtrList<Todo> t = todos(); 284 QPtrList<Todo> t = todos();
285 for( i = t.first(); i; i = t.next() ) incidences.append( i ); 285 for( i = t.first(); i; i = t.next() ) incidences.append( i );
286 286
287 QPtrList<Journal> j = journals(); 287 QPtrList<Journal> j = journals();
288 for( i = j.first(); i; i = j.next() ) incidences.append( i ); 288 for( i = j.first(); i; i = j.next() ) incidences.append( i );
289 289
290 return incidences; 290 return incidences;
291} 291}
292 292
293void Calendar::resetPilotStat(int id ) 293void Calendar::resetPilotStat(int id )
294{ 294{
295 QPtrList<Incidence> incidences; 295 QPtrList<Incidence> incidences;
296 296
297 Incidence *i; 297 Incidence *i;
298 298
299 QPtrList<Event> e = rawEvents(); 299 QPtrList<Event> e = rawEvents();
300 for( i = e.first(); i; i = e.next() ) i->setPilotId( id ); 300 for( i = e.first(); i; i = e.next() ) i->setPilotId( id );
301 301
302 QPtrList<Todo> t = rawTodos(); 302 QPtrList<Todo> t = rawTodos();
303 for( i = t.first(); i; i = t.next() ) i->setPilotId( id ); 303 for( i = t.first(); i; i = t.next() ) i->setPilotId( id );
304 304
305 QPtrList<Journal> j = journals(); 305 QPtrList<Journal> j = journals();
306 for( i = j.first(); i; i = j.next() ) i->setPilotId( id ); 306 for( i = j.first(); i; i = j.next() ) i->setPilotId( id );
307} 307}
308void Calendar::resetTempSyncStat() 308void Calendar::resetTempSyncStat()
309{ 309{
310 QPtrList<Incidence> incidences; 310 QPtrList<Incidence> incidences;
311 311
312 Incidence *i; 312 Incidence *i;
313 313
314 QPtrList<Event> e = rawEvents(); 314 QPtrList<Event> e = rawEvents();
315 for( i = e.first(); i; i = e.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 315 for( i = e.first(); i; i = e.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
316 316
317 QPtrList<Todo> t = rawTodos(); 317 QPtrList<Todo> t = rawTodos();
318 for( i = t.first(); i; i = t.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 318 for( i = t.first(); i; i = t.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
319 319
320 QPtrList<Journal> j = journals(); 320 QPtrList<Journal> j = journals();
321 for( i = j.first(); i; i = j.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); 321 for( i = j.first(); i; i = j.next() ) i->setTempSyncStat( SYNC_TEMPSTATE_INITIAL );
322} 322}
323QPtrList<Incidence> Calendar::rawIncidences() 323QPtrList<Incidence> Calendar::rawIncidences()
324{ 324{
325 QPtrList<Incidence> incidences; 325 QPtrList<Incidence> incidences;
326 326
327 Incidence *i; 327 Incidence *i;
328 328
329 QPtrList<Event> e = rawEvents(); 329 QPtrList<Event> e = rawEvents();
330 for( i = e.first(); i; i = e.next() ) incidences.append( i ); 330 for( i = e.first(); i; i = e.next() ) incidences.append( i );
331 331
332 QPtrList<Todo> t = rawTodos(); 332 QPtrList<Todo> t = rawTodos();
333 for( i = t.first(); i; i = t.next() ) incidences.append( i ); 333 for( i = t.first(); i; i = t.next() ) incidences.append( i );
334 334
335 QPtrList<Journal> j = journals(); 335 QPtrList<Journal> j = journals();
336 for( i = j.first(); i; i = j.next() ) incidences.append( i ); 336 for( i = j.first(); i; i = j.next() ) incidences.append( i );
337 337
338 return incidences; 338 return incidences;
339} 339}
340 340
341QPtrList<Event> Calendar::events( const QDate &date, bool sorted ) 341QPtrList<Event> Calendar::events( const QDate &date, bool sorted )
342{ 342{
343 QPtrList<Event> el = rawEventsForDate(date,sorted); 343 QPtrList<Event> el = rawEventsForDate(date,sorted);
344 mFilter->apply(&el); 344 mFilter->apply(&el);
345 return el; 345 return el;
346} 346}
347 347
348QPtrList<Event> Calendar::events( const QDateTime &qdt ) 348QPtrList<Event> Calendar::events( const QDateTime &qdt )
349{ 349{
350 QPtrList<Event> el = rawEventsForDate(qdt); 350 QPtrList<Event> el = rawEventsForDate(qdt);
351 mFilter->apply(&el); 351 mFilter->apply(&el);
352 return el; 352 return el;
353} 353}
354 354
355QPtrList<Event> Calendar::events( const QDate &start, const QDate &end, 355QPtrList<Event> Calendar::events( const QDate &start, const QDate &end,
356 bool inclusive) 356 bool inclusive)
357{ 357{
358 QPtrList<Event> el = rawEvents(start,end,inclusive); 358 QPtrList<Event> el = rawEvents(start,end,inclusive);
359 mFilter->apply(&el); 359 mFilter->apply(&el);
360 return el; 360 return el;
361} 361}
362 362
363QPtrList<Event> Calendar::events() 363QPtrList<Event> Calendar::events()
364{ 364{
365 QPtrList<Event> el = rawEvents(); 365 QPtrList<Event> el = rawEvents();
366 mFilter->apply(&el); 366 mFilter->apply(&el);
367 return el; 367 return el;
368} 368}
369void Calendar::addIncidenceBranch(Incidence *i) 369void Calendar::addIncidenceBranch(Incidence *i)
370{ 370{
371 addIncidence( i ); 371 addIncidence( i );
372 Incidence * inc; 372 Incidence * inc;
373 QPtrList<Incidence> Relations = i->relations(); 373 QPtrList<Incidence> Relations = i->relations();
374 for (inc=Relations.first();inc;inc=Relations.next()) { 374 for (inc=Relations.first();inc;inc=Relations.next()) {
375 addIncidenceBranch( inc ); 375 addIncidenceBranch( inc );
376 } 376 }
377} 377}
378 378
379bool Calendar::addIncidence(Incidence *i) 379bool Calendar::addIncidence(Incidence *i)
380{ 380{
381 Incidence::AddVisitor<Calendar> v(this); 381 Incidence::AddVisitor<Calendar> v(this);
382 if ( i->calID() == 0 ) 382 if ( i->calID() == 0 )
383 i->setCalID( mDefaultCalendar ); 383 i->setCalID_block( mDefaultCalendar );
384 i->setCalEnabled( true ); 384 i->setCalEnabled( true );
385 return i->accept(v); 385 return i->accept(v);
386} 386}
387void Calendar::deleteIncidence(Incidence *in) 387void Calendar::deleteIncidence(Incidence *in)
388{ 388{
389 if ( in->typeID() == eventID ) 389 if ( in->typeID() == eventID )
390 deleteEvent( (Event*) in ); 390 deleteEvent( (Event*) in );
391 else if ( in->typeID() == todoID ) 391 else if ( in->typeID() == todoID )
392 deleteTodo( (Todo*) in); 392 deleteTodo( (Todo*) in);
393 else if ( in->typeID() == journalID ) 393 else if ( in->typeID() == journalID )
394 deleteJournal( (Journal*) in ); 394 deleteJournal( (Journal*) in );
395} 395}
396 396
397Incidence* Calendar::incidence( const QString& uid ) 397Incidence* Calendar::incidence( const QString& uid )
398{ 398{
399 Incidence* i; 399 Incidence* i;
400 400
401 if( (i = todo( uid )) != 0 ) 401 if( (i = todo( uid )) != 0 )
402 return i; 402 return i;
403 if( (i = event( uid )) != 0 ) 403 if( (i = event( uid )) != 0 )
404 return i; 404 return i;
405 if( (i = journal( uid )) != 0 ) 405 if( (i = journal( uid )) != 0 )
406 return i; 406 return i;
407 407
408 return 0; 408 return 0;
409} 409}
410 410
411QPtrList<Todo> Calendar::todos() 411QPtrList<Todo> Calendar::todos()
412{ 412{
413 QPtrList<Todo> tl = rawTodos(); 413 QPtrList<Todo> tl = rawTodos();
414 mFilter->apply( &tl ); 414 mFilter->apply( &tl );
415 return tl; 415 return tl;
416} 416}
417 417
418// When this is called, the todo have already been added to the calendar. 418// When this is called, the todo have already been added to the calendar.
419// This method is only about linking related todos 419// This method is only about linking related todos
420void Calendar::setupRelations( Incidence *incidence ) 420void Calendar::setupRelations( Incidence *incidence )
421{ 421{
422 QString uid = incidence->uid(); 422 QString uid = incidence->uid();
423 //qDebug("Calendar::setupRelations "); 423 //qDebug("Calendar::setupRelations ");
424 // First, go over the list of orphans and see if this is their parent 424 // First, go over the list of orphans and see if this is their parent
425 while( Incidence* i = mOrphans[ uid ] ) { 425 while( Incidence* i = mOrphans[ uid ] ) {
426 mOrphans.remove( uid ); 426 mOrphans.remove( uid );
427 i->setRelatedTo( incidence ); 427 i->setRelatedTo( incidence );
428 incidence->addRelation( i ); 428 incidence->addRelation( i );
429 mOrphanUids.remove( i->uid() ); 429 mOrphanUids.remove( i->uid() );
430 } 430 }
431 431
432 // Now see about this incidences parent 432 // Now see about this incidences parent
433 if( !incidence->relatedTo() && !incidence->relatedToUid().isEmpty() ) { 433 if( !incidence->relatedTo() && !incidence->relatedToUid().isEmpty() ) {
434 // This incidence has a uid it is related to, but is not registered to it yet 434 // This incidence has a uid it is related to, but is not registered to it yet
435 // Try to find it 435 // Try to find it
436 Incidence* parent = this->incidence( incidence->relatedToUid() ); 436 Incidence* parent = this->incidence( incidence->relatedToUid() );
437 if( parent ) { 437 if( parent ) {
438 // Found it 438 // Found it
439 incidence->setRelatedTo( parent ); 439 incidence->setRelatedTo( parent );
440 parent->addRelation( incidence ); 440 parent->addRelation( incidence );
441 } else { 441 } else {
442 // Not found, put this in the mOrphans list 442 // Not found, put this in the mOrphans list
443 mOrphans.insert( incidence->relatedToUid(), incidence ); 443 mOrphans.insert( incidence->relatedToUid(), incidence );
444 mOrphanUids.insert( incidence->uid(), incidence ); 444 mOrphanUids.insert( incidence->uid(), incidence );
445 } 445 }
446 } 446 }
447} 447}
448 448
449// If a task with subtasks is deleted, move it's subtasks to the orphans list 449// If a task with subtasks is deleted, move it's subtasks to the orphans list
450void Calendar::removeRelations( Incidence *incidence ) 450void Calendar::removeRelations( Incidence *incidence )
451{ 451{
452 // qDebug("Calendar::removeRelations "); 452 // qDebug("Calendar::removeRelations ");
453 QString uid = incidence->uid(); 453 QString uid = incidence->uid();
454 454
455 QPtrList<Incidence> relations = incidence->relations(); 455 QPtrList<Incidence> relations = incidence->relations();
456 for( Incidence* i = relations.first(); i; i = relations.next() ) 456 for( Incidence* i = relations.first(); i; i = relations.next() )
457 if( !mOrphanUids.find( i->uid() ) ) { 457 if( !mOrphanUids.find( i->uid() ) ) {
458 mOrphans.insert( uid, i ); 458 mOrphans.insert( uid, i );
459 mOrphanUids.insert( i->uid(), i ); 459 mOrphanUids.insert( i->uid(), i );
460 i->setRelatedTo( 0 ); 460 i->setRelatedTo( 0 );
461 i->setRelatedToUid( uid ); 461 i->setRelatedToUid( uid );
462 } 462 }
463 463
464 // If this incidence is related to something else, tell that about it 464 // If this incidence is related to something else, tell that about it
465 if( incidence->relatedTo() ) 465 if( incidence->relatedTo() )
466 incidence->relatedTo()->removeRelation( incidence ); 466 incidence->relatedTo()->removeRelation( incidence );
467 467
468 // Remove this one from the orphans list 468 // Remove this one from the orphans list
469 if( mOrphanUids.remove( uid ) ) { 469 if( mOrphanUids.remove( uid ) ) {
470 QString r2uid = incidence->relatedToUid(); 470 QString r2uid = incidence->relatedToUid();
471 QPtrList<Incidence> tempList; 471 QPtrList<Incidence> tempList;
472 while( Incidence* i = mOrphans[ r2uid ] ) { 472 while( Incidence* i = mOrphans[ r2uid ] ) {
473 mOrphans.remove( r2uid ); 473 mOrphans.remove( r2uid );
474 if ( i != incidence ) tempList.append( i ); 474 if ( i != incidence ) tempList.append( i );
475 } 475 }
476 Incidence* inc = tempList.first(); 476 Incidence* inc = tempList.first();
477 while ( inc ) { 477 while ( inc ) {
478 mOrphans.insert( r2uid, inc ); 478 mOrphans.insert( r2uid, inc );
479 inc = tempList.next(); 479 inc = tempList.next();
480 } 480 }
481 } 481 }
482 // LR: and another big bad bug found 482 // LR: and another big bad bug found
483#if 0 483#if 0
484 // This incidence is located in the orphans list - it should be removed 484 // This incidence is located in the orphans list - it should be removed
485 if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) { 485 if( !( incidence->relatedTo() != 0 && mOrphans.remove( incidence->relatedTo()->uid() ) ) ) {
486 // Removing wasn't that easy 486 // Removing wasn't that easy
487 for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) { 487 for( QDictIterator<Incidence> it( mOrphans ); it.current(); ++it ) {
488 if( it.current()->uid() == uid ) { 488 if( it.current()->uid() == uid ) {
489 mOrphans.remove( it.currentKey() ); 489 mOrphans.remove( it.currentKey() );
490 break; 490 break;
491 } 491 }
492 } 492 }
493 } 493 }
494#endif 494#endif
495} 495}
496 496
497void Calendar::registerObserver( Observer *observer ) 497void Calendar::registerObserver( Observer *observer )
498{ 498{
499 mObserver = observer; 499 mObserver = observer;
500 mNewObserver = true; 500 mNewObserver = true;
501} 501}
502 502
503void Calendar::setModified( bool modified ) 503void Calendar::setModified( bool modified )
504{ 504{
505 if ( mObserver ) mObserver->calendarModified( modified, this ); 505 if ( mObserver ) mObserver->calendarModified( modified, this );
506 if ( modified != mModified || mNewObserver ) { 506 if ( modified != mModified || mNewObserver ) {
507 mNewObserver = false; 507 mNewObserver = false;
508 // if ( mObserver ) mObserver->calendarModified( modified, this ); 508 // if ( mObserver ) mObserver->calendarModified( modified, this );
509 mModified = modified; 509 mModified = modified;
510 } 510 }
511} 511}