summaryrefslogtreecommitdiff
authorzecke <zecke>2003-02-19 14:33:49 (UTC)
committer zecke <zecke>2003-02-19 14:33:49 (UTC)
commit5bf8efedcb7cdbf077591cb0a9a46cbe413ad8db (patch) (unidiff)
tree46fad390578dbfe31dbb09c74bec1a453214531c
parentbd6e39ba0c38070d07c76b67a98d2e3ab3f84cb8 (diff)
downloadopie-5bf8efedcb7cdbf077591cb0a9a46cbe413ad8db.zip
opie-5bf8efedcb7cdbf077591cb0a9a46cbe413ad8db.tar.gz
opie-5bf8efedcb7cdbf077591cb0a9a46cbe413ad8db.tar.bz2
time_t a long in our case may be < 0
This unfscks birthdays which occur in 1944 and other prior to starting of unix time
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/backend/event.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/backend/event.cpp b/library/backend/event.cpp
index eb238a4..0003fe9 100644
--- a/library/backend/event.cpp
+++ b/library/backend/event.cpp
@@ -342,532 +342,532 @@ Event::Event( const QMap<int, QString> &map )
342 setCategories( idsFromString( map[DatebookCategory] ) ); 342 setCategories( idsFromString( map[DatebookCategory] ) );
343 setTimeZone( map[TimeZone] ); 343 setTimeZone( map[TimeZone] );
344 setNotes( map[Note] ); 344 setNotes( map[Note] );
345 setStart( TimeConversion::fromUTC( map[StartDateTime].toUInt() ) ); 345 setStart( TimeConversion::fromUTC( map[StartDateTime].toUInt() ) );
346 setEnd( TimeConversion::fromUTC( map[EndDateTime].toUInt() ) ); 346 setEnd( TimeConversion::fromUTC( map[EndDateTime].toUInt() ) );
347 setType( (Event::Type) map[DatebookType].toInt() ); 347 setType( (Event::Type) map[DatebookType].toInt() );
348 setAlarm( ( map[HasAlarm] == "1" ? TRUE : FALSE ), map[AlarmTime].toInt(), (Event::SoundTypeChoice)map[SoundType].toInt() ); 348 setAlarm( ( map[HasAlarm] == "1" ? TRUE : FALSE ), map[AlarmTime].toInt(), (Event::SoundTypeChoice)map[SoundType].toInt() );
349 Event::RepeatPattern p; 349 Event::RepeatPattern p;
350 p.type = (Event::RepeatType) map[ RepeatPatternType ].toInt(); 350 p.type = (Event::RepeatType) map[ RepeatPatternType ].toInt();
351 p.frequency = map[ RepeatPatternFrequency ].toInt(); 351 p.frequency = map[ RepeatPatternFrequency ].toInt();
352 p.position = map[ RepeatPatternPosition ].toInt(); 352 p.position = map[ RepeatPatternPosition ].toInt();
353 p.days = map[ RepeatPatternDays ].toInt(); 353 p.days = map[ RepeatPatternDays ].toInt();
354 p.hasEndDate = map[ RepeatPatternHasEndDate ].toInt(); 354 p.hasEndDate = map[ RepeatPatternHasEndDate ].toInt();
355 p.endDateUTC = map[ RepeatPatternEndDate ].toUInt(); 355 p.endDateUTC = map[ RepeatPatternEndDate ].toUInt();
356 setRepeat( p ); 356 setRepeat( p );
357 357
358 setUid( map[ DatebookUid ].toInt() ); 358 setUid( map[ DatebookUid ].toInt() );
359} 359}
360 360
361/*! 361/*!
362 Destroys an event. 362 Destroys an event.
363*/ 363*/
364Event::~Event() 364Event::~Event()
365{ 365{
366} 366}
367 367
368/*! 368/*!
369 \internal 369 \internal
370*/ 370*/
371int Event::week( const QDate& date ) 371int Event::week( const QDate& date )
372{ 372{
373 // Calculates the week this date is in within that 373 // Calculates the week this date is in within that
374 // month. Equals the "row" is is in in the month view 374 // month. Equals the "row" is is in in the month view
375 int week = 1; 375 int week = 1;
376 QDate tmp( date.year(), date.month(), 1 ); 376 QDate tmp( date.year(), date.month(), 1 );
377 377
378 if ( date.dayOfWeek() < tmp.dayOfWeek() ) 378 if ( date.dayOfWeek() < tmp.dayOfWeek() )
379 ++week; 379 ++week;
380 380
381 week += ( date.day() - 1 ) / 7; 381 week += ( date.day() - 1 ) / 7;
382 return week; 382 return week;
383} 383}
384 384
385/*! 385/*!
386 \internal 386 \internal
387*/ 387*/
388int Event::occurrence( const QDate& date ) 388int Event::occurrence( const QDate& date )
389{ 389{
390 // calculates the number of occurrances of this day of the 390 // calculates the number of occurrances of this day of the
391 // week till the given date (e.g 3rd Wednesday of the month) 391 // week till the given date (e.g 3rd Wednesday of the month)
392 return ( date.day() - 1 ) / 7 + 1; 392 return ( date.day() - 1 ) / 7 + 1;
393} 393}
394 394
395/*! 395/*!
396 \internal 396 \internal
397*/ 397*/
398int Event::dayOfWeek( char day ) 398int Event::dayOfWeek( char day )
399{ 399{
400 int dayOfWeek = 1; 400 int dayOfWeek = 1;
401 char i = Event::MON; 401 char i = Event::MON;
402 while ( !( i & day ) && i <= Event::SUN ) { 402 while ( !( i & day ) && i <= Event::SUN ) {
403 i <<= 1; 403 i <<= 1;
404 ++dayOfWeek; 404 ++dayOfWeek;
405 } 405 }
406 return dayOfWeek; 406 return dayOfWeek;
407} 407}
408 408
409/*! 409/*!
410 \internal 410 \internal
411*/ 411*/
412int Event::monthDiff( const QDate& first, const QDate& second ) 412int Event::monthDiff( const QDate& first, const QDate& second )
413{ 413{
414 return ( second.year() - first.year() ) * 12 + 414 return ( second.year() - first.year() ) * 12 +
415 second.month() - first.month(); 415 second.month() - first.month();
416} 416}
417 417
418/*! 418/*!
419 \internal 419 \internal
420*/ 420*/
421QMap<int, QString> Event::toMap() const 421QMap<int, QString> Event::toMap() const
422{ 422{
423 QMap<int, QString> m; 423 QMap<int, QString> m;
424 424
425 if ( !description().isEmpty() ) 425 if ( !description().isEmpty() )
426 m.insert( DatebookDescription, description() ); 426 m.insert( DatebookDescription, description() );
427 if ( !location().isEmpty() ) 427 if ( !location().isEmpty() )
428 m.insert ( Location, location() ); 428 m.insert ( Location, location() );
429 if ( categories().count() ) 429 if ( categories().count() )
430 m.insert ( DatebookCategory, idsToString( categories() ) ); 430 m.insert ( DatebookCategory, idsToString( categories() ) );
431 if ( !timeZone().isEmpty() ) 431 if ( !timeZone().isEmpty() )
432 m.insert ( TimeZone, timeZone() ); 432 m.insert ( TimeZone, timeZone() );
433 if ( !notes().isEmpty() ) 433 if ( !notes().isEmpty() )
434 m.insert ( Note, notes() ); 434 m.insert ( Note, notes() );
435 435
436 m.insert ( StartDateTime, QString::number( TimeConversion::toUTC( start() ) ) ); 436 m.insert ( StartDateTime, QString::number( TimeConversion::toUTC( start() ) ) );
437 m.insert ( EndDateTime, QString::number( TimeConversion::toUTC( end() ) ) ); 437 m.insert ( EndDateTime, QString::number( TimeConversion::toUTC( end() ) ) );
438 m.insert ( DatebookType, QString::number( (int)type() ) ); 438 m.insert ( DatebookType, QString::number( (int)type() ) );
439 m.insert ( HasAlarm, ( hasAlarm() ? "1" : "0" ) ); 439 m.insert ( HasAlarm, ( hasAlarm() ? "1" : "0" ) );
440 m.insert ( SoundType, QString::number( (int)alarmSound() ) ); 440 m.insert ( SoundType, QString::number( (int)alarmSound() ) );
441 m.insert ( AlarmTime, QString::number( alarmTime() ) ); 441 m.insert ( AlarmTime, QString::number( alarmTime() ) );
442 m.insert ( RepeatPatternType, QString::number( static_cast<int>( repeatPattern().type ) ) ); 442 m.insert ( RepeatPatternType, QString::number( static_cast<int>( repeatPattern().type ) ) );
443 m.insert ( RepeatPatternFrequency, QString::number( repeatPattern().frequency ) ); 443 m.insert ( RepeatPatternFrequency, QString::number( repeatPattern().frequency ) );
444 m.insert ( RepeatPatternPosition, QString::number( repeatPattern().position ) ); 444 m.insert ( RepeatPatternPosition, QString::number( repeatPattern().position ) );
445 m.insert ( RepeatPatternDays, QString::number( repeatPattern().days ) ); 445 m.insert ( RepeatPatternDays, QString::number( repeatPattern().days ) );
446 m.insert ( RepeatPatternHasEndDate, QString::number( static_cast<int>( repeatPattern().hasEndDate ) ) ); 446 m.insert ( RepeatPatternHasEndDate, QString::number( static_cast<int>( repeatPattern().hasEndDate ) ) );
447 m.insert ( RepeatPatternEndDate, QString::number( repeatPattern().endDateUTC ) ); 447 m.insert ( RepeatPatternEndDate, QString::number( repeatPattern().endDateUTC ) );
448 448
449 m.insert( DatebookUid, QString::number( uid()) ); 449 m.insert( DatebookUid, QString::number( uid()) );
450 450
451 return m; 451 return m;
452} 452}
453 453
454/*! 454/*!
455 \internal 455 \internal
456*/ 456*/
457void Event::setRepeat( const RepeatPattern &p ) 457void Event::setRepeat( const RepeatPattern &p )
458{ 458{
459 setRepeat( p.type != NoRepeat, p ); 459 setRepeat( p.type != NoRepeat, p );
460} 460}
461 461
462/*! 462/*!
463 Sets the description of the event to \a s. 463 Sets the description of the event to \a s.
464*/ 464*/
465void Event::setDescription( const QString &s ) 465void Event::setDescription( const QString &s )
466{ 466{
467 descript = s; 467 descript = s;
468} 468}
469 469
470/*! 470/*!
471 Sets the location of the event to \a s. 471 Sets the location of the event to \a s.
472*/ 472*/
473void Event::setLocation( const QString &s ) 473void Event::setLocation( const QString &s )
474{ 474{
475 locat = s; 475 locat = s;
476} 476}
477 477
478// void Event::setCategory( const QString &s ) 478// void Event::setCategory( const QString &s )
479// { 479// {
480// categ = s; 480// categ = s;
481// } 481// }
482 482
483/*! 483/*!
484 \internal 484 \internal
485*/ 485*/
486void Event::setType( Type t ) 486void Event::setType( Type t )
487{ 487{
488 typ = t; 488 typ = t;
489} 489}
490 490
491/*! 491/*!
492 Sets the start date and time of the first or only occurance of this event 492 Sets the start date and time of the first or only occurance of this event
493 to the date and time \a d. \a d should be in local time. 493 to the date and time \a d. \a d should be in local time.
494*/ 494*/
495void Event::setStart( const QDateTime &d ) 495void Event::setStart( const QDateTime &d )
496{ 496{
497 startUTC = TimeConversion::toUTC( d ); 497 startUTC = TimeConversion::toUTC( d );
498} 498}
499 499
500/*! 500/*!
501 \internal 501 \internal
502*/ 502*/
503void Event::setStart( time_t time ) 503void Event::setStart( time_t time )
504{ 504{
505 startUTC = time; 505 startUTC = time;
506} 506}
507 507
508/*! 508/*!
509 Sets the end date and time of the first or only occurance of this event 509 Sets the end date and time of the first or only occurance of this event
510 to the date and time \a d. \a d should be in local time. 510 to the date and time \a d. \a d should be in local time.
511*/ 511*/
512void Event::setEnd( const QDateTime &d ) 512void Event::setEnd( const QDateTime &d )
513{ 513{
514 endUTC = TimeConversion::toUTC( d ); 514 endUTC = TimeConversion::toUTC( d );
515} 515}
516 516
517/*! 517/*!
518 \internal 518 \internal
519*/ 519*/
520void Event::setEnd( time_t time ) 520void Event::setEnd( time_t time )
521{ 521{
522 endUTC = time; 522 endUTC = time;
523} 523}
524 524
525/*! 525/*!
526 \internal 526 \internal
527*/ 527*/
528void Event::setTimeZone( const QString &z ) 528void Event::setTimeZone( const QString &z )
529{ 529{
530 tz = z; 530 tz = z;
531} 531}
532 532
533/*! 533/*!
534 \internal 534 \internal
535*/ 535*/
536void Event::setAlarm( bool b, int minutes, SoundTypeChoice s ) 536void Event::setAlarm( bool b, int minutes, SoundTypeChoice s )
537{ 537{
538 hAlarm = b; 538 hAlarm = b;
539 aMinutes = minutes; 539 aMinutes = minutes;
540 aSound = s; 540 aSound = s;
541} 541}
542 542
543/*! 543/*!
544 \internal 544 \internal
545*/ 545*/
546void Event::setRepeat( bool b, const RepeatPattern &p ) 546void Event::setRepeat( bool b, const RepeatPattern &p )
547{ 547{
548 hRepeat = b; 548 hRepeat = b;
549 pattern = p; 549 pattern = p;
550} 550}
551 551
552/*! 552/*!
553 Sets the notes for the event to \a n. 553 Sets the notes for the event to \a n.
554*/ 554*/
555void Event::setNotes( const QString &n ) 555void Event::setNotes( const QString &n )
556{ 556{
557 note = n; 557 note = n;
558} 558}
559 559
560/*! 560/*!
561 Returns the description of the event. 561 Returns the description of the event.
562*/ 562*/
563const QString &Event::description() const 563const QString &Event::description() const
564{ 564{
565 return descript; 565 return descript;
566} 566}
567 567
568/*! 568/*!
569 Returns the location of the event. 569 Returns the location of the event.
570*/ 570*/
571const QString &Event::location() const 571const QString &Event::location() const
572{ 572{
573 return locat; 573 return locat;
574} 574}
575 575
576// QString Event::category() const 576// QString Event::category() const
577// { 577// {
578// return categ; 578// return categ;
579// } 579// }
580 580
581/*! 581/*!
582 \internal 582 \internal
583*/ 583*/
584Event::Type Event::type() const 584Event::Type Event::type() const
585{ 585{
586 return typ; 586 return typ;
587} 587}
588/* 588/*
589QDateTime Event::start() const { 589QDateTime Event::start() const {
590 return start( TRUE ); 590 return start( TRUE );
591} 591}
592*/ 592*/
593/*! 593/*!
594 \internal 594 \internal
595*/ 595*/
596QDateTime Event::start( bool actual ) const 596QDateTime Event::start( bool actual ) const
597{ 597{
598 QDateTime dt = (startUTC > 0) ? TimeConversion::fromUTC( startUTC ) : QDateTime::currentDateTime(); 598 QDateTime dt = TimeConversion::fromUTC( startUTC );
599 599
600 if ( actual && typ == AllDay ) { 600 if ( actual && typ == AllDay ) {
601 QTime t = dt.time(); 601 QTime t = dt.time();
602 t.setHMS( 0, 0, 0 ); 602 t.setHMS( 0, 0, 0 );
603 dt.setTime( t ); 603 dt.setTime( t );
604 } 604 }
605 return dt; 605 return dt;
606} 606}
607/* 607/*
608QDateTime Event::end() const { 608QDateTime Event::end() const {
609 return end( TRUE ); 609 return end( TRUE );
610} 610}
611*/ 611*/
612/*! 612/*!
613 \internal 613 \internal
614*/ 614*/
615QDateTime Event::end( bool actual ) const 615QDateTime Event::end( bool actual ) const
616{ 616{
617 QDateTime dt = (endUTC > 0) ? TimeConversion::fromUTC( endUTC ) : QDateTime::currentDateTime(); 617 QDateTime dt = TimeConversion::fromUTC( endUTC );
618 618
619 if ( actual && typ == AllDay ) { 619 if ( actual && typ == AllDay ) {
620 QTime t = dt.time(); 620 QTime t = dt.time();
621 t.setHMS( 23, 59, 59 ); 621 t.setHMS( 23, 59, 59 );
622 dt.setTime( t ); 622 dt.setTime( t );
623 } 623 }
624 return dt; 624 return dt;
625} 625}
626 626
627/*! 627/*!
628 \internal 628 \internal
629*/ 629*/
630const QString &Event::timeZone() const 630const QString &Event::timeZone() const
631{ 631{
632 return tz; 632 return tz;
633} 633}
634 634
635/*! 635/*!
636 \internal 636 \internal
637*/ 637*/
638bool Event::hasAlarm() const 638bool Event::hasAlarm() const
639{ 639{
640 return hAlarm; 640 return hAlarm;
641} 641}
642 642
643/*! 643/*!
644 \internal 644 \internal
645*/ 645*/
646int Event::alarmTime() const 646int Event::alarmTime() const
647{ 647{
648 return aMinutes; 648 return aMinutes;
649} 649}
650 650
651/*! 651/*!
652 Returns the sound type for the alarm of this event. 652 Returns the sound type for the alarm of this event.
653*/ 653*/
654Event::SoundTypeChoice Event::alarmSound() const 654Event::SoundTypeChoice Event::alarmSound() const
655{ 655{
656 return aSound; 656 return aSound;
657} 657}
658 658
659/*! 659/*!
660 \internal 660 \internal
661*/ 661*/
662bool Event::hasRepeat() const 662bool Event::hasRepeat() const
663{ 663{
664 return doRepeat(); 664 return doRepeat();
665} 665}
666 666
667/*! 667/*!
668 \internal 668 \internal
669*/ 669*/
670const Event::RepeatPattern &Event::repeatPattern() const 670const Event::RepeatPattern &Event::repeatPattern() const
671{ 671{
672 return pattern; 672 return pattern;
673} 673}
674 674
675/*! 675/*!
676 \internal 676 \internal
677*/ 677*/
678Event::RepeatPattern &Event::repeatPattern() 678Event::RepeatPattern &Event::repeatPattern()
679{ 679{
680 return pattern; 680 return pattern;
681} 681}
682 682
683/*! 683/*!
684 Returns the notes for the event. 684 Returns the notes for the event.
685*/ 685*/
686const QString &Event::notes() const 686const QString &Event::notes() const
687{ 687{
688 return note; 688 return note;
689} 689}
690 690
691/*! 691/*!
692 \internal 692 \internal
693*/ 693*/
694bool Event::operator==( const Event &e ) const 694bool Event::operator==( const Event &e ) const
695{ 695{
696 if ( uid() && e.uid() == uid() ) 696 if ( uid() && e.uid() == uid() )
697 return TRUE; 697 return TRUE;
698 return ( e.descript == descript && 698 return ( e.descript == descript &&
699 e.locat == locat && 699 e.locat == locat &&
700 e.categ == categ && 700 e.categ == categ &&
701 e.typ == typ && 701 e.typ == typ &&
702 e.startUTC == startUTC && 702 e.startUTC == startUTC &&
703 e.endUTC == endUTC && 703 e.endUTC == endUTC &&
704 e.tz == tz && 704 e.tz == tz &&
705 e.hAlarm == hAlarm && 705 e.hAlarm == hAlarm &&
706 e.aMinutes == aMinutes && 706 e.aMinutes == aMinutes &&
707 e.aSound == aSound && 707 e.aSound == aSound &&
708 e.hRepeat == hRepeat && 708 e.hRepeat == hRepeat &&
709 e.pattern == pattern && 709 e.pattern == pattern &&
710 e.note == note ); 710 e.note == note );
711} 711}
712 712
713/*! 713/*!
714 \internal 714 \internal
715 Appends the contact information to \a buf. 715 Appends the contact information to \a buf.
716*/ 716*/
717void Event::save( QString& buf ) 717void Event::save( QString& buf )
718{ 718{
719 buf += " description=\"" + Qtopia::escapeString(descript) + "\""; 719 buf += " description=\"" + Qtopia::escapeString(descript) + "\"";
720 if ( !locat.isEmpty() ) 720 if ( !locat.isEmpty() )
721 buf += " location=\"" + Qtopia::escapeString(locat) + "\""; 721 buf += " location=\"" + Qtopia::escapeString(locat) + "\"";
722 // save the categoies differently.... 722 // save the categoies differently....
723 QString strCats = idsToString( categories() ); 723 QString strCats = idsToString( categories() );
724 buf += " categories=\"" + Qtopia::escapeString(strCats) + "\""; 724 buf += " categories=\"" + Qtopia::escapeString(strCats) + "\"";
725 buf += " uid=\"" + QString::number( uid() ) + "\""; 725 buf += " uid=\"" + QString::number( uid() ) + "\"";
726 if ( (Type)typ != Normal ) 726 if ( (Type)typ != Normal )
727 buf += " type=\"AllDay\""; 727 buf += " type=\"AllDay\"";
728 if ( hAlarm ) { 728 if ( hAlarm ) {
729 buf += " alarm=\"" + QString::number( aMinutes ) + "\" sound=\""; 729 buf += " alarm=\"" + QString::number( aMinutes ) + "\" sound=\"";
730 if ( aSound == Event::Loud ) 730 if ( aSound == Event::Loud )
731 buf += "loud"; 731 buf += "loud";
732 else 732 else
733 buf += "silent"; 733 buf += "silent";
734 buf += "\""; 734 buf += "\"";
735 } 735 }
736 if ( hRepeat ) 736 if ( hRepeat )
737 write( buf, pattern ); 737 write( buf, pattern );
738 738
739 buf += " start=\"" 739 buf += " start=\""
740 + QString::number( startUTC ) 740 + QString::number( startUTC )
741 + "\""; 741 + "\"";
742 742
743 buf += " end=\"" 743 buf += " end=\""
744 + QString::number( endUTC ) 744 + QString::number( endUTC )
745 + "\""; 745 + "\"";
746 746
747 if ( !note.isEmpty() ) 747 if ( !note.isEmpty() )
748 buf += " note=\"" + Qtopia::escapeString( note ) + "\""; 748 buf += " note=\"" + Qtopia::escapeString( note ) + "\"";
749 buf += customToXml(); 749 buf += customToXml();
750} 750}
751 751
752/*! 752/*!
753 \internal 753 \internal
754*/ 754*/
755bool Event::RepeatPattern::operator==( const Event::RepeatPattern &right ) const 755bool Event::RepeatPattern::operator==( const Event::RepeatPattern &right ) const
756{ 756{
757 // *sigh* 757 // *sigh*
758 return ( type == right.type 758 return ( type == right.type
759 && frequency == right.frequency 759 && frequency == right.frequency
760 && position == right.position 760 && position == right.position
761 && days == right.days 761 && days == right.days
762 && hasEndDate == right.hasEndDate 762 && hasEndDate == right.hasEndDate
763 && endDateUTC == right.endDateUTC 763 && endDateUTC == right.endDateUTC
764 && createTime == right.createTime ); 764 && createTime == right.createTime );
765} 765}
766 766
767/*! 767/*!
768 \class EffectiveEvent 768 \class EffectiveEvent
769 \brief The EffectiveEvent class the data for a single occurance of an event. 769 \brief The EffectiveEvent class the data for a single occurance of an event.
770 770
771 This class describes the event for a single occurance of it. For example if 771 This class describes the event for a single occurance of it. For example if
772 an Event occurs every week, the effective event might represent the third 772 an Event occurs every week, the effective event might represent the third
773 occurance of this Event. 773 occurance of this Event.
774 774
775 \ingroup qtopiaemb 775 \ingroup qtopiaemb
776 \ingroup qtopiadesktop 776 \ingroup qtopiadesktop
777 \warning This class will be phased out in Qtopia 3.x 777 \warning This class will be phased out in Qtopia 3.x
778*/ 778*/
779 779
780/*! 780/*!
781 \enum EffectiveEvent::Position 781 \enum EffectiveEvent::Position
782 \internal 782 \internal
783*/ 783*/
784 784
785/*! 785/*!
786 \fn EffectiveEvent &EffectiveEvent::operator=(const EffectiveEvent &) 786 \fn EffectiveEvent &EffectiveEvent::operator=(const EffectiveEvent &)
787 \internal 787 \internal
788*/ 788*/
789 789
790class EffectiveEventPrivate 790class EffectiveEventPrivate
791{ 791{
792public: 792public:
793 //currently the existence of the d pointer means multi-day repeating, 793 //currently the existence of the d pointer means multi-day repeating,
794 //msut be changed if we use the d pointer for anything else. 794 //msut be changed if we use the d pointer for anything else.
795 QDate startDate; 795 QDate startDate;
796 QDate endDate; 796 QDate endDate;
797}; 797};
798 798
799/*! 799/*!
800 \internal 800 \internal
801*/ 801*/
802EffectiveEvent::EffectiveEvent() 802EffectiveEvent::EffectiveEvent()
803{ 803{
804 mDate = QDate::currentDate(); 804 mDate = QDate::currentDate();
805 mStart = mEnd = QTime::currentTime(); 805 mStart = mEnd = QTime::currentTime();
806 d = 0; 806 d = 0;
807} 807}
808 808
809/*! 809/*!
810 \internal 810 \internal
811*/ 811*/
812EffectiveEvent::EffectiveEvent( const Event &e, const QDate &date, Position pos ) 812EffectiveEvent::EffectiveEvent( const Event &e, const QDate &date, Position pos )
813{ 813{
814 mEvent = e; 814 mEvent = e;
815 mDate = date; 815 mDate = date;
816 if ( pos & Start ) 816 if ( pos & Start )
817 mStart = e.start( TRUE ).time(); 817 mStart = e.start( TRUE ).time();
818 else 818 else
819 mStart = QTime( 0, 0, 0 ); 819 mStart = QTime( 0, 0, 0 );
820 820
821 if ( pos & End ) 821 if ( pos & End )
822 mEnd = e.end( TRUE ).time(); 822 mEnd = e.end( TRUE ).time();
823 else 823 else
824 mEnd = QTime( 23, 59, 59 ); 824 mEnd = QTime( 23, 59, 59 );
825 d = 0; 825 d = 0;
826} 826}
827 827
828/*! 828/*!
829 \internal 829 \internal
830*/ 830*/
831EffectiveEvent::~EffectiveEvent() 831EffectiveEvent::~EffectiveEvent()
832{ 832{
833 delete d; 833 delete d;
834} 834}
835 835
836/*! 836/*!
837 \internal 837 \internal
838*/ 838*/
839EffectiveEvent::EffectiveEvent( const EffectiveEvent &e ) 839EffectiveEvent::EffectiveEvent( const EffectiveEvent &e )
840{ 840{
841 d = 0; 841 d = 0;
842 *this = e; 842 *this = e;
843} 843}
844 844
845EffectiveEvent& EffectiveEvent::operator=( const EffectiveEvent & e ) 845EffectiveEvent& EffectiveEvent::operator=( const EffectiveEvent & e )
846{ 846{
847 if ( &e == this ) 847 if ( &e == this )
848 return *this; 848 return *this;
849 delete d; 849 delete d;
850 if ( e.d ) { 850 if ( e.d ) {
851 d = new EffectiveEventPrivate; 851 d = new EffectiveEventPrivate;
852 d->startDate = e.d->startDate; 852 d->startDate = e.d->startDate;
853 d->endDate = e.d->endDate; 853 d->endDate = e.d->endDate;
854 } else { 854 } else {
855 d = 0; 855 d = 0;
856 } 856 }
857 mEvent = e.mEvent; 857 mEvent = e.mEvent;
858 mDate = e.mDate; 858 mDate = e.mDate;
859 mStart = e.mStart; 859 mStart = e.mStart;
860 mEnd = e.mEnd; 860 mEnd = e.mEnd;
861 861
862 return *this; 862 return *this;
863 863
864} 864}
865 865
866// QString EffectiveEvent::category() const 866// QString EffectiveEvent::category() const
867// { 867// {
868// return mEvent.category(); 868// return mEvent.category();
869// } 869// }
870 870
871/*! 871/*!
872 Returns the description of the event for this effective event. 872 Returns the description of the event for this effective event.
873*/ 873*/