summaryrefslogtreecommitdiff
authorzecke <zecke>2003-02-21 11:35:52 (UTC)
committer zecke <zecke>2003-02-21 11:35:52 (UTC)
commit6917879c47d406b6f4ee234f84b89e17265dd0a5 (patch) (unidiff)
tree8d30ebd64d302cf3e7237154dff7939f2f2aa425
parent2d77abb5ff37abf61e04657431d7e0e1f5138d94 (diff)
downloadopie-6917879c47d406b6f4ee234f84b89e17265dd0a5.zip
opie-6917879c47d406b6f4ee234f84b89e17265dd0a5.tar.gz
opie-6917879c47d406b6f4ee234f84b89e17265dd0a5.tar.bz2
make allday events all bit less fscked up...
Basicly an AllDay Event should be pinned to a day but Qtopia suffers from a problem when changing timezones an AllDay event can span two days... This patch make it at least not span two days..
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/backend/event.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/library/backend/event.cpp b/library/backend/event.cpp
index 0003fe9..d906f19 100644
--- a/library/backend/event.cpp
+++ b/library/backend/event.cpp
@@ -489,264 +489,261 @@ void Event::setType( Type 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 = TimeConversion::fromUTC( startUTC ); 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 = TimeConversion::fromUTC( endUTC ); 617 /* small work around... */
618
619 if ( actual && typ == AllDay ) { 618 if ( actual && typ == AllDay ) {
620 QTime t = dt.time(); 619 return QDateTime( TimeConversion::fromUTC( startUTC ).date(), QTime(23, 59, 59 ) );
621 t.setHMS( 23, 59, 59 );
622 dt.setTime( t );
623 } 620 }
624 return dt; 621 return TimeConversion::fromUTC( endUTC );
625} 622}
626 623
627/*! 624/*!
628 \internal 625 \internal
629*/ 626*/
630const QString &Event::timeZone() const 627const QString &Event::timeZone() const
631{ 628{
632 return tz; 629 return tz;
633} 630}
634 631
635/*! 632/*!
636 \internal 633 \internal
637*/ 634*/
638bool Event::hasAlarm() const 635bool Event::hasAlarm() const
639{ 636{
640 return hAlarm; 637 return hAlarm;
641} 638}
642 639
643/*! 640/*!
644 \internal 641 \internal
645*/ 642*/
646int Event::alarmTime() const 643int Event::alarmTime() const
647{ 644{
648 return aMinutes; 645 return aMinutes;
649} 646}
650 647
651/*! 648/*!
652 Returns the sound type for the alarm of this event. 649 Returns the sound type for the alarm of this event.
653*/ 650*/
654Event::SoundTypeChoice Event::alarmSound() const 651Event::SoundTypeChoice Event::alarmSound() const
655{ 652{
656 return aSound; 653 return aSound;
657} 654}
658 655
659/*! 656/*!
660 \internal 657 \internal
661*/ 658*/
662bool Event::hasRepeat() const 659bool Event::hasRepeat() const
663{ 660{
664 return doRepeat(); 661 return doRepeat();
665} 662}
666 663
667/*! 664/*!
668 \internal 665 \internal
669*/ 666*/
670const Event::RepeatPattern &Event::repeatPattern() const 667const Event::RepeatPattern &Event::repeatPattern() const
671{ 668{
672 return pattern; 669 return pattern;
673} 670}
674 671
675/*! 672/*!
676 \internal 673 \internal
677*/ 674*/
678Event::RepeatPattern &Event::repeatPattern() 675Event::RepeatPattern &Event::repeatPattern()
679{ 676{
680 return pattern; 677 return pattern;
681} 678}
682 679
683/*! 680/*!
684 Returns the notes for the event. 681 Returns the notes for the event.
685*/ 682*/
686const QString &Event::notes() const 683const QString &Event::notes() const
687{ 684{
688 return note; 685 return note;
689} 686}
690 687
691/*! 688/*!
692 \internal 689 \internal
693*/ 690*/
694bool Event::operator==( const Event &e ) const 691bool Event::operator==( const Event &e ) const
695{ 692{
696 if ( uid() && e.uid() == uid() ) 693 if ( uid() && e.uid() == uid() )
697 return TRUE; 694 return TRUE;
698 return ( e.descript == descript && 695 return ( e.descript == descript &&
699 e.locat == locat && 696 e.locat == locat &&
700 e.categ == categ && 697 e.categ == categ &&
701 e.typ == typ && 698 e.typ == typ &&
702 e.startUTC == startUTC && 699 e.startUTC == startUTC &&
703 e.endUTC == endUTC && 700 e.endUTC == endUTC &&
704 e.tz == tz && 701 e.tz == tz &&
705 e.hAlarm == hAlarm && 702 e.hAlarm == hAlarm &&
706 e.aMinutes == aMinutes && 703 e.aMinutes == aMinutes &&
707 e.aSound == aSound && 704 e.aSound == aSound &&
708 e.hRepeat == hRepeat && 705 e.hRepeat == hRepeat &&
709 e.pattern == pattern && 706 e.pattern == pattern &&
710 e.note == note ); 707 e.note == note );
711} 708}
712 709
713/*! 710/*!
714 \internal 711 \internal
715 Appends the contact information to \a buf. 712 Appends the contact information to \a buf.
716*/ 713*/
717void Event::save( QString& buf ) 714void Event::save( QString& buf )
718{ 715{
719 buf += " description=\"" + Qtopia::escapeString(descript) + "\""; 716 buf += " description=\"" + Qtopia::escapeString(descript) + "\"";
720 if ( !locat.isEmpty() ) 717 if ( !locat.isEmpty() )
721 buf += " location=\"" + Qtopia::escapeString(locat) + "\""; 718 buf += " location=\"" + Qtopia::escapeString(locat) + "\"";
722 // save the categoies differently.... 719 // save the categoies differently....
723 QString strCats = idsToString( categories() ); 720 QString strCats = idsToString( categories() );
724 buf += " categories=\"" + Qtopia::escapeString(strCats) + "\""; 721 buf += " categories=\"" + Qtopia::escapeString(strCats) + "\"";
725 buf += " uid=\"" + QString::number( uid() ) + "\""; 722 buf += " uid=\"" + QString::number( uid() ) + "\"";
726 if ( (Type)typ != Normal ) 723 if ( (Type)typ != Normal )
727 buf += " type=\"AllDay\""; 724 buf += " type=\"AllDay\"";
728 if ( hAlarm ) { 725 if ( hAlarm ) {
729 buf += " alarm=\"" + QString::number( aMinutes ) + "\" sound=\""; 726 buf += " alarm=\"" + QString::number( aMinutes ) + "\" sound=\"";
730 if ( aSound == Event::Loud ) 727 if ( aSound == Event::Loud )
731 buf += "loud"; 728 buf += "loud";
732 else 729 else
733 buf += "silent"; 730 buf += "silent";
734 buf += "\""; 731 buf += "\"";
735 } 732 }
736 if ( hRepeat ) 733 if ( hRepeat )
737 write( buf, pattern ); 734 write( buf, pattern );
738 735
739 buf += " start=\"" 736 buf += " start=\""
740 + QString::number( startUTC ) 737 + QString::number( startUTC )
741 + "\""; 738 + "\"";
742 739
743 buf += " end=\"" 740 buf += " end=\""
744 + QString::number( endUTC ) 741 + QString::number( endUTC )
745 + "\""; 742 + "\"";
746 743
747 if ( !note.isEmpty() ) 744 if ( !note.isEmpty() )
748 buf += " note=\"" + Qtopia::escapeString( note ) + "\""; 745 buf += " note=\"" + Qtopia::escapeString( note ) + "\"";
749 buf += customToXml(); 746 buf += customToXml();
750} 747}
751 748
752/*! 749/*!