summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 610aae6..85e9166 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -644,199 +644,207 @@ void MonthViewCell::startUpdateCell()
644 while ( mitem ) { 644 while ( mitem ) {
645 mitem->setBlockRepaint( true ); 645 mitem->setBlockRepaint( true );
646 mitem = (MonthViewItem *)mitem->next(); 646 mitem = (MonthViewItem *)mitem->next();
647 } 647 }
648 if ( mAvailItemList.count() > 20 ) { 648 if ( mAvailItemList.count() > 20 ) {
649 mAvailItemList.setAutoDelete( true ); 649 mAvailItemList.setAutoDelete( true );
650 mAvailItemList.clear(); 650 mAvailItemList.clear();
651 mAvailItemList.setAutoDelete( false ); 651 mAvailItemList.setAutoDelete( false );
652 clear(); 652 clear();
653 } 653 }
654 654
655 setPrimary( mDate.month()%2 ); 655 setPrimary( mDate.month()%2 );
656 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); 656 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays);
657 if ( mDate == QDate::currentDate() ) { 657 if ( mDate == QDate::currentDate() ) {
658 setLineWidth( 3 ); 658 setLineWidth( 3 );
659 } else { 659 } else {
660 setLineWidth( 1 ); 660 setLineWidth( 1 );
661 } 661 }
662 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem (); 662 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem ();
663 //clear(); 663 //clear();
664 while ( CurrentAvailItem ) { 664 while ( CurrentAvailItem ) {
665 MonthViewItem *item = CurrentAvailItem; 665 MonthViewItem *item = CurrentAvailItem;
666 //item->setHighlightedFalse(); 666 //item->setHighlightedFalse();
667 item->recycle( 0, ""); 667 item->recycle( 0, "");
668 CurrentAvailItem = (MonthViewItem *)item->next(); 668 CurrentAvailItem = (MonthViewItem *)item->next();
669 mAvailItemList.append( item ); 669 mAvailItemList.append( item );
670 takeItem ( item ); 670 takeItem ( item );
671 } 671 }
672 672
673#ifdef DESKTOP_VERSION 673#ifdef DESKTOP_VERSION
674 QToolTip::remove(this); 674 QToolTip::remove(this);
675#endif 675#endif
676 mToolTip.clear(); 676 mToolTip.clear();
677 //qApp->processEvents(); 677 //qApp->processEvents();
678#if 0 678#if 0
679 if ( !mHolidayString.isEmpty() ) { 679 if ( !mHolidayString.isEmpty() ) {
680 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString ); 680 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString );
681 item->setPalette( mHolidayPalette ); 681 item->setPalette( mHolidayPalette );
682 insertItem( item ); 682 insertItem( item );
683 mToolTip.append ( mHolidayString ); 683 mToolTip.append ( mHolidayString );
684 } 684 }
685#endif 685#endif
686} 686}
687 687
688int MonthViewCell::insertEvent(Event *event) 688int MonthViewCell::insertEvent(Event *event)
689{ 689{
690 bool useToolTips = true; 690 bool useToolTips = true;
691#ifndef DESKTOP_VERSION 691#ifndef DESKTOP_VERSION
692 useToolTips = false; 692 useToolTips = false;
693#endif 693#endif
694 QString mToolTipText; 694 QString mToolTipText;
695 setFocusPolicy(WheelFocus); 695 setFocusPolicy(WheelFocus);
696 if ( !(event->doesRecur() == Recurrence::rNone) ) { 696 if ( !(event->doesRecur() == Recurrence::rNone) ) {
697 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily ) 697 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily )
698 return mdayCount; 698 return mdayCount;
699 else 699 else
700 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 700 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
701 return mdayCount; 701 return mdayCount;
702 } 702 }
703 703
704 if ( event->isHoliday()) { 704 if ( event->isHoliday()) {
705 setHoliday( true ); 705 setHoliday( true );
706 if ( mDate.dayOfWeek() == 7 ) 706 if ( mDate.dayOfWeek() == 7 )
707 setLineWidth( 3 ); 707 setLineWidth( 3 );
708 } 708 }
709 QString text; 709 QString text;
710 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 710 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
711 if (event->isMultiDay()) { 711 if (event->isMultiDay()) {
712 QString prefix = "<->";multiday = 2; 712 QString prefix = "<->";multiday = 2;
713 QString time; 713 QString time;
714 if ( event->doesRecur() ) { 714 if ( event->doesRecur() ) {
715 if ( event->recursOn( mDate) ) { 715 if ( event->recursOn( mDate) ) {
716 prefix ="->" ;multiday = 1; 716 prefix ="->" ;multiday = 1;
717 } 717 }
718 else { 718 else {
719 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 719 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
720 if ( event->recursOn( mDate.addDays( -days)) ) { 720 if ( event->recursOn( mDate.addDays( -days)) ) {
721 prefix ="<-" ;multiday = 3; 721 prefix ="<-" ;multiday = 3;
722 } 722 }
723 } 723 }
724 724
725 } else { 725 } else {
726 if (mDate == event->dtStart().date()) { 726 if (mDate == event->dtStart().date()) {
727 prefix ="->" ;multiday = 1; 727 prefix ="->" ;multiday = 1;
728 } else if (mDate == event->dtEnd().date()) { 728 } else if (mDate == event->dtEnd().date()) {
729 prefix ="<-" ;multiday = 3; 729 prefix ="<-" ;multiday = 3;
730 } 730 }
731 } 731 }
732 if ( !event->doesFloat() ) { 732 if ( !event->doesFloat() ) {
733 if ( mDate == event->dtStart().date () ) 733 if ( mDate == event->dtStart().date () )
734 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 734 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
735 else if ( mDate == event->dtEnd().date () ) 735 else if ( mDate == event->dtEnd().date () )
736 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 736 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
737 737
738 } 738 }
739 text = time + event->summary(); 739 text = time + event->summary();
740
741 int dur = 0;
742 if ( event->doesFloat() ) {
743 dur = event->dtStart().daysTo(event->dtEnd())+1;
744
745 }
740 if ( useToolTips ) { 746 if ( useToolTips ) {
741 mToolTipText += prefix + text; 747 mToolTipText += prefix + text;
742 if ( event->doesFloat() ) { 748 if ( dur ) {
743 mToolTipText += i18n(" (Duration: %1 days)" ).arg ( event->dtStart().daysTo(event->dtEnd())+1); 749 mToolTipText += i18n(" (Duration: %1 days)" ).arg ( dur );
744
745 } 750 }
746 } 751 }
752 if ( dur ) {
753 text += " ("+ QString::number( dur ) + i18n(" days" ) + ")";
754 }
747 } else { 755 } else {
748 if (event->doesFloat()) { 756 if (event->doesFloat()) {
749 text = event->summary(); 757 text = event->summary();
750 if ( useToolTips ) 758 if ( useToolTips )
751 mToolTipText += text; 759 mToolTipText += text;
752 } 760 }
753 else { 761 else {
754 text = KGlobal::locale()->formatTime(event->dtStart().time()); 762 text = KGlobal::locale()->formatTime(event->dtStart().time());
755 text += " " + event->summary(); 763 text += " " + event->summary();
756 if ( useToolTips ) 764 if ( useToolTips )
757 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 765 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
758 } 766 }
759 } 767 }
760 if ( useToolTips && ! event->location().isEmpty() ) { 768 if ( useToolTips && ! event->location().isEmpty() ) {
761 mToolTipText += " (" + event->location() +")"; 769 mToolTipText += " (" + event->location() +")";
762 } 770 }
763 MonthViewItem *item ; 771 MonthViewItem *item ;
764 772
765 if ( mAvailItemList.count() ) { 773 if ( mAvailItemList.count() ) {
766 item = mAvailItemList.first(); 774 item = mAvailItemList.first();
767 mAvailItemList.remove( item ); 775 mAvailItemList.remove( item );
768 item->recycle( event, text ); 776 item->recycle( event, text );
769 } else { 777 } else {
770 item = new MonthViewItem( event, text ); 778 item = new MonthViewItem( event, text );
771 } 779 }
772 780
773 QPalette pal; 781 QPalette pal;
774 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 782 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
775 QStringList categories = event->categories(); 783 QStringList categories = event->categories();
776 QString cat = categories.first(); 784 QString cat = categories.first();
777 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 785 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
778 pal = getPalette(); 786 pal = getPalette();
779 if (cat.isEmpty()) { 787 if (cat.isEmpty()) {
780 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 788 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
781 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() )); 789 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() ));
782 } else { 790 } else {
783 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 791 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
784 } 792 }
785 793
786 } else { 794 } else {
787 if (cat.isEmpty()) { 795 if (cat.isEmpty()) {
788 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 796 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
789 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() )); 797 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() ));
790 } else { 798 } else {
791 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 799 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
792 } 800 }
793 } 801 }
794 802
795 } else { 803 } else {
796 pal = mStandardPalette ; 804 pal = mStandardPalette ;
797 } 805 }
798 pal.setColor(QColorGroup::Highlight, KOPrefs::instance()->mHighlightColor); 806 pal.setColor(QColorGroup::Highlight, KOPrefs::instance()->mHighlightColor);
799 item->setPalette( pal ); 807 item->setPalette( pal );
800 item->setRecur( event->doesRecur() ); 808 item->setRecur( event->doesRecur() );
801 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() ); 809 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() );
802 item->setMoreInfo( event->description().length() > 0 ); 810 item->setMoreInfo( event->description().length() > 0 );
803#ifdef DESKTOP_VERSION 811#ifdef DESKTOP_VERSION
804 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails, 812 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
805 KOPrefs::instance()->email()); 813 KOPrefs::instance()->email());
806 if ( me != 0 ) { 814 if ( me != 0 ) {
807 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 815 if ( me->status() == Attendee::NeedsAction && me->RSVP())
808 item->setReply(true && multiday < 2); 816 item->setReply(true && multiday < 2);
809 else 817 else
810 item->setReply(false); 818 item->setReply(false);
811 } else 819 } else
812 item->setReply(false); 820 item->setReply(false);
813#endif 821#endif
814 822
815 item->setMultiDay( multiday ); 823 item->setMultiDay( multiday );
816 if ( multiday ) { 824 if ( multiday ) {
817 insertItem( item ,mdayCount); 825 insertItem( item ,mdayCount);
818 ++mdayCount; 826 ++mdayCount;
819 } else { 827 } else {
820 uint i = mdayCount; 828 uint i = mdayCount;
821 uint pos = mdayCount; 829 uint pos = mdayCount;
822 uint itcount = count(); 830 uint itcount = count();
823 if ( itcount > 1000 ) { 831 if ( itcount > 1000 ) {
824 qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount); 832 qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount);
825 itcount = 0; 833 itcount = 0;
826 } 834 }
827 for ( i = pos; i < itcount;++i ) { 835 for ( i = pos; i < itcount;++i ) {
828 // qDebug("i %d mday %u count %d ",i,itcount,mdayCount ); 836 // qDebug("i %d mday %u count %d ",i,itcount,mdayCount );
829 QListBoxItem* it = this->item ( i ); 837 QListBoxItem* it = this->item ( i );
830 if ( it && text < it->text() ) { 838 if ( it && text < it->text() ) {
831 pos = i; 839 pos = i;
832 break; 840 break;
833 } 841 }
834 ++pos; 842 ++pos;
835 } 843 }
836 insertItem( item ,pos); 844 insertItem( item ,pos);
837 } 845 }
838 if ( useToolTips ) { 846 if ( useToolTips ) {
839 mToolTip.append( mToolTipText ); 847 mToolTip.append( mToolTipText );
840 } 848 }
841 return mdayCount; 849 return mdayCount;
842} 850}