summaryrefslogtreecommitdiffabout
path: root/libkcal/incidence.cpp
Unidiff
Diffstat (limited to 'libkcal/incidence.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libkcal/incidence.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp
index fe9f854..7dd9bd2 100644
--- a/libkcal/incidence.cpp
+++ b/libkcal/incidence.cpp
@@ -427,192 +427,198 @@ void Incidence::setSummary(const QString &summary)
427QString Incidence::summary() const 427QString Incidence::summary() const
428{ 428{
429 return mSummary; 429 return mSummary;
430} 430}
431void Incidence::checkCategories() 431void Incidence::checkCategories()
432{ 432{
433 mHoliday = mCategories.contains("Holiday") || mCategories.contains(i18n("Holiday")); 433 mHoliday = mCategories.contains("Holiday") || mCategories.contains(i18n("Holiday"));
434 mBirthday = mCategories.contains("Birthday") || mCategories.contains(i18n("Birthday")); 434 mBirthday = mCategories.contains("Birthday") || mCategories.contains(i18n("Birthday"));
435 mAnniversary = mCategories.contains("Anniversary") || mCategories.contains(i18n("Anniversary")); 435 mAnniversary = mCategories.contains("Anniversary") || mCategories.contains(i18n("Anniversary"));
436} 436}
437 437
438void Incidence::addCategories(const QStringList &categories, bool addToRelations ) //addToRelations = false 438void Incidence::addCategories(const QStringList &categories, bool addToRelations ) //addToRelations = false
439{ 439{
440 if (mReadOnly) return; 440 if (mReadOnly) return;
441 int i; 441 int i;
442 for( i = 0; i < categories.count(); ++i ) { 442 for( i = 0; i < categories.count(); ++i ) {
443 if ( !mCategories.contains (categories[i])) 443 if ( !mCategories.contains (categories[i]))
444 mCategories.append( categories[i] ); 444 mCategories.append( categories[i] );
445 } 445 }
446 checkCategories(); 446 checkCategories();
447 updated(); 447 updated();
448 if ( addToRelations ) { 448 if ( addToRelations ) {
449 Incidence * inc; 449 Incidence * inc;
450 QPtrList<Incidence> Relations = relations(); 450 QPtrList<Incidence> Relations = relations();
451 for (inc=Relations.first();inc;inc=Relations.next()) { 451 for (inc=Relations.first();inc;inc=Relations.next()) {
452 inc->addCategories( categories, true ); 452 inc->addCategories( categories, true );
453 } 453 }
454 } 454 }
455} 455}
456 456
457void Incidence::setCategories(const QStringList &categories, bool setForRelations ) //setForRelations = false 457void Incidence::setCategories(const QStringList &categories, bool setForRelations ) //setForRelations = false
458{ 458{
459 if (mReadOnly) return; 459 if (mReadOnly) return;
460 mCategories = categories; 460 mCategories = categories;
461 checkCategories(); 461 checkCategories();
462 updated(); 462 updated();
463 if ( setForRelations ) { 463 if ( setForRelations ) {
464 Incidence * inc; 464 Incidence * inc;
465 QPtrList<Incidence> Relations = relations(); 465 QPtrList<Incidence> Relations = relations();
466 for (inc=Relations.first();inc;inc=Relations.next()) { 466 for (inc=Relations.first();inc;inc=Relations.next()) {
467 inc->setCategories( categories, true ); 467 inc->setCategories( categories, true );
468 } 468 }
469 } 469 }
470} 470}
471 471
472// TODO: remove setCategories(QString) function 472// TODO: remove setCategories(QString) function
473void Incidence::setCategories(const QString &catStr) 473void Incidence::setCategories(const QString &catStr)
474{ 474{
475 if (mReadOnly) return; 475 if (mReadOnly) return;
476 mCategories.clear(); 476 mCategories.clear();
477 477
478 if (catStr.isEmpty()) return; 478 if (catStr.isEmpty()) return;
479 479
480 mCategories = QStringList::split(",",catStr); 480 mCategories = QStringList::split(",",catStr);
481 481
482 QStringList::Iterator it; 482 QStringList::Iterator it;
483 for(it = mCategories.begin();it != mCategories.end(); ++it) { 483 for(it = mCategories.begin();it != mCategories.end(); ++it) {
484 *it = (*it).stripWhiteSpace(); 484 *it = (*it).stripWhiteSpace();
485 } 485 }
486 checkCategories(); 486 checkCategories();
487 updated(); 487 updated();
488} 488}
489// using this makes filtering 3 times faster 489// using this makes filtering 3 times faster
490QStringList* Incidence::categoriesP() 490QStringList* Incidence::categoriesP()
491{ 491{
492 return &mCategories; 492 return &mCategories;
493} 493}
494 494
495QStringList Incidence::categories() const 495QStringList Incidence::categories() const
496{ 496{
497 return mCategories; 497 return mCategories;
498} 498}
499 499
500QString Incidence::categoriesStr() 500QString Incidence::categoriesStr()
501{ 501{
502 return mCategories.join(","); 502 return mCategories.join(",");
503} 503}
504QString Incidence::categoriesStrWithSpace() 504QString Incidence::categoriesStrWithSpace()
505{ 505{
506 return mCategories.join(", "); 506 return mCategories.join(", ");
507} 507}
508 508
509void Incidence::setRelatedToUid(const QString &relatedToUid) 509void Incidence::setRelatedToUid(const QString &relatedToUid)
510{ 510{
511 if (mReadOnly) return; 511 if (mReadOnly) return;
512 mRelatedToUid = relatedToUid; 512 mRelatedToUid = relatedToUid;
513} 513}
514void Incidence::clearRelations() 514void Incidence::clearRelations()
515{ 515{
516 mRelatedTo = 0; 516 mRelatedTo = 0;
517 mRelations.clear(); 517 mRelations.clear();
518} 518}
519QString Incidence::relatedToUid() const 519QString Incidence::relatedToUid() const
520{ 520{
521 return mRelatedToUid; 521 return mRelatedToUid;
522} 522}
523void Incidence::resetRelatedTo()
524{
525 QString store = mRelatedToUid;
526 setRelatedTo( 0 );
527 mRelatedToUid = store;
528}
523 529
524void Incidence::setRelatedTo(Incidence *relatedTo) 530void Incidence::setRelatedTo(Incidence *relatedTo)
525{ 531{
526 //qDebug("Incidence::setRelatedTo %d ", relatedTo); 532 //qDebug("Incidence::setRelatedTo %d ", relatedTo);
527 //qDebug("setRelatedTo(Incidence *relatedTo) %s %s", summary().latin1(), relatedTo->summary().latin1() ); 533 //qDebug("setRelatedTo(Incidence *relatedTo) %s %s", summary().latin1(), relatedTo->summary().latin1() );
528 if (mReadOnly || mRelatedTo == relatedTo) return; 534 if (mReadOnly || mRelatedTo == relatedTo) return;
529 if(mRelatedTo) { 535 if(mRelatedTo) {
530 // updated(); 536 // updated();
531 mRelatedTo->removeRelation(this); 537 mRelatedTo->removeRelation(this);
532 } 538 }
533 mRelatedTo = relatedTo; 539 mRelatedTo = relatedTo;
534 if (mRelatedTo) { 540 if (mRelatedTo) {
535 mRelatedTo->addRelation(this); 541 mRelatedTo->addRelation(this);
536 mRelatedToUid = mRelatedTo->uid(); 542 mRelatedToUid = mRelatedTo->uid();
537 } else { 543 } else {
538 mRelatedToUid = ""; 544 mRelatedToUid = "";
539 } 545 }
540} 546}
541 547
542Incidence *Incidence::relatedTo() const 548Incidence *Incidence::relatedTo() const
543{ 549{
544 return mRelatedTo; 550 return mRelatedTo;
545} 551}
546 552
547QPtrList<Incidence> Incidence::relations() const 553QPtrList<Incidence> Incidence::relations() const
548{ 554{
549 return mRelations; 555 return mRelations;
550} 556}
551 557
552void Incidence::addRelationsToList(QPtrList<Incidence> *rel) 558void Incidence::addRelationsToList(QPtrList<Incidence> *rel)
553{ 559{
554 Incidence* inc; 560 Incidence* inc;
555 QPtrList<Incidence> Relations = relations(); 561 QPtrList<Incidence> Relations = relations();
556 for (inc=Relations.first();inc;inc=Relations.next()) { 562 for (inc=Relations.first();inc;inc=Relations.next()) {
557 inc->addRelationsToList( rel ); 563 inc->addRelationsToList( rel );
558 } 564 }
559 if ( rel->findRef( this ) == -1 ) 565 if ( rel->findRef( this ) == -1 )
560 rel->append( this ); 566 rel->append( this );
561} 567}
562 568
563void Incidence::addRelation(Incidence *event) 569void Incidence::addRelation(Incidence *event)
564{ 570{
565 setLastModifiedSubInvalid(); 571 setLastModifiedSubInvalid();
566 if( mRelations.findRef( event ) == -1 ) { 572 if( mRelations.findRef( event ) == -1 ) {
567 mRelations.append(event); 573 mRelations.append(event);
568 //updated(); 574 //updated();
569 } 575 }
570} 576}
571 577
572void Incidence::removeRelation(Incidence *event) 578void Incidence::removeRelation(Incidence *event)
573{ 579{
574 setLastModifiedSubInvalid(); 580 setLastModifiedSubInvalid();
575 mRelations.removeRef(event); 581 mRelations.removeRef(event);
576// if (event->getRelatedTo() == this) event->setRelatedTo(0); 582// if (event->getRelatedTo() == this) event->setRelatedTo(0);
577} 583}
578 584
579bool Incidence::recursOn(const QDate &qd) const 585bool Incidence::recursOn(const QDate &qd) const
580{ 586{
581 if (mRecurrence && mRecurrence->recursOnPure(qd) && !isException(qd)) return true; 587 if (mRecurrence && mRecurrence->recursOnPure(qd) && !isException(qd)) return true;
582 else return false; 588 else return false;
583} 589}
584 590
585void Incidence::setExDates(const DateList &exDates) 591void Incidence::setExDates(const DateList &exDates)
586{ 592{
587 if (mReadOnly) return; 593 if (mReadOnly) return;
588 mExDates = exDates; 594 mExDates = exDates;
589 recurrence()->setRecurExDatesCount(mExDates.count()); 595 recurrence()->setRecurExDatesCount(mExDates.count());
590 596
591 updated(); 597 updated();
592} 598}
593 599
594void Incidence::addExDate(const QDate &date) 600void Incidence::addExDate(const QDate &date)
595{ 601{
596 if (mReadOnly) return; 602 if (mReadOnly) return;
597 mExDates.append(date); 603 mExDates.append(date);
598 604
599 recurrence()->setRecurExDatesCount(mExDates.count()); 605 recurrence()->setRecurExDatesCount(mExDates.count());
600 606
601 updated(); 607 updated();
602} 608}
603 609
604DateList Incidence::exDates() const 610DateList Incidence::exDates() const
605{ 611{
606 return mExDates; 612 return mExDates;
607} 613}
608 614
609bool Incidence::isException(const QDate &date) const 615bool Incidence::isException(const QDate &date) const
610{ 616{
611 DateList::ConstIterator it; 617 DateList::ConstIterator it;
612 for( it = mExDates.begin(); it != mExDates.end(); ++it ) { 618 for( it = mExDates.begin(); it != mExDates.end(); ++it ) {
613 if ( (*it) == date ) { 619 if ( (*it) == date ) {
614 return true; 620 return true;
615 } 621 }
616 } 622 }
617 623
618 return false; 624 return false;