-rw-r--r-- | korganizer/komonthview.cpp | 72 | ||||
-rw-r--r-- | korganizer/komonthview.h | 1 |
2 files changed, 46 insertions, 27 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 38cfda7..12233ee 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -661,333 +661,337 @@ void MonthViewCell::insertEvent(Event *event) | |||
661 | item->setReply(false); | 661 | item->setReply(false); |
662 | #endif | 662 | #endif |
663 | item->setMultiDay( multiday ); | 663 | item->setMultiDay( multiday ); |
664 | if ( insertNewItem) | 664 | if ( insertNewItem) |
665 | insertItem( item ); | 665 | insertItem( item ); |
666 | mToolTip.append( mToolTipText ); | 666 | mToolTip.append( mToolTipText ); |
667 | } | 667 | } |
668 | void MonthViewCell::insertTodo(Todo *todo) | 668 | void MonthViewCell::insertTodo(Todo *todo) |
669 | { | 669 | { |
670 | bool insertNewItem = false; | 670 | bool insertNewItem = false; |
671 | setFocusPolicy(WheelFocus); | 671 | setFocusPolicy(WheelFocus); |
672 | QString text; | 672 | QString text; |
673 | if (todo->hasDueDate()) { | 673 | if (todo->hasDueDate()) { |
674 | if (!todo->doesFloat()) { | 674 | if (!todo->doesFloat()) { |
675 | text += KGlobal::locale()->formatTime(todo->dtDue().time()); | 675 | text += KGlobal::locale()->formatTime(todo->dtDue().time()); |
676 | text += " "; | 676 | text += " "; |
677 | } | 677 | } |
678 | } | 678 | } |
679 | text += todo->summary(); | 679 | text += todo->summary(); |
680 | MonthViewItem *item ; | 680 | MonthViewItem *item ; |
681 | if ( mCurrentAvailItem ) { | 681 | if ( mCurrentAvailItem ) { |
682 | item = mCurrentAvailItem; | 682 | item = mCurrentAvailItem; |
683 | mCurrentAvailItem = (MonthViewItem*) item->next(); | 683 | mCurrentAvailItem = (MonthViewItem*) item->next(); |
684 | item->recycle( todo, mDate, text ); | 684 | item->recycle( todo, mDate, text ); |
685 | } else { | 685 | } else { |
686 | if ( mAvailItemList.count() ) { | 686 | if ( mAvailItemList.count() ) { |
687 | item = mAvailItemList.first(); | 687 | item = mAvailItemList.first(); |
688 | mAvailItemList.remove( item ); | 688 | mAvailItemList.remove( item ); |
689 | item->recycle( todo, mDate, text ); | 689 | item->recycle( todo, mDate, text ); |
690 | insertNewItem = true; | 690 | insertNewItem = true; |
691 | } else { | 691 | } else { |
692 | insertNewItem = true; | 692 | insertNewItem = true; |
693 | item = new MonthViewItem( todo, mDate, text ); | 693 | item = new MonthViewItem( todo, mDate, text ); |
694 | } | 694 | } |
695 | } | 695 | } |
696 | //MonthViewItem *item = new MonthViewItem( todo, mDate, text ); | 696 | //MonthViewItem *item = new MonthViewItem( todo, mDate, text ); |
697 | //item->setPalette( mStandardPalette ); | 697 | //item->setPalette( mStandardPalette ); |
698 | QPalette pal; | 698 | QPalette pal; |
699 | if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { | 699 | if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { |
700 | QStringList categories = todo->categories(); | 700 | QStringList categories = todo->categories(); |
701 | QString cat = categories.first(); | 701 | QString cat = categories.first(); |
702 | if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { | 702 | if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { |
703 | pal = getPalette(); | 703 | pal = getPalette(); |
704 | if (cat.isEmpty()) { | 704 | if (cat.isEmpty()) { |
705 | pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); | 705 | pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); |
706 | } else { | 706 | } else { |
707 | pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); | 707 | pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); |
708 | } | 708 | } |
709 | 709 | ||
710 | } else { | 710 | } else { |
711 | if (cat.isEmpty()) { | 711 | if (cat.isEmpty()) { |
712 | pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); | 712 | pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); |
713 | } else { | 713 | } else { |
714 | pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); | 714 | pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); |
715 | } | 715 | } |
716 | } | 716 | } |
717 | 717 | ||
718 | } else { | 718 | } else { |
719 | pal = mStandardPalette ; | 719 | pal = mStandardPalette ; |
720 | } | 720 | } |
721 | item->setPalette( pal ); | 721 | item->setPalette( pal ); |
722 | item->setRecur( todo->recurrence()->doesRecur() ); | 722 | item->setRecur( todo->recurrence()->doesRecur() ); |
723 | item->setAlarm( todo->isAlarmEnabled() ); | 723 | item->setAlarm( todo->isAlarmEnabled() ); |
724 | item->setMoreInfo( todo->description().length() > 0 ); | 724 | item->setMoreInfo( todo->description().length() > 0 ); |
725 | if ( insertNewItem) | 725 | if ( insertNewItem) |
726 | insertItem( item ); | 726 | insertItem( item ); |
727 | mToolTip.append( text ); | 727 | mToolTip.append( text ); |
728 | } | 728 | } |
729 | void MonthViewCell::repaintfinishUpdateCell() | 729 | void MonthViewCell::repaintfinishUpdateCell() |
730 | { | 730 | { |
731 | MonthViewItem *mitem = (MonthViewItem*) firstItem (); | 731 | MonthViewItem *mitem = (MonthViewItem*) firstItem (); |
732 | while ( mitem ) { | 732 | while ( mitem ) { |
733 | mitem->setBlockRepaint( false ); | 733 | mitem->setBlockRepaint( false ); |
734 | updateItem ( mitem ); | 734 | updateItem ( mitem ); |
735 | mitem = (MonthViewItem *)mitem->next(); | 735 | mitem = (MonthViewItem *)mitem->next(); |
736 | } | 736 | } |
737 | } | 737 | } |
738 | void MonthViewCell::finishUpdateCell() | 738 | void MonthViewCell::finishUpdateCell() |
739 | { | 739 | { |
740 | while ( mCurrentAvailItem ) { | 740 | while ( mCurrentAvailItem ) { |
741 | MonthViewItem *item = mCurrentAvailItem; | 741 | MonthViewItem *item = mCurrentAvailItem; |
742 | mCurrentAvailItem = (MonthViewItem *)item->next(); | 742 | mCurrentAvailItem = (MonthViewItem *)item->next(); |
743 | mAvailItemList.append( item ); | 743 | mAvailItemList.append( item ); |
744 | takeItem ( item ); | 744 | takeItem ( item ); |
745 | } | 745 | } |
746 | 746 | ||
747 | 747 | ||
748 | #ifdef DESKTOP_VERSION | 748 | #ifdef DESKTOP_VERSION |
749 | if (mToolTip.count() > 0 ) { | 749 | if (mToolTip.count() > 0 ) { |
750 | mToolTip.sort(); | 750 | mToolTip.sort(); |
751 | QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),""); | 751 | QToolTip::add(this,mToolTip.join("\n"),toolTipGroup(),""); |
752 | } | 752 | } |
753 | #endif | 753 | #endif |
754 | sort(); | 754 | sort(); |
755 | //setMyPalette(); | 755 | //setMyPalette(); |
756 | setMyPalette(); | 756 | setMyPalette(); |
757 | QString text; | 757 | |
758 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; | ||
759 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { | ||
760 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; | ||
761 | mLabel->resize( mLabelBigSize ); | ||
762 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
763 | } else { | ||
764 | mLabel->resize( mLabelSize ); | ||
765 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
766 | } | ||
767 | |||
768 | mLabel->setText( text ); | ||
769 | resizeEvent( 0 ); | 758 | resizeEvent( 0 ); |
770 | 759 | ||
771 | } | 760 | } |
772 | void MonthViewCell::updateCell() | 761 | void MonthViewCell::updateCell() |
773 | { | 762 | { |
774 | //qDebug("MonthViewCell::updateCell() "); | 763 | //qDebug("MonthViewCell::updateCell() "); |
775 | if ( !mMonthView->isUpdatePossible() ) | 764 | if ( !mMonthView->isUpdatePossible() ) |
776 | return; | 765 | return; |
777 | startUpdateCell(); | 766 | startUpdateCell(); |
778 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 767 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
779 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); | 768 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); |
780 | Event *event; | 769 | Event *event; |
781 | for( event = events.first(); event; event = events.next() ) { // for event | 770 | for( event = events.first(); event; event = events.next() ) { // for event |
782 | insertEvent(event); | 771 | insertEvent(event); |
783 | } | 772 | } |
784 | // insert due todos | 773 | // insert due todos |
785 | QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); | 774 | QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); |
786 | Todo *todo; | 775 | Todo *todo; |
787 | for(todo = todos.first(); todo; todo = todos.next()) { | 776 | for(todo = todos.first(); todo; todo = todos.next()) { |
788 | insertTodo( todo ); | 777 | insertTodo( todo ); |
789 | } | 778 | } |
790 | finishUpdateCell(); | 779 | finishUpdateCell(); |
791 | // if ( isVisible()) | 780 | // if ( isVisible()) |
792 | //qApp->processEvents(); | 781 | //qApp->processEvents(); |
793 | } | 782 | } |
794 | 783 | ||
795 | void MonthViewCell::updateConfig( bool bigFont ) // = false | 784 | void MonthViewCell::updateConfig( bool bigFont ) // = false |
796 | { | 785 | { |
797 | 786 | ||
798 | if ( bigFont ) { | 787 | if ( bigFont ) { |
799 | QFont fo = KOPrefs::instance()->mMonthViewFont; | 788 | QFont fo = KOPrefs::instance()->mMonthViewFont; |
800 | int ps = fo.pointSize() + 2; | 789 | int ps = fo.pointSize() + 2; |
801 | if ( ps < 18 ) | 790 | if ( ps < 18 ) |
802 | ps += 2; | 791 | ps += 2; |
803 | fo.setPointSize( ps ); | 792 | fo.setPointSize( ps ); |
804 | setFont( fo ); | 793 | setFont( fo ); |
805 | } else | 794 | } else |
806 | setFont( KOPrefs::instance()->mMonthViewFont ); | 795 | setFont( KOPrefs::instance()->mMonthViewFont ); |
807 | 796 | ||
808 | QFontMetrics fm( font() ); | 797 | QFontMetrics fm( font() ); |
809 | mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 ); | 798 | mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 ); |
810 | mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 ); | 799 | mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 ); |
811 | mHolidayPalette = mStandardPalette; | 800 | mHolidayPalette = mStandardPalette; |
812 | mPrimaryPalette = mStandardPalette; | 801 | mPrimaryPalette = mStandardPalette; |
813 | mNonPrimaryPalette = mStandardPalette; | 802 | mNonPrimaryPalette = mStandardPalette; |
814 | if ( KOPrefs::instance()->mMonthViewUsesDayColors ) { | 803 | if ( KOPrefs::instance()->mMonthViewUsesDayColors ) { |
815 | mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor ); | 804 | mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor ); |
816 | mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor ); | 805 | mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor ); |
817 | mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark()); | 806 | mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark()); |
818 | mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark()); | 807 | mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark()); |
819 | mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); | 808 | mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); |
820 | mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); | 809 | mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); |
821 | mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); | 810 | mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); |
822 | mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); | 811 | mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); |
823 | mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); | 812 | mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); |
824 | } | 813 | } |
825 | //updateCell(); | 814 | //updateCell(); |
826 | } | 815 | } |
827 | 816 | ||
828 | void MonthViewCell::enableScrollBars( bool enabled ) | 817 | void MonthViewCell::enableScrollBars( bool enabled ) |
829 | { | 818 | { |
830 | if ( enabled ) { | 819 | if ( enabled ) { |
831 | 820 | ||
832 | QListBoxItem *fi = firstItem (); | 821 | QListBoxItem *fi = firstItem (); |
833 | if (fi ) { | 822 | if (fi ) { |
834 | int ihei = fi->height( this ); | 823 | int ihei = fi->height( this ); |
835 | int hei = numRows () * ihei; | 824 | int hei = numRows () * ihei; |
836 | if ( hei < height() - horizontalScrollBar()->height () ) | 825 | if ( hei < height() - horizontalScrollBar()->height () ) |
837 | setVScrollBarMode(QScrollView::AlwaysOff); | 826 | setVScrollBarMode(QScrollView::AlwaysOff); |
838 | else | 827 | else |
839 | setVScrollBarMode(QScrollView::Auto); | 828 | setVScrollBarMode(QScrollView::Auto); |
840 | if ( ihei *3 > height() ) | 829 | if ( ihei *3 > height() ) |
841 | setHScrollBarMode(QScrollView::AlwaysOff); | 830 | setHScrollBarMode(QScrollView::AlwaysOff); |
842 | else | 831 | else |
843 | setHScrollBarMode(QScrollView::Auto); | 832 | setHScrollBarMode(QScrollView::Auto); |
844 | } else { | 833 | } else { |
845 | setVScrollBarMode(QScrollView::Auto); | 834 | setVScrollBarMode(QScrollView::Auto); |
846 | setHScrollBarMode(QScrollView::Auto); | 835 | setHScrollBarMode(QScrollView::Auto); |
847 | } | 836 | } |
848 | } else { | 837 | } else { |
849 | setVScrollBarMode(QScrollView::AlwaysOff); | 838 | setVScrollBarMode(QScrollView::AlwaysOff); |
850 | setHScrollBarMode(QScrollView::AlwaysOff); | 839 | setHScrollBarMode(QScrollView::AlwaysOff); |
851 | } | 840 | } |
852 | } | 841 | } |
853 | 842 | ||
854 | Incidence *MonthViewCell::selectedIncidence() | 843 | Incidence *MonthViewCell::selectedIncidence() |
855 | { | 844 | { |
856 | int index = currentItem(); | 845 | int index = currentItem(); |
857 | if ( index < 0 ) return 0; | 846 | if ( index < 0 ) return 0; |
858 | 847 | ||
859 | MonthViewItem *mitem = | 848 | MonthViewItem *mitem = |
860 | static_cast<MonthViewItem *>( item( index ) ); | 849 | static_cast<MonthViewItem *>( item( index ) ); |
861 | 850 | ||
862 | if ( !mitem ) return 0; | 851 | if ( !mitem ) return 0; |
863 | 852 | ||
864 | return mitem->incidence(); | 853 | return mitem->incidence(); |
865 | } | 854 | } |
866 | 855 | ||
867 | QDate MonthViewCell::selectedIncidenceDate() | 856 | QDate MonthViewCell::selectedIncidenceDate() |
868 | { | 857 | { |
869 | QDate qd; | 858 | QDate qd; |
870 | int index = currentItem(); | 859 | int index = currentItem(); |
871 | if ( index < 0 ) return qd; | 860 | if ( index < 0 ) return qd; |
872 | 861 | ||
873 | MonthViewItem *mitem = | 862 | MonthViewItem *mitem = |
874 | static_cast<MonthViewItem *>( item( index ) ); | 863 | static_cast<MonthViewItem *>( item( index ) ); |
875 | 864 | ||
876 | if ( !mitem ) return qd; | 865 | if ( !mitem ) return qd; |
877 | 866 | ||
878 | return mitem->incidenceDate(); | 867 | return mitem->incidenceDate(); |
879 | } | 868 | } |
880 | 869 | ||
881 | void MonthViewCell::deselect() | 870 | void MonthViewCell::deselect() |
882 | { | 871 | { |
883 | clearSelection(); | 872 | clearSelection(); |
884 | enableScrollBars( false ); | 873 | enableScrollBars( false ); |
885 | // updateCell(); | 874 | // updateCell(); |
886 | } | 875 | } |
887 | void MonthViewCell::select() | 876 | void MonthViewCell::select() |
888 | { | 877 | { |
889 | ;// updateCell(); | 878 | ;// updateCell(); |
890 | } | 879 | } |
891 | 880 | ||
892 | void MonthViewCell::resizeEvent ( QResizeEvent * e ) | 881 | void MonthViewCell::resizeEvent ( QResizeEvent * e ) |
893 | { | 882 | { |
894 | if ( !mMonthView->isUpdatePossible() ) | 883 | if ( !mMonthView->isUpdatePossible() ) |
895 | return; | 884 | return; |
896 | //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); | 885 | //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); |
897 | deselect(); | 886 | deselect(); |
887 | mLabel->setMaximumHeight( height() - lineWidth()*2 ); | ||
888 | |||
889 | QString text; | ||
890 | mLabel->setText( text ); | ||
891 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; | ||
892 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { | ||
893 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; | ||
894 | mLabel->resize( mLabelBigSize ); | ||
895 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
896 | } else { | ||
897 | mLabel->resize( mLabelSize ); | ||
898 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | ||
899 | } | ||
900 | mLabel->setText( text ); | ||
901 | |||
898 | int size = height() - mLabel->height() - lineWidth()-1; | 902 | int size = height() - mLabel->height() - lineWidth()-1; |
899 | //qDebug("LW %d ", lineWidth()); | 903 | //qDebug("LW %d ", lineWidth()); |
900 | if ( size > 0 ) | 904 | if ( size > 0 ) |
901 | verticalScrollBar()->setMaximumHeight( size ); | 905 | verticalScrollBar()->setMaximumHeight( size ); |
902 | size = width() - mLabel->width() -lineWidth()-1; | 906 | size = width() - mLabel->width() -lineWidth()-1; |
903 | if ( size > 0 ) | 907 | if ( size > 0 ) |
904 | horizontalScrollBar()->setMaximumWidth( size ); | 908 | horizontalScrollBar()->setMaximumWidth( size ); |
905 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); | 909 | mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); |
906 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 910 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
907 | // mItemList->resize ( width(), height () ); | 911 | // mItemList->resize ( width(), height () ); |
908 | if ( e ) | 912 | if ( e ) |
909 | KNoScrollListBox::resizeEvent ( e ); | 913 | KNoScrollListBox::resizeEvent ( e ); |
910 | } | 914 | } |
911 | 915 | ||
912 | void MonthViewCell::defaultAction( QListBoxItem *item ) | 916 | void MonthViewCell::defaultAction( QListBoxItem *item ) |
913 | { | 917 | { |
914 | if ( !item ) return; | 918 | if ( !item ) return; |
915 | 919 | ||
916 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); | 920 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); |
917 | Incidence *incidence = eventItem->incidence(); | 921 | Incidence *incidence = eventItem->incidence(); |
918 | if ( incidence ) mMonthView->defaultAction( incidence ); | 922 | if ( incidence ) mMonthView->defaultAction( incidence ); |
919 | } | 923 | } |
920 | void MonthViewCell::showDay() | 924 | void MonthViewCell::showDay() |
921 | { | 925 | { |
922 | emit showDaySignal( date() ); | 926 | emit showDaySignal( date() ); |
923 | } | 927 | } |
924 | void MonthViewCell::newEvent() | 928 | void MonthViewCell::newEvent() |
925 | { | 929 | { |
926 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); | 930 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); |
927 | emit newEventSignal( dt ); | 931 | emit newEventSignal( dt ); |
928 | } | 932 | } |
929 | void MonthViewCell::cellClicked( QListBoxItem *item ) | 933 | void MonthViewCell::cellClicked( QListBoxItem *item ) |
930 | { | 934 | { |
931 | static QListBoxItem * lastClicked = 0; | 935 | static QListBoxItem * lastClicked = 0; |
932 | if ( item == 0 ) { | 936 | if ( item == 0 ) { |
933 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); | 937 | QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); |
934 | emit newEventSignal( dt ); | 938 | emit newEventSignal( dt ); |
935 | return; | 939 | return; |
936 | } | 940 | } |
937 | /* | 941 | /* |
938 | if ( lastClicked ) | 942 | if ( lastClicked ) |
939 | if ( ! item ) { | 943 | if ( ! item ) { |
940 | if ( lastClicked->listBox() != item->listBox() ) | 944 | if ( lastClicked->listBox() != item->listBox() ) |
941 | lastClicked->listBox()->clearSelection(); | 945 | lastClicked->listBox()->clearSelection(); |
942 | } | 946 | } |
943 | */ | 947 | */ |
944 | 948 | ||
945 | mMonthView->setSelectedCell( this ); | 949 | mMonthView->setSelectedCell( this ); |
946 | if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); | 950 | if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); |
947 | select(); | 951 | select(); |
948 | } | 952 | } |
949 | 953 | ||
950 | void MonthViewCell::contextMenu( QListBoxItem *item ) | 954 | void MonthViewCell::contextMenu( QListBoxItem *item ) |
951 | { | 955 | { |
952 | if ( !item ) return; | 956 | if ( !item ) return; |
953 | 957 | ||
954 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); | 958 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); |
955 | Incidence *incidence = eventItem->incidence(); | 959 | Incidence *incidence = eventItem->incidence(); |
956 | if ( incidence ) mMonthView->showContextMenu( incidence ); | 960 | if ( incidence ) mMonthView->showContextMenu( incidence ); |
957 | } | 961 | } |
958 | 962 | ||
959 | void MonthViewCell::selection( QListBoxItem *item ) | 963 | void MonthViewCell::selection( QListBoxItem *item ) |
960 | { | 964 | { |
961 | if ( !item ) return; | 965 | if ( !item ) return; |
962 | 966 | ||
963 | mMonthView->setSelectedCell( this ); | 967 | mMonthView->setSelectedCell( this ); |
964 | } | 968 | } |
965 | 969 | ||
966 | 970 | ||
967 | // ******************************************************************************* | 971 | // ******************************************************************************* |
968 | // ******************************************************************************* | 972 | // ******************************************************************************* |
969 | // ******************************************************************************* | 973 | // ******************************************************************************* |
970 | 974 | ||
971 | 975 | ||
972 | KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) | 976 | KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) |
973 | : KOEventView( calendar, parent, name ), | 977 | : KOEventView( calendar, parent, name ), |
974 | mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), | 978 | mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), |
975 | mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) | 979 | mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) |
976 | { | 980 | { |
977 | mShortDayLabelsM = false; | 981 | mShortDayLabelsM = false; |
978 | mShortDayLabelsW = false; | 982 | mShortDayLabelsW = false; |
979 | skipResize = false; | 983 | skipResize = false; |
980 | clPending = true; | 984 | clPending = true; |
981 | mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); | 985 | mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); |
982 | mWidStack = new QWidgetStack( this ); | 986 | mWidStack = new QWidgetStack( this ); |
983 | QVBoxLayout* hb = new QVBoxLayout( this ); | 987 | QVBoxLayout* hb = new QVBoxLayout( this ); |
984 | mMonthView = new QWidget( mWidStack ); | 988 | mMonthView = new QWidget( mWidStack ); |
985 | mWeekView = new QWidget( mWidStack ); | 989 | mWeekView = new QWidget( mWidStack ); |
986 | #if QT_VERSION >= 0x030000 | 990 | #if QT_VERSION >= 0x030000 |
987 | mWidStack->addWidget(mMonthView ); | 991 | mWidStack->addWidget(mMonthView ); |
988 | mWidStack->addWidget(mWeekView ); | 992 | mWidStack->addWidget(mWeekView ); |
989 | #else | 993 | #else |
990 | mWidStack->addWidget( mMonthView, 1 ); | 994 | mWidStack->addWidget( mMonthView, 1 ); |
991 | mWidStack->addWidget( mWeekView , 1 ); | 995 | mWidStack->addWidget( mWeekView , 1 ); |
992 | #endif | 996 | #endif |
993 | hb->addWidget( mNavigatorBar ); | 997 | hb->addWidget( mNavigatorBar ); |
@@ -1355,456 +1359,470 @@ void KOMonthView::updateView() | |||
1355 | //QTime ti; | 1359 | //QTime ti; |
1356 | //ti.start(); | 1360 | //ti.start(); |
1357 | clearSelection(); | 1361 | clearSelection(); |
1358 | QPtrVector<MonthViewCell> *cells; | 1362 | QPtrVector<MonthViewCell> *cells; |
1359 | if ( mShowWeekView ) { | 1363 | if ( mShowWeekView ) { |
1360 | cells = &mCellsW; | 1364 | cells = &mCellsW; |
1361 | } else { | 1365 | } else { |
1362 | cells = &mCells; | 1366 | cells = &mCells; |
1363 | } | 1367 | } |
1364 | #if 1 | 1368 | #if 1 |
1365 | int i; | 1369 | int i; |
1366 | int timeSpan = (*cells).size()-1; | 1370 | int timeSpan = (*cells).size()-1; |
1367 | if ( KOPrefs::instance()->mMonthViewWeek ) | 1371 | if ( KOPrefs::instance()->mMonthViewWeek ) |
1368 | timeSpan = 6; | 1372 | timeSpan = 6; |
1369 | for( i = 0; i < timeSpan + 1; ++i ) { | 1373 | for( i = 0; i < timeSpan + 1; ++i ) { |
1370 | (*cells)[i]->startUpdateCell(); | 1374 | (*cells)[i]->startUpdateCell(); |
1371 | } | 1375 | } |
1372 | 1376 | ||
1373 | QPtrList<Event> events = calendar()->events(); | 1377 | QPtrList<Event> events = calendar()->events(); |
1374 | Event *event; | 1378 | Event *event; |
1375 | QDateTime dt; | 1379 | QDateTime dt; |
1376 | bool ok; | 1380 | bool ok; |
1377 | QDate endDate = mStartDate.addDays( timeSpan ); | 1381 | QDate endDate = mStartDate.addDays( timeSpan ); |
1378 | for( event = events.first(); event; event = events.next() ) { // for event | 1382 | for( event = events.first(); event; event = events.next() ) { // for event |
1379 | if ( event->doesRecur() ) { | 1383 | if ( event->doesRecur() ) { |
1380 | bool last; | 1384 | bool last; |
1381 | QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); | 1385 | QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); |
1382 | QDateTime incidenceEnd; | 1386 | QDateTime incidenceEnd; |
1383 | int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); | 1387 | int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); |
1384 | bool invalid = false; | 1388 | bool invalid = false; |
1385 | while( true ) { | 1389 | while( true ) { |
1386 | if ( incidenceStart.isValid() ) { | 1390 | if ( incidenceStart.isValid() ) { |
1387 | incidenceEnd = incidenceStart.addDays( eventlen ); | 1391 | incidenceEnd = incidenceStart.addDays( eventlen ); |
1388 | int st = incidenceStart.date().daysTo( endDate ); | 1392 | int st = incidenceStart.date().daysTo( endDate ); |
1389 | if ( st >= 0 ) { // start before timeend | 1393 | if ( st >= 0 ) { // start before timeend |
1390 | int end = mStartDate.daysTo( incidenceEnd.date() ); | 1394 | int end = mStartDate.daysTo( incidenceEnd.date() ); |
1391 | if ( end >= 0 ) { // end after timestart --- got one! | 1395 | if ( end >= 0 ) { // end after timestart --- got one! |
1392 | //normalize | 1396 | //normalize |
1393 | st = timeSpan - st; | 1397 | st = timeSpan - st; |
1394 | if ( st < 0 ) st = 0; | 1398 | if ( st < 0 ) st = 0; |
1395 | if ( end > timeSpan ) end = timeSpan; | 1399 | if ( end > timeSpan ) end = timeSpan; |
1396 | int iii; | 1400 | int iii; |
1397 | //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); | 1401 | //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); |
1398 | for ( iii = st;iii<= end;++iii) | 1402 | for ( iii = st;iii<= end;++iii) |
1399 | (*cells)[iii]->insertEvent( event ); | 1403 | (*cells)[iii]->insertEvent( event ); |
1400 | } | 1404 | } |
1401 | } | 1405 | } |
1402 | } else { | 1406 | } else { |
1403 | if ( invalid ) | 1407 | if ( invalid ) |
1404 | break; | 1408 | break; |
1405 | invalid = true; | 1409 | invalid = true; |
1406 | //qDebug("invalid %s", event->summary().latin1()); | 1410 | //qDebug("invalid %s", event->summary().latin1()); |
1407 | incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; | 1411 | incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; |
1408 | } | 1412 | } |
1409 | if ( last ) | 1413 | if ( last ) |
1410 | break; | 1414 | break; |
1411 | bool ok; | 1415 | bool ok; |
1412 | incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); | 1416 | incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); |
1413 | if ( ! ok ) | 1417 | if ( ! ok ) |
1414 | break; | 1418 | break; |
1415 | if ( incidenceStart.date() > endDate ) | 1419 | if ( incidenceStart.date() > endDate ) |
1416 | break; | 1420 | break; |
1417 | } | 1421 | } |
1418 | } else { // no recur | 1422 | } else { // no recur |
1419 | int st = event->dtStart().date().daysTo( endDate ); | 1423 | int st = event->dtStart().date().daysTo( endDate ); |
1420 | if ( st >= 0 ) { // start before timeend | 1424 | if ( st >= 0 ) { // start before timeend |
1421 | int end = mStartDate.daysTo( event->dtEnd().date() ); | 1425 | int end = mStartDate.daysTo( event->dtEnd().date() ); |
1422 | if ( end >= 0 ) { // end after timestart --- got one! | 1426 | if ( end >= 0 ) { // end after timestart --- got one! |
1423 | //normalize | 1427 | //normalize |
1424 | st = timeSpan - st; | 1428 | st = timeSpan - st; |
1425 | if ( st < 0 ) st = 0; | 1429 | if ( st < 0 ) st = 0; |
1426 | if ( end > timeSpan ) end = timeSpan; | 1430 | if ( end > timeSpan ) end = timeSpan; |
1427 | int iii; | 1431 | int iii; |
1428 | for ( iii = st;iii<= end;++iii) | 1432 | for ( iii = st;iii<= end;++iii) |
1429 | (*cells)[iii]->insertEvent( event ); | 1433 | (*cells)[iii]->insertEvent( event ); |
1430 | } | 1434 | } |
1431 | } | 1435 | } |
1432 | } | 1436 | } |
1433 | } | 1437 | } |
1434 | // insert due todos | 1438 | // insert due todos |
1435 | QPtrList<Todo> todos = calendar()->todos( ); | 1439 | QPtrList<Todo> todos = calendar()->todos( ); |
1436 | Todo *todo; | 1440 | Todo *todo; |
1437 | for(todo = todos.first(); todo; todo = todos.next()) { | 1441 | for(todo = todos.first(); todo; todo = todos.next()) { |
1438 | //insertTodo( todo ); | 1442 | //insertTodo( todo ); |
1439 | if ( todo->hasDueDate() ) { | 1443 | if ( todo->hasDueDate() ) { |
1440 | int day = mStartDate.daysTo( todo->dtDue().date() ); | 1444 | int day = mStartDate.daysTo( todo->dtDue().date() ); |
1441 | if ( day >= 0 && day < timeSpan + 1) { | 1445 | if ( day >= 0 && day < timeSpan + 1) { |
1442 | (*cells)[day]->insertTodo( todo ); | 1446 | (*cells)[day]->insertTodo( todo ); |
1443 | } | 1447 | } |
1444 | } | 1448 | } |
1445 | } | 1449 | } |
1446 | 1450 | ||
1447 | for( i = 0; i < timeSpan+1; ++i ) { | 1451 | for( i = 0; i < timeSpan+1; ++i ) { |
1448 | (*cells)[i]->finishUpdateCell(); | 1452 | (*cells)[i]->finishUpdateCell(); |
1449 | } | 1453 | } |
1450 | processSelectionChange(); | 1454 | processSelectionChange(); |
1451 | qApp->processEvents(); | 1455 | //qApp->processEvents(); |
1452 | for( i = 0; i < timeSpan+1; ++i ) { | 1456 | for( i = 0; i < timeSpan+1; ++i ) { |
1453 | (*cells)[i]->repaintfinishUpdateCell(); | 1457 | (*cells)[i]->repaintfinishUpdateCell(); |
1454 | } | 1458 | } |
1455 | (*cells)[0]->setFocus(); | 1459 | (*cells)[0]->setFocus(); |
1456 | 1460 | ||
1457 | 1461 | ||
1458 | #else | 1462 | #else |
1459 | // old code | 1463 | // old code |
1460 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1464 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1461 | int i; | 1465 | int i; |
1462 | for( i = 0; i < (*cells).count(); ++i ) { | 1466 | for( i = 0; i < (*cells).count(); ++i ) { |
1463 | (*cells)[i]->updateCell(); | 1467 | (*cells)[i]->updateCell(); |
1464 | } | 1468 | } |
1465 | 1469 | ||
1466 | //qDebug("KOMonthView::updateView() "); | 1470 | //qDebug("KOMonthView::updateView() "); |
1467 | processSelectionChange(); | 1471 | processSelectionChange(); |
1468 | // qDebug("---------------------------------------------------------------------+ "); | 1472 | // qDebug("---------------------------------------------------------------------+ "); |
1469 | (*cells)[0]->setFocus(); | 1473 | (*cells)[0]->setFocus(); |
1470 | #endif | 1474 | #endif |
1471 | 1475 | ||
1472 | //qDebug("update time %d ", ti.elapsed()); | 1476 | //qDebug("update time %d ", ti.elapsed()); |
1473 | } | 1477 | } |
1474 | 1478 | ||
1475 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1479 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1476 | { | 1480 | { |
1477 | qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1481 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1478 | if ( isVisible() ) { | 1482 | if ( isVisible() ) { |
1479 | qDebug("KOMonthView::isVisible "); | 1483 | //qDebug("KOMonthView::isVisible "); |
1480 | slotComputeLayout(); | 1484 | slotComputeLayout(); |
1481 | } else | 1485 | } else |
1482 | mComputeLayoutTimer->start( 100 ); | 1486 | mComputeLayoutTimer->start( 100 ); |
1483 | } | 1487 | } |
1484 | 1488 | ||
1485 | void KOMonthView::slotComputeLayout() | 1489 | void KOMonthView::slotComputeLayout() |
1486 | { | 1490 | { |
1487 | mComputeLayoutTimer->stop(); | 1491 | mComputeLayoutTimer->stop(); |
1488 | qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | 1492 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); |
1489 | computeLayout(); | 1493 | computeLayout(); |
1490 | clPending = true; | 1494 | clPending = true; |
1491 | if ( mShowWeekView ) | 1495 | if ( mShowWeekView ) |
1492 | mCellsW[0]->setFocus(); | 1496 | mCellsW[0]->setFocus(); |
1493 | else | 1497 | else |
1494 | mCells[0]->setFocus(); | 1498 | mCells[0]->setFocus(); |
1495 | 1499 | ||
1496 | } | 1500 | } |
1497 | void KOMonthView::computeLayoutWeek() | 1501 | void KOMonthView::computeLayoutWeek() |
1498 | { | 1502 | { |
1499 | static int lastWid = 0; | 1503 | static int lastWid = 0; |
1500 | static int lastHei = 0; | 1504 | static int lastHei = 0; |
1501 | int daysToShow; | 1505 | int daysToShow; |
1502 | bool combinedSatSun = false; | 1506 | bool combinedSatSun = false; |
1503 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1507 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1504 | daysToShow = 6; | 1508 | daysToShow = 6; |
1505 | combinedSatSun = true; | 1509 | combinedSatSun = true; |
1506 | } | 1510 | } |
1507 | int tWid = topLevelWidget()->size().width(); | 1511 | int tWid = topLevelWidget()->size().width(); |
1508 | int tHei = topLevelWidget()->size().height(); | 1512 | int tHei = topLevelWidget()->size().height(); |
1509 | 1513 | ||
1510 | int wid = width();//e | 1514 | int wid = width();//e |
1511 | int hei = height()-1-mNavigatorBar->height(); | 1515 | int hei = height()-1-mNavigatorBar->height(); |
1512 | 1516 | ||
1513 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1517 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1514 | return; | 1518 | return; |
1515 | 1519 | ||
1516 | if ( lastWid == width() && lastHei == height() ) { | 1520 | if ( lastWid == width() && lastHei == height() ) { |
1517 | qDebug("KOListWeekView::No compute layout needed "); | 1521 | //qDebug("KOListWeekView::No compute layout needed "); |
1518 | return; | 1522 | return; |
1519 | } | 1523 | } |
1520 | lastWid = width(); | 1524 | lastWid = width(); |
1521 | lastHei = height(); | 1525 | lastHei = height(); |
1522 | 1526 | ||
1523 | 1527 | ||
1524 | if ( wid < hei ) | 1528 | if ( wid < hei ) |
1525 | daysToShow = 2; | 1529 | daysToShow = 2; |
1526 | else | 1530 | else |
1527 | daysToShow = 3; | 1531 | daysToShow = 3; |
1528 | mShowSatSunComp = true; | 1532 | mShowSatSunComp = true; |
1529 | combinedSatSun = true; | 1533 | combinedSatSun = true; |
1530 | 1534 | ||
1531 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1535 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1532 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1536 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1533 | int weeklabelwid = fm.width( "888" ); | 1537 | int weeklabelwid = fm.width( "888" ); |
1534 | wid -= weeklabelwid; | 1538 | wid -= weeklabelwid; |
1535 | 1539 | ||
1536 | int colWid = wid / daysToShow; | 1540 | int colWid = wid / daysToShow; |
1537 | int lastCol = wid - ( colWid*6 ); | 1541 | int lastCol = wid - ( colWid*6 ); |
1538 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1542 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1539 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1543 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1540 | int colModulo = wid % daysToShow; | 1544 | int colModulo = wid % daysToShow; |
1541 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1545 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
1542 | //qDebug("rowmod %d ", rowModulo); | 1546 | //qDebug("rowmod %d ", rowModulo); |
1543 | int i; | 1547 | int i; |
1544 | int x,y,w,h; | 1548 | int x,y,w,h; |
1545 | x= 0; | 1549 | x= 0; |
1546 | y= 0; | 1550 | y= 0; |
1547 | w = colWid; | 1551 | w = colWid; |
1548 | h = dayLabelHei ; | 1552 | h = dayLabelHei ; |
1549 | for ( i = 0; i < 7; i++) { | 1553 | for ( i = 0; i < 7; i++) { |
1550 | if ( i && !( i % daysToShow) && i < 6) { | 1554 | if ( i && !( i % daysToShow) && i < 6) { |
1551 | y += hei/(5-daysToShow); | 1555 | y += hei/(5-daysToShow); |
1552 | x = 0; | 1556 | x = 0; |
1553 | w = colWid; | 1557 | w = colWid; |
1554 | } | 1558 | } |
1555 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1559 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1556 | ++w; | 1560 | ++w; |
1557 | } | 1561 | } |
1558 | if ( i >= 5 ) { | 1562 | if ( i >= 5 ) { |
1559 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); | 1563 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); |
1560 | x -= (w/2 ); | 1564 | x -= (w/2 ); |
1561 | } | 1565 | } |
1562 | else | 1566 | else |
1563 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); | 1567 | mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); |
1564 | x += w; | 1568 | x += w; |
1565 | } | 1569 | } |
1566 | x= 0; | 1570 | x= 0; |
1567 | y= dayLabelHei; | 1571 | y= dayLabelHei; |
1568 | w = colWid; | 1572 | w = colWid; |
1569 | h = cellHei; | 1573 | h = cellHei; |
1574 | int max = 0; | ||
1570 | for ( i = 0; i < mCellsW.count(); ++i) { | 1575 | for ( i = 0; i < mCellsW.count(); ++i) { |
1571 | if ( i > 6 ) { | 1576 | if ( i > 6 ) { |
1572 | mCellsW[i]->hide(); | 1577 | mCellsW[i]->hide(); |
1573 | continue; | 1578 | continue; |
1574 | } | 1579 | } |
1575 | 1580 | ||
1576 | w = colWid; | 1581 | w = colWid; |
1577 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { | 1582 | if ( ((i) % daysToShow) >= daysToShow-colModulo ) { |
1578 | ++w; | 1583 | ++w; |
1579 | } | 1584 | } |
1580 | if ( i == (daysToShow-1-rowModulo)*7) | 1585 | if ( i == (daysToShow-1-rowModulo)*7) |
1581 | ++h; | 1586 | ++h; |
1582 | 1587 | ||
1583 | if ( i >= 5 ) { | 1588 | if ( i >= 5 ) { |
1584 | if ( i ==5 ) { | 1589 | if ( i ==5 ) { |
1585 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); | 1590 | max = h/2; |
1591 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1586 | x -= w ;y += h/2; | 1592 | x -= w ;y += h/2; |
1587 | } else { | 1593 | } else { |
1588 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { | 1594 | if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { |
1589 | ++w; | 1595 | ++w; |
1590 | } | 1596 | } |
1591 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); | 1597 | max = h-h/2; |
1598 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1592 | y -= h/2; | 1599 | y -= h/2; |
1593 | } | 1600 | } |
1594 | } else | 1601 | } else { |
1602 | max = h; | ||
1595 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1603 | mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1604 | } | ||
1596 | 1605 | ||
1597 | 1606 | ||
1598 | x += w; | 1607 | x += w; |
1599 | if ( x + w/2 > wid ) { | 1608 | if ( x + w/2 > wid ) { |
1600 | x = 0; | 1609 | x = 0; |
1601 | y += h+dayLabelHei ; | 1610 | y += h+dayLabelHei ; |
1602 | } | 1611 | } |
1612 | //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); | ||
1603 | } | 1613 | } |
1604 | y= dayLabelHei; | 1614 | y= dayLabelHei; |
1605 | h = cellHei ; | 1615 | h = cellHei ; |
1606 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); | 1616 | mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); |
1607 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1617 | mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1608 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1618 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1609 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1619 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1610 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; | 1620 | mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; |
1611 | updateDayLabels(); | 1621 | updateDayLabels(); |
1612 | //bool forceUpdate = !updatePossible; | 1622 | //bool forceUpdate = !updatePossible; |
1613 | updatePossible = true; | 1623 | updatePossible = true; |
1614 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); | 1624 | //mWeekLabels[mNumWeeks]->setText( i18n("M")); |
1615 | //if ( forceUpdate ) | 1625 | //if ( forceUpdate ) |
1616 | // updateView(); | 1626 | // updateView(); |
1617 | } | 1627 | } |
1618 | void KOMonthView::computeLayout() | 1628 | void KOMonthView::computeLayout() |
1619 | { | 1629 | { |
1620 | 1630 | ||
1621 | 1631 | ||
1622 | static int lastWid = 0; | 1632 | static int lastWid = 0; |
1623 | static int lastHei = 0; | 1633 | static int lastHei = 0; |
1624 | 1634 | ||
1625 | if ( mShowWeekView ){ | 1635 | if ( mShowWeekView ){ |
1626 | computeLayoutWeek(); | 1636 | computeLayoutWeek(); |
1627 | return; | 1637 | return; |
1628 | } | 1638 | } |
1629 | int daysToShow = 7; | 1639 | int daysToShow = 7; |
1630 | bool combinedSatSun = false; | 1640 | bool combinedSatSun = false; |
1631 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1641 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1632 | daysToShow = 6; | 1642 | daysToShow = 6; |
1633 | combinedSatSun = true; | 1643 | combinedSatSun = true; |
1634 | } | 1644 | } |
1635 | int tWid = topLevelWidget()->size().width(); | 1645 | int tWid = topLevelWidget()->size().width(); |
1636 | int tHei = topLevelWidget()->size().height(); | 1646 | int tHei = topLevelWidget()->size().height(); |
1637 | 1647 | ||
1638 | int wid = width();//e | 1648 | int wid = width();//e |
1639 | int hei = height()-1-mNavigatorBar->height(); | 1649 | int hei = height()-1-mNavigatorBar->height(); |
1640 | 1650 | ||
1641 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { | 1651 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { |
1642 | return; | 1652 | return; |
1643 | } | 1653 | } |
1644 | if ( lastWid == width() && lastHei == height() ){ | 1654 | if ( lastWid == width() && lastHei == height() ){ |
1645 | qDebug("KOMonthview::No compute layout needed "); | 1655 | //qDebug("KOMonthview::No compute layout needed "); |
1646 | return; | 1656 | return; |
1647 | } | 1657 | } |
1648 | 1658 | ||
1649 | lastWid = width(); | 1659 | lastWid = width(); |
1650 | lastHei = height(); | 1660 | lastHei = height(); |
1651 | qDebug("KOMonthView::computeLayout() MMM ------------------- "); | 1661 | //qDebug("KOMonthView::computeLayout() MMM ------------------- "); |
1652 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1662 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1653 | int weeklabelwid = fm.width( "888" ); | 1663 | int weeklabelwid = fm.width( "888" ); |
1654 | wid -= weeklabelwid; | 1664 | wid -= weeklabelwid; |
1655 | 1665 | ||
1656 | int colWid = wid / daysToShow; | 1666 | int colWid = wid / daysToShow; |
1657 | int lastCol = wid - ( colWid*6 ); | 1667 | int lastCol = wid - ( colWid*6 ); |
1658 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); | 1668 | int dayLabelHei = mDayLabels[0]->sizeHint().height(); |
1659 | int cellHei = (hei - dayLabelHei) /6; | 1669 | int cellHei = (hei - dayLabelHei) /6; |
1660 | int colModulo = wid % daysToShow; | 1670 | int colModulo = wid % daysToShow; |
1661 | int rowModulo = (hei- dayLabelHei) % 6; | 1671 | int rowModulo = (hei- dayLabelHei) % 6; |
1662 | //qDebug("rowmod %d ", rowModulo); | 1672 | //qDebug("rowmod %d ", rowModulo); |
1663 | int i; | 1673 | int i; |
1664 | int x,y,w,h; | 1674 | int x,y,w,h; |
1665 | x= 0; | 1675 | x= 0; |
1666 | y= 0; | 1676 | y= 0; |
1667 | w = colWid; | 1677 | w = colWid; |
1668 | h = dayLabelHei ; | 1678 | h = dayLabelHei ; |
1669 | for ( i = 0; i < 7; i++) { | 1679 | for ( i = 0; i < 7; i++) { |
1670 | if ( i == daysToShow-colModulo ) | 1680 | if ( i == daysToShow-colModulo ) |
1671 | ++w; | 1681 | ++w; |
1672 | if ( combinedSatSun ) { | 1682 | if ( combinedSatSun ) { |
1673 | if ( i >= daysToShow-1 ) { | 1683 | if ( i >= daysToShow-1 ) { |
1674 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); | 1684 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); |
1675 | x -= w/2 ; | 1685 | x -= w/2 ; |
1676 | } | 1686 | } |
1677 | else | 1687 | else |
1678 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1688 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1679 | } else | 1689 | } else |
1680 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); | 1690 | mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); |
1681 | x += w; | 1691 | x += w; |
1682 | } | 1692 | } |
1683 | x= 0; | 1693 | x= 0; |
1684 | y= dayLabelHei; | 1694 | y= dayLabelHei; |
1685 | w = colWid; | 1695 | w = colWid; |
1686 | h = cellHei ; | 1696 | h = cellHei ; |
1697 | int max = 0; | ||
1687 | for ( i = 0; i < mCells.count(); ++i) { | 1698 | for ( i = 0; i < mCells.count(); ++i) { |
1688 | //qDebug("iii %d ", i); | 1699 | //qDebug("iii %d ", i); |
1689 | w = colWid; | 1700 | w = colWid; |
1690 | if ( ((i) % 7) >= 7-colModulo ) { | 1701 | if ( ((i) % 7) >= 7-colModulo ) { |
1691 | ++w; | 1702 | ++w; |
1692 | } | 1703 | } |
1693 | if ( i == (6-rowModulo)*7) | 1704 | if ( i == (6-rowModulo)*7) |
1694 | ++h; | 1705 | ++h; |
1695 | if ( combinedSatSun ) { | 1706 | if ( combinedSatSun ) { |
1696 | if ( (i)%7 >= daysToShow-1 ) { | 1707 | if ( (i)%7 >= daysToShow-1 ) { |
1697 | if ( (i)%7 == daysToShow-1 ) { | 1708 | if ( (i)%7 == daysToShow-1 ) { |
1698 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); | 1709 | max = h/2; |
1710 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1699 | x -= w ;y += h/2; | 1711 | x -= w ;y += h/2; |
1700 | } else { | 1712 | } else { |
1701 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); | 1713 | max = h-h/2; |
1714 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); | ||
1702 | y -= h/2; | 1715 | y -= h/2; |
1703 | } | 1716 | } |
1704 | } else | 1717 | } else { |
1718 | max = h; | ||
1705 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1719 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1720 | } | ||
1706 | 1721 | ||
1707 | } | 1722 | } |
1708 | else | 1723 | else { |
1724 | max = h; | ||
1709 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); | 1725 | mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); |
1726 | } | ||
1710 | x += w; | 1727 | x += w; |
1711 | if ( x + w/2 > wid ) { | 1728 | if ( x + w/2 > wid ) { |
1712 | x = 0; | 1729 | x = 0; |
1713 | y += h; | 1730 | y += h; |
1714 | } | 1731 | } |
1732 | //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 ); | ||
1715 | } | 1733 | } |
1716 | y= dayLabelHei; | 1734 | y= dayLabelHei; |
1717 | h = cellHei ; | 1735 | h = cellHei ; |
1718 | for ( i = 0; i < 6; i++) { | 1736 | for ( i = 0; i < 6; i++) { |
1719 | if ( i == (6-rowModulo)) | 1737 | if ( i == (6-rowModulo)) |
1720 | ++h; | 1738 | ++h; |
1721 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); | 1739 | mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); |
1722 | y += h; | 1740 | y += h; |
1723 | } | 1741 | } |
1724 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); | 1742 | mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); |
1725 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); | 1743 | // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); |
1726 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); | 1744 | //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); |
1727 | mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; | 1745 | mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; |
1728 | updateDayLabels(); | 1746 | updateDayLabels(); |
1729 | //bool forceUpdate = !updatePossible; | 1747 | //bool forceUpdate = !updatePossible; |
1730 | updatePossible = true; | 1748 | updatePossible = true; |
1731 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); | 1749 | //mWeekLabels[mNumWeeks]->setText( i18n("W")); |
1732 | } | 1750 | } |
1733 | 1751 | ||
1734 | void KOMonthView::showContextMenu( Incidence *incidence ) | 1752 | void KOMonthView::showContextMenu( Incidence *incidence ) |
1735 | { | 1753 | { |
1736 | mContextMenu->showIncidencePopup(incidence); | 1754 | mContextMenu->showIncidencePopup(incidence); |
1737 | /* | 1755 | /* |
1738 | if( incidence && incidence->type() == "Event" ) { | 1756 | if( incidence && incidence->type() == "Event" ) { |
1739 | Event *event = static_cast<Event *>(incidence); | 1757 | Event *event = static_cast<Event *>(incidence); |
1740 | mContextMenu->showEventPopup(event); | 1758 | mContextMenu->showEventPopup(event); |
1741 | } else { | 1759 | } else { |
1742 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; | 1760 | kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; |
1743 | } | 1761 | } |
1744 | */ | 1762 | */ |
1745 | } | 1763 | } |
1746 | MonthViewCell * KOMonthView::selectedCell( ) | 1764 | MonthViewCell * KOMonthView::selectedCell( ) |
1747 | { | 1765 | { |
1748 | return mSelectedCell; | 1766 | return mSelectedCell; |
1749 | } | 1767 | } |
1750 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) | 1768 | void KOMonthView::setSelectedCell( MonthViewCell *cell ) |
1751 | { | 1769 | { |
1752 | //qDebug("KOMonthView::setSelectedCell "); | 1770 | //qDebug("KOMonthView::setSelectedCell "); |
1753 | if ( mSelectedCell && mSelectedCell != cell ) { | 1771 | if ( mSelectedCell && mSelectedCell != cell ) { |
1754 | MonthViewCell * mvc = mSelectedCell; | 1772 | MonthViewCell * mvc = mSelectedCell; |
1755 | mSelectedCell = cell; | 1773 | mSelectedCell = cell; |
1756 | mvc->deselect(); | 1774 | mvc->deselect(); |
1757 | } else | 1775 | } else |
1758 | mSelectedCell = cell; | 1776 | mSelectedCell = cell; |
1759 | // if ( mSelectedCell ) | 1777 | // if ( mSelectedCell ) |
1760 | // mSelectedCell->select(); | 1778 | // mSelectedCell->select(); |
1761 | if ( !mSelectedCell ) | 1779 | if ( !mSelectedCell ) |
1762 | emit incidenceSelected( 0 ); | 1780 | emit incidenceSelected( 0 ); |
1763 | else | 1781 | else |
1764 | emit incidenceSelected( mSelectedCell->selectedIncidence() ); | 1782 | emit incidenceSelected( mSelectedCell->selectedIncidence() ); |
1765 | } | 1783 | } |
1766 | 1784 | ||
1767 | void KOMonthView::processSelectionChange() | 1785 | void KOMonthView::processSelectionChange() |
1768 | { | 1786 | { |
1769 | QPtrList<Incidence> incidences = selectedIncidences(); | 1787 | QPtrList<Incidence> incidences = selectedIncidences(); |
1770 | if (incidences.count() > 0) { | 1788 | if (incidences.count() > 0) { |
1771 | emit incidenceSelected( incidences.first() ); | 1789 | emit incidenceSelected( incidences.first() ); |
1772 | } else { | 1790 | } else { |
1773 | emit incidenceSelected( 0 ); | 1791 | emit incidenceSelected( 0 ); |
1774 | clearSelection(); | 1792 | clearSelection(); |
1775 | } | 1793 | } |
1776 | } | 1794 | } |
1777 | 1795 | ||
1778 | void KOMonthView::clearSelection() | 1796 | void KOMonthView::clearSelection() |
1779 | { | 1797 | { |
1780 | if ( mSelectedCell ) { | 1798 | if ( mSelectedCell ) { |
1781 | mSelectedCell->deselect(); | 1799 | mSelectedCell->deselect(); |
1782 | mSelectedCell = 0; | 1800 | mSelectedCell = 0; |
1783 | } | 1801 | } |
1784 | } | 1802 | } |
1785 | void KOMonthView::keyPressEvent ( QKeyEvent * e ) | 1803 | void KOMonthView::keyPressEvent ( QKeyEvent * e ) |
1786 | { | 1804 | { |
1787 | //qDebug("KOMonthView::keyPressEvent "); | 1805 | //qDebug("KOMonthView::keyPressEvent "); |
1788 | switch(e->key()) { | 1806 | switch(e->key()) { |
1789 | case Key_Up: | 1807 | case Key_Up: |
1790 | { | 1808 | { |
1791 | if ( mShowWeekView ) { | 1809 | if ( mShowWeekView ) { |
1792 | mCellsW[0]->setFocus(); | 1810 | mCellsW[0]->setFocus(); |
1793 | emit selectWeekNum ( currentWeek() - 1 ); | 1811 | emit selectWeekNum ( currentWeek() - 1 ); |
1794 | } | 1812 | } |
1795 | else { | 1813 | else { |
1796 | mCells[0]->setFocus(); | 1814 | mCells[0]->setFocus(); |
1797 | emit prevMonth(); | 1815 | emit prevMonth(); |
1798 | } | 1816 | } |
1799 | } | 1817 | } |
1800 | e->accept(); | 1818 | e->accept(); |
1801 | break; | 1819 | break; |
1802 | case Key_Down: | 1820 | case Key_Down: |
1803 | { | 1821 | { |
1804 | if ( mShowWeekView ) { | 1822 | if ( mShowWeekView ) { |
1805 | mCellsW[0]->setFocus(); | 1823 | mCellsW[0]->setFocus(); |
1806 | emit selectWeekNum ( currentWeek() +1); | 1824 | emit selectWeekNum ( currentWeek() +1); |
1807 | } | 1825 | } |
1808 | else { | 1826 | else { |
1809 | mCells[0]->setFocus(); | 1827 | mCells[0]->setFocus(); |
1810 | emit nextMonth(); | 1828 | emit nextMonth(); |
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index b997c1a..a58f6b8 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h | |||
@@ -66,192 +66,193 @@ private slots : | |||
66 | }; | 66 | }; |
67 | 67 | ||
68 | class KNoScrollListBox: public QListBox | 68 | class KNoScrollListBox: public QListBox |
69 | { | 69 | { |
70 | Q_OBJECT | 70 | Q_OBJECT |
71 | public: | 71 | public: |
72 | KNoScrollListBox(QWidget *parent=0, const char *name=0); | 72 | KNoScrollListBox(QWidget *parent=0, const char *name=0); |
73 | ~KNoScrollListBox(); | 73 | ~KNoScrollListBox(); |
74 | QString getWhatsThisText(QPoint p) ; | 74 | QString getWhatsThisText(QPoint p) ; |
75 | 75 | ||
76 | signals: | 76 | signals: |
77 | void shiftDown(); | 77 | void shiftDown(); |
78 | void shiftUp(); | 78 | void shiftUp(); |
79 | void rightClick(); | 79 | void rightClick(); |
80 | 80 | ||
81 | protected slots: | 81 | protected slots: |
82 | void oneDown(); | 82 | void oneDown(); |
83 | void keyPressEvent(QKeyEvent *); | 83 | void keyPressEvent(QKeyEvent *); |
84 | void keyReleaseEvent(QKeyEvent *); | 84 | void keyReleaseEvent(QKeyEvent *); |
85 | void mousePressEvent(QMouseEvent *); | 85 | void mousePressEvent(QMouseEvent *); |
86 | 86 | ||
87 | private: | 87 | private: |
88 | KNOWhatsThis * mWT; | 88 | KNOWhatsThis * mWT; |
89 | }; | 89 | }; |
90 | 90 | ||
91 | 91 | ||
92 | class MonthViewItem: public QListBoxItem | 92 | class MonthViewItem: public QListBoxItem |
93 | { | 93 | { |
94 | public: | 94 | public: |
95 | MonthViewItem( Incidence *, QDate qd, const QString & title ); | 95 | MonthViewItem( Incidence *, QDate qd, const QString & title ); |
96 | void recycle( Incidence *incidence, QDate qd, const QString & s); | 96 | void recycle( Incidence *incidence, QDate qd, const QString & s); |
97 | void setRecur(bool on) { mRecur = on; } | 97 | void setRecur(bool on) { mRecur = on; } |
98 | void setAlarm(bool on) { mAlarm = on; } | 98 | void setAlarm(bool on) { mAlarm = on; } |
99 | void setReply(bool on) { mReply = on; } | 99 | void setReply(bool on) { mReply = on; } |
100 | void setMoreInfo(bool on) { mInfo = on; } | 100 | void setMoreInfo(bool on) { mInfo = on; } |
101 | void setMultiDay(int type) { mMultiday = type; } | 101 | void setMultiDay(int type) { mMultiday = type; } |
102 | void setBlockRepaint(bool on) { mblockRepaint = on; } | 102 | void setBlockRepaint(bool on) { mblockRepaint = on; } |
103 | 103 | ||
104 | 104 | ||
105 | void setPalette(const QPalette &p) { mPalette = p; } | 105 | void setPalette(const QPalette &p) { mPalette = p; } |
106 | QPalette palette() const { return mPalette; } | 106 | QPalette palette() const { return mPalette; } |
107 | 107 | ||
108 | Incidence *incidence() const { return mIncidence; } | 108 | Incidence *incidence() const { return mIncidence; } |
109 | QDate incidenceDate() { return mDate; } | 109 | QDate incidenceDate() { return mDate; } |
110 | 110 | ||
111 | protected: | 111 | protected: |
112 | virtual void paint(QPainter *); | 112 | virtual void paint(QPainter *); |
113 | virtual int height(const QListBox *) const; | 113 | virtual int height(const QListBox *) const; |
114 | virtual int width(const QListBox *) const; | 114 | virtual int width(const QListBox *) const; |
115 | 115 | ||
116 | private: | 116 | private: |
117 | bool mblockRepaint; | 117 | bool mblockRepaint; |
118 | int mMultiday; | 118 | int mMultiday; |
119 | bool mRecur; | 119 | bool mRecur; |
120 | bool mAlarm; | 120 | bool mAlarm; |
121 | bool mReply; | 121 | bool mReply; |
122 | bool mInfo; | 122 | bool mInfo; |
123 | 123 | ||
124 | QPalette mPalette; | 124 | QPalette mPalette; |
125 | QDate mDate; | 125 | QDate mDate; |
126 | 126 | ||
127 | Incidence *mIncidence; | 127 | Incidence *mIncidence; |
128 | }; | 128 | }; |
129 | 129 | ||
130 | 130 | ||
131 | class KOMonthView; | 131 | class KOMonthView; |
132 | 132 | ||
133 | class MonthViewCell : public KNoScrollListBox | 133 | class MonthViewCell : public KNoScrollListBox |
134 | { | 134 | { |
135 | Q_OBJECT | 135 | Q_OBJECT |
136 | public: | 136 | public: |
137 | MonthViewCell(KOMonthView *,QWidget* ); | 137 | MonthViewCell(KOMonthView *,QWidget* ); |
138 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} | 138 | ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} |
139 | 139 | ||
140 | void setDate( const QDate & ); | 140 | void setDate( const QDate & ); |
141 | QDate date() const; | 141 | QDate date() const; |
142 | 142 | ||
143 | void setPrimary( bool ); | 143 | void setPrimary( bool ); |
144 | bool isPrimary() const; | 144 | bool isPrimary() const; |
145 | 145 | ||
146 | void setHoliday( bool ); | 146 | void setHoliday( bool ); |
147 | void setHoliday( const QString & ); | 147 | void setHoliday( const QString & ); |
148 | 148 | ||
149 | void updateCell(); | 149 | void updateCell(); |
150 | void startUpdateCell(); | 150 | void startUpdateCell(); |
151 | void finishUpdateCell(); | 151 | void finishUpdateCell(); |
152 | void repaintfinishUpdateCell(); | 152 | void repaintfinishUpdateCell(); |
153 | void insertEvent(Event *); | 153 | void insertEvent(Event *); |
154 | void insertTodo(Todo *); | 154 | void insertTodo(Todo *); |
155 | 155 | ||
156 | void updateConfig( bool bigFont = false ); | 156 | void updateConfig( bool bigFont = false ); |
157 | 157 | ||
158 | void enableScrollBars( bool ); | 158 | void enableScrollBars( bool ); |
159 | 159 | ||
160 | Incidence *selectedIncidence(); | 160 | Incidence *selectedIncidence(); |
161 | QDate selectedIncidenceDate(); | 161 | QDate selectedIncidenceDate(); |
162 | QPushButton * dateLabel() { return mLabel; } | ||
162 | 163 | ||
163 | void deselect(); | 164 | void deselect(); |
164 | void select(); | 165 | void select(); |
165 | 166 | ||
166 | #ifdef DESKTOP_VERSION | 167 | #ifdef DESKTOP_VERSION |
167 | static QToolTipGroup *toolTipGroup(); | 168 | static QToolTipGroup *toolTipGroup(); |
168 | #endif | 169 | #endif |
169 | signals: | 170 | signals: |
170 | void defaultAction( Incidence * ); | 171 | void defaultAction( Incidence * ); |
171 | void newEventSignal( QDateTime ); | 172 | void newEventSignal( QDateTime ); |
172 | void showDaySignal( QDate ); | 173 | void showDaySignal( QDate ); |
173 | 174 | ||
174 | protected: | 175 | protected: |
175 | QStringList mToolTip; | 176 | QStringList mToolTip; |
176 | void resizeEvent( QResizeEvent * ); | 177 | void resizeEvent( QResizeEvent * ); |
177 | 178 | ||
178 | 179 | ||
179 | public slots: | 180 | public slots: |
180 | void showDay(); | 181 | void showDay(); |
181 | 182 | ||
182 | protected slots: | 183 | protected slots: |
183 | void defaultAction( QListBoxItem * ); | 184 | void defaultAction( QListBoxItem * ); |
184 | void contextMenu( QListBoxItem * ); | 185 | void contextMenu( QListBoxItem * ); |
185 | void selection( QListBoxItem * ); | 186 | void selection( QListBoxItem * ); |
186 | void cellClicked( QListBoxItem * ); | 187 | void cellClicked( QListBoxItem * ); |
187 | void newEvent(); | 188 | void newEvent(); |
188 | 189 | ||
189 | private: | 190 | private: |
190 | MonthViewItem* mCurrentAvailItem; | 191 | MonthViewItem* mCurrentAvailItem; |
191 | QPtrList <MonthViewItem> mAvailItemList; | 192 | QPtrList <MonthViewItem> mAvailItemList; |
192 | KOMonthView *mMonthView; | 193 | KOMonthView *mMonthView; |
193 | int currentPalette; | 194 | int currentPalette; |
194 | 195 | ||
195 | QDate mDate; | 196 | QDate mDate; |
196 | bool mPrimary; | 197 | bool mPrimary; |
197 | bool mHoliday; | 198 | bool mHoliday; |
198 | QString mHolidayString; | 199 | QString mHolidayString; |
199 | 200 | ||
200 | //QLabel *mLabel; | 201 | //QLabel *mLabel; |
201 | QPushButton *mLabel; | 202 | QPushButton *mLabel; |
202 | //QListBox *mItemList; | 203 | //QListBox *mItemList; |
203 | #ifdef DESKTOP_VERSION | 204 | #ifdef DESKTOP_VERSION |
204 | static QToolTipGroup *mToolTipGroup; | 205 | static QToolTipGroup *mToolTipGroup; |
205 | #endif | 206 | #endif |
206 | QSize mLabelSize; | 207 | QSize mLabelSize; |
207 | QSize mLabelBigSize; | 208 | QSize mLabelBigSize; |
208 | QPalette mHolidayPalette; | 209 | QPalette mHolidayPalette; |
209 | QPalette mStandardPalette; | 210 | QPalette mStandardPalette; |
210 | QPalette mPrimaryPalette; | 211 | QPalette mPrimaryPalette; |
211 | QPalette mNonPrimaryPalette; | 212 | QPalette mNonPrimaryPalette; |
212 | void setMyPalette(); | 213 | void setMyPalette(); |
213 | QPalette getPalette (); | 214 | QPalette getPalette (); |
214 | 215 | ||
215 | }; | 216 | }; |
216 | 217 | ||
217 | 218 | ||
218 | class KOMonthView: public KOEventView | 219 | class KOMonthView: public KOEventView |
219 | { | 220 | { |
220 | Q_OBJECT | 221 | Q_OBJECT |
221 | public: | 222 | public: |
222 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); | 223 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); |
223 | ~KOMonthView(); | 224 | ~KOMonthView(); |
224 | 225 | ||
225 | /** Returns maximum number of days supported by the komonthview */ | 226 | /** Returns maximum number of days supported by the komonthview */ |
226 | virtual int maxDatesHint(); | 227 | virtual int maxDatesHint(); |
227 | 228 | ||
228 | /** Returns number of currently shown dates. */ | 229 | /** Returns number of currently shown dates. */ |
229 | virtual int currentDateCount(); | 230 | virtual int currentDateCount(); |
230 | 231 | ||
231 | /** returns the currently selected events */ | 232 | /** returns the currently selected events */ |
232 | virtual QPtrList<Incidence> selectedIncidences(); | 233 | virtual QPtrList<Incidence> selectedIncidences(); |
233 | 234 | ||
234 | /** returns dates of the currently selected events */ | 235 | /** returns dates of the currently selected events */ |
235 | virtual DateList selectedDates(); | 236 | virtual DateList selectedDates(); |
236 | 237 | ||
237 | virtual void printPreview(CalPrinter *calPrinter, | 238 | virtual void printPreview(CalPrinter *calPrinter, |
238 | const QDate &, const QDate &); | 239 | const QDate &, const QDate &); |
239 | bool isMonthView() { return !mShowWeekView; } | 240 | bool isMonthView() { return !mShowWeekView; } |
240 | bool isUpdatePossible() { return updatePossible; } | 241 | bool isUpdatePossible() { return updatePossible; } |
241 | 242 | ||
242 | MonthViewCell * selectedCell(); | 243 | MonthViewCell * selectedCell(); |
243 | bool skipResize; | 244 | bool skipResize; |
244 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} | 245 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} |
245 | public slots: | 246 | public slots: |
246 | virtual void updateView(); | 247 | virtual void updateView(); |
247 | virtual void updateConfig(); | 248 | virtual void updateConfig(); |
248 | virtual void showDates(const QDate &start, const QDate &end); | 249 | virtual void showDates(const QDate &start, const QDate &end); |
249 | virtual void showEvents(QPtrList<Event> eventList); | 250 | virtual void showEvents(QPtrList<Event> eventList); |
250 | 251 | ||
251 | void changeEventDisplay(Event *, int); | 252 | void changeEventDisplay(Event *, int); |
252 | 253 | ||
253 | void clearSelection(); | 254 | void clearSelection(); |
254 | 255 | ||
255 | void showContextMenu( Incidence * ); | 256 | void showContextMenu( Incidence * ); |
256 | 257 | ||
257 | void setSelectedCell( MonthViewCell * ); | 258 | void setSelectedCell( MonthViewCell * ); |