summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp10
-rw-r--r--korganizer/koagendaview.h1
-rw-r--r--korganizer/koviewmanager.cpp7
3 files changed, 18 insertions, 0 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 0d36946..13d8398 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -768,812 +768,822 @@ void KOAgendaView::createDayLabels()
768 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 768 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
769 addString = i18n("Yesterday"); 769 addString = i18n("Yesterday");
770 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 770 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
771 addString = i18n("Day before yesterday"); 771 addString = i18n("Day before yesterday");
772 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 772 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
773 addString = i18n("Day after tomorrow"); 773 addString = i18n("Day after tomorrow");
774 if ( !addString.isEmpty() ) { 774 if ( !addString.isEmpty() ) {
775 str = addString+", " + str; 775 str = addString+", " + str;
776 } 776 }
777 } 777 }
778 dayLabel->setText(str); 778 dayLabel->setText(str);
779 //dayLabel->setAlignment(QLabel::AlignHCenter); 779 //dayLabel->setAlignment(QLabel::AlignHCenter);
780 if (date == QDate::currentDate()) { 780 if (date == QDate::currentDate()) {
781 QFont bFont = dlf; 781 QFont bFont = dlf;
782 bFont.setBold( true ); 782 bFont.setBold( true );
783 dayLabel->setFont(bFont); 783 dayLabel->setFont(bFont);
784 } 784 }
785 //dayLayout->addWidget(dayLabel); 785 //dayLayout->addWidget(dayLabel);
786 786
787#ifndef KORG_NOPLUGINS 787#ifndef KORG_NOPLUGINS
788 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 788 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
789 CalendarDecoration *it; 789 CalendarDecoration *it;
790 for(it = cds.first(); it; it = cds.next()) { 790 for(it = cds.first(); it; it = cds.next()) {
791 QString text = it->shortText( date ); 791 QString text = it->shortText( date );
792 if ( !text.isEmpty() ) { 792 if ( !text.isEmpty() ) {
793 QLabel *label = new QLabel(text,mDayLabels); 793 QLabel *label = new QLabel(text,mDayLabels);
794 label->setAlignment(AlignCenter); 794 label->setAlignment(AlignCenter);
795 dayLayout->addWidget(label); 795 dayLayout->addWidget(label);
796 } 796 }
797 } 797 }
798 798
799 for(it = cds.first(); it; it = cds.next()) { 799 for(it = cds.first(); it; it = cds.next()) {
800 QWidget *wid = it->smallWidget(mDayLabels,date); 800 QWidget *wid = it->smallWidget(mDayLabels,date);
801 if ( wid ) { 801 if ( wid ) {
802 // wid->setHeight(20); 802 // wid->setHeight(20);
803 dayLayout->addWidget(wid); 803 dayLayout->addWidget(wid);
804 } 804 }
805 } 805 }
806#endif 806#endif
807 } 807 }
808 if ( ! appendLabels ) { 808 if ( ! appendLabels ) {
809 dayLabel = mDayLabelsList.next(); 809 dayLabel = mDayLabelsList.next();
810 if ( !dayLabel ) 810 if ( !dayLabel )
811 appendLabels = true; 811 appendLabels = true;
812 } 812 }
813 if ( appendLabels ) { 813 if ( appendLabels ) {
814 dayLabel = getNewDaylabel(); 814 dayLabel = getNewDaylabel();
815 } 815 }
816 //dayLabel->hide();//test only 816 //dayLabel->hide();//test only
817 817
818 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; 818 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ;
819 if ( offset < 0 ) offset = 0; 819 if ( offset < 0 ) offset = 0;
820 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 820 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
821 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); 821 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
822 dayLabel->setFont( dlf ); 822 dayLabel->setFont( dlf );
823 dayLabel->show(); 823 dayLabel->show();
824 dayLabel->setNum( -2 ); 824 dayLabel->setNum( -2 );
825 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 825 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
826 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 826 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);
827 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 827 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
828 if ( !appendLabels ) { 828 if ( !appendLabels ) {
829 dayLabel = mDayLabelsList.next(); 829 dayLabel = mDayLabelsList.next();
830 while ( dayLabel ) { 830 while ( dayLabel ) {
831 //qDebug("!dayLabel %d",dayLabel ); 831 //qDebug("!dayLabel %d",dayLabel );
832 dayLabel->hide(); 832 dayLabel->hide();
833 dayLabel = mDayLabelsList.next(); 833 dayLabel = mDayLabelsList.next();
834 } 834 }
835 } 835 }
836 //mDayLabelsFrame->show(); 836 //mDayLabelsFrame->show();
837 //mDayLabels->show(); 837 //mDayLabels->show();
838 //qDebug("heigt %d %d %d ",mDayLabelsFrame->height(), mDayLabelsFrame->sizeHint().height(), newHight); 838 //qDebug("heigt %d %d %d ",mDayLabelsFrame->height(), mDayLabelsFrame->sizeHint().height(), newHight);
839 //mDayLabelsFrame->resize( mAgenda->visibleWidth(), newHight ); 839 //mDayLabelsFrame->resize( mAgenda->visibleWidth(), newHight );
840 mDayLabelsFrame->setFixedHeight( newHight ); 840 mDayLabelsFrame->setFixedHeight( newHight );
841} 841}
842 842
843int KOAgendaView::maxDatesHint() 843int KOAgendaView::maxDatesHint()
844{ 844{
845 // Not sure about the max number of events, so return 0 for now. 845 // Not sure about the max number of events, so return 0 for now.
846 return 0; 846 return 0;
847} 847}
848 848
849int KOAgendaView::currentDateCount() 849int KOAgendaView::currentDateCount()
850{ 850{
851 return mSelectedDates.count(); 851 return mSelectedDates.count();
852} 852}
853 853
854QPtrList<Incidence> KOAgendaView::selectedIncidences() 854QPtrList<Incidence> KOAgendaView::selectedIncidences()
855{ 855{
856 QPtrList<Incidence> selected; 856 QPtrList<Incidence> selected;
857 Incidence *incidence; 857 Incidence *incidence;
858 858
859 incidence = mAgenda->selectedIncidence(); 859 incidence = mAgenda->selectedIncidence();
860 if (incidence) selected.append(incidence); 860 if (incidence) selected.append(incidence);
861 861
862 incidence = mAllDayAgenda->selectedIncidence(); 862 incidence = mAllDayAgenda->selectedIncidence();
863 if (incidence) selected.append(incidence); 863 if (incidence) selected.append(incidence);
864 864
865 return selected; 865 return selected;
866} 866}
867 867
868DateList KOAgendaView::selectedDates() 868DateList KOAgendaView::selectedDates()
869{ 869{
870 DateList selected; 870 DateList selected;
871 QDate qd; 871 QDate qd;
872 872
873 qd = mAgenda->selectedIncidenceDate(); 873 qd = mAgenda->selectedIncidenceDate();
874 if (qd.isValid()) selected.append(qd); 874 if (qd.isValid()) selected.append(qd);
875 875
876 qd = mAllDayAgenda->selectedIncidenceDate(); 876 qd = mAllDayAgenda->selectedIncidenceDate();
877 if (qd.isValid()) selected.append(qd); 877 if (qd.isValid()) selected.append(qd);
878 878
879 return selected; 879 return selected;
880} 880}
881 881
882 882
883void KOAgendaView::updateView() 883void KOAgendaView::updateView()
884{ 884{
885 if ( mBlockUpdating ) 885 if ( mBlockUpdating )
886 return; 886 return;
887 // kdDebug() << "KOAgendaView::updateView()" << endl; 887 // kdDebug() << "KOAgendaView::updateView()" << endl;
888 fillAgenda(); 888 fillAgenda();
889 889
890} 890}
891 891
892 892
893/* 893/*
894 Update configuration settings for the agenda view. This method is not 894 Update configuration settings for the agenda view. This method is not
895 complete. 895 complete.
896*/ 896*/
897void KOAgendaView::updateConfig() 897void KOAgendaView::updateConfig()
898{ 898{
899 if ( mBlockUpdating ) 899 if ( mBlockUpdating )
900 return; 900 return;
901 901
902 902
903 903
904 // update config for children 904 // update config for children
905 mTimeLabels->updateConfig(); 905 mTimeLabels->updateConfig();
906 mAgenda->storePosition(); 906 mAgenda->storePosition();
907 mAgenda->updateConfig(); 907 mAgenda->updateConfig();
908 mAllDayAgenda->updateConfig(); 908 mAllDayAgenda->updateConfig();
909 // widget synchronization 909 // widget synchronization
910 //TODO: find a better way, maybe signal/slot 910 //TODO: find a better way, maybe signal/slot
911 mTimeLabels->positionChanged(); 911 mTimeLabels->positionChanged();
912 912
913 // for some reason, this needs to be called explicitly 913 // for some reason, this needs to be called explicitly
914 mTimeLabels->repaint(); 914 mTimeLabels->repaint();
915 915
916 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 916 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
917 917
918 // ToolTips displaying summary of events 918 // ToolTips displaying summary of events
919 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 919 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
920 ->mEnableToolTips); 920 ->mEnableToolTips);
921 921
922 //setHolidayMasks(); 922 //setHolidayMasks();
923 923
924 //createDayLabels(); called by via updateView(); 924 //createDayLabels(); called by via updateView();
925 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 925 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
926 updateView(); 926 updateView();
927 mAgenda->restorePosition(); 927 mAgenda->restorePosition();
928} 928}
929 929
930 930
931void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 931void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
932{ 932{
933 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl; 933 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl;
934 //qDebug("KOAgendaView::updateEventDates "); 934 //qDebug("KOAgendaView::updateEventDates ");
935 QDateTime startDt,endDt; 935 QDateTime startDt,endDt;
936 QDate startDate; 936 QDate startDate;
937 int lenInSecs; 937 int lenInSecs;
938 // if ( type == KOAgenda::RESIZETOP ) 938 // if ( type == KOAgenda::RESIZETOP )
939 // qDebug("RESIZETOP "); 939 // qDebug("RESIZETOP ");
940 // if ( type == KOAgenda::RESIZEBOTTOM ) 940 // if ( type == KOAgenda::RESIZEBOTTOM )
941 // qDebug("RESIZEBOTTOM "); 941 // qDebug("RESIZEBOTTOM ");
942 // if ( type == KOAgenda::MOVE ) 942 // if ( type == KOAgenda::MOVE )
943 // qDebug("MOVE "); 943 // qDebug("MOVE ");
944 if ( item->incidence()->type() == "Event" ) { 944 if ( item->incidence()->type() == "Event" ) {
945 startDt =item->incidence()->dtStart(); 945 startDt =item->incidence()->dtStart();
946 endDt = item->incidence()->dtEnd(); 946 endDt = item->incidence()->dtEnd();
947 lenInSecs = startDt.secsTo( endDt ); 947 lenInSecs = startDt.secsTo( endDt );
948 } 948 }
949 949
950 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 950 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
951 951
952 if ( item->incidence()->type()=="Todo" && item->mLastMoveXPos > 0 ) { 952 if ( item->incidence()->type()=="Todo" && item->mLastMoveXPos > 0 ) {
953 startDate = mSelectedDates[item->mLastMoveXPos]; 953 startDate = mSelectedDates[item->mLastMoveXPos];
954 } else { 954 } else {
955 if (item->cellX() < 0) { 955 if (item->cellX() < 0) {
956 startDate = (mSelectedDates.first()).addDays(item->cellX()); 956 startDate = (mSelectedDates.first()).addDays(item->cellX());
957 } else { 957 } else {
958 startDate = mSelectedDates[item->cellX()]; 958 startDate = mSelectedDates[item->cellX()];
959 } 959 }
960 } 960 }
961 startDt.setDate(startDate); 961 startDt.setDate(startDate);
962 962
963 if (item->incidence()->doesFloat()) { 963 if (item->incidence()->doesFloat()) {
964 endDt.setDate(startDate.addDays(item->cellWidth() - 1)); 964 endDt.setDate(startDate.addDays(item->cellWidth() - 1));
965 } else { 965 } else {
966 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE ) 966 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE )
967 startDt.setTime(mAgenda->gyToTime(item->cellYTop())); 967 startDt.setTime(mAgenda->gyToTime(item->cellYTop()));
968 if ( item->incidence()->type() == "Event" ) { 968 if ( item->incidence()->type() == "Event" ) {
969 if ( type == KOAgenda::MOVE ) { 969 if ( type == KOAgenda::MOVE ) {
970 endDt = startDt.addSecs(lenInSecs); 970 endDt = startDt.addSecs(lenInSecs);
971 971
972 } else if ( type == KOAgenda::RESIZEBOTTOM ) { 972 } else if ( type == KOAgenda::RESIZEBOTTOM ) {
973 if (item->lastMultiItem()) { 973 if (item->lastMultiItem()) {
974 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 974 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
975 endDt.setDate(startDate. 975 endDt.setDate(startDate.
976 addDays(item->lastMultiItem()->cellX() - item->cellX())); 976 addDays(item->lastMultiItem()->cellX() - item->cellX()));
977 } else { 977 } else {
978 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 978 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
979 endDt.setDate(startDate); 979 endDt.setDate(startDate);
980 } 980 }
981 } 981 }
982 } else { 982 } else {
983 // todo 983 // todo
984 if (item->lastMultiItem()) { 984 if (item->lastMultiItem()) {
985 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 985 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
986 endDt.setDate(startDate. 986 endDt.setDate(startDate.
987 addDays(item->lastMultiItem()->cellX() - item->cellX())); 987 addDays(item->lastMultiItem()->cellX() - item->cellX()));
988 } else { 988 } else {
989 //qDebug("tem->cellYBottom() %d",item->cellYBottom() ); 989 //qDebug("tem->cellYBottom() %d",item->cellYBottom() );
990 if ( item->cellYBottom() > 0 ) 990 if ( item->cellYBottom() > 0 )
991 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 991 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
992 else 992 else
993 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); 993 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time());
994 endDt.setDate(startDate); 994 endDt.setDate(startDate);
995 } 995 }
996 } 996 }
997 } 997 }
998 if ( item->incidence()->type() == "Event" ) { 998 if ( item->incidence()->type() == "Event" ) {
999 item->incidence()->setDtStart(startDt); 999 item->incidence()->setDtStart(startDt);
1000 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); 1000 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt);
1001 } else if ( item->incidence()->type() == "Todo" ) { 1001 } else if ( item->incidence()->type() == "Todo" ) {
1002 (static_cast<Todo*>(item->incidence()))->setDtDue(endDt); 1002 (static_cast<Todo*>(item->incidence()))->setDtDue(endDt);
1003 } 1003 }
1004 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); 1004 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() );
1005 item->incidence()->setRevision(item->incidence()->revision()+1); 1005 item->incidence()->setRevision(item->incidence()->revision()+1);
1006 item->setItemDate(startDt.date()); 1006 item->setItemDate(startDt.date());
1007 //item->updateItem(); 1007 //item->updateItem();
1008 if ( item->incidence()->type() == "Todo" ) { 1008 if ( item->incidence()->type() == "Todo" ) {
1009 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); 1009 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED );
1010 1010
1011 } 1011 }
1012 else 1012 else
1013 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED); 1013 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED);
1014 item->updateItem(); 1014 item->updateItem();
1015} 1015}
1016 1016
1017void KOAgendaView::showDates( const QDate &start, const QDate &end ) 1017void KOAgendaView::showDates( const QDate &start, const QDate &end )
1018{ 1018{
1019 // kdDebug() << "KOAgendaView::selectDates" << endl; 1019 // kdDebug() << "KOAgendaView::selectDates" << endl;
1020 1020
1021 mSelectedDates.clear(); 1021 mSelectedDates.clear();
1022 // qDebug("KOAgendaView::showDates "); 1022 // qDebug("KOAgendaView::showDates ");
1023 QDate d = start; 1023 QDate d = start;
1024 while (d <= end) { 1024 while (d <= end) {
1025 mSelectedDates.append(d); 1025 mSelectedDates.append(d);
1026 d = d.addDays( 1 ); 1026 d = d.addDays( 1 );
1027 } 1027 }
1028 1028
1029 // and update the view 1029 // and update the view
1030 fillAgenda(); 1030 fillAgenda();
1031} 1031}
1032 1032
1033 1033
1034void KOAgendaView::showEvents(QPtrList<Event>) 1034void KOAgendaView::showEvents(QPtrList<Event>)
1035{ 1035{
1036 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl; 1036 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl;
1037} 1037}
1038 1038
1039void KOAgendaView::changeEventDisplay(Event *, int) 1039void KOAgendaView::changeEventDisplay(Event *, int)
1040{ 1040{
1041 // qDebug("KOAgendaView::changeEventDisplay "); 1041 // qDebug("KOAgendaView::changeEventDisplay ");
1042 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl; 1042 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl;
1043 // this should be re-written to be MUCH smarter. Right now we 1043 // this should be re-written to be MUCH smarter. Right now we
1044 // are just playing dumb. 1044 // are just playing dumb.
1045 fillAgenda(); 1045 fillAgenda();
1046} 1046}
1047 1047
1048void KOAgendaView::fillAgenda(const QDate &) 1048void KOAgendaView::fillAgenda(const QDate &)
1049{ 1049{
1050 // qDebug("KOAgendaView::fillAgenda "); 1050 // qDebug("KOAgendaView::fillAgenda ");
1051 fillAgenda(); 1051 fillAgenda();
1052} 1052}
1053 1053
1054void KOAgendaView::fillAgenda() 1054void KOAgendaView::fillAgenda()
1055{ 1055{
1056 if ( globalFlagBlockStartup ) 1056 if ( globalFlagBlockStartup )
1057 return; 1057 return;
1058 if ( globalFlagBlockAgenda == 1 ) 1058 if ( globalFlagBlockAgenda == 1 )
1059 return; 1059 return;
1060 //if ( globalFlagBlockAgenda == 2 ) 1060 //if ( globalFlagBlockAgenda == 2 )
1061 //globalFlagBlockAgenda = 0; 1061 //globalFlagBlockAgenda = 0;
1062 // globalFlagBlockPainting = false; 1062 // globalFlagBlockPainting = false;
1063 if ( globalFlagBlockAgenda == 0 ) 1063 if ( globalFlagBlockAgenda == 0 )
1064 globalFlagBlockAgenda = 1; 1064 globalFlagBlockAgenda = 1;
1065 // clearView(); 1065 // clearView();
1066 //qDebug("fillAgenda()++++ "); 1066 //qDebug("fillAgenda()++++ ");
1067 globalFlagBlockAgendaItemPaint = 1; 1067 globalFlagBlockAgendaItemPaint = 1;
1068 1068
1069 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1069 mAllDayAgenda->changeColumns(mSelectedDates.count());
1070 mAgenda->changeColumns(mSelectedDates.count()); 1070 mAgenda->changeColumns(mSelectedDates.count());
1071 qApp->processEvents(); 1071 qApp->processEvents();
1072 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1072 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1073 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1073 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1074 setHolidayMasks(); 1074 setHolidayMasks();
1075 1075
1076 //mAgenda->hideUnused(); 1076 //mAgenda->hideUnused();
1077 //mAllDayAgenda->hideUnused(); 1077 //mAllDayAgenda->hideUnused();
1078 1078
1079 // mAgenda->blockNextRepaint( false ); 1079 // mAgenda->blockNextRepaint( false );
1080 // mAgenda->viewport()->repaint(); 1080 // mAgenda->viewport()->repaint();
1081 // mAgenda->blockNextRepaint( true ); 1081 // mAgenda->blockNextRepaint( true );
1082 mMinY.resize(mSelectedDates.count()); 1082 mMinY.resize(mSelectedDates.count());
1083 mMaxY.resize(mSelectedDates.count()); 1083 mMaxY.resize(mSelectedDates.count());
1084 1084
1085 QPtrList<Event> dayEvents; 1085 QPtrList<Event> dayEvents;
1086 1086
1087 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1087 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1088 // Therefore, gtodoset all of them. 1088 // Therefore, gtodoset all of them.
1089 QPtrList<Todo> todos = calendar()->todos(); 1089 QPtrList<Todo> todos = calendar()->todos();
1090 1090
1091 mAgenda->setDateList(mSelectedDates); 1091 mAgenda->setDateList(mSelectedDates);
1092 1092
1093 QDate today = QDate::currentDate(); 1093 QDate today = QDate::currentDate();
1094 1094
1095 DateList::ConstIterator dit; 1095 DateList::ConstIterator dit;
1096 int curCol = 0; 1096 int curCol = 0;
1097 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 1097 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
1098 QDate currentDate = *dit; 1098 QDate currentDate = *dit;
1099 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() 1099 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString()
1100 // << endl; 1100 // << endl;
1101 1101
1102 dayEvents = calendar()->events(currentDate,true); 1102 dayEvents = calendar()->events(currentDate,true);
1103 1103
1104 // Default values, which can never be reached 1104 // Default values, which can never be reached
1105 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; 1105 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1;
1106 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; 1106 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1;
1107 1107
1108 unsigned int numEvent; 1108 unsigned int numEvent;
1109 for(numEvent=0;numEvent<dayEvents.count();++numEvent) { 1109 for(numEvent=0;numEvent<dayEvents.count();++numEvent) {
1110 Event *event = dayEvents.at(numEvent); 1110 Event *event = dayEvents.at(numEvent);
1111 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1111 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1112 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1112 if ( event->uid().left(15) == QString("last-syncEvent-") )
1113 continue; 1113 continue;
1114 // kdDebug() << " Event: " << event->summary() << endl; 1114 // kdDebug() << " Event: " << event->summary() << endl;
1115 1115
1116 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; 1116 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol;
1117 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; 1117 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol;
1118 1118
1119 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; 1119 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl;
1120 1120
1121 if (event->doesFloat()) { 1121 if (event->doesFloat()) {
1122 if (event->recurrence()->doesRecur()) { 1122 if (event->recurrence()->doesRecur()) {
1123 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol); 1123 mAllDayAgenda->insertAllDayItem(event,currentDate,curCol,curCol);
1124 } else { 1124 } else {
1125 if (beginX <= 0 && curCol == 0) { 1125 if (beginX <= 0 && curCol == 0) {
1126 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1126 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1127 } else if (beginX == curCol) { 1127 } else if (beginX == curCol) {
1128 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1128 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1129 } 1129 }
1130 } 1130 }
1131 } else if (event->isMultiDay()) { 1131 } else if (event->isMultiDay()) {
1132 if ( event->doesRecur () ) { 1132 if ( event->doesRecur () ) {
1133 QDate dateit = currentDate; 1133 QDate dateit = currentDate;
1134 int count = 0; 1134 int count = 0;
1135 int max = event->dtStart().daysTo( event->dtEnd() ) +2; 1135 int max = event->dtStart().daysTo( event->dtEnd() ) +2;
1136 while (! event->recursOn( dateit ) && count <= max ) { 1136 while (! event->recursOn( dateit ) && count <= max ) {
1137 ++count; 1137 ++count;
1138 dateit = dateit.addDays( -1 ); 1138 dateit = dateit.addDays( -1 );
1139 } 1139 }
1140 bool ok; 1140 bool ok;
1141 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok ); 1141 QDateTime nextOcstart = event->getNextOccurence( QDateTime(dateit) ,&ok );
1142 if ( ok ) 1142 if ( ok )
1143 { 1143 {
1144 int secs = event->dtStart().secsTo( event->dtEnd() ); 1144 int secs = event->dtStart().secsTo( event->dtEnd() );
1145 QDateTime nextOcend =nextOcstart.addSecs( secs ); ; 1145 QDateTime nextOcend =nextOcstart.addSecs( secs ); ;
1146 beginX = currentDate.daysTo(nextOcstart.date()) + curCol; 1146 beginX = currentDate.daysTo(nextOcstart.date()) + curCol;
1147 endX = currentDate.daysTo(nextOcend.date()) + curCol; 1147 endX = currentDate.daysTo(nextOcend.date()) + curCol;
1148 1148
1149 } 1149 }
1150 } 1150 }
1151 int startY = mAgenda->timeToY(event->dtStart().time()); 1151 int startY = mAgenda->timeToY(event->dtStart().time());
1152 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1152 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1153 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol ); 1153 //qDebug("insert %d %d %d %d %d ",beginX,endX,startY,endY , curCol );
1154 if ((beginX <= 0 && curCol == 0) || beginX == curCol) { 1154 if ((beginX <= 0 && curCol == 0) || beginX == curCol) {
1155 //qDebug("insert!!! "); 1155 //qDebug("insert!!! ");
1156 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY); 1156 mAgenda->insertMultiItem(event,currentDate,beginX,endX,startY,endY);
1157 } 1157 }
1158 if (beginX == curCol) { 1158 if (beginX == curCol) {
1159 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1159 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1160 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1160 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1161 } else if (endX == curCol) { 1161 } else if (endX == curCol) {
1162 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1162 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1163 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1163 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1164 } else { 1164 } else {
1165 mMinY[curCol] = mAgenda->timeToY(QTime(0,0)); 1165 mMinY[curCol] = mAgenda->timeToY(QTime(0,0));
1166 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59)); 1166 mMaxY[curCol] = mAgenda->timeToY(QTime(23,59));
1167 } 1167 }
1168 } else { 1168 } else {
1169 int startY = mAgenda->timeToY(event->dtStart().time()); 1169 int startY = mAgenda->timeToY(event->dtStart().time());
1170 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1; 1170 int endY = mAgenda->timeToY(event->dtEnd().time()) - 1;
1171 if (endY < startY) endY = startY; 1171 if (endY < startY) endY = startY;
1172 mAgenda->insertItem(event,currentDate,curCol,startY,endY); 1172 mAgenda->insertItem(event,currentDate,curCol,startY,endY);
1173 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1173 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1174 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1174 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1175 } 1175 }
1176 } 1176 }
1177 // ---------- [display Todos -------------- 1177 // ---------- [display Todos --------------
1178 unsigned int numTodo; 1178 unsigned int numTodo;
1179 for (numTodo = 0; numTodo < todos.count(); ++numTodo) { 1179 for (numTodo = 0; numTodo < todos.count(); ++numTodo) {
1180 Todo *todo = todos.at(numTodo); 1180 Todo *todo = todos.at(numTodo);
1181 1181
1182 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date 1182 if ( ! todo->hasDueDate() && !todo->hasCompletedDate()) continue; // todo shall not be displayed if it has no date
1183 1183
1184 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1184 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1185 // Already completed items can be displayed on their original due date 1185 // Already completed items can be displayed on their original due date
1186 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda 1186 //if not KOPrefs::instance()->mShowTodoInAgenda, show overdue in agenda
1187 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda; 1187 bool overdue = (!todo->isCompleted()) && (todo->dtDue() < today) && KOPrefs::instance()->mShowTodoInAgenda;
1188 bool fillIn = false; 1188 bool fillIn = false;
1189 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate ) 1189 if ( todo->hasCompletedDate() && todo->completed().date() == currentDate )
1190 fillIn = true; 1190 fillIn = true;
1191 if ( ! fillIn && !todo->hasCompletedDate() ) 1191 if ( ! fillIn && !todo->hasCompletedDate() )
1192 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue); 1192 fillIn = ((todo->dtDue().date() == currentDate) && !overdue) || ((currentDate == today) && overdue);
1193 if ( fillIn ) { 1193 if ( fillIn ) {
1194 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue 1194 if ( (todo->doesFloat() || overdue ) && !todo->hasCompletedDate() ) { // Todo has no due-time set or is already overdue
1195 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1195 if ( KOPrefs::instance()->mShowTodoInAgenda )
1196 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol); 1196 mAllDayAgenda->insertAllDayItem(todo, currentDate, curCol, curCol);
1197 } 1197 }
1198 else { 1198 else {
1199 QDateTime dt; 1199 QDateTime dt;
1200 if ( todo->hasCompletedDate() ) 1200 if ( todo->hasCompletedDate() )
1201 dt = todo->completed(); 1201 dt = todo->completed();
1202 else 1202 else
1203 dt = todo->dtDue();; 1203 dt = todo->dtDue();;
1204 1204
1205 1205
1206 int endY = mAgenda->timeToY(dt.time()) - 1; 1206 int endY = mAgenda->timeToY(dt.time()) - 1;
1207 int hi = (18/KOPrefs::instance()->mHourSize); 1207 int hi = (18/KOPrefs::instance()->mHourSize);
1208 //qDebug("hei %d ",KOPrefs::instance()->mHourSize); 1208 //qDebug("hei %d ",KOPrefs::instance()->mHourSize);
1209 int startY = endY -hi; 1209 int startY = endY -hi;
1210 1210
1211 mAgenda->insertItem(todo,currentDate,curCol,startY,endY); 1211 mAgenda->insertItem(todo,currentDate,curCol,startY,endY);
1212 1212
1213 if (startY < mMinY[curCol]) mMinY[curCol] = startY; 1213 if (startY < mMinY[curCol]) mMinY[curCol] = startY;
1214 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY; 1214 if (endY > mMaxY[curCol]) mMaxY[curCol] = endY;
1215 } 1215 }
1216 } 1216 }
1217 } 1217 }
1218 // ---------- display Todos] -------------- 1218 // ---------- display Todos] --------------
1219 1219
1220 ++curCol; 1220 ++curCol;
1221 } 1221 }
1222 mAgenda->hideUnused(); 1222 mAgenda->hideUnused();
1223 mAllDayAgenda->hideUnused(); 1223 mAllDayAgenda->hideUnused();
1224 mAgenda->checkScrollBoundaries(); 1224 mAgenda->checkScrollBoundaries();
1225 1225
1226 deleteSelectedDateTime(); 1226 deleteSelectedDateTime();
1227 1227
1228 createDayLabels(); 1228 createDayLabels();
1229 emit incidenceSelected( 0 ); 1229 emit incidenceSelected( 0 );
1230 1230
1231 if ( globalFlagBlockAgenda == 2 ) { 1231 if ( globalFlagBlockAgenda == 2 ) {
1232 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 1232 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
1233 setStartHour( KOPrefs::instance()->mDayBegins ); 1233 setStartHour( KOPrefs::instance()->mDayBegins );
1234 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 1234 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
1235 setStartHour( QTime::currentTime ().hour() ); 1235 setStartHour( QTime::currentTime ().hour() );
1236 // qApp->processEvents(); 1236 // qApp->processEvents();
1237 } 1237 }
1238 qApp->processEvents(); 1238 qApp->processEvents();
1239 //qDebug("qApp->processEvents(); END "); 1239 //qDebug("qApp->processEvents(); END ");
1240 globalFlagBlockAgenda = 0; 1240 globalFlagBlockAgenda = 0;
1241 1241
1242 // mAgenda->hideUnused(); 1242 // mAgenda->hideUnused();
1243 //mAllDayAgenda->hideUnused(); 1243 //mAllDayAgenda->hideUnused();
1244 mAllDayAgenda->drawContentsToPainter(); 1244 mAllDayAgenda->drawContentsToPainter();
1245 mAgenda->drawContentsToPainter(); 1245 mAgenda->drawContentsToPainter();
1246 repaintAgenda(); 1246 repaintAgenda();
1247 // mAgenda->finishUpdate(); 1247 // mAgenda->finishUpdate();
1248 //mAllDayAgenda->finishUpdate(); 1248 //mAllDayAgenda->finishUpdate();
1249 1249
1250 // repaintAgenda(); 1250 // repaintAgenda();
1251 //qApp->processEvents(); 1251 //qApp->processEvents();
1252 // globalFlagBlockAgenda = 0; 1252 // globalFlagBlockAgenda = 0;
1253} 1253}
1254void KOAgendaView::repaintAgenda() 1254void KOAgendaView::repaintAgenda()
1255{ 1255{
1256 // mAllDayAgenda->drawContentsToPainter(); 1256 // mAllDayAgenda->drawContentsToPainter();
1257// mAllDayAgenda->viewport()->repaint( false ); 1257// mAllDayAgenda->viewport()->repaint( false );
1258// mAgenda->drawContentsToPainter(); 1258// mAgenda->drawContentsToPainter();
1259// mAgenda->viewport()->repaint( false ); 1259// mAgenda->viewport()->repaint( false );
1260// qApp->processEvents(); 1260// qApp->processEvents();
1261 1261
1262 //qDebug("KOAgendaView::repaintAgenda() "); 1262 //qDebug("KOAgendaView::repaintAgenda() ");
1263 //qApp->processEvents(); 1263 //qApp->processEvents();
1264 mAgenda->viewport()->repaint( false ); 1264 mAgenda->viewport()->repaint( false );
1265 mAllDayAgenda->viewport()->repaint( false ); 1265 mAllDayAgenda->viewport()->repaint( false );
1266 mAgenda->finishUpdate(); 1266 mAgenda->finishUpdate();
1267 mAllDayAgenda->finishUpdate(); 1267 mAllDayAgenda->finishUpdate();
1268} 1268}
1269 1269
1270 1270
1271void KOAgendaView::clearView() 1271void KOAgendaView::clearView()
1272{ 1272{
1273 // kdDebug() << "ClearView" << endl; 1273 // kdDebug() << "ClearView" << endl;
1274 mAllDayAgenda->clear(); 1274 mAllDayAgenda->clear();
1275 mAgenda->clear(); 1275 mAgenda->clear();
1276} 1276}
1277 1277
1278void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1278void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1279 const QDate &td) 1279 const QDate &td)
1280{ 1280{
1281#ifndef KORG_NOPRINTER 1281#ifndef KORG_NOPRINTER
1282 if (fd == td) 1282 if (fd == td)
1283 calPrinter->preview(CalPrinter::Day, fd, td); 1283 calPrinter->preview(CalPrinter::Day, fd, td);
1284 else 1284 else
1285 calPrinter->preview(CalPrinter::Week, fd, td); 1285 calPrinter->preview(CalPrinter::Week, fd, td);
1286#endif 1286#endif
1287} 1287}
1288 1288
1289// void KOAgendaView::updateMovedTodo() 1289// void KOAgendaView::updateMovedTodo()
1290// { 1290// {
1291// // updateConfig(); 1291// // updateConfig();
1292// // emit updateTodoViews(); 1292// // emit updateTodoViews();
1293// } 1293// }
1294 1294
1295void KOAgendaView::newEvent(int gx, int gy) 1295void KOAgendaView::newEvent(int gx, int gy)
1296{ 1296{
1297 if (!mSelectedDates.count()) return; 1297 if (!mSelectedDates.count()) return;
1298 1298
1299 QDate day = mSelectedDates[gx]; 1299 QDate day = mSelectedDates[gx];
1300 1300
1301 QTime time = mAgenda->gyToTime(gy); 1301 QTime time = mAgenda->gyToTime(gy);
1302 QDateTime dt(day,time); 1302 QDateTime dt(day,time);
1303 // if ( dt < QDateTime::currentDateTime () ) 1303 // if ( dt < QDateTime::currentDateTime () )
1304 // dt = QDateTime::currentDateTime ().addSecs( 3600 ); 1304 // dt = QDateTime::currentDateTime ().addSecs( 3600 );
1305 emit newEventSignal(dt); 1305 emit newEventSignal(dt);
1306} 1306}
1307 1307
1308void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd) 1308void KOAgendaView::newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd)
1309{ 1309{
1310 if (!mSelectedDates.count()) return; 1310 if (!mSelectedDates.count()) return;
1311 1311
1312 QDate dayStart = mSelectedDates[gxStart]; 1312 QDate dayStart = mSelectedDates[gxStart];
1313 QDate dayEnd = mSelectedDates[gxEnd]; 1313 QDate dayEnd = mSelectedDates[gxEnd];
1314 1314
1315 QTime timeStart = mAgenda->gyToTime(gyStart); 1315 QTime timeStart = mAgenda->gyToTime(gyStart);
1316 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 ); 1316 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 );
1317 1317
1318 QDateTime dtStart(dayStart,timeStart); 1318 QDateTime dtStart(dayStart,timeStart);
1319 QDateTime dtEnd(dayEnd,timeEnd); 1319 QDateTime dtEnd(dayEnd,timeEnd);
1320 1320
1321 emit newEventSignal(dtStart,dtEnd); 1321 emit newEventSignal(dtStart,dtEnd);
1322} 1322}
1323 1323
1324void KOAgendaView::newEventAllDay(int gx, int ) 1324void KOAgendaView::newEventAllDay(int gx, int )
1325{ 1325{
1326 if (!mSelectedDates.count()) return; 1326 if (!mSelectedDates.count()) return;
1327 1327
1328 QDate day = mSelectedDates[gx]; 1328 QDate day = mSelectedDates[gx];
1329 1329
1330 emit newEventSignal(day); 1330 emit newEventSignal(day);
1331} 1331}
1332void KOAgendaView::newTodoAllDay(int gx, int ) 1332void KOAgendaView::newTodoAllDay(int gx, int )
1333{ 1333{
1334 if (!mSelectedDates.count()) return; 1334 if (!mSelectedDates.count()) return;
1335 1335
1336 QDateTime day (mSelectedDates[gx] ); 1336 QDateTime day (mSelectedDates[gx] );
1337 emit newTodoSignal(day, true); 1337 emit newTodoSignal(day, true);
1338} 1338}
1339void KOAgendaView::newTodo(int gx, int gy ) 1339void KOAgendaView::newTodo(int gx, int gy )
1340{ 1340{
1341 if (!mSelectedDates.count()) return; 1341 if (!mSelectedDates.count()) return;
1342 QDate dayStart = mSelectedDates[gx]; 1342 QDate dayStart = mSelectedDates[gx];
1343 QTime timeStart = mAgenda->gyToTime(gy); 1343 QTime timeStart = mAgenda->gyToTime(gy);
1344 QDateTime dt (dayStart,timeStart); 1344 QDateTime dt (dayStart,timeStart);
1345 emit newTodoSignal( dt, false ); 1345 emit newTodoSignal( dt, false );
1346} 1346}
1347 1347
1348void KOAgendaView::updateEventIndicatorTop(int newY) 1348void KOAgendaView::updateEventIndicatorTop(int newY)
1349{ 1349{
1350 uint i; 1350 uint i;
1351 for(i=0;i<mMinY.size();++i) { 1351 for(i=0;i<mMinY.size();++i) {
1352 if (newY >= mMinY.at(i)) mEventIndicatorTop->enableColumn(i,true); 1352 if (newY >= mMinY.at(i)) mEventIndicatorTop->enableColumn(i,true);
1353 else mEventIndicatorTop->enableColumn(i,false); 1353 else mEventIndicatorTop->enableColumn(i,false);
1354 } 1354 }
1355 1355
1356 mEventIndicatorTop->update(); 1356 mEventIndicatorTop->update();
1357} 1357}
1358 1358
1359void KOAgendaView::updateEventIndicatorBottom(int newY) 1359void KOAgendaView::updateEventIndicatorBottom(int newY)
1360{ 1360{
1361 uint i; 1361 uint i;
1362 for(i=0;i<mMaxY.size();++i) { 1362 for(i=0;i<mMaxY.size();++i) {
1363 if (newY <= mMaxY.at(i)) mEventIndicatorBottom->enableColumn(i,true); 1363 if (newY <= mMaxY.at(i)) mEventIndicatorBottom->enableColumn(i,true);
1364 else mEventIndicatorBottom->enableColumn(i,false); 1364 else mEventIndicatorBottom->enableColumn(i,false);
1365 } 1365 }
1366 1366
1367 mEventIndicatorBottom->update(); 1367 mEventIndicatorBottom->update();
1368} 1368}
1369 1369
1370void KOAgendaView::startDrag(Event *event) 1370void KOAgendaView::startDrag(Event *event)
1371{ 1371{
1372#ifndef KORG_NODND 1372#ifndef KORG_NODND
1373 DndFactory factory( calendar() ); 1373 DndFactory factory( calendar() );
1374 ICalDrag *vd = factory.createDrag(event,this); 1374 ICalDrag *vd = factory.createDrag(event,this);
1375 if (vd->drag()) { 1375 if (vd->drag()) {
1376 kdDebug() << "KOAgendaView::startDrag(): Delete drag source" << endl; 1376 kdDebug() << "KOAgendaView::startDrag(): Delete drag source" << endl;
1377 } 1377 }
1378#endif 1378#endif
1379} 1379}
1380 1380
1381void KOAgendaView::readSettings() 1381void KOAgendaView::readSettings()
1382{ 1382{
1383 readSettings(KOGlobals::config()); 1383 readSettings(KOGlobals::config());
1384} 1384}
1385 1385
1386void KOAgendaView::readSettings(KConfig *config) 1386void KOAgendaView::readSettings(KConfig *config)
1387{ 1387{
1388 // kdDebug() << "KOAgendaView::readSettings()" << endl; 1388 // kdDebug() << "KOAgendaView::readSettings()" << endl;
1389 1389
1390 config->setGroup("Views"); 1390 config->setGroup("Views");
1391 1391
1392 //#ifndef KORG_NOSPLITTER 1392 //#ifndef KORG_NOSPLITTER
1393 QValueList<int> sizes = config->readIntListEntry("Separator AgendaView"); 1393 QValueList<int> sizes = config->readIntListEntry("Separator AgendaView");
1394 if (sizes.count() == 2) { 1394 if (sizes.count() == 2) {
1395 if ( sizes[0] < 20 ) { 1395 if ( sizes[0] < 20 ) {
1396 sizes[1] = sizes[1] +20 - sizes[0]; 1396 sizes[1] = sizes[1] +20 - sizes[0];
1397 sizes[0] = 20; 1397 sizes[0] = 20;
1398 } 1398 }
1399 mSplitterAgenda->setSizes(sizes); 1399 mSplitterAgenda->setSizes(sizes);
1400 // qDebug("read %d %d ",sizes[0],sizes[1] ); 1400 // qDebug("read %d %d ",sizes[0],sizes[1] );
1401 } 1401 }
1402 //#endif 1402 //#endif
1403 1403
1404 // updateConfig(); 1404 // updateConfig();
1405} 1405}
1406 1406
1407void KOAgendaView::writeSettings(KConfig *config) 1407void KOAgendaView::writeSettings(KConfig *config)
1408{ 1408{
1409 // kdDebug() << "KOAgendaView::writeSettings()" << endl; 1409 // kdDebug() << "KOAgendaView::writeSettings()" << endl;
1410 1410
1411 config->setGroup("Views"); 1411 config->setGroup("Views");
1412 1412
1413 //#ifndef KORG_NOSPLITTER 1413 //#ifndef KORG_NOSPLITTER
1414 QValueList<int> list = mSplitterAgenda->sizes(); 1414 QValueList<int> list = mSplitterAgenda->sizes();
1415 config->writeEntry("Separator AgendaView",list); 1415 config->writeEntry("Separator AgendaView",list);
1416 //qDebug("write %d %d ", list[0],list[1] ); 1416 //qDebug("write %d %d ", list[0],list[1] );
1417 //#endif 1417 //#endif
1418} 1418}
1419 1419
1420void KOAgendaView::setHolidayMasks() 1420void KOAgendaView::setHolidayMasks()
1421{ 1421{
1422 mHolidayMask.resize(mSelectedDates.count()); 1422 mHolidayMask.resize(mSelectedDates.count());
1423 1423
1424 uint i; 1424 uint i;
1425 for(i=0;i<mSelectedDates.count();++i) { 1425 for(i=0;i<mSelectedDates.count();++i) {
1426 QDate date = mSelectedDates[i]; 1426 QDate date = mSelectedDates[i];
1427 bool showSaturday = KOPrefs::instance()->mExcludeSaturdays && (date.dayOfWeek() == 6); 1427 bool showSaturday = KOPrefs::instance()->mExcludeSaturdays && (date.dayOfWeek() == 6);
1428 bool showSunday = KOPrefs::instance()->mExcludeHolidays && (date.dayOfWeek() == 7); 1428 bool showSunday = KOPrefs::instance()->mExcludeHolidays && (date.dayOfWeek() == 7);
1429 bool showHoliday = false; 1429 bool showHoliday = false;
1430 if ( KOPrefs::instance()->mExcludeHolidays ) { 1430 if ( KOPrefs::instance()->mExcludeHolidays ) {
1431 QPtrList<Event> events = calendar()->events( date, true ); 1431 QPtrList<Event> events = calendar()->events( date, true );
1432 Event *event; 1432 Event *event;
1433 for( event = events.first(); event; event = events.next() ) { 1433 for( event = events.first(); event; event = events.next() ) {
1434 if ( event->categories().contains("Holiday") || 1434 if ( event->categories().contains("Holiday") ||
1435 event->categories().contains(i18n("Holiday"))) { 1435 event->categories().contains(i18n("Holiday"))) {
1436 showHoliday = true; 1436 showHoliday = true;
1437 break; 1437 break;
1438 } 1438 }
1439 } 1439 }
1440 1440
1441 } 1441 }
1442 1442
1443#ifndef KORG_NOPLUGINS 1443#ifndef KORG_NOPLUGINS
1444 bool showHoliday = KOPrefs::instance()->mExcludeHolidays && 1444 bool showHoliday = KOPrefs::instance()->mExcludeHolidays &&
1445 !KOCore::self()->holiday(date).isEmpty(); 1445 !KOCore::self()->holiday(date).isEmpty();
1446#endif 1446#endif
1447 bool showDay = showSaturday || showSunday || showHoliday; 1447 bool showDay = showSaturday || showSunday || showHoliday;
1448 1448
1449 if (showDay) { 1449 if (showDay) {
1450 mHolidayMask.at(i) = true; 1450 mHolidayMask.at(i) = true;
1451 } else { 1451 } else {
1452 mHolidayMask.at(i) = false; 1452 mHolidayMask.at(i) = false;
1453 } 1453 }
1454 } 1454 }
1455 1455
1456 mAgenda->setHolidayMask(&mHolidayMask); 1456 mAgenda->setHolidayMask(&mHolidayMask);
1457 mAllDayAgenda->setHolidayMask(&mHolidayMask); 1457 mAllDayAgenda->setHolidayMask(&mHolidayMask);
1458} 1458}
1459 1459
1460void KOAgendaView::setContentsPos(int y) 1460void KOAgendaView::setContentsPos(int y)
1461{ 1461{
1462 mAgenda->setContentsPos(0,y); 1462 mAgenda->setContentsPos(0,y);
1463} 1463}
1464 1464
1465void KOAgendaView::setExpandedButton( bool expanded ) 1465void KOAgendaView::setExpandedButton( bool expanded )
1466{ 1466{
1467 if ( expanded ) { 1467 if ( expanded ) {
1468 mExpandButton->setPixmap( mExpandedPixmap ); 1468 mExpandButton->setPixmap( mExpandedPixmap );
1469 } else { 1469 } else {
1470 mExpandButton->setPixmap( mNotExpandedPixmap ); 1470 mExpandButton->setPixmap( mNotExpandedPixmap );
1471 } 1471 }
1472} 1472}
1473 1473
1474void KOAgendaView::clearSelection() 1474void KOAgendaView::clearSelection()
1475{ 1475{
1476 mAgenda->deselectItem(); 1476 mAgenda->deselectItem();
1477 mAllDayAgenda->deselectItem(); 1477 mAllDayAgenda->deselectItem();
1478} 1478}
1479 1479
1480void KOAgendaView::newTimeSpanSelectedAllDay(int gxStart, int gyStart, 1480void KOAgendaView::newTimeSpanSelectedAllDay(int gxStart, int gyStart,
1481 int gxEnd, int gyEnd) 1481 int gxEnd, int gyEnd)
1482{ 1482{
1483 mTimeSpanInAllDay = true; 1483 mTimeSpanInAllDay = true;
1484 newTimeSpanSelected(gxStart,gyStart,gxEnd,gyEnd); 1484 newTimeSpanSelected(gxStart,gyStart,gxEnd,gyEnd);
1485} 1485}
1486 1486
1487 1487
1488 1488
1489 1489
1490void KOAgendaView::newTimeSpanSelected(int gxStart, int gyStart, 1490void KOAgendaView::newTimeSpanSelected(int gxStart, int gyStart,
1491 int gxEnd, int gyEnd) 1491 int gxEnd, int gyEnd)
1492{ 1492{
1493 if (!mSelectedDates.count()) return; 1493 if (!mSelectedDates.count()) return;
1494 1494
1495 QDate dayStart = mSelectedDates[gxStart]; 1495 QDate dayStart = mSelectedDates[gxStart];
1496 QDate dayEnd = mSelectedDates[gxEnd]; 1496 QDate dayEnd = mSelectedDates[gxEnd];
1497 1497
1498 QTime timeStart = mAgenda->gyToTime(gyStart); 1498 QTime timeStart = mAgenda->gyToTime(gyStart);
1499 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 ); 1499 QTime timeEnd = mAgenda->gyToTime( gyEnd + 1 );
1500 1500
1501 QDateTime dtStart(dayStart,timeStart); 1501 QDateTime dtStart(dayStart,timeStart);
1502 QDateTime dtEnd(dayEnd,timeEnd); 1502 QDateTime dtEnd(dayEnd,timeEnd);
1503 1503
1504 mTimeSpanBegin = dtStart; 1504 mTimeSpanBegin = dtStart;
1505 mTimeSpanEnd = dtEnd; 1505 mTimeSpanEnd = dtEnd;
1506 1506
1507} 1507}
1508 1508
1509void KOAgendaView::deleteSelectedDateTime() 1509void KOAgendaView::deleteSelectedDateTime()
1510{ 1510{
1511 mTimeSpanBegin.setDate(QDate()); 1511 mTimeSpanBegin.setDate(QDate());
1512 mTimeSpanEnd.setDate(QDate()); 1512 mTimeSpanEnd.setDate(QDate());
1513 mTimeSpanInAllDay = false; 1513 mTimeSpanInAllDay = false;
1514} 1514}
1515 1515
1516void KOAgendaView::keyPressEvent ( QKeyEvent * e ) 1516void KOAgendaView::keyPressEvent ( QKeyEvent * e )
1517{ 1517{
1518 e->ignore(); 1518 e->ignore();
1519} 1519}
1520 1520
1521void KOAgendaView::scrollOneHourUp() 1521void KOAgendaView::scrollOneHourUp()
1522{ 1522{
1523 1523
1524 mAgenda->scrollBy ( 0, -mAgenda->contentsHeight () / 24 ); 1524 mAgenda->scrollBy ( 0, -mAgenda->contentsHeight () / 24 );
1525} 1525}
1526void KOAgendaView::scrollOneHourDown() 1526void KOAgendaView::scrollOneHourDown()
1527{ 1527{
1528 mAgenda->scrollBy ( 0, mAgenda->contentsHeight () / 24 ); 1528 mAgenda->scrollBy ( 0, mAgenda->contentsHeight () / 24 );
1529} 1529}
1530 1530
1531void KOAgendaView::setStartHour( int h ) 1531void KOAgendaView::setStartHour( int h )
1532{ 1532{
1533 mAgenda->setStartHour( h ); 1533 mAgenda->setStartHour( h );
1534 1534
1535} 1535}
1536void KOAgendaView::setInitStartHour()
1537{
1538
1539 if ( KOPrefs::instance()->mCenterOnCurrentTime )
1540 setStartHour( QTime::currentTime ().hour() );
1541 else
1542 setStartHour( KOPrefs::instance()->mDayBegins );
1543
1544}
1545
1536 1546
1537void KOAgendaView::updateTodo( Todo * t, int ) 1547void KOAgendaView::updateTodo( Todo * t, int )
1538{ 1548{
1539 if ( !isVisible() ) 1549 if ( !isVisible() )
1540 return; 1550 return;
1541 bool remove = false; 1551 bool remove = false;
1542 bool removeAD = false; 1552 bool removeAD = false;
1543 QDate da; 1553 QDate da;
1544 if ( t->hasCompletedDate() ) 1554 if ( t->hasCompletedDate() )
1545 da = t->completed().date(); 1555 da = t->completed().date();
1546 else 1556 else
1547 da = t->dtDue().date(); 1557 da = t->dtDue().date();
1548 if ( ! t->hasDueDate() && !t->hasCompletedDate() ) { 1558 if ( ! t->hasDueDate() && !t->hasCompletedDate() ) {
1549 remove = true; 1559 remove = true;
1550 removeAD = true; 1560 removeAD = true;
1551 } 1561 }
1552 else { 1562 else {
1553 bool overdue = (!t->isCompleted()) && (t->dtDue() < QDate::currentDate()) && KOPrefs::instance()->mShowTodoInAgenda ; 1563 bool overdue = (!t->isCompleted()) && (t->dtDue() < QDate::currentDate()) && KOPrefs::instance()->mShowTodoInAgenda ;
1554 if ( overdue && 1564 if ( overdue &&
1555 QDate::currentDate() >= mSelectedDates.first() && 1565 QDate::currentDate() >= mSelectedDates.first() &&
1556 QDate::currentDate() <= mSelectedDates.last()) { 1566 QDate::currentDate() <= mSelectedDates.last()) {
1557 removeAD = false; 1567 removeAD = false;
1558 remove = true; 1568 remove = true;
1559 } 1569 }
1560 else { 1570 else {
1561 1571
1562 if ( da < mSelectedDates.first() || 1572 if ( da < mSelectedDates.first() ||
1563 da > mSelectedDates.last() ) { 1573 da > mSelectedDates.last() ) {
1564 remove = true; 1574 remove = true;
1565 removeAD = true; 1575 removeAD = true;
1566 } else { 1576 } else {
1567 remove = t->doesFloat() && !t->hasCompletedDate(); 1577 remove = t->doesFloat() && !t->hasCompletedDate();
1568 removeAD = !remove; 1578 removeAD = !remove;
1569 } 1579 }
1570 } 1580 }
1571 } 1581 }
1572 int days = mSelectedDates.first().daysTo( da ); 1582 int days = mSelectedDates.first().daysTo( da );
1573 //qDebug("daysto %d %d %d", days, remove,removeAD ); 1583 //qDebug("daysto %d %d %d", days, remove,removeAD );
1574 mAgenda->updateTodo( t , days, remove); 1584 mAgenda->updateTodo( t , days, remove);
1575 if ( KOPrefs::instance()->mShowTodoInAgenda ) 1585 if ( KOPrefs::instance()->mShowTodoInAgenda )
1576 mAllDayAgenda->updateTodo( t , days, removeAD); 1586 mAllDayAgenda->updateTodo( t , days, removeAD);
1577 //qDebug("KOAgendaView::updateTodo( Todo *, int ) "); 1587 //qDebug("KOAgendaView::updateTodo( Todo *, int ) ");
1578 1588
1579} 1589}
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index 4a058ce..8b8bac0 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -1,290 +1,291 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef KOAGENDAVIEW_H 23#ifndef KOAGENDAVIEW_H
24#define KOAGENDAVIEW_H 24#define KOAGENDAVIEW_H
25 25
26#include <qscrollview.h> 26#include <qscrollview.h>
27#include <qdatetime.h> 27#include <qdatetime.h>
28#include <qpushbutton.h> 28#include <qpushbutton.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qksplitter.h> 31#include <qksplitter.h>
32#else 32#else
33#include <qsplitter.h> 33#include <qsplitter.h>
34#endif 34#endif
35#include <qmemarray.h> 35#include <qmemarray.h>
36 36
37#include "koeventview.h" 37#include "koeventview.h"
38 38
39class QHBox; 39class QHBox;
40class QFrame; 40class QFrame;
41class QLabel; 41class QLabel;
42class QPushButton; 42class QPushButton;
43class CalendarView; 43class CalendarView;
44class KOAgenda; 44class KOAgenda;
45class KOAgendaItem; 45class KOAgendaItem;
46class KConfig; 46class KConfig;
47class KDGanttMinimizeSplitter; 47class KDGanttMinimizeSplitter;
48 48
49class KOAgendaButton : public QPushButton 49class KOAgendaButton : public QPushButton
50{ 50{
51 Q_OBJECT 51 Q_OBJECT
52 public: 52 public:
53 KOAgendaButton( QWidget *parent=0, const char *name=0 ) : 53 KOAgendaButton( QWidget *parent=0, const char *name=0 ) :
54 QPushButton( parent, name ) 54 QPushButton( parent, name )
55 { 55 {
56 mNum = -3; 56 mNum = -3;
57 setFlat( true ); 57 setFlat( true );
58 setFocusPolicy(NoFocus); 58 setFocusPolicy(NoFocus);
59 setSizePolicy(QSizePolicy( QSizePolicy::Expanding ,QSizePolicy::Expanding )); 59 setSizePolicy(QSizePolicy( QSizePolicy::Expanding ,QSizePolicy::Expanding ));
60 connect( this, SIGNAL( clicked() ), this, SLOT ( bClicked() ) ); 60 connect( this, SIGNAL( clicked() ), this, SLOT ( bClicked() ) );
61 }; 61 };
62 62
63 QSize sizeHint () const { return QSize( 5,5) ;} 63 QSize sizeHint () const { return QSize( 5,5) ;}
64 void setNum( int n) { mNum = n; } 64 void setNum( int n) { mNum = n; }
65private slots: 65private slots:
66 void bClicked() {emit numClicked( mNum);} 66 void bClicked() {emit numClicked( mNum);}
67signals: 67signals:
68 void numClicked( int ); 68 void numClicked( int );
69private: 69private:
70 int mNum; 70 int mNum;
71}; 71};
72 72
73class TimeLabels : public QScrollView { 73class TimeLabels : public QScrollView {
74 Q_OBJECT 74 Q_OBJECT
75 public: 75 public:
76 TimeLabels(int rows,QWidget *parent=0,const char *name=0,WFlags f=0); 76 TimeLabels(int rows,QWidget *parent=0,const char *name=0,WFlags f=0);
77 77
78 void setCellHeight(int height); 78 void setCellHeight(int height);
79 79
80 /** Calculates the minimum width */ 80 /** Calculates the minimum width */
81 virtual int minimumWidth() const; 81 virtual int minimumWidth() const;
82 82
83 /** updates widget's internal state */ 83 /** updates widget's internal state */
84 void updateConfig(); 84 void updateConfig();
85 85
86 /** */ 86 /** */
87 void setAgenda(KOAgenda* agenda); 87 void setAgenda(KOAgenda* agenda);
88 88
89 /** */ 89 /** */
90 virtual void paintEvent(QPaintEvent* e); 90 virtual void paintEvent(QPaintEvent* e);
91 void contentsMousePressEvent ( QMouseEvent * ) ; 91 void contentsMousePressEvent ( QMouseEvent * ) ;
92 void contentsMouseReleaseEvent ( QMouseEvent * ); 92 void contentsMouseReleaseEvent ( QMouseEvent * );
93 void contentsMouseMoveEvent ( QMouseEvent * ); 93 void contentsMouseMoveEvent ( QMouseEvent * );
94 94
95 public slots: 95 public slots:
96 /** update time label positions */ 96 /** update time label positions */
97 void positionChanged(); 97 void positionChanged();
98 signals: 98 signals:
99 void scaleChanged(); 99 void scaleChanged();
100 protected: 100 protected:
101 void drawContents(QPainter *p,int cx, int cy, int cw, int ch); 101 void drawContents(QPainter *p,int cx, int cy, int cw, int ch);
102 102
103 private: 103 private:
104 int mMouseDownY; 104 int mMouseDownY;
105 QString mOrgCap; 105 QString mOrgCap;
106 int mRows; 106 int mRows;
107 int mCellHeight; 107 int mCellHeight;
108 108
109 /** */ 109 /** */
110 KOAgenda* mAgenda; 110 KOAgenda* mAgenda;
111}; 111};
112 112
113class EventIndicator : public QFrame { 113class EventIndicator : public QFrame {
114 Q_OBJECT 114 Q_OBJECT
115 public: 115 public:
116 enum Location { Top, Bottom }; 116 enum Location { Top, Bottom };
117 EventIndicator(Location loc=Top,QWidget *parent=0,const char *name=0); 117 EventIndicator(Location loc=Top,QWidget *parent=0,const char *name=0);
118 virtual ~EventIndicator(); 118 virtual ~EventIndicator();
119 119
120 void changeColumns(int columns); 120 void changeColumns(int columns);
121 void setPaintWidget( KDGanttMinimizeSplitter* ); 121 void setPaintWidget( KDGanttMinimizeSplitter* );
122 void setXOffset( int ); 122 void setXOffset( int );
123 void enableColumn(int column, bool enable); 123 void enableColumn(int column, bool enable);
124 124
125 protected: 125 protected:
126 void drawContents(QPainter *); 126 void drawContents(QPainter *);
127 127
128 private: 128 private:
129 int mXOffset; 129 int mXOffset;
130 KDGanttMinimizeSplitter* mPaintWidget; 130 KDGanttMinimizeSplitter* mPaintWidget;
131 int mColumns; 131 int mColumns;
132 QHBox *mTopBox; 132 QHBox *mTopBox;
133 QBoxLayout *mTopLayout; 133 QBoxLayout *mTopLayout;
134 Location mLocation; 134 Location mLocation;
135 QPixmap mPixmap; 135 QPixmap mPixmap;
136 QMemArray<bool> mEnabled; 136 QMemArray<bool> mEnabled;
137}; 137};
138 138
139/** 139/**
140 KOAgendaView is the agenda-like view used to display events in an one or 140 KOAgendaView is the agenda-like view used to display events in an one or
141 multi-day view. 141 multi-day view.
142*/ 142*/
143class KOAgendaView : public KOEventView { 143class KOAgendaView : public KOEventView {
144 Q_OBJECT 144 Q_OBJECT
145 public: 145 public:
146 KOAgendaView(Calendar *cal,QWidget *parent = 0,const char *name = 0 ); 146 KOAgendaView(Calendar *cal,QWidget *parent = 0,const char *name = 0 );
147 virtual ~KOAgendaView(); 147 virtual ~KOAgendaView();
148 void setStartHour( int ); 148 void setStartHour( int );
149 void toggleAllDay(); 149 void toggleAllDay();
150 150
151 151
152 /** Returns maximum number of days supported by the koagendaview */ 152 /** Returns maximum number of days supported by the koagendaview */
153 virtual int maxDatesHint(); 153 virtual int maxDatesHint();
154 154
155 /** Returns number of currently shown dates. */ 155 /** Returns number of currently shown dates. */
156 virtual int currentDateCount(); 156 virtual int currentDateCount();
157 157
158 /** returns the currently selected events */ 158 /** returns the currently selected events */
159 virtual QPtrList<Incidence> selectedIncidences(); 159 virtual QPtrList<Incidence> selectedIncidences();
160 160
161 /** returns the currently selected events */ 161 /** returns the currently selected events */
162 virtual DateList selectedDates(); 162 virtual DateList selectedDates();
163 163
164 /** Remove all events from view */ 164 /** Remove all events from view */
165 void clearView(); 165 void clearView();
166 KOAgenda *agenda() { return mAgenda;} 166 KOAgenda *agenda() { return mAgenda;}
167 virtual void printPreview(CalPrinter *calPrinter, 167 virtual void printPreview(CalPrinter *calPrinter,
168 const QDate &, const QDate &); 168 const QDate &, const QDate &);
169 169
170 /** start-datetime of selection */ 170 /** start-datetime of selection */
171 QDateTime selectionStart() {return mTimeSpanBegin;} 171 QDateTime selectionStart() {return mTimeSpanBegin;}
172 /** end-datetime of selection */ 172 /** end-datetime of selection */
173 QDateTime selectionEnd() {return mTimeSpanEnd;} 173 QDateTime selectionEnd() {return mTimeSpanEnd;}
174 /** returns true if selection is for whole day */ 174 /** returns true if selection is for whole day */
175 bool selectedIsAllDay() {return mTimeSpanInAllDay;} 175 bool selectedIsAllDay() {return mTimeSpanInAllDay;}
176 /** make selected start/end invalid */ 176 /** make selected start/end invalid */
177 void deleteSelectedDateTime(); 177 void deleteSelectedDateTime();
178 void repaintAgenda(); 178 void repaintAgenda();
179 public slots: 179 public slots:
180 void setInitStartHour();
180 virtual void updateView(); 181 virtual void updateView();
181 virtual void updateConfig(); 182 virtual void updateConfig();
182 virtual void showDates(const QDate &start, const QDate &end); 183 virtual void showDates(const QDate &start, const QDate &end);
183 virtual void showEvents(QPtrList<Event> eventList); 184 virtual void showEvents(QPtrList<Event> eventList);
184 185
185 void updateTodo( Todo *, int ); 186 void updateTodo( Todo *, int );
186 void changeEventDisplay(Event *, int); 187 void changeEventDisplay(Event *, int);
187 188
188 void clearSelection(); 189 void clearSelection();
189 190
190 void newTodo(int gx,int gy); 191 void newTodo(int gx,int gy);
191 void newEvent(int gx,int gy); 192 void newEvent(int gx,int gy);
192 void newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd); 193 void newEvent(int gxStart, int gyStart, int gxEnd, int gyEnd);
193 void newEventAllDay(int gx, int gy); 194 void newEventAllDay(int gx, int gy);
194 void newTodoAllDay(int gx, int gy); 195 void newTodoAllDay(int gx, int gy);
195 196
196 void startDrag(Event *); 197 void startDrag(Event *);
197 198
198 void readSettings(); 199 void readSettings();
199 void readSettings(KConfig *); 200 void readSettings(KConfig *);
200 void writeSettings(KConfig *); 201 void writeSettings(KConfig *);
201 202
202 void setContentsPos(int y); 203 void setContentsPos(int y);
203 204
204 void setExpandedButton( bool expanded ); 205 void setExpandedButton( bool expanded );
205 void scrollOneHourUp(); 206 void scrollOneHourUp();
206 void scrollOneHourDown(); 207 void scrollOneHourDown();
207 void addToCalSlot(Incidence *, Incidence *); 208 void addToCalSlot(Incidence *, Incidence *);
208 209
209 signals: 210 signals:
210 void showDateView( int, QDate ); 211 void showDateView( int, QDate );
211 void newTodoSignal( QDateTime ,bool ); 212 void newTodoSignal( QDateTime ,bool );
212 void toggleExpand(); 213 void toggleExpand();
213 void selectWeekNum( int ); 214 void selectWeekNum( int );
214 void todoMoved( Todo *, int ); 215 void todoMoved( Todo *, int );
215 void incidenceChanged(Incidence * , int ); 216 void incidenceChanged(Incidence * , int );
216 // void cloneIncidenceSignal(Incidence *); 217 // void cloneIncidenceSignal(Incidence *);
217 218
218 protected: 219 protected:
219 KOAgendaButton* getNewDaylabel(); 220 KOAgendaButton* getNewDaylabel();
220 bool mBlockUpdating; 221 bool mBlockUpdating;
221 int mUpcomingWidth; 222 int mUpcomingWidth;
222 /** Fill agenda beginning with date startDate */ 223 /** Fill agenda beginning with date startDate */
223 void fillAgenda(const QDate &startDate); 224 void fillAgenda(const QDate &startDate);
224 void resizeEvent( QResizeEvent* e ); 225 void resizeEvent( QResizeEvent* e );
225 /** Fill agenda using the current set value for the start date */ 226 /** Fill agenda using the current set value for the start date */
226 void fillAgenda(); 227 void fillAgenda();
227 228
228 /** Create labels for the selected dates. */ 229 /** Create labels for the selected dates. */
229 void createDayLabels(); 230 void createDayLabels();
230 231
231 /** 232 /**
232 Set the masks on the agenda widgets indicating, which days are holidays. 233 Set the masks on the agenda widgets indicating, which days are holidays.
233 */ 234 */
234 void setHolidayMasks(); 235 void setHolidayMasks();
235 236
236 protected slots: 237 protected slots:
237 void slotDaylabelClicked( int ); 238 void slotDaylabelClicked( int );
238 /** Update event belonging to agenda item */ 239 /** Update event belonging to agenda item */
239 void updateEventDates(KOAgendaItem *item, int mode = -1); 240 void updateEventDates(KOAgendaItem *item, int mode = -1);
240 //void updateMovedTodo(); 241 //void updateMovedTodo();
241 242
242 void updateEventIndicatorTop(int newY); 243 void updateEventIndicatorTop(int newY);
243 void updateEventIndicatorBottom(int newY); 244 void updateEventIndicatorBottom(int newY);
244 245
245 /** Updates data for selected timespan */ 246 /** Updates data for selected timespan */
246 void newTimeSpanSelected(int gxStart, int gyStart, int gxEnd, int gyEnd); 247 void newTimeSpanSelected(int gxStart, int gyStart, int gxEnd, int gyEnd);
247 /** Updates data for selected timespan for all day event*/ 248 /** Updates data for selected timespan for all day event*/
248 void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd); 249 void newTimeSpanSelectedAllDay(int gxStart, int gyStart, int gxEnd, int gyEnd);
249 250
250 private: 251 private:
251 // view widgets 252 // view widgets
252 QFrame *mDayLabels; 253 QFrame *mDayLabels;
253 QHBox *mDayLabelsFrame; 254 QHBox *mDayLabelsFrame;
254 QBoxLayout *mLayoutDayLabels; 255 QBoxLayout *mLayoutDayLabels;
255 QFrame *mAllDayFrame; 256 QFrame *mAllDayFrame;
256 KOAgenda *mAllDayAgenda; 257 KOAgenda *mAllDayAgenda;
257 KOAgenda *mAgenda; 258 KOAgenda *mAgenda;
258 TimeLabels *mTimeLabels; 259 TimeLabels *mTimeLabels;
259 QWidget *mDummyAllDayLeft; 260 QWidget *mDummyAllDayLeft;
260 261
261 KDGanttMinimizeSplitter* mSplitterAgenda; 262 KDGanttMinimizeSplitter* mSplitterAgenda;
262 QPushButton *mExpandButton; 263 QPushButton *mExpandButton;
263 264
264 DateList mSelectedDates; // List of dates to be displayed 265 DateList mSelectedDates; // List of dates to be displayed
265 int mViewType; 266 int mViewType;
266 267
267 bool mWeekStartsMonday; 268 bool mWeekStartsMonday;
268 int mStartHour; 269 int mStartHour;
269 270
270 KOEventPopupMenu *mAgendaPopup; 271 KOEventPopupMenu *mAgendaPopup;
271 KOEventPopupMenu *mAllDayAgendaPopup; 272 KOEventPopupMenu *mAllDayAgendaPopup;
272 273
273 EventIndicator *mEventIndicatorTop; 274 EventIndicator *mEventIndicatorTop;
274 EventIndicator *mEventIndicatorBottom; 275 EventIndicator *mEventIndicatorBottom;
275 276
276 QMemArray<int> mMinY; 277 QMemArray<int> mMinY;
277 QMemArray<int> mMaxY; 278 QMemArray<int> mMaxY;
278 279
279 QMemArray<bool> mHolidayMask; 280 QMemArray<bool> mHolidayMask;
280 281
281 QPixmap mExpandedPixmap; 282 QPixmap mExpandedPixmap;
282 QPixmap mNotExpandedPixmap; 283 QPixmap mNotExpandedPixmap;
283 QPtrList<KOAgendaButton> mDayLabelsList; 284 QPtrList<KOAgendaButton> mDayLabelsList;
284 QDateTime mTimeSpanBegin; 285 QDateTime mTimeSpanBegin;
285 QDateTime mTimeSpanEnd; 286 QDateTime mTimeSpanEnd;
286 bool mTimeSpanInAllDay; 287 bool mTimeSpanInAllDay;
287 void keyPressEvent ( QKeyEvent * e ); 288 void keyPressEvent ( QKeyEvent * e );
288}; 289};
289 290
290#endif // KOAGENDAVIEW_H 291#endif // KOAGENDAVIEW_H
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index b0f26d1..f8f6c1d 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -1,667 +1,674 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Copyright (c) 2001 4 Copyright (c) 2001
5 Cornelius Schumacher <schumacher@kde.org> 5 Cornelius Schumacher <schumacher@kde.org>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <qwidgetstack.h> 26#include <qwidgetstack.h>
27 27
28#include <kconfig.h> 28#include <kconfig.h>
29#include <kglobal.h> 29#include <kglobal.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#else 32#else
33#include <qapplication.h> 33#include <qapplication.h>
34#endif 34#endif
35#include <qdatetime.h> 35#include <qdatetime.h>
36#include "calendarview.h" 36#include "calendarview.h"
37#include "datenavigator.h" 37#include "datenavigator.h"
38#include "kotodoview.h" 38#include "kotodoview.h"
39#include "koagendaview.h" 39#include "koagendaview.h"
40#include "kodialogmanager.h" 40#include "kodialogmanager.h"
41#include "komonthview.h" 41#include "komonthview.h"
42#include "kolistview.h" 42#include "kolistview.h"
43#include "kowhatsnextview.h" 43#include "kowhatsnextview.h"
44#include "kojournalview.h" 44#include "kojournalview.h"
45#include "kotimespanview.h" 45#include "kotimespanview.h"
46#include "koprefs.h" 46#include "koprefs.h"
47#include "navigatorbar.h" 47#include "navigatorbar.h"
48#include "kdatenavigator.h" 48#include "kdatenavigator.h"
49 49
50#include "koviewmanager.h" 50#include "koviewmanager.h"
51//extern bool externFlagMonthviewBlockPainting; 51//extern bool externFlagMonthviewBlockPainting;
52 52
53//bool globalFlagBlockPainting = false; 53//bool globalFlagBlockPainting = false;
54int globalFlagBlockAgenda = 0; 54int globalFlagBlockAgenda = 0;
55int globalFlagBlockLabel = 0; 55int globalFlagBlockLabel = 0;
56int globalFlagBlockAgendaItemPaint = 1; 56int globalFlagBlockAgendaItemPaint = 1;
57int globalFlagBlockAgendaItemUpdate = 1; 57int globalFlagBlockAgendaItemUpdate = 1;
58 58
59 59
60KOViewManager::KOViewManager( CalendarView *mainView ) : 60KOViewManager::KOViewManager( CalendarView *mainView ) :
61 QObject(), mMainView( mainView ) 61 QObject(), mMainView( mainView )
62{ 62{
63 mCurrentView = 0; 63 mCurrentView = 0;
64 64
65 mWhatsNextView = 0; 65 mWhatsNextView = 0;
66 mTodoView = 0; 66 mTodoView = 0;
67 mAgendaView = 0; 67 mAgendaView = 0;
68 mMonthView = 0; 68 mMonthView = 0;
69 mListView = 0; 69 mListView = 0;
70 mJournalView = 0; 70 mJournalView = 0;
71 mTimeSpanView = 0; 71 mTimeSpanView = 0;
72 mCurrentAgendaView = 0 ; 72 mCurrentAgendaView = 0 ;
73 mFlagShowNextxDays = false; 73 mFlagShowNextxDays = false;
74} 74}
75 75
76KOViewManager::~KOViewManager() 76KOViewManager::~KOViewManager()
77{ 77{
78} 78}
79 79
80 80
81KOrg::BaseView *KOViewManager::currentView() 81KOrg::BaseView *KOViewManager::currentView()
82{ 82{
83 return mCurrentView; 83 return mCurrentView;
84} 84}
85 85
86void KOViewManager::readSettings(KConfig *config) 86void KOViewManager::readSettings(KConfig *config)
87{ 87{
88 config->setGroup("General"); 88 config->setGroup("General");
89 QString view = config->readEntry("Current View"); 89 QString view = config->readEntry("Current View");
90 if (view == "WhatsNext") showWhatsNextView(); 90 if (view == "WhatsNext") showWhatsNextView();
91 else if (view == "Month") showMonthView(); 91 else if (view == "Month") showMonthView();
92 else if (view == "List") showListView(); 92 else if (view == "List") showListView();
93 else if (view == "Journal") showJournalView(); 93 else if (view == "Journal") showJournalView();
94 else if (view == "TimeSpan") showTimeSpanView(); 94 else if (view == "TimeSpan") showTimeSpanView();
95 else if (view == "Todo") showTodoView(); 95 else if (view == "Todo") showTodoView();
96 else { 96 else {
97 config->setGroup( "Views" );
98 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
99 mCurrentAgendaView = dateCount;
97 showAgendaView(); 100 showAgendaView();
101 mCurrentAgendaView = dateCount;
102#ifdef DESKTOP_VERSION
103 QTimer::singleShot( 1000, mAgendaView, SLOT ( setInitStartHour() ) );
104#endif
98 } 105 }
99} 106}
100 107
101void KOViewManager::showDateView( int view, QDate date) 108void KOViewManager::showDateView( int view, QDate date)
102{ 109{
103 static int lastMode = 0; 110 static int lastMode = 0;
104 static int lastCount = 0; 111 static int lastCount = 0;
105 static bool lastNDMode = false; 112 static bool lastNDMode = false;
106 static QDate lastDate; 113 static QDate lastDate;
107 //qDebug("date %d %s", view, date.toString().latin1()); 114 //qDebug("date %d %s", view, date.toString().latin1());
108 115
109 if (view != 9) 116 if (view != 9)
110 lastMode = 0; 117 lastMode = 0;
111 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays ); 118 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays );
112 bool savemFlagShowNextxDays = mFlagShowNextxDays; 119 bool savemFlagShowNextxDays = mFlagShowNextxDays;
113 mFlagShowNextxDays = false; 120 mFlagShowNextxDays = false;
114 if ( view == 3 ) { 121 if ( view == 3 ) {
115 //mCurrentAgendaView = 1 ; 122 //mCurrentAgendaView = 1 ;
116 lastDate = mMainView->dateNavigator()->selectedDates().first(); 123 lastDate = mMainView->dateNavigator()->selectedDates().first();
117 lastCount = mMainView->dateNavigator()->selectedDates().count(); 124 lastCount = mMainView->dateNavigator()->selectedDates().count();
118 lastNDMode = savemFlagShowNextxDays; 125 lastNDMode = savemFlagShowNextxDays;
119 mMainView->showDay( date ); 126 mMainView->showDay( date );
120 lastMode = 1; 127 lastMode = 1;
121 } else if (view == 4 ) { 128 } else if (view == 4 ) {
122 mCurrentAgendaView = 7 ; 129 mCurrentAgendaView = 7 ;
123 mMainView->dateNavigator()->selectDates( date, 7 ); 130 mMainView->dateNavigator()->selectDates( date, 7 );
124 } else if (view == 5 ) { 131 } else if (view == 5 ) {
125 mCurrentAgendaView = 14 ; 132 mCurrentAgendaView = 14 ;
126 mMainView->dateNavigator()->selectDates( date, 14); 133 mMainView->dateNavigator()->selectDates( date, 14);
127 } else if (view == 6 ) { 134 } else if (view == 6 ) {
128 //mMainView->dateNavigator()->selectDates( date, 7 ); 135 //mMainView->dateNavigator()->selectDates( date, 7 );
129 showMonthView(); 136 showMonthView();
130 } else if (view == 7 ) { 137 } else if (view == 7 ) {
131 mMainView->dateNavigator()->selectDate( date ); 138 mMainView->dateNavigator()->selectDate( date );
132 showJournalView(); 139 showJournalView();
133 } else if (view == 8 ) { 140 } else if (view == 8 ) {
134 globalFlagBlockAgenda = 1; 141 globalFlagBlockAgenda = 1;
135 if ( mCurrentAgendaView != 3 ) 142 if ( mCurrentAgendaView != 3 )
136 mCurrentAgendaView = -1; 143 mCurrentAgendaView = -1;
137 showAgendaView(KOPrefs::instance()->mFullViewMonth); 144 showAgendaView(KOPrefs::instance()->mFullViewMonth);
138 globalFlagBlockAgenda = 2; 145 globalFlagBlockAgenda = 2;
139 mMainView->dateNavigator()->selectDates( date , 146 mMainView->dateNavigator()->selectDates( date ,
140 KOPrefs::instance()->mNextXDays ); 147 KOPrefs::instance()->mNextXDays );
141 mFlagShowNextxDays = true; 148 mFlagShowNextxDays = true;
142 mCurrentAgendaView = 3 ; 149 mCurrentAgendaView = 3 ;
143 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode ) 150 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode )
144 if ( lastMode ) { 151 if ( lastMode ) {
145 mCurrentAgendaView = lastCount ; 152 mCurrentAgendaView = lastCount ;
146 mMainView->dateNavigator()->selectDates( lastDate, lastCount); 153 mMainView->dateNavigator()->selectDates( lastDate, lastCount);
147 mFlagShowNextxDays = lastNDMode; 154 mFlagShowNextxDays = lastNDMode;
148 if ( mFlagShowNextxDays ) { 155 if ( mFlagShowNextxDays ) {
149 mCurrentAgendaView = 3 ; 156 mCurrentAgendaView = 3 ;
150 } 157 }
151 } else 158 } else
152 showWeekView(); 159 showWeekView();
153 } else if (view == 10) { 160 } else if (view == 10) {
154 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); 161 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() );
155 } 162 }
156} 163}
157 164
158 165
159 166
160void KOViewManager::writeSettings(KConfig *config) 167void KOViewManager::writeSettings(KConfig *config)
161{ 168{
162 config->setGroup("General"); 169 config->setGroup("General");
163 170
164 QString view; 171 QString view;
165 if (mCurrentView == mWhatsNextView) view = "WhatsNext"; 172 if (mCurrentView == mWhatsNextView) view = "WhatsNext";
166 else if (mCurrentView == mMonthView) view = "Month"; 173 else if (mCurrentView == mMonthView) view = "Month";
167 else if (mCurrentView == mListView) view = "List"; 174 else if (mCurrentView == mListView) view = "List";
168 else if (mCurrentView == mJournalView) view = "Journal"; 175 else if (mCurrentView == mJournalView) view = "Journal";
169 else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; 176 else if (mCurrentView == mTimeSpanView) view = "TimeSpan";
170 else if (mCurrentView == mTodoView) view = "Todo"; 177 else if (mCurrentView == mTodoView) view = "Todo";
171 else view = "Agenda"; 178 else view = "Agenda";
172 179
173 config->writeEntry("Current View",view); 180 config->writeEntry("Current View",view);
174 181
175 if (mAgendaView) { 182 if (mAgendaView) {
176 mAgendaView->writeSettings(config); 183 mAgendaView->writeSettings(config);
177 } 184 }
178 if (mTimeSpanView) { 185 if (mTimeSpanView) {
179 mTimeSpanView->writeSettings(config); 186 mTimeSpanView->writeSettings(config);
180 } 187 }
181 if (mListView) { 188 if (mListView) {
182 mListView->writeSettings(config); 189 mListView->writeSettings(config);
183 } 190 }
184 if (mTodoView) { 191 if (mTodoView) {
185 mTodoView->saveLayout(config,"Todo View"); 192 mTodoView->saveLayout(config,"Todo View");
186 } 193 }
187} 194}
188 195
189void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) 196void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
190{ 197{
191 198
192 //mFlagShowNextxDays = false; 199 //mFlagShowNextxDays = false;
193 //if(view == mCurrentView) return; 200 //if(view == mCurrentView) return;
194 if ( view == 0 ) { 201 if ( view == 0 ) {
195 view = mCurrentView; 202 view = mCurrentView;
196 if ( view == 0 ) 203 if ( view == 0 )
197 return; 204 return;
198 } 205 }
199 bool full = fullScreen; 206 bool full = fullScreen;
200 if(view == mCurrentView && view != mWhatsNextView ) { 207 if(view == mCurrentView && view != mWhatsNextView ) {
201 if ( mCurrentAgendaView < 0 ) 208 if ( mCurrentAgendaView < 0 )
202 return; 209 return;
203 full = mMainView->leftFrame()->isVisible(); 210 full = mMainView->leftFrame()->isVisible();
204 } else { 211 } else {
205 if ( view == mMonthView && mMonthView) 212 if ( view == mMonthView && mMonthView)
206 ;//mMonthView->skipResize = true ; 213 ;//mMonthView->skipResize = true ;
207 mCurrentView = view; 214 mCurrentView = view;
208 // bool full = fullScreen; 215 // bool full = fullScreen;
209 bool isFull = !mMainView->leftFrame()->isVisible(); 216 bool isFull = !mMainView->leftFrame()->isVisible();
210 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) 217 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen )
211 full = true; 218 full = true;
212 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) 219 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen )
213 full = false; 220 full = false;
214 } 221 }
215 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime(); 222 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime();
216 //raiseCurrentView( full ); 223 //raiseCurrentView( full );
217 mMainView->processIncidenceSelection( 0 ); 224 mMainView->processIncidenceSelection( 0 );
218 //mMainView->updateView(); 225 //mMainView->updateView();
219 raiseCurrentView( full, true ); 226 raiseCurrentView( full, true );
220 mMainView->adaptNavigationUnits(); 227 mMainView->adaptNavigationUnits();
221} 228}
222 229
223void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 230void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
224{ 231{
225 mCurrentAgendaView = 0; 232 mCurrentAgendaView = 0;
226 if ( fullScreen ) { 233 if ( fullScreen ) {
227 mMainView->leftFrame()->hide(); 234 mMainView->leftFrame()->hide();
228 } else { 235 } else {
229 mMainView->leftFrame()->show(); 236 mMainView->leftFrame()->show();
230 } 237 }
231 emit signalFullScreen( !fullScreen ); 238 emit signalFullScreen( !fullScreen );
232 if ( callUpdateView ) 239 if ( callUpdateView )
233 mMainView->updateView(); 240 mMainView->updateView();
234 241
235 if ( globalFlagBlockAgenda == 5 ) { 242 if ( globalFlagBlockAgenda == 5 ) {
236 globalFlagBlockAgenda = 4; 243 globalFlagBlockAgenda = 4;
237 globalFlagBlockAgendaItemPaint = 1; 244 globalFlagBlockAgendaItemPaint = 1;
238 } 245 }
239 mMainView->viewStack()->raiseWidget(mCurrentView); 246 mMainView->viewStack()->raiseWidget(mCurrentView);
240 if ( globalFlagBlockAgenda == 4 ) { 247 if ( globalFlagBlockAgenda == 4 ) {
241 if ( mCurrentView == mAgendaView ) { 248 if ( mCurrentView == mAgendaView ) {
242 //globalFlagBlockAgenda =1 ; 249 //globalFlagBlockAgenda =1 ;
243 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 250 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
244 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins ); 251 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins );
245 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 252 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
246 mAgendaView->setStartHour( QTime::currentTime ().hour() ); 253 mAgendaView->setStartHour( QTime::currentTime ().hour() );
247 qApp->processEvents(); 254 qApp->processEvents();
248 //qDebug("qApp->processEvents() "); 255 //qDebug("qApp->processEvents() ");
249 globalFlagBlockAgenda = 0; 256 globalFlagBlockAgenda = 0;
250 mAgendaView->repaintAgenda(); 257 mAgendaView->repaintAgenda();
251 258
252 } 259 }
253 globalFlagBlockAgenda = 0; 260 globalFlagBlockAgenda = 0;
254 } 261 }
255 emit signalAgendaView( mCurrentView == mAgendaView ); 262 emit signalAgendaView( mCurrentView == mAgendaView );
256 //qDebug("raiseCurrentView ende "); 263 //qDebug("raiseCurrentView ende ");
257 264
258} 265}
259 266
260void KOViewManager::updateView() 267void KOViewManager::updateView()
261{ 268{
262 // qDebug("KOViewManager::updateView() "); 269 // qDebug("KOViewManager::updateView() ");
263 // if we are updating mTodoView, we get endless recursion 270 // if we are updating mTodoView, we get endless recursion
264 if ( mTodoView == mCurrentView ) 271 if ( mTodoView == mCurrentView )
265 return; 272 return;
266 if ( mCurrentView ) mCurrentView->updateView(); 273 if ( mCurrentView ) mCurrentView->updateView();
267 274
268} 275}
269 276
270void KOViewManager::updateView(const QDate &start, const QDate &end) 277void KOViewManager::updateView(const QDate &start, const QDate &end)
271{ 278{
272 // kdDebug() << "KOViewManager::updateView()" << endl; 279 // kdDebug() << "KOViewManager::updateView()" << endl;
273 280
274 if (mCurrentView) mCurrentView->showDates(start, end); 281 if (mCurrentView) mCurrentView->showDates(start, end);
275 282
276 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); 283 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView();
277} 284}
278 285
279 286
280void KOViewManager::updateWNview() 287void KOViewManager::updateWNview()
281{ 288{
282 if ( mCurrentView == mWhatsNextView && mWhatsNextView ) 289 if ( mCurrentView == mWhatsNextView && mWhatsNextView )
283 mWhatsNextView->updateView(); 290 mWhatsNextView->updateView();
284 291
285} 292}
286void KOViewManager::showWhatsNextView() 293void KOViewManager::showWhatsNextView()
287{ 294{
288 if (!mWhatsNextView) { 295 if (!mWhatsNextView) {
289 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), 296 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(),
290 "KOViewManager::WhatsNextView"); 297 "KOViewManager::WhatsNextView");
291 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); 298 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog());
292 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); 299 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig()));
293 addView(mWhatsNextView); 300 addView(mWhatsNextView);
294 connect(this, SIGNAL( printWNV() ), 301 connect(this, SIGNAL( printWNV() ),
295 mWhatsNextView, SLOT( printMe() ) ); 302 mWhatsNextView, SLOT( printMe() ) );
296 } 303 }
297 globalFlagBlockAgenda = 1; 304 globalFlagBlockAgenda = 1;
298 showView(mWhatsNextView, true ); 305 showView(mWhatsNextView, true );
299 //mWhatsNextView->updateView(); 306 //mWhatsNextView->updateView();
300 307
301} 308}
302 309
303void KOViewManager::showListView() 310void KOViewManager::showListView()
304{ 311{
305 if (!mListView) { 312 if (!mListView) {
306 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView"); 313 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView");
307 addView(mListView); 314 addView(mListView);
308 315
309 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)), 316 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)),
310 mMainView, SLOT(showIncidence(Incidence *))); 317 mMainView, SLOT(showIncidence(Incidence *)));
311 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)), 318 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)),
312 mMainView, SLOT(editIncidence(Incidence *))); 319 mMainView, SLOT(editIncidence(Incidence *)));
313 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)), 320 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)),
314 mMainView, SLOT(deleteIncidence(Incidence *))); 321 mMainView, SLOT(deleteIncidence(Incidence *)));
315 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ), 322 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ),
316 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 323 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
317 connect( mListView, SIGNAL( signalNewEvent() ), 324 connect( mListView, SIGNAL( signalNewEvent() ),
318 mMainView, SLOT( newEvent() ) ); 325 mMainView, SLOT( newEvent() ) );
319 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig())); 326 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig()));
320 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 327 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
321 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 328 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
322 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 329 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
323 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 330 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
324 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 331 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
325 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 332 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
326 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 333 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
327 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 334 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
328 } 335 }
329 // bool temp = mFlagShowNextxDays; 336 // bool temp = mFlagShowNextxDays;
330 //globalFlagBlockPainting = true; 337 //globalFlagBlockPainting = true;
331 globalFlagBlockAgenda = 1; 338 globalFlagBlockAgenda = 1;
332 if ( KOPrefs::instance()->mListViewMonthTimespan ) { 339 if ( KOPrefs::instance()->mListViewMonthTimespan ) {
333 mMainView->setBlockShowDates( true ); 340 mMainView->setBlockShowDates( true );
334 mMainView->dateNavigator()->selectMonth(); 341 mMainView->dateNavigator()->selectMonth();
335 mMainView->setBlockShowDates( false ); 342 mMainView->setBlockShowDates( false );
336 } 343 }
337 showView(mListView, KOPrefs::instance()->mFullViewTodo); 344 showView(mListView, KOPrefs::instance()->mFullViewTodo);
338 //mFlagShowNextxDays = temp; 345 //mFlagShowNextxDays = temp;
339} 346}
340 347
341void KOViewManager::showAgendaView( bool fullScreen ) 348void KOViewManager::showAgendaView( bool fullScreen )
342{ 349{
343 350
344 mMainView->dialogManager()->hideSearchDialog(); 351 mMainView->dialogManager()->hideSearchDialog();
345 // qDebug("KOViewManager::showAgendaView "); 352 // qDebug("KOViewManager::showAgendaView ");
346 bool full; 353 bool full;
347 full = fullScreen; 354 full = fullScreen;
348 if (!mAgendaView) { 355 if (!mAgendaView) {
349 full = false; 356 full = false;
350 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView"); 357 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView");
351 addView(mAgendaView); 358 addView(mAgendaView);
352#ifndef DESKTOP_VERSION 359#ifndef DESKTOP_VERSION
353 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold ); 360 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold );
354#endif 361#endif
355 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )), 362 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )),
356 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) )); 363 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) ));
357 364
358 // SIGNALS/SLOTS FOR DAY/WEEK VIEW 365 // SIGNALS/SLOTS FOR DAY/WEEK VIEW
359 366
360 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate ))); 367 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate )));
361 368
362 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)), 369 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)),
363 mMainView, SLOT(newTodoDateTime(QDateTime,bool))); 370 mMainView, SLOT(newTodoDateTime(QDateTime,bool)));
364 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)), 371 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)),
365 mMainView, SLOT(newEvent(QDateTime))); 372 mMainView, SLOT(newEvent(QDateTime)));
366 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)), 373 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
367 mMainView, SLOT(newEvent(QDateTime,QDateTime))); 374 mMainView, SLOT(newEvent(QDateTime,QDateTime)));
368 connect(mAgendaView,SIGNAL(newEventSignal(QDate)), 375 connect(mAgendaView,SIGNAL(newEventSignal(QDate)),
369 mMainView, SLOT(newEvent(QDate))); 376 mMainView, SLOT(newEvent(QDate)));
370 377
371 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)), 378 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)),
372 mMainView, SLOT(editIncidence(Incidence *))); 379 mMainView, SLOT(editIncidence(Incidence *)));
373 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)), 380 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)),
374 mMainView, SLOT(showIncidence(Incidence *))); 381 mMainView, SLOT(showIncidence(Incidence *)));
375 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)), 382 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)),
376 mMainView, SLOT(deleteIncidence(Incidence *))); 383 mMainView, SLOT(deleteIncidence(Incidence *)));
377 384
378 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ), 385 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ),
379 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 386 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
380 387
381 connect(mAgendaView, SIGNAL( toggleExpand() ), 388 connect(mAgendaView, SIGNAL( toggleExpand() ),
382 mMainView, SLOT( toggleExpand() ) ); 389 mMainView, SLOT( toggleExpand() ) );
383 390
384 connect(mMainView, SIGNAL( calendarViewExpanded( bool ) ), 391 connect(mMainView, SIGNAL( calendarViewExpanded( bool ) ),
385 mAgendaView, SLOT( setExpandedButton( bool ) ) ); 392 mAgendaView, SLOT( setExpandedButton( bool ) ) );
386 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ), 393 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ),
387 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ; 394 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ;
388 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ), 395 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ),
389 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ; 396 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ;
390 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig())); 397 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig()));
391 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView, 398 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView,
392 SLOT( updateTodo( Todo *, int ) ) ); 399 SLOT( updateTodo( Todo *, int ) ) );
393 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )), 400 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )),
394 mMainView, SIGNAL( todoModified( Todo *, int ))); 401 mMainView, SIGNAL( todoModified( Todo *, int )));
395 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 402 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
396 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 403 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
397 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 404 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
398 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 405 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
399 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ), 406 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ),
400 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) ); 407 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) );
401 mAgendaView->readSettings(); 408 mAgendaView->readSettings();
402 mAgendaView->updateConfig(); 409 mAgendaView->updateConfig();
403 } 410 }
404 411
405 showView( mAgendaView, full); 412 showView( mAgendaView, full);
406 413
407} 414}
408 415
409void KOViewManager::showDayView() 416void KOViewManager::showDayView()
410{ 417{
411 mFlagShowNextxDays = false; 418 mFlagShowNextxDays = false;
412 globalFlagBlockLabel = 1; 419 globalFlagBlockLabel = 1;
413 globalFlagBlockAgenda = 1; 420 globalFlagBlockAgenda = 1;
414 if ( mCurrentAgendaView != 1 ) 421 if ( mCurrentAgendaView != 1 )
415 mCurrentAgendaView = -1; 422 mCurrentAgendaView = -1;
416 showAgendaView(); 423 showAgendaView();
417 qApp->processEvents(); 424 qApp->processEvents();
418 globalFlagBlockAgenda = 2; 425 globalFlagBlockAgenda = 2;
419 globalFlagBlockLabel = 0; 426 globalFlagBlockLabel = 0;
420 mMainView->dateNavigator()->selectDates( 1 ); 427 mMainView->dateNavigator()->selectDates( 1 );
421 mCurrentAgendaView = 1 ; 428 mCurrentAgendaView = 1 ;
422 429
423} 430}
424 431
425void KOViewManager::showWorkWeekView() 432void KOViewManager::showWorkWeekView()
426{ 433{
427 mFlagShowNextxDays = false; 434 mFlagShowNextxDays = false;
428 globalFlagBlockAgenda = 1; 435 globalFlagBlockAgenda = 1;
429 globalFlagBlockLabel = 1; 436 globalFlagBlockLabel = 1;
430 if ( mCurrentAgendaView != 5 ) 437 if ( mCurrentAgendaView != 5 )
431 mCurrentAgendaView = -1; 438 mCurrentAgendaView = -1;
432 showAgendaView(); 439 showAgendaView();
433 qApp->processEvents(); 440 qApp->processEvents();
434 globalFlagBlockAgenda = 2; 441 globalFlagBlockAgenda = 2;
435 globalFlagBlockLabel = 0; 442 globalFlagBlockLabel = 0;
436 mMainView->dateNavigator()->selectWorkWeek(); 443 mMainView->dateNavigator()->selectWorkWeek();
437 mCurrentAgendaView = 5 ; 444 mCurrentAgendaView = 5 ;
438 445
439} 446}
440 447
441void KOViewManager::showWeekView() 448void KOViewManager::showWeekView()
442{ 449{
443 /* 450 /*
444 globalFlagBlockAgenda = 2; 451 globalFlagBlockAgenda = 2;
445 qDebug("4globalFlagBlockAgenda = 2; "); 452 qDebug("4globalFlagBlockAgenda = 2; ");
446 //globalFlagBlockPainting = true; 453 //globalFlagBlockPainting = true;
447 mMainView->dateNavigator()->selectWeek(); 454 mMainView->dateNavigator()->selectWeek();
448 showAgendaView(); 455 showAgendaView();
449 */ 456 */
450 457
451 458
452 mFlagShowNextxDays = false; 459 mFlagShowNextxDays = false;
453 globalFlagBlockAgenda = 1; 460 globalFlagBlockAgenda = 1;
454 globalFlagBlockLabel = 1; 461 globalFlagBlockLabel = 1;
455 if ( mCurrentAgendaView != 7 ) 462 if ( mCurrentAgendaView != 7 )
456 mCurrentAgendaView = -1; 463 mCurrentAgendaView = -1;
457 showAgendaView(); 464 showAgendaView();
458 qApp->processEvents(); 465 qApp->processEvents();
459 globalFlagBlockAgenda = 2; 466 globalFlagBlockAgenda = 2;
460 globalFlagBlockLabel = 0; 467 globalFlagBlockLabel = 0;
461 mMainView->dateNavigator()->selectWeek(); 468 mMainView->dateNavigator()->selectWeek();
462 mCurrentAgendaView = 7 ; 469 mCurrentAgendaView = 7 ;
463} 470}
464 471
465void KOViewManager::showNextXView() 472void KOViewManager::showNextXView()
466{ 473{
467 474
468 globalFlagBlockAgenda = 1; 475 globalFlagBlockAgenda = 1;
469 if ( mCurrentAgendaView != 3 ) 476 if ( mCurrentAgendaView != 3 )
470 mCurrentAgendaView = -1; 477 mCurrentAgendaView = -1;
471 showAgendaView(KOPrefs::instance()->mFullViewMonth); 478 showAgendaView(KOPrefs::instance()->mFullViewMonth);
472 globalFlagBlockAgenda = 2; 479 globalFlagBlockAgenda = 2;
473 mMainView->dateNavigator()->selectDates( QDate::currentDate(), 480 mMainView->dateNavigator()->selectDates( QDate::currentDate(),
474 KOPrefs::instance()->mNextXDays ); 481 KOPrefs::instance()->mNextXDays );
475 mFlagShowNextxDays = true; 482 mFlagShowNextxDays = true;
476 mCurrentAgendaView = 3 ; 483 mCurrentAgendaView = 3 ;
477} 484}
478bool KOViewManager::showsNextDays() 485bool KOViewManager::showsNextDays()
479{ 486{
480 return mFlagShowNextxDays; 487 return mFlagShowNextxDays;
481} 488}
482void KOViewManager::showMonthView() 489void KOViewManager::showMonthView()
483 { 490 {
484 if (!mMonthView) { 491 if (!mMonthView) {
485 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView"); 492 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView");
486 493
487 addView(mMonthView); 494 addView(mMonthView);
488 // mMonthView->show(); 495 // mMonthView->show();
489 // SIGNALS/SLOTS FOR MONTH VIEW 496 // SIGNALS/SLOTS FOR MONTH VIEW
490 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)), 497 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)),
491 mMainView, SLOT(newEvent(QDateTime))); 498 mMainView, SLOT(newEvent(QDateTime)));
492 499
493 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)), 500 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)),
494 mMainView, SLOT(showIncidence(Incidence *))); 501 mMainView, SLOT(showIncidence(Incidence *)));
495 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)), 502 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)),
496 mMainView, SLOT(editIncidence(Incidence *))); 503 mMainView, SLOT(editIncidence(Incidence *)));
497 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)), 504 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)),
498 mMainView, SLOT(deleteIncidence(Incidence *))); 505 mMainView, SLOT(deleteIncidence(Incidence *)));
499 506
500 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ), 507 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ),
501 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 508 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
502 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 509 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
503 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 510 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
504 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 511 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
505 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 512 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
506 513
507 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 514 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
508 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 515 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
509 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 516 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
510 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 517 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
511 connect( mMonthView, SIGNAL( selectWeekNum( int ) ), 518 connect( mMonthView, SIGNAL( selectWeekNum( int ) ),
512 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) ); 519 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) );
513 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ), 520 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ),
514 mMainView, SLOT ( showDay( QDate ) ) ); 521 mMainView, SLOT ( showDay( QDate ) ) );
515 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 522 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
516 connect( mMonthView, SIGNAL(nextMonth() ), 523 connect( mMonthView, SIGNAL(nextMonth() ),
517 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) ); 524 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) );
518 connect( mMonthView, SIGNAL(prevMonth() ), 525 connect( mMonthView, SIGNAL(prevMonth() ),
519 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) ); 526 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) );
520 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ), 527 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ),
521 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) ); 528 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) );
522 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ), 529 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ),
523 mMainView->dateNavigator(), SLOT( selectNextYear() ) ); 530 mMainView->dateNavigator(), SLOT( selectNextYear() ) );
524 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ), 531 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ),
525 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) ); 532 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) );
526 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ), 533 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ),
527 mMainView->dateNavigator(), SLOT( selectNextMonth() ) ); 534 mMainView->dateNavigator(), SLOT( selectNextMonth() ) );
528 535
529 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 536 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
530 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) ); 537 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) );
531 538
532 539
533 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ), 540 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ),
534 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) ); 541 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) );
535 542
536 } 543 }
537 544
538 globalFlagBlockAgenda = 1; 545 globalFlagBlockAgenda = 1;
539 //mFlagShowNextxDays = false; 546 //mFlagShowNextxDays = false;
540 // if(mMonthView == mCurrentView) return; 547 // if(mMonthView == mCurrentView) return;
541 if ( KOPrefs::instance()->mMonthViewWeek ) 548 if ( KOPrefs::instance()->mMonthViewWeek )
542 mMainView->dateNavigator()->selectWeek(); 549 mMainView->dateNavigator()->selectWeek();
543 else 550 else
544 mMainView->dateNavigator()->selectMonth(); 551 mMainView->dateNavigator()->selectMonth();
545 552
546 showView(mMonthView, true ); 553 showView(mMonthView, true );
547 554
548} 555}
549 556
550void KOViewManager::showTodoView() 557void KOViewManager::showTodoView()
551{ 558{
552 //mFlagShowNextxDays = false; 559 //mFlagShowNextxDays = false;
553 if ( !mTodoView ) { 560 if ( !mTodoView ) {
554 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(), 561 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(),
555 "KOViewManager::TodoView" ); 562 "KOViewManager::TodoView" );
556 563
557 addView( mTodoView ); 564 addView( mTodoView );
558 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold ); 565 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold );
559 566
560 // SIGNALS/SLOTS FOR TODO VIEW 567 // SIGNALS/SLOTS FOR TODO VIEW
561 connect( mTodoView, SIGNAL( newTodoSignal() ), 568 connect( mTodoView, SIGNAL( newTodoSignal() ),
562 mMainView, SLOT( newTodo() ) ); 569 mMainView, SLOT( newTodo() ) );
563 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ), 570 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ),
564 mMainView, SLOT( newSubTodo( Todo *) ) ); 571 mMainView, SLOT( newSubTodo( Todo *) ) );
565 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ), 572 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ),
566 mMainView, SLOT( showTodo( Todo * ) ) ); 573 mMainView, SLOT( showTodo( Todo * ) ) );
567 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ), 574 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ),
568 mMainView, SLOT( editTodo( Todo * ) ) ); 575 mMainView, SLOT( editTodo( Todo * ) ) );
569 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ), 576 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ),
570 mMainView, SLOT( deleteTodo( Todo * ) ) ); 577 mMainView, SLOT( deleteTodo( Todo * ) ) );
571 connect( mTodoView, SIGNAL( purgeCompletedSignal() ), 578 connect( mTodoView, SIGNAL( purgeCompletedSignal() ),
572 mMainView, SLOT( purgeCompleted() ) ); 579 mMainView, SLOT( purgeCompleted() ) );
573 580
574 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ), 581 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ),
575 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 582 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
576 583
577 connect( mMainView, SIGNAL( configChanged() ), mTodoView, 584 connect( mMainView, SIGNAL( configChanged() ), mTodoView,
578 SLOT( updateConfig() ) ); 585 SLOT( updateConfig() ) );
579 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView, 586 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView,
580 SLOT( updateTodo( Todo *, int ) ) ); 587 SLOT( updateTodo( Todo *, int ) ) );
581 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), 588 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ),
582 mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); 589 mMainView, SIGNAL ( todoModified( Todo *, int ) ) );
583 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), 590 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ),
584 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 591 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
585 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), 592 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ),
586 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 593 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
587 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), 594 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ),
588 mMainView, SLOT ( todo_unsub( Todo * ) ) ); 595 mMainView, SLOT ( todo_unsub( Todo * ) ) );
589 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 596 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
590 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); 597 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) );
591 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), 598 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ),
592 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 599 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
593 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), 600 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ),
594 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 601 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
595 KConfig *config = KOGlobals::config(); 602 KConfig *config = KOGlobals::config();
596 mTodoView->restoreLayout(config,"Todo View"); 603 mTodoView->restoreLayout(config,"Todo View");
597 mTodoView->setNavigator( mMainView->dateNavigator() ); 604 mTodoView->setNavigator( mMainView->dateNavigator() );
598 } 605 }
599 606
600 globalFlagBlockAgenda = 1; 607 globalFlagBlockAgenda = 1;
601 showView( mTodoView, true ); 608 showView( mTodoView, true );
602 609
603} 610}
604 611
605void KOViewManager::showJournalView() 612void KOViewManager::showJournalView()
606{ 613{
607 //mFlagShowNextxDays = false; 614 //mFlagShowNextxDays = false;
608 if (!mJournalView) { 615 if (!mJournalView) {
609 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), 616 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(),
610 "KOViewManager::JournalView"); 617 "KOViewManager::JournalView");
611 connect( mMainView, SIGNAL( configChanged() ), mJournalView, 618 connect( mMainView, SIGNAL( configChanged() ), mJournalView,
612 SLOT( updateConfig() ) ); 619 SLOT( updateConfig() ) );
613 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); 620 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) );
614 addView(mJournalView); 621 addView(mJournalView);
615 } 622 }
616 623
617 showView(mJournalView); 624 showView(mJournalView);
618 mMainView->dateNavigator()->selectDates( 1 ); 625 mMainView->dateNavigator()->selectDates( 1 );
619} 626}
620 627
621void KOViewManager::showTimeSpanView() 628void KOViewManager::showTimeSpanView()
622{ 629{
623 //mFlagShowNextxDays = false; 630 //mFlagShowNextxDays = false;
624 if (!mTimeSpanView) { 631 if (!mTimeSpanView) {
625 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(), 632 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(),
626 "KOViewManager::TimeSpanView"); 633 "KOViewManager::TimeSpanView");
627 addView(mTimeSpanView); 634 addView(mTimeSpanView);
628 635
629 mTimeSpanView->readSettings(); 636 mTimeSpanView->readSettings();
630 } 637 }
631 638
632 showView(mTimeSpanView); 639 showView(mTimeSpanView);
633} 640}
634 641
635Incidence *KOViewManager::currentSelection() 642Incidence *KOViewManager::currentSelection()
636{ 643{
637 if (!mCurrentView) return 0; 644 if (!mCurrentView) return 0;
638 if ( mCurrentView == mListView ) { 645 if ( mCurrentView == mListView ) {
639 if ( mListView->currentItem() ) 646 if ( mListView->currentItem() )
640 return mListView->currentItem(); 647 return mListView->currentItem();
641 } 648 }
642 return mCurrentView->selectedIncidences().first(); 649 return mCurrentView->selectedIncidences().first();
643} 650}
644 651
645QDate KOViewManager::currentSelectionDate() 652QDate KOViewManager::currentSelectionDate()
646{ 653{
647 QDate qd; 654 QDate qd;
648 if (mCurrentView) { 655 if (mCurrentView) {
649 DateList qvl = mCurrentView->selectedDates(); 656 DateList qvl = mCurrentView->selectedDates();
650 if (!qvl.isEmpty()) qd = qvl.first(); 657 if (!qvl.isEmpty()) qd = qvl.first();
651 } 658 }
652 return qd; 659 return qd;
653} 660}
654 661
655void KOViewManager::addView(KOrg::BaseView *view) 662void KOViewManager::addView(KOrg::BaseView *view)
656{ 663{
657#if QT_VERSION >= 0x030000 664#if QT_VERSION >= 0x030000
658 mMainView->viewStack()->addWidget( view ); 665 mMainView->viewStack()->addWidget( view );
659#else 666#else
660 mMainView->viewStack()->addWidget( view, 1 ); 667 mMainView->viewStack()->addWidget( view, 1 );
661#endif 668#endif
662} 669}
663 670
664void KOViewManager::setDocumentId( const QString &id ) 671void KOViewManager::setDocumentId( const QString &id )
665{ 672{
666 if (mTodoView) mTodoView->setDocumentId( id ); 673 if (mTodoView) mTodoView->setDocumentId( id );
667} 674}