summaryrefslogtreecommitdiffabout
path: root/korganizer/komonthview.cpp
Unidiff
Diffstat (limited to 'korganizer/komonthview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 8d06040..610aae6 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -644,194 +644,199 @@ 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 if ( useToolTips ) 740 if ( useToolTips ) {
741 mToolTipText += prefix + text; 741 mToolTipText += prefix + text;
742 if ( event->doesFloat() ) {
743 mToolTipText += i18n(" (Duration: %1 days)" ).arg ( event->dtStart().daysTo(event->dtEnd())+1);
744
745 }
746 }
742 } else { 747 } else {
743 if (event->doesFloat()) { 748 if (event->doesFloat()) {
744 text = event->summary(); 749 text = event->summary();
745 if ( useToolTips ) 750 if ( useToolTips )
746 mToolTipText += text; 751 mToolTipText += text;
747 } 752 }
748 else { 753 else {
749 text = KGlobal::locale()->formatTime(event->dtStart().time()); 754 text = KGlobal::locale()->formatTime(event->dtStart().time());
750 text += " " + event->summary(); 755 text += " " + event->summary();
751 if ( useToolTips ) 756 if ( useToolTips )
752 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 757 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
753 } 758 }
754 } 759 }
755 if ( useToolTips && ! event->location().isEmpty() ) { 760 if ( useToolTips && ! event->location().isEmpty() ) {
756 mToolTipText += " (" + event->location() +")"; 761 mToolTipText += " (" + event->location() +")";
757 } 762 }
758 MonthViewItem *item ; 763 MonthViewItem *item ;
759 764
760 if ( mAvailItemList.count() ) { 765 if ( mAvailItemList.count() ) {
761 item = mAvailItemList.first(); 766 item = mAvailItemList.first();
762 mAvailItemList.remove( item ); 767 mAvailItemList.remove( item );
763 item->recycle( event, text ); 768 item->recycle( event, text );
764 } else { 769 } else {
765 item = new MonthViewItem( event, text ); 770 item = new MonthViewItem( event, text );
766 } 771 }
767 772
768 QPalette pal; 773 QPalette pal;
769 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 774 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
770 QStringList categories = event->categories(); 775 QStringList categories = event->categories();
771 QString cat = categories.first(); 776 QString cat = categories.first();
772 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 777 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
773 pal = getPalette(); 778 pal = getPalette();
774 if (cat.isEmpty()) { 779 if (cat.isEmpty()) {
775 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 780 //pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
776 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() )); 781 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->defaultColor( event->calID() ));
777 } else { 782 } else {
778 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 783 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
779 } 784 }
780 785
781 } else { 786 } else {
782 if (cat.isEmpty()) { 787 if (cat.isEmpty()) {
783 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 788 //pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
784 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() )); 789 pal = QPalette( KOPrefs::instance()->defaultColor( event->calID() ), KOPrefs::instance()->defaultColor( event->calID() ));
785 } else { 790 } else {
786 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 791 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
787 } 792 }
788 } 793 }
789 794
790 } else { 795 } else {
791 pal = mStandardPalette ; 796 pal = mStandardPalette ;
792 } 797 }
793 pal.setColor(QColorGroup::Highlight, KOPrefs::instance()->mHighlightColor); 798 pal.setColor(QColorGroup::Highlight, KOPrefs::instance()->mHighlightColor);
794 item->setPalette( pal ); 799 item->setPalette( pal );
795 item->setRecur( event->doesRecur() ); 800 item->setRecur( event->doesRecur() );
796 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() ); 801 item->setAlarm( event->isAlarmEnabled() && multiday < 2 && event->alarmEnabled() );
797 item->setMoreInfo( event->description().length() > 0 ); 802 item->setMoreInfo( event->description().length() > 0 );
798#ifdef DESKTOP_VERSION 803#ifdef DESKTOP_VERSION
799 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails, 804 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
800 KOPrefs::instance()->email()); 805 KOPrefs::instance()->email());
801 if ( me != 0 ) { 806 if ( me != 0 ) {
802 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 807 if ( me->status() == Attendee::NeedsAction && me->RSVP())
803 item->setReply(true && multiday < 2); 808 item->setReply(true && multiday < 2);
804 else 809 else
805 item->setReply(false); 810 item->setReply(false);
806 } else 811 } else
807 item->setReply(false); 812 item->setReply(false);
808#endif 813#endif
809 814
810 item->setMultiDay( multiday ); 815 item->setMultiDay( multiday );
811 if ( multiday ) { 816 if ( multiday ) {
812 insertItem( item ,mdayCount); 817 insertItem( item ,mdayCount);
813 ++mdayCount; 818 ++mdayCount;
814 } else { 819 } else {
815 uint i = mdayCount; 820 uint i = mdayCount;
816 uint pos = mdayCount; 821 uint pos = mdayCount;
817 uint itcount = count(); 822 uint itcount = count();
818 if ( itcount > 1000 ) { 823 if ( itcount > 1000 ) {
819 qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount); 824 qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount);
820 itcount = 0; 825 itcount = 0;
821 } 826 }
822 for ( i = pos; i < itcount;++i ) { 827 for ( i = pos; i < itcount;++i ) {
823 // qDebug("i %d mday %u count %d ",i,itcount,mdayCount ); 828 // qDebug("i %d mday %u count %d ",i,itcount,mdayCount );
824 QListBoxItem* it = this->item ( i ); 829 QListBoxItem* it = this->item ( i );
825 if ( it && text < it->text() ) { 830 if ( it && text < it->text() ) {
826 pos = i; 831 pos = i;
827 break; 832 break;
828 } 833 }
829 ++pos; 834 ++pos;
830 } 835 }
831 insertItem( item ,pos); 836 insertItem( item ,pos);
832 } 837 }
833 if ( useToolTips ) { 838 if ( useToolTips ) {
834 mToolTip.append( mToolTipText ); 839 mToolTip.append( mToolTipText );
835 } 840 }
836 return mdayCount; 841 return mdayCount;
837} 842}