summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-19 08:37:29 (UTC)
committer zautrix <zautrix>2005-06-19 08:37:29 (UTC)
commit862c536aec16f9ae02ae81b8487ec13edd014ccc (patch) (unidiff)
treecdef3fde19950299dc025cfa33c365fb9dada1d9
parent98f69fd81c23d99d9fe80326d4bc4d3af23e18ec (diff)
downloadkdepimpi-862c536aec16f9ae02ae81b8487ec13edd014ccc.zip
kdepimpi-862c536aec16f9ae02ae81b8487ec13edd014ccc.tar.gz
kdepimpi-862c536aec16f9ae02ae81b8487ec13edd014ccc.tar.bz2
fixx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp6
-rw-r--r--korganizer/kofilterview.cpp35
2 files changed, 25 insertions, 16 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 30efbf6..3468657 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -682,522 +682,524 @@ void KODayMatrix::updateEvents()
682} 682}
683 683
684const QDate& KODayMatrix::getDate(int offset) 684const QDate& KODayMatrix::getDate(int offset)
685{ 685{
686 if (offset < 0 || offset > NUMDAYS-1) { 686 if (offset < 0 || offset > NUMDAYS-1) {
687 qDebug("Wrong offset2 %d", offset); 687 qDebug("Wrong offset2 %d", offset);
688 return days[0]; 688 return days[0];
689 } 689 }
690 return days[offset]; 690 return days[offset];
691} 691}
692 692
693QString KODayMatrix::getHolidayLabel(int offset) 693QString KODayMatrix::getHolidayLabel(int offset)
694{ 694{
695 if (offset < 0 || offset > NUMDAYS-1) { 695 if (offset < 0 || offset > NUMDAYS-1) {
696 qDebug("Wrong offset1 %d", offset); 696 qDebug("Wrong offset1 %d", offset);
697 return QString(); 697 return QString();
698 } 698 }
699 return mHolidays[offset]; 699 return mHolidays[offset];
700} 700}
701 701
702int KODayMatrix::getDayIndexFrom(int x, int y) 702int KODayMatrix::getDayIndexFrom(int x, int y)
703{ 703{
704 int colModulo = (width()-2) % 7; 704 int colModulo = (width()-2) % 7;
705 int rowModulo = (height()-2) % 6; 705 int rowModulo = (height()-2) % 6;
706#if 0 706#if 0
707 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 707 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
708 6 - x/daysize.width() : x/daysize.width()); 708 6 - x/daysize.width() : x/daysize.width());
709#endif 709#endif
710 int xVal = (x-colModulo/2-2)/daysize.width(); 710 int xVal = (x-colModulo/2-2)/daysize.width();
711 int yVal = (y-rowModulo/2-2)/daysize.height(); 711 int yVal = (y-rowModulo/2-2)/daysize.height();
712 712
713 713
714 return 7*(yVal) + xVal; 714 return 7*(yVal) + xVal;
715 715
716} 716}
717 717
718// ---------------------------------------------------------------------------- 718// ----------------------------------------------------------------------------
719// M O U S E E V E N T H A N D L I N G 719// M O U S E E V E N T H A N D L I N G
720// ---------------------------------------------------------------------------- 720// ----------------------------------------------------------------------------
721 721
722void KODayMatrix::mousePressEvent (QMouseEvent* e) 722void KODayMatrix::mousePressEvent (QMouseEvent* e)
723{ 723{
724 724
725 if ( e->button() == LeftButton ) 725 if ( e->button() == LeftButton )
726 mouseDown = true; 726 mouseDown = true;
727 mSelStart = getDayIndexFrom(e->x(), e->y()); 727 mSelStart = getDayIndexFrom(e->x(), e->y());
728 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 728 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
729 mSelInit = mSelStart; 729 mSelInit = mSelStart;
730 mSelEnd = mSelStart; 730 mSelEnd = mSelStart;
731 mRedrawNeeded = true; 731 mRedrawNeeded = true;
732 repaint(false); 732 repaint(false);
733} 733}
734 734
735void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 735void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
736{ 736{
737 mRedrawNeeded = true; 737 mRedrawNeeded = true;
738 if ( e->button() == LeftButton ) 738 if ( e->button() == LeftButton )
739 if ( ! mouseDown ) { 739 if ( ! mouseDown ) {
740 return; 740 return;
741 } 741 }
742 else 742 else
743 mouseDown = false; 743 mouseDown = false;
744 int tmp = getDayIndexFrom(e->x(), e->y()); 744 int tmp = getDayIndexFrom(e->x(), e->y());
745 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 745 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
746 746
747 if (mSelInit > tmp) { 747 if (mSelInit > tmp) {
748 mSelEnd = mSelInit; 748 mSelEnd = mSelInit;
749 if (tmp != mSelStart) { 749 if (tmp != mSelStart) {
750 mSelStart = tmp; 750 mSelStart = tmp;
751 repaint(false); 751 repaint(false);
752 } 752 }
753 } else { 753 } else {
754 mSelStart = mSelInit; 754 mSelStart = mSelInit;
755 755
756 //repaint only if selection has changed 756 //repaint only if selection has changed
757 if (tmp != mSelEnd) { 757 if (tmp != mSelEnd) {
758 mSelEnd = tmp; 758 mSelEnd = tmp;
759 repaint(false); 759 repaint(false);
760 } 760 }
761 } 761 }
762 762
763 DateList daylist; 763 DateList daylist;
764 if ( mSelStart < 0 ) 764 if ( mSelStart < 0 )
765 mSelStart = 0; 765 mSelStart = 0;
766 for (int i = mSelStart; i <= mSelEnd; i++) { 766 for (int i = mSelStart; i <= mSelEnd; i++) {
767 daylist.append(days[i]); 767 daylist.append(days[i]);
768 } 768 }
769 emit selected((const DateList)daylist); 769 emit selected((const DateList)daylist);
770 770
771} 771}
772 772
773void KODayMatrix::mouseMoveEvent (QMouseEvent* e) 773void KODayMatrix::mouseMoveEvent (QMouseEvent* e)
774{ 774{
775 if ( ! mouseDown ) { 775 if ( ! mouseDown ) {
776 return; 776 return;
777 } 777 }
778 mRedrawNeeded = true; 778 mRedrawNeeded = true;
779 int tmp = getDayIndexFrom(e->x(), e->y()); 779 int tmp = getDayIndexFrom(e->x(), e->y());
780 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 780 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
781 781
782 if (mSelInit > tmp) { 782 if (mSelInit > tmp) {
783 mSelEnd = mSelInit; 783 mSelEnd = mSelInit;
784 if (tmp != mSelStart) { 784 if (tmp != mSelStart) {
785 mSelStart = tmp; 785 mSelStart = tmp;
786 repaint(false); 786 repaint(false);
787 } 787 }
788 } else { 788 } else {
789 mSelStart = mSelInit; 789 mSelStart = mSelInit;
790 790
791 //repaint only if selection has changed 791 //repaint only if selection has changed
792 if (tmp != mSelEnd) { 792 if (tmp != mSelEnd) {
793 mSelEnd = tmp; 793 mSelEnd = tmp;
794 repaint(false); 794 repaint(false);
795 } 795 }
796 } 796 }
797} 797}
798 798
799// ---------------------------------------------------------------------------- 799// ----------------------------------------------------------------------------
800// D R A G ' N D R O P H A N D L I N G 800// D R A G ' N D R O P H A N D L I N G
801// ---------------------------------------------------------------------------- 801// ----------------------------------------------------------------------------
802 802
803void KODayMatrix::dragEnterEvent(QDragEnterEvent *e) 803void KODayMatrix::dragEnterEvent(QDragEnterEvent *e)
804{ 804{
805#ifndef KORG_NODND 805#ifndef KORG_NODND
806 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 806 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
807 e->ignore(); 807 e->ignore();
808 return; 808 return;
809 } 809 }
810 810
811 // some visual feedback 811 // some visual feedback
812// oldPalette = palette(); 812// oldPalette = palette();
813// setPalette(my_HilitePalette); 813// setPalette(my_HilitePalette);
814// update(); 814// update();
815#endif 815#endif
816} 816}
817 817
818void KODayMatrix::dragMoveEvent(QDragMoveEvent *e) 818void KODayMatrix::dragMoveEvent(QDragMoveEvent *e)
819{ 819{
820#ifndef KORG_NODND 820#ifndef KORG_NODND
821 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 821 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
822 e->ignore(); 822 e->ignore();
823 return; 823 return;
824 } 824 }
825 825
826 e->accept(); 826 e->accept();
827#endif 827#endif
828} 828}
829 829
830void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/) 830void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/)
831{ 831{
832#ifndef KORG_NODND 832#ifndef KORG_NODND
833// setPalette(oldPalette); 833// setPalette(oldPalette);
834// update(); 834// update();
835#endif 835#endif
836} 836}
837 837
838void KODayMatrix::dropEvent(QDropEvent *e) 838void KODayMatrix::dropEvent(QDropEvent *e)
839{ 839{
840#ifndef KORG_NODND 840#ifndef KORG_NODND
841// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; 841// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl;
842 842
843 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 843 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
844 e->ignore(); 844 e->ignore();
845 return; 845 return;
846 } 846 }
847 847
848 DndFactory factory( mCalendar ); 848 DndFactory factory( mCalendar );
849 Event *event = factory.createDrop(e); 849 Event *event = factory.createDrop(e);
850 850
851 if (event) { 851 if (event) {
852 e->acceptAction(); 852 e->acceptAction();
853 853
854 Event *existingEvent = mCalendar->event(event->uid()); 854 Event *existingEvent = mCalendar->event(event->uid());
855 855
856 if(existingEvent) { 856 if(existingEvent) {
857 // uniquify event 857 // uniquify event
858 event->recreate(); 858 event->recreate();
859/* 859/*
860 KMessageBox::sorry(this, 860 KMessageBox::sorry(this,
861 i18n("Event already exists in this calendar."), 861 i18n("Event already exists in this calendar."),
862 i18n("Drop Event")); 862 i18n("Drop Event"));
863 delete event; 863 delete event;
864 return; 864 return;
865*/ 865*/
866 } 866 }
867// kdDebug() << "Drop new Event" << endl; 867// kdDebug() << "Drop new Event" << endl;
868 // Adjust date 868 // Adjust date
869 QDateTime start = event->dtStart(); 869 QDateTime start = event->dtStart();
870 QDateTime end = event->dtEnd(); 870 QDateTime end = event->dtEnd();
871 int duration = start.daysTo(end); 871 int duration = start.daysTo(end);
872 int idx = getDayIndexFrom(e->pos().x(), e->pos().y()); 872 int idx = getDayIndexFrom(e->pos().x(), e->pos().y());
873 873
874 start.setDate(days[idx]); 874 start.setDate(days[idx]);
875 end.setDate(days[idx].addDays(duration)); 875 end.setDate(days[idx].addDays(duration));
876 876
877 event->setDtStart(start); 877 event->setDtStart(start);
878 event->setDtEnd(end); 878 event->setDtEnd(end);
879 mCalendar->addEvent(event); 879 mCalendar->addEvent(event);
880 880
881 emit eventDropped(event); 881 emit eventDropped(event);
882 } else { 882 } else {
883// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl; 883// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl;
884 e->ignore(); 884 e->ignore();
885 } 885 }
886#endif 886#endif
887} 887}
888 888
889// ---------------------------------------------------------------------------- 889// ----------------------------------------------------------------------------
890// P A I N T E V E N T H A N D L I N G 890// P A I N T E V E N T H A N D L I N G
891// ---------------------------------------------------------------------------- 891// ----------------------------------------------------------------------------
892 892
893void KODayMatrix::paintEvent(QPaintEvent * pevent) 893void KODayMatrix::paintEvent(QPaintEvent * pevent)
894{ 894{
895 895
896 if ( width() <= 0 || height() <= 0 ) 896 if ( width() <= 0 || height() <= 0 )
897 return; 897 return;
898 if ( mPendingUpdateBeforeRepaint ) { 898 if ( mPendingUpdateBeforeRepaint ) {
899 updateViewTimed(); 899 updateViewTimed();
900 mPendingUpdateBeforeRepaint = false; 900 mPendingUpdateBeforeRepaint = false;
901 } 901 }
902#if 0 902#if 0
903 if ( myPix.width() != width() || myPix.height()!=height() ) { 903 if ( myPix.width() != width() || myPix.height()!=height() ) {
904 myPix.resize(size() ); 904 myPix.resize(size() );
905 mRedrawNeeded = true; 905 mRedrawNeeded = true;
906 } 906 }
907#endif 907#endif
908 if ( oldW != width() || oldH !=height() ) 908 if ( oldW != width() || oldH !=height() )
909 mRedrawNeeded = true; 909 mRedrawNeeded = true;
910 910
911 oldH = height() ; 911 oldH = height() ;
912 oldW = width(); 912 oldW = width();
913 if ( myPix.width() < width() || myPix.height() < height() ) { 913 if ( myPix.width() < width() || myPix.height() < height() ) {
914 myPix.resize(size() ); 914 myPix.resize(size() );
915 mRedrawNeeded = true; 915 mRedrawNeeded = true;
916 916
917 } 917 }
918 918
919 if ( mRedrawNeeded ) { 919 if ( mRedrawNeeded ) {
920 //qDebug("REDRAW "); 920 //qDebug("REDRAW ");
921 QPainter p(&myPix); 921 QPainter p(&myPix);
922 p.setFont(font()); 922 p.setFont(font());
923 923
924 924
925 int dheight = daysize.height(); 925 int dheight = daysize.height();
926 int dwidth = daysize.width(); 926 int dwidth = daysize.width();
927 int row,col; 927 int row,col;
928 int selw, selh; 928 int selw, selh;
929 int xyOff = frameWidth(); 929 int xyOff = frameWidth();
930 int colModulo = (width()-2) % 7; 930 int colModulo = (width()-2) % 7;
931 int rowModulo = (height()-2) % 6; 931 int rowModulo = (height()-2) % 6;
932 //qDebug("col %d row %d ",colModulo,rowModulo ); 932 //qDebug("col %d row %d ",colModulo,rowModulo );
933 933
934 bool isRTL = KOGlobals::self()->reverseLayout(); 934 bool isRTL = KOGlobals::self()->reverseLayout();
935 935
936 // draw background and topleft frame 936 // draw background and topleft frame
937 p.fillRect(0,0,width(),height(), mDefaultBackColor); 937 p.fillRect(0,0,width(),height(), mDefaultBackColor);
938 p.setPen(mDefaultTextColor); 938 //p.setPen(mDefaultTextColor);
939 p.drawRect(0, 0, width(), height()); 939 //p.drawRect(0, 0, width(), height());
940 int mSelStartT = mSelStart; 940 int mSelStartT = mSelStart;
941 int mSelEndT = mSelEnd; 941 int mSelEndT = mSelEnd;
942 if ( mSelEndT >= NUMDAYS ) 942 if ( mSelEndT >= NUMDAYS )
943 mSelEndT = NUMDAYS-1; 943 mSelEndT = NUMDAYS-1;
944 // draw selected days with highlighted background color 944 // draw selected days with highlighted background color
945 if (mSelStart != NOSELECTION) { 945 if (mSelStart != NOSELECTION) {
946 bool skip = false; 946 bool skip = false;
947 if ( ! mouseDown ) { 947 if ( ! mouseDown ) {
948 int mo = days[20].month(); 948 int mo = days[20].month();
949 //qDebug("-- %d %d ", mSelStartT, mSelEndT); 949 //qDebug("-- %d %d ", mSelStartT, mSelEndT);
950 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); 950 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
951 int startMo = days[mSelStartT].month(); 951 int startMo = days[mSelStartT].month();
952 int endMo = days[mSelEndT].month(); 952 int endMo = days[mSelEndT].month();
953 if ( startMo == 12 && mo == 1 && endMo <= 2 ) 953 if ( startMo == 12 && mo == 1 && endMo <= 2 )
954 startMo = 1; 954 startMo = 1;
955 if ( endMo == 1 && mo == 12 ) 955 if ( endMo == 1 && mo == 12 )
956 endMo = 12; 956 endMo = 12;
957 if ( mo == 12 && startMo == 1 ) 957 if ( mo == 12 && startMo == 1 )
958 startMo = 13; 958 startMo = 13;
959 if ( (startMo > mo || endMo < mo) ) { 959 if ( (startMo > mo || endMo < mo) ) {
960 skip = true; 960 skip = true;
961 } else { 961 } else {
962 if ( days[mSelStartT].month() != mo ) { 962 if ( days[mSelStartT].month() != mo ) {
963 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); 963 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day();
964 mSelStartT += add +1; 964 mSelStartT += add +1;
965 } 965 }
966 if ( days[mSelEndT].month() != mo ) { 966 if ( days[mSelEndT].month() != mo ) {
967 int sub = days[mSelEndT].day(); 967 int sub = days[mSelEndT].day();
968 mSelEndT -= sub ; 968 mSelEndT -= sub ;
969 } 969 }
970 } 970 }
971 } 971 }
972 //qDebug("SKIP %d ", skip); 972 //qDebug("SKIP %d ", skip);
973 if ( ! skip ) { 973 if ( ! skip ) {
974 row = mSelStartT/7; 974 row = mSelStartT/7;
975 col = mSelStartT -row*7; 975 col = mSelStartT -row*7;
976 QColor selcol = KOPrefs::instance()->mHighlightColor; 976 QColor selcol = KOPrefs::instance()->mHighlightColor;
977 int addCol = 0; 977 int addCol = 0;
978 int addRow = 0; 978 int addRow = 0;
979 int addRow2 = 0; 979 int addRow2 = 0;
980 int addCol2 = 0; 980 int addCol2 = 0;
981 if (row == mSelEndT/7) { 981 if (row == mSelEndT/7) {
982 if ( rowModulo ) { 982 if ( rowModulo ) {
983 if ( row >= 6 - rowModulo ) 983 if ( row >= 6 - rowModulo )
984 addRow = row - 5 + rowModulo; 984 addRow = row - 5 + rowModulo;
985 } 985 }
986 if ( colModulo ) { 986 if ( colModulo ) {
987 int colt1 = mSelEndT%7; 987 int colt1 = mSelEndT%7;
988 //qDebug("colt1 %d ", colt1 ); 988 //qDebug("colt1 %d ", colt1 );
989 if ( colt1 >= 7 - colModulo ) 989 if ( colt1 >= 7 - colModulo )
990 addCol = colt1 - 7 + colModulo+1; 990 addCol = colt1 - 7 + colModulo+1;
991 int colt = mSelStartT%7; 991 int colt = mSelStartT%7;
992 if ( colt >= 7 - colModulo ) 992 if ( colt >= 7 - colModulo )
993 addCol2 = colt - 7 + colModulo; 993 addCol2 = colt - 7 + colModulo;
994 addCol -= addCol2; 994 addCol -= addCol2;
995 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 ); 995 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 );
996 } 996 }
997 // Single row selection 997 // Single row selection
998 //if ( row == 0) 998 //if ( row == 0)
999 // addRow = 1; 999 // addRow = 1;
1000 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2, 1000 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
1001 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol); 1001 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
1002 } else { 1002 } else {
1003 // draw first row to the right 1003 // draw first row to the right
1004 if ( colModulo ) { 1004 if ( colModulo ) {
1005 if ( col >= 7 - colModulo ) 1005 if ( col >= 7 - colModulo )
1006 addCol2 = col - 7 + colModulo; 1006 addCol2 = col - 7 + colModulo;
1007 } 1007 }
1008 if ( rowModulo ) { 1008 if ( rowModulo ) {
1009 if ( row >= 6 - rowModulo ) 1009 if ( row >= 6 - rowModulo )
1010 addRow = row - 5 + rowModulo; 1010 addRow = row - 5 + rowModulo;
1011 } 1011 }
1012 //if ( row == 0) 1012 //if ( row == 0)
1013 // addRow = 1; 1013 // addRow = 1;
1014 int drawWid = width()-(col*dwidth+1+addCol2)-1; 1014 int drawWid = width()-(col*dwidth+1+addCol2)-1;
1015 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid, 1015 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid,
1016 dheight+1, selcol); 1016 dheight+1, selcol);
1017 // draw full block till last line 1017 // draw full block till last line
1018 selh = mSelEndT/7-row; 1018 selh = mSelEndT/7-row;
1019 addRow = 0; 1019 addRow = 0;
1020 if ( rowModulo ) { 1020 if ( rowModulo ) {
1021 if ( mSelEndT/7 >= 6 - rowModulo ) 1021 if ( mSelEndT/7 >= 6 - rowModulo )
1022 addRow = mSelEndT/7 - 5 + rowModulo; 1022 addRow = mSelEndT/7 - 5 + rowModulo;
1023 } 1023 }
1024 //qDebug("%d %d %d ",selh, row, addRow ); 1024 //qDebug("%d %d %d ",selh, row, addRow );
1025 int addrow2 = addRow-selh+1; 1025 int addrow2 = addRow-selh+1;
1026 if ( addrow2 < 0 ) 1026 if ( addrow2 < 0 )
1027 addrow2 = 0; 1027 addrow2 = 0;
1028 if (selh > 1) { 1028 if (selh > 1) {
1029 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol); 1029 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol);
1030 } 1030 }
1031 // draw last block from left to mSelEndT 1031 // draw last block from left to mSelEndT
1032 selw = mSelEndT-7*(mSelEndT/7)+1; 1032 selw = mSelEndT-7*(mSelEndT/7)+1;
1033 //qDebug("esl %d ",selw ); 1033 //qDebug("esl %d ",selw );
1034 int add = 0; 1034 int add = 0;
1035 if ( colModulo ) { 1035 if ( colModulo ) {
1036 add = 7 - colModulo; 1036 add = 7 - colModulo;
1037 if ( selw > add ) 1037 if ( selw > add )
1038 add = selw - add; 1038 add = selw - add;
1039 else 1039 else
1040 add = 0; 1040 add = 0;
1041 } 1041 }
1042 //qDebug("add %d ", add); 1042 //qDebug("add %d ", add);
1043 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow, 1043 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow,
1044 selw*dwidth+add, dheight+1, selcol); 1044 selw*dwidth+add, dheight+1, selcol);
1045 } 1045 }
1046 } 1046 }
1047 } 1047 }
1048 1048
1049 // iterate over all days in the matrix and draw the day label in appropriate colors 1049 // iterate over all days in the matrix and draw the day label in appropriate colors
1050 QColor actcol = mDefaultTextColorShaded; 1050 QColor actcol = mDefaultTextColorShaded;
1051 p.setPen(actcol); 1051 p.setPen(actcol);
1052 QPen tmppen; 1052 QPen tmppen;
1053 for(int i = 0; i < NUMDAYS; i++) { 1053 for(int i = 0; i < NUMDAYS; i++) {
1054 row = i/7; 1054 row = i/7;
1055 col = isRTL ? 6-(i-row*7) : i-row*7; 1055 col = isRTL ? 6-(i-row*7) : i-row*7;
1056 1056
1057 // if it is the first day of a month switch color from normal to shaded and vice versa 1057 // if it is the first day of a month switch color from normal to shaded and vice versa
1058 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) { 1058 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) {
1059 if (actcol == mDefaultTextColorShaded) { 1059 if (actcol == mDefaultTextColorShaded) {
1060 actcol = mDefaultTextColor; 1060 actcol = mDefaultTextColor;
1061 } else { 1061 } else {
1062 actcol = mDefaultTextColorShaded; 1062 actcol = mDefaultTextColorShaded;
1063 } 1063 }
1064 p.setPen(actcol); 1064 p.setPen(actcol);
1065 } 1065 }
1066 if (actcol == mDefaultTextColorShaded) { 1066 if (actcol == mDefaultTextColorShaded) {
1067 if ( ! mouseDown ) { 1067 if ( ! mouseDown ) {
1068 continue; 1068 continue;
1069 } 1069 }
1070 } 1070 }
1071 //Reset pen color after selected days block 1071 //Reset pen color after selected days block
1072 if (i == mSelEndT+1) { 1072 if (i == mSelEndT+1) {
1073 p.setPen(actcol); 1073 p.setPen(actcol);
1074 } 1074 }
1075 1075
1076 // if today then draw rectangle around day 1076 // if today then draw rectangle around day
1077 if (today == i) { 1077 if (today == i) {
1078 tmppen = p.pen(); 1078 tmppen = p.pen();
1079 QPen mTodayPen(p.pen()); 1079 QPen mTodayPen(p.pen());
1080 if ( daysize.width() < 20 ) 1080 if ( daysize.width() < 20 )
1081 mTodayPen.setWidth(1); 1081 mTodayPen.setWidth(1);
1082 else 1082 else
1083 mTodayPen.setWidth(mTodayMarginWidth); 1083 mTodayPen.setWidth(mTodayMarginWidth);
1084 //draw red rectangle for holidays 1084 //draw red rectangle for holidays
1085 if (pDays.testBit(i)) { 1085 if (pDays.testBit(i)) {
1086 if (actcol == mDefaultTextColor) { 1086 if (actcol == mDefaultTextColor) {
1087 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor); 1087 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor);
1088 } else { 1088 } else {
1089 mTodayPen.setColor(mHolidayColorShaded); 1089 mTodayPen.setColor(mHolidayColorShaded);
1090 } 1090 }
1091 } 1091 }
1092 //draw gray rectangle for today if in selection 1092 //draw gray rectangle for today if in selection
1093 if (i >= mSelStartT && i <= mSelEndT) { 1093 if (i >= mSelStartT && i <= mSelEndT) {
1094 QColor grey("grey"); 1094 QColor grey("grey");
1095 mTodayPen.setColor(grey); 1095 mTodayPen.setColor(grey);
1096 } 1096 }
1097 p.setPen(mTodayPen); 1097 p.setPen(mTodayPen);
1098 1098
1099 1099
1100 int addCol = 0; 1100 int addCol = 0;
1101 int addRow = 0; 1101 int addRow = 0;
1102 if (rowModulo) { 1102 if (rowModulo) {
1103 if ( row >= 6 - rowModulo ) 1103 if ( row >= 6 - rowModulo )
1104 addRow = row - 5 + rowModulo; 1104 addRow = row - 5 + rowModulo;
1105 } 1105 }
1106 if ( colModulo ) { 1106 if ( colModulo ) {
1107 if ( col >= 7 - colModulo ) 1107 if ( col >= 7 - colModulo )
1108 addCol = col - 6 + colModulo-1; 1108 addCol = col - 6 + colModulo-1;
1109 } 1109 }
1110 1110
1111 addCol += 1; 1111 addCol += 1;
1112 if ( row == 0 ) 1112 if ( row == 0 )
1113 addRow = 1; 1113 addRow = 1;
1114 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1); 1114 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1);
1115 p.setPen(tmppen); 1115 p.setPen(tmppen);
1116 } 1116 }
1117 1117
1118 // if any events are on that day then draw it using a bold font 1118 // if any events are on that day then draw it using a bold font
1119 if ( eDays.testBit(i) ) { 1119 if ( eDays.testBit(i) ) {
1120 QFont myFont = font(); 1120 QFont myFont = font();
1121 myFont.setBold(true); 1121 myFont.setBold(true);
1122 p.setFont(myFont); 1122 p.setFont(myFont);
1123 } 1123 }
1124 1124
1125 // if it is a holiday then use the default holiday color 1125 // if it is a holiday then use the default holiday color
1126 if ( pDays.testBit(i)) { 1126 if ( pDays.testBit(i)) {
1127 if ( bDays.testBit(i) ) { 1127 if ( bDays.testBit(i) ) {
1128 if ( hDays.testBit(i) ) 1128 if ( hDays.testBit(i) )
1129 p.setPen(QColor(0,200,0)); 1129 p.setPen(QColor(0,200,0));
1130 else 1130 else
1131 p.setPen(QColor(Qt::blue)); 1131 p.setPen(QColor(Qt::blue));
1132 } else { 1132 } else {
1133 if (actcol == mDefaultTextColor ) { 1133 if (actcol == mDefaultTextColor ) {
1134 p.setPen(KOPrefs::instance()->mHolidayColor); 1134 p.setPen(KOPrefs::instance()->mHolidayColor);
1135 } else { 1135 } else {
1136 p.setPen(mHolidayColorShaded); 1136 p.setPen(mHolidayColorShaded);
1137 } 1137 }
1138 } 1138 }
1139 } 1139 }
1140 1140
1141 // draw selected days with special color 1141 // draw selected days with special color
1142 // DO NOT specially highlight holidays in selection ! 1142 // DO NOT specially highlight holidays in selection !
1143 if (i >= mSelStartT && i <= mSelEndT) { 1143 if (i >= mSelStartT && i <= mSelEndT) {
1144 ;//p.setPen(mSelectedDaysColor); 1144 ;//p.setPen(mSelectedDaysColor);
1145 } 1145 }
1146 1146
1147 int addCol = 0; 1147 int addCol = 0;
1148 int addRow = 0; 1148 int addRow = 0;
1149 if ( colModulo ) { 1149 if ( colModulo ) {
1150 if ( col >= 7 - colModulo ) 1150 if ( col >= 7 - colModulo )
1151 addCol = col - 7 + colModulo; 1151 addCol = col - 7 + colModulo;
1152 } 1152 }
1153 if ( rowModulo ) { 1153 if ( rowModulo ) {
1154 if ( row >= 6 - rowModulo ) 1154 if ( row >= 6 - rowModulo )
1155 addRow = row - 5 + rowModulo; 1155 addRow = row - 5 + rowModulo;
1156 } 1156 }
1157 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow); 1157 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
1158 ++addCol;//++addCol; 1158 ++addCol;//++addCol;
1159 if ( row == 0) 1159 if ( row == 0)
1160 addRow = 1; 1160 addRow = 1;
1161 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight, 1161 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
1162 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 1162 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
1163 1163
1164 // reset color to actual color 1164 // reset color to actual color
1165 if (pDays.testBit(i)) { 1165 if (pDays.testBit(i)) {
1166 p.setPen(actcol); 1166 p.setPen(actcol);
1167 } 1167 }
1168 // reset bold font to plain font 1168 // reset bold font to plain font
1169 if ( eDays.testBit(i)) { 1169 if ( eDays.testBit(i)) {
1170 QFont myFont = font(); 1170 QFont myFont = font();
1171 myFont.setBold(false); 1171 myFont.setBold(false);
1172 p.setFont(myFont); 1172 p.setFont(myFont);
1173 } 1173 }
1174 } 1174 }
1175 p.setPen(mDefaultTextColor);
1176 p.drawRect(0, 0, width(), height());
1175 } else { 1177 } else {
1176 //qDebug("NO redraw "); 1178 //qDebug("NO redraw ");
1177 } 1179 }
1178 1180
1179 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP); 1181 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP);
1180 mRedrawNeeded = false; 1182 mRedrawNeeded = false;
1181} 1183}
1182 1184
1183// ---------------------------------------------------------------------------- 1185// ----------------------------------------------------------------------------
1184// R E SI Z E E V E N T H A N D L I N G 1186// R E SI Z E E V E N T H A N D L I N G
1185// ---------------------------------------------------------------------------- 1187// ----------------------------------------------------------------------------
1186 1188
1187void KODayMatrix::resizeEvent(QResizeEvent *) 1189void KODayMatrix::resizeEvent(QResizeEvent *)
1188{ 1190{
1189 QRect sz = frameRect(); 1191 QRect sz = frameRect();
1190 daysize.setHeight(sz.height()*7 / NUMDAYS); 1192 daysize.setHeight(sz.height()*7 / NUMDAYS);
1191 daysize.setWidth(sz.width() / 7); 1193 daysize.setWidth(sz.width() / 7);
1192} 1194}
1193 1195
1194QSize KODayMatrix::sizeHint() const 1196QSize KODayMatrix::sizeHint() const
1195{ 1197{
1196 1198
1197 QFontMetrics fm ( font() ); 1199 QFontMetrics fm ( font() );
1198 int wid = fm.width( "30") *7+3; 1200 int wid = fm.width( "30") *7+3;
1199 int hei = fm.height() * 6+3; 1201 int hei = fm.height() * 6+3;
1200 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 1202 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
1201 return QSize ( wid, hei ); 1203 return QSize ( wid, hei );
1202 1204
1203} 1205}
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp
index bb88386..ea53043 100644
--- a/korganizer/kofilterview.cpp
+++ b/korganizer/kofilterview.cpp
@@ -1,424 +1,431 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 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 23
24#include <qcheckbox.h> 24#include <qcheckbox.h>
25#include <qcombobox.h> 25#include <qcombobox.h>
26#include <qpushbutton.h> 26#include <qpushbutton.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qlabel.h> 28#include <qlabel.h>
29#include <qdialog.h> 29#include <qdialog.h>
30#include <qtextstream.h> 30#include <qtextstream.h>
31#include <qtextcodec.h> 31#include <qtextcodec.h>
32 32
33 33
34#include <libkcal/calfilter.h> 34#include <libkcal/calfilter.h>
35 35
36#include "kofilterview.h" 36#include "kofilterview.h"
37#include "koprefs.h" 37#include "koprefs.h"
38#include <kiconloader.h> 38#include <kiconloader.h>
39#include <kglobal.h> 39#include <kglobal.h>
40#include <kcolorbutton.h> 40#include <kcolorbutton.h>
41#include <kmessagebox.h> 41#include <kmessagebox.h>
42 42
43 43
44 44
45 45
46 46
47KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent, 47KOFilterView::KOFilterView(QPtrList<CalFilter> *filterList,QWidget* parent,
48 const char* name,WFlags fl ) 48 const char* name,WFlags fl )
49 : KOFilterView_base(parent,name,fl) 49 : KOFilterView_base(parent,name,fl)
50{ 50{
51 mFilters = filterList; 51 mFilters = filterList;
52 52
53 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged())); 53 connect(mSelectionCombo,SIGNAL(activated(int)),SIGNAL(filterChanged()));
54 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged())); 54 connect(mEnabledCheck,SIGNAL(clicked()),SIGNAL(filterChanged()));
55 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters())); 55 connect(mEditButton,SIGNAL(clicked()),SIGNAL(editFilters()));
56} 56}
57 57
58KOFilterView::~KOFilterView() 58KOFilterView::~KOFilterView()
59{ 59{
60 // no need to delete child widgets, Qt does it all for us 60 // no need to delete child widgets, Qt does it all for us
61} 61}
62 62
63bool KOFilterView::filtersEnabled() 63bool KOFilterView::filtersEnabled()
64{ 64{
65 return mEnabledCheck->isChecked(); 65 return mEnabledCheck->isChecked();
66} 66}
67 67
68void KOFilterView::setFiltersEnabled(bool set) 68void KOFilterView::setFiltersEnabled(bool set)
69{ 69{
70 mEnabledCheck->setChecked(set); 70 mEnabledCheck->setChecked(set);
71 emit filterChanged(); 71 emit filterChanged();
72} 72}
73 73
74 74
75void KOFilterView::updateFilters() 75void KOFilterView::updateFilters()
76{ 76{
77 mSelectionCombo->clear(); 77 mSelectionCombo->clear();
78 78
79 CalFilter *filter = mFilters->first(); 79 CalFilter *filter = mFilters->first();
80 while(filter) { 80 while(filter) {
81 mSelectionCombo->insertItem(filter->name()); 81 mSelectionCombo->insertItem(filter->name());
82 filter = mFilters->next(); 82 filter = mFilters->next();
83 } 83 }
84} 84}
85 85
86CalFilter *KOFilterView::selectedFilter() 86CalFilter *KOFilterView::selectedFilter()
87{ 87{
88 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 88 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
89 return f; 89 return f;
90} 90}
91 91
92void KOFilterView::setSelectedFilter(QString filterName) 92void KOFilterView::setSelectedFilter(QString filterName)
93{ 93{
94 int filter_num = mSelectionCombo->count(); 94 int filter_num = mSelectionCombo->count();
95 int i; 95 int i;
96 for (i=0;i<filter_num;i++) { 96 for (i=0;i<filter_num;i++) {
97 if (mSelectionCombo->text(i)==filterName) 97 if (mSelectionCombo->text(i)==filterName)
98 mSelectionCombo->setCurrentItem(i); 98 mSelectionCombo->setCurrentItem(i);
99 } 99 }
100 emit filterChanged(); 100 emit filterChanged();
101} 101}
102void KOFilterView::setSelectedFilter( int fil ) 102void KOFilterView::setSelectedFilter( int fil )
103{ 103{
104 if ( fil >= mSelectionCombo->count() ) 104 if ( fil >= mSelectionCombo->count() )
105 return; 105 return;
106 mSelectionCombo->setCurrentItem( fil ); 106 mSelectionCombo->setCurrentItem( fil );
107 emit filterChanged(); 107 emit filterChanged();
108} 108}
109 109
110 110
111 111
112KOCalEditView::KOCalEditView(QWidget* parent, 112KOCalEditView::KOCalEditView(QWidget* parent,
113 const char* name ) 113 const char* name )
114 : QScrollView(parent,name) 114 : QScrollView(parent,name)
115{ 115{
116 mw = 0; 116 mw = 0;
117 setResizePolicy( AutoOneFit ); 117 setResizePolicy( AutoOneFit );
118 setFrameStyle ( QFrame::Panel | QFrame::Plain ); 118 setFrameStyle ( QFrame::Panel | QFrame::Plain );
119 setLineWidth ( 1 ); 119 setLineWidth ( 1 );
120 setMidLineWidth ( 1 ); 120 setMidLineWidth ( 1 );
121 setFocusPolicy(NoFocus); 121 setFocusPolicy(NoFocus);
122} 122}
123 123
124KOCalEditView::~KOCalEditView() 124KOCalEditView::~KOCalEditView()
125{ 125{
126 // no need to delete child widgets, Qt does it all for us 126 // no need to delete child widgets, Qt does it all for us
127} 127}
128void KOCalEditView::selectCal(int id ,bool b) 128void KOCalEditView::selectCal(int id ,bool b)
129{ 129{
130 KOPrefs::instance()->getCalendar( id )->isEnabled = b; 130 KOPrefs::instance()->getCalendar( id )->isEnabled = b;
131 emit calendarEnabled ( id, b ); 131 emit calendarEnabled ( id, b );
132 emit needsUpdate(); 132 emit needsUpdate();
133 133
134} 134}
135void KOCalEditView::selectStdCal( int id, bool b ) 135void KOCalEditView::selectStdCal( int id, bool b )
136{ 136{
137 137
138 if ( !b ) { 138 if ( !b ) {
139 KOCalCheckButton* it = (KOCalCheckButton*) sender(); 139 KOCalCheckButton* it = (KOCalCheckButton*) sender();
140 if ( it ) { 140 if ( it ) {
141 it->blockSignals( true ); 141 it->blockSignals( true );
142 it->setChecked( true ); 142 it->setChecked( true );
143 it->blockSignals( false ); 143 it->blockSignals( false );
144 return; 144 return;
145 } 145 }
146 return; 146 return;
147 } 147 }
148 KOCalCheckButton* sen = (KOCalCheckButton*) sender(); 148 KOCalCheckButton* sen = (KOCalCheckButton*) sender();
149 KOCalCheckButton* it = mStdandardB.first(); 149 KOCalCheckButton* it = mStdandardB.first();
150 while ( it ) { 150 while ( it ) {
151 if ( it->isChecked() ) { 151 if ( it->isChecked() ) {
152 if ( it != sen ) { 152 if ( it != sen ) {
153 it->blockSignals( true ); 153 it->blockSignals( true );
154 it->setChecked( false ); 154 it->setChecked( false );
155 it->blockSignals( false ); 155 it->blockSignals( false );
156 break; 156 break;
157 } 157 }
158 } 158 }
159 it = mStdandardB.next(); 159 it = mStdandardB.next();
160 } 160 }
161 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 161 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
162 while ( kkf ) { 162 while ( kkf ) {
163 kkf->isStandard = false; 163 kkf->isStandard = false;
164 kkf = KOPrefs::instance()->mCalendars.next(); 164 kkf = KOPrefs::instance()->mCalendars.next();
165 } 165 }
166 KOPrefs::instance()->getCalendar( id )->isStandard = true; 166 KOPrefs::instance()->getCalendar( id )->isStandard = true;
167 emit setCalendarDefault ( id ); 167 emit setCalendarDefault ( id );
168} 168}
169 169
170void KOCalEditView::selectCalAlarm(int id ,bool b ) 170void KOCalEditView::selectCalAlarm(int id ,bool b )
171{ 171{
172 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b; 172 KOPrefs::instance()->getCalendar( id )->isAlarmEnabled = b;
173 emit alarmEnabled ( id , b ); 173 emit alarmEnabled ( id , b );
174 emit needsUpdate(); 174 emit needsUpdate();
175} 175}
176void KOCalEditView::selectReadOnly(int id ,bool b ) 176void KOCalEditView::selectReadOnly(int id ,bool b )
177{ 177{
178 KOPrefs::instance()->getCalendar( id )->isReadOnly = b; 178 KOPrefs::instance()->getCalendar( id )->isReadOnly = b;
179 emit calendarReadonly ( id , b ); 179 emit calendarReadonly ( id , b );
180 if ( KOPrefs::instance()->getCalendar( id )->isStandard && b && id > 1 ) { 180 if ( KOPrefs::instance()->getCalendar( id )->isStandard && b && id > 1 ) {
181 KOPrefs::instance()->getCalendar( id )->isStandard = false; 181 KOPrefs::instance()->getCalendar( id )->isStandard = false;
182 KOPrefs::instance()->getCalendar( 1 )->isStandard = true; 182 KOPrefs::instance()->getCalendar( 1 )->isStandard = true;
183 emit setCalendarDefault ( 1 ); 183 emit setCalendarDefault ( 1 );
184 } 184 }
185 emit needsUpdate(); 185 emit needsUpdate();
186 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 186 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
187 187
188} 188}
189void KOCalEditView::setColor( const QColor& c, int id ) 189void KOCalEditView::setColor( const QColor& c, int id )
190{ 190{
191 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c; 191 KOPrefs::instance()->getCalendar( id )->mDefaultColor = c;
192 emit needsUpdate(); 192 emit needsUpdate();
193} 193}
194void KOCalEditView::deleteCal( int id ) 194void KOCalEditView::deleteCal( int id )
195{ 195{
196 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id ); 196 KopiCalendarFile * kkf = KOPrefs::instance()->getCalendar( id );
197 QString name = kkf->mName; 197 QString name = kkf->mName;
198 QString file = KGlobal::formatMessage ( kkf->mFileName ,0 ); 198 QString file = KGlobal::formatMessage ( kkf->mFileName ,0 );
199 if ( KMessageBox::warningContinueCancel( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>. Do you want to remove this calendar from KO/Pi? (The file is not removed!)").arg(name).arg(file) ) != KMessageBox::Continue ) return; 199 if ( KMessageBox::warningContinueCancel( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>. Do you want to remove this calendar from KO/Pi? (The file is not removed!)").arg(name).arg(file) ) != KMessageBox::Continue ) return;
200 if ( kkf->isStandard ) 200 if ( kkf->isStandard )
201 selectStdCal( 1, true ); 201 selectStdCal( 1, true );
202 emit removeCalendar ( id ); 202 emit removeCalendar ( id );
203 KOPrefs::instance()->mCalendars.remove ( kkf ); 203 KOPrefs::instance()->mCalendars.remove ( kkf );
204 emit needsUpdate(); 204 emit needsUpdate();
205 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 205 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
206} 206}
207void KOCalEditView::infoCal( int id ) 207void KOCalEditView::infoCal( int id )
208{ 208{
209 QString name = KOPrefs::instance()->getCalendar( id )->mName; 209 QString name = KOPrefs::instance()->getCalendar( id )->mName;
210 QString file = KGlobal::formatMessage ( KOPrefs::instance()->getCalendar( id )->mFileName, 0 ); 210 QString file = KGlobal::formatMessage ( KOPrefs::instance()->getCalendar( id )->mFileName, 0 );
211 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) { 211 if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) {
212 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) { 212 if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar <b>%1</b> is not loaded! Loading of file <b>%2</b> failed! <b>Try again to load the calendar?</b>").arg(name).arg(file) ) ) {
213 emit calendarAdded( id ); 213 emit calendarAdded( id );
214 emit needsUpdate(); 214 emit needsUpdate();
215 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 215 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
216 } 216 }
217 } 217 }
218 else 218 else
219 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) ); 219 KMessageBox::information( this, i18n("The calendar <b>%1</b> is displaying file <b>%2</b>").arg(name).arg(file) );
220} 220}
221void KOCalEditView::readConfig() 221void KOCalEditView::readConfig()
222{ 222{
223 223
224 mStdandardB.clear(); 224 mStdandardB.clear();
225 mEnabledB.clear(); 225 mEnabledB.clear();
226 mAlarmB.clear(); 226 mAlarmB.clear();
227 mROB.clear(); 227 mROB.clear();
228 228
229 if ( mw ) delete mw; 229 if ( mw ) delete mw;
230 mw = new QWidget ( viewport() ); 230 mw = new QWidget ( viewport() );
231 addChild(mw); 231 addChild(mw);
232 232 int ii = 0;
233 mainLayout = new QGridLayout ( mw , 2, 8 ); 233 mainLayout = new QGridLayout ( mw , 2, 8 );
234 mainLayout->setMargin( 3); 234 mainLayout->setMargin( 2 );
235 mainLayout->setSpacing( 2); 235 mainLayout->setSpacing( 2 );
236 QPushButton * addBut = new QPushButton ( mw ); 236 QPushButton * addBut = new QPushButton ( mw );
237 addBut->setFocusPolicy(NoFocus); 237 addBut->setFocusPolicy(NoFocus);
238 mainLayout->addWidget( addBut,0,0 ); 238 mainLayout->addWidget( addBut,0,0 );
239 addBut->setPixmap ( SmallIcon("plus")); 239 addBut->setPixmap ( SmallIcon("plus"));
240 connect(addBut,SIGNAL(clicked()),SLOT(addCal())); 240 connect(addBut,SIGNAL(clicked()),SLOT(addCal()));
241 addBut->setMaximumWidth( addBut->sizeHint().height() ); 241 addBut->setMaximumWidth( addBut->sizeHint().height() );
242 242 int max = addBut->sizeHint().height();
243 addBut = new QPushButton ( mw ); 243 addBut = new QPushButton ( mw );
244 addBut->setFocusPolicy(NoFocus); 244 addBut->setFocusPolicy(NoFocus);
245 mainLayout->addWidget( addBut,0,1 ); 245 mainLayout->addWidget( addBut,0,++ii );
246 addBut->setPixmap ( SmallIcon("eye")); 246 addBut->setPixmap ( SmallIcon("eye"));
247 connect(addBut,SIGNAL(clicked()),SLOT(enableAll())); 247 connect(addBut,SIGNAL(clicked()),SLOT(enableAll()));
248 addBut->setMaximumWidth( addBut->sizeHint().height() ); 248 addBut->setMaximumWidth( addBut->sizeHint().height() );
249 249
250 QLabel* lab = new QLabel (i18n(" Calendar \n Resource "), mw ); 250 QLabel* lab = new QLabel (i18n(" Calendar \n Resource "), mw );
251 mainLayout->addWidget( lab,0,2 ); 251 mainLayout->addWidget( lab,0,++ii );
252 lab = new QLabel ( i18n(" "), mw ); 252 //lab = new QLabel ( i18n(" "), mw );
253 mainLayout->addWidget( lab,0,3 ); 253 //mainLayout->addWidget( lab,0,++ii );
254 lab->setFixedWidth( 6 ); 254 //lab->setFixedWidth( 1 );
255 addBut = new QPushButton ( mw ); 255 addBut = new QPushButton ( mw );
256 addBut->setFocusPolicy(NoFocus); 256 addBut->setFocusPolicy(NoFocus);
257 mainLayout->addWidget( addBut,0,4 ); 257 mainLayout->addWidget( addBut,0,++ii );
258 addBut->setPixmap ( SmallIcon("bell")); 258 addBut->setPixmap ( SmallIcon("bell"));
259 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm())); 259 connect(addBut,SIGNAL(clicked()),SLOT(enableAlarm()));
260 addBut->setMaximumWidth( addBut->sizeHint().height() ); 260 addBut->setMaximumWidth( addBut->sizeHint().height() );
261 261
262 addBut = new QPushButton ( mw ); 262 addBut = new QPushButton ( mw );
263 addBut->setFocusPolicy(NoFocus); 263 addBut->setFocusPolicy(NoFocus);
264 mainLayout->addWidget( addBut,0,5 ); 264 mainLayout->addWidget( addBut,0,++ii );
265 addBut->setPixmap ( SmallIcon("pencil")); 265 addBut->setPixmap ( SmallIcon("pencil"));
266 connect(addBut,SIGNAL(clicked()),SLOT(disableRO())); 266 connect(addBut,SIGNAL(clicked()),SLOT(disableRO()));
267 addBut->setMaximumWidth( addBut->sizeHint().height() ); 267 addBut->setMaximumWidth( addBut->sizeHint().height() );
268 268
269 lab = new QLabel ( i18n(" Color "), mw ); 269 lab = new QLabel ( i18n(" Color "), mw );
270 mainLayout->addWidget( lab,0,6 ); 270 mainLayout->addWidget( lab,0,++ii );
271 lab = new QLabel ( "", mw );
272 mainLayout->addWidget( lab,0,++ii );
273 lab->setMaximumWidth( max+4 );
274 lab = new QLabel ( "", mw );
275 mainLayout->addWidget( lab,0,++ii );
276
277
271#if 0 278#if 0
272 addBut = new QPushButton ( mw ); 279 addBut = new QPushButton ( mw );
273 mainLayout->addWidget( addBut,0,6 ); 280 mainLayout->addWidget( addBut,0,6 );
274 addBut->setPixmap ( SmallIcon("minus")); 281 addBut->setPixmap ( SmallIcon("minus"));
275 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll())); 282 connect(addBut,SIGNAL(clicked()),SLOT(deleteAll()));
276 addBut->setMaximumWidth( addBut->sizeHint().height() ); 283 addBut->setMaximumWidth( addBut->sizeHint().height() );
277#endif 284#endif
278 285
279 286
280 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 287 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
281 int row = 1; 288 int row = 1;
282 while ( kkf ) { 289 while ( kkf ) {
283 int iii = 0; 290 int iii = 0;
284 KOCalCheckButton* cb = new KOCalCheckButton( mw ); 291 KOCalCheckButton* cb = new KOCalCheckButton( mw );
285 mainLayout->addWidget( cb,row,0 );mStdandardB.append( cb ); 292 mainLayout->addWidget( cb,row,0 );mStdandardB.append( cb );
286 cb->setChecked( kkf->isStandard ); 293 cb->setChecked( kkf->isStandard );
287 cb->setNum( kkf->mCalNumber ); 294 cb->setNum( kkf->mCalNumber );
288 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) ); 295 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectStdCal(int,bool) ) );
289 if ( kkf->mErrorOnLoad || kkf->isReadOnly ) 296 if ( kkf->mErrorOnLoad || kkf->isReadOnly )
290 cb->setEnabled( false ); 297 cb->setEnabled( false );
291 cb = new KOCalCheckButton( mw ); 298 cb = new KOCalCheckButton( mw );
292 mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb ); 299 mainLayout->addWidget( cb,row,++iii );mEnabledB.append( cb );
293 cb->setChecked( kkf->isEnabled ); 300 cb->setChecked( kkf->isEnabled );
294 cb->setNum( kkf->mCalNumber ); 301 cb->setNum( kkf->mCalNumber );
295 if ( kkf->mErrorOnLoad ) 302 if ( kkf->mErrorOnLoad )
296 cb->setEnabled( false ); 303 cb->setEnabled( false );
297 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) ); 304 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCal(int,bool) ) );
298 KOCalButton* name = new KOCalButton( mw ); 305 KOCalButton* name = new KOCalButton( mw );
299 name->setNum( kkf->mCalNumber ); 306 name->setNum( kkf->mCalNumber );
300 name->setText( kkf->mName ); 307 name->setText( kkf->mName );
301 mainLayout->addWidget( name,row,++iii ); 308 mainLayout->addWidget( name,row,++iii );
302 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) ); 309 connect (name, SIGNAL (selectNum(int)), SLOT ( infoCal(int) ) );
303 lab = new QLabel ( i18n(" "), mw ); 310 //lab = new QLabel (" ", mw );
304 mainLayout->addWidget( lab,row,++iii ); 311 //mainLayout->addWidget( lab,row,++iii );
305 cb = new KOCalCheckButton( mw ); 312 cb = new KOCalCheckButton( mw );
306 mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb ); 313 mainLayout->addWidget( cb,row,++iii );mAlarmB.append( cb );
307 cb->setChecked( kkf->isAlarmEnabled ); 314 cb->setChecked( kkf->isAlarmEnabled );
308 cb->setNum( kkf->mCalNumber ); 315 cb->setNum( kkf->mCalNumber );
309 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) ); 316 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectCalAlarm(int,bool) ) );
310 if ( kkf->mErrorOnLoad ) 317 if ( kkf->mErrorOnLoad )
311 cb->setEnabled( false ); 318 cb->setEnabled( false );
312 cb = new KOCalCheckButton( mw ); 319 cb = new KOCalCheckButton( mw );
313 mainLayout->addWidget( cb,row,++iii );mROB.append( cb ); 320 mainLayout->addWidget( cb,row,++iii );mROB.append( cb );
314 cb->setChecked( kkf->isReadOnly ); 321 cb->setChecked( kkf->isReadOnly );
315 cb->setNum( kkf->mCalNumber ); 322 cb->setNum( kkf->mCalNumber );
316 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) ); 323 connect (cb, SIGNAL (selectNum(int,bool)), SLOT ( selectReadOnly(int,bool) ) );
317 if ( kkf->mErrorOnLoad ) 324 if ( kkf->mErrorOnLoad )
318 cb->setEnabled( false ); 325 cb->setEnabled( false );
319 if ( row > 1) { 326 if ( row > 1) {
320 KColorButton *colb = new KColorButton( mw ); 327 KColorButton *colb = new KColorButton( mw );
321 mainLayout->addWidget( colb,row,++iii ); 328 mainLayout->addWidget( colb,row,++iii );
322 colb->setID( kkf->mCalNumber ); 329 colb->setID( kkf->mCalNumber );
323 colb->setColor( kkf->mDefaultColor ); 330 colb->setColor( kkf->mDefaultColor );
324 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) ); 331 connect (colb, SIGNAL (changedID(const QColor&, int )), SLOT ( setColor(const QColor&,int) ) );
325 KOCalButton* calb = new KOCalButton( mw ); 332 KOCalButton* calb = new KOCalButton( mw );
326 mainLayout->addWidget( calb,row,++iii ); 333 mainLayout->addWidget( calb,row,++iii );
327 calb->setNum( kkf->mCalNumber ); 334 calb->setNum( kkf->mCalNumber );
328 calb->setPixmap ( SmallIcon("minus")); 335 calb->setPixmap ( SmallIcon("minus"));
329 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) ); 336 connect (calb, SIGNAL (selectNum(int)), SLOT ( deleteCal(int) ) );
330 int hei = calb->sizeHint().height(); 337 int hei = calb->sizeHint().height();
331 //calb->setMaximumSize( hei*9/10, hei*9/10 ); 338 //calb->setMaximumSize( hei*9/10, hei*9/10 );
332 } 339 }
333 ++row; 340 ++row;
334 kkf = KOPrefs::instance()->mCalendars.next(); 341 kkf = KOPrefs::instance()->mCalendars.next();
335 } 342 }
336 lab = new QLabel ( "", mw ); 343 lab = new QLabel ( "", mw );
337 mainLayout->addWidget( lab,row,0 ); 344 mainLayout->addWidget( lab,row,0 );
338 mw->show(); 345 mw->show();
339 346
340} 347}
341void KOCalEditView::addCal() 348void KOCalEditView::addCal()
342{ 349{
343 bool tryagain = true; 350 bool tryagain = true;
344 QString name, file; 351 QString name, file;
345 while ( tryagain ) { 352 while ( tryagain ) {
346 KONewCalPrefs prefs ( this ); 353 KONewCalPrefs prefs ( this );
347 prefs.nameE->setText( name ); 354 prefs.nameE->setText( name );
348 prefs.url->setURL( file ); 355 prefs.url->setURL( file );
349 if ( ! prefs.exec() ) 356 if ( ! prefs.exec() )
350 return; 357 return;
351 name = prefs.calName(); 358 name = prefs.calName();
352 file = prefs.calFileName(); 359 file = prefs.calFileName();
353 tryagain = false; 360 tryagain = false;
354 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 361 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
355 while ( kkf ) { 362 while ( kkf ) {
356 if ( kkf->mName == name ) { 363 if ( kkf->mName == name ) {
357 KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) ); 364 KMessageBox::information( this, i18n("Sorry, the calendar name \n%1\nalready exists!\nPlease choose another name!").arg( name ) );
358 name = ""; 365 name = "";
359 tryagain = true; 366 tryagain = true;
360 break; 367 break;
361 } 368 }
362 if ( kkf->mFileName == file ) { 369 if ( kkf->mFileName == file ) {
363 KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) ); 370 KMessageBox::information( this, i18n("Sorry, the file \n%1\nis already loaded!\nPlease choose another file!").arg( KGlobal::formatMessage (file, 0 )) );
364 tryagain = true; 371 tryagain = true;
365 file = ""; 372 file = "";
366 break; 373 break;
367 } 374 }
368 kkf = KOPrefs::instance()->mCalendars.next(); 375 kkf = KOPrefs::instance()->mCalendars.next();
369 } 376 }
370 } 377 }
371 QFileInfo fi ( file ); 378 QFileInfo fi ( file );
372 if (!fi.exists() ) { 379 if (!fi.exists() ) {
373 if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( file ) )== KMessageBox::No ) 380 if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( file ) )== KMessageBox::No )
374 return; 381 return;
375 QFile fileIn( file ); 382 QFile fileIn( file );
376 if (!fileIn.open( IO_WriteOnly ) ) { 383 if (!fileIn.open( IO_WriteOnly ) ) {
377 KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); 384 KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) );
378 return; 385 return;
379 } 386 }
380 QTextStream tsIn( &fileIn ); 387 QTextStream tsIn( &fileIn );
381 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 388 tsIn.setCodec( QTextCodec::codecForName("utf8") );
382 tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n"; 389 tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n";
383 fileIn.close(); 390 fileIn.close();
384 } 391 }
385 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); 392 KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar();
386 kkf->mName = name; 393 kkf->mName = name;
387 kkf->mFileName = file; 394 kkf->mFileName = file;
388 emit calendarAdded( kkf->mCalNumber ); 395 emit calendarAdded( kkf->mCalNumber );
389 emit needsUpdate(); 396 emit needsUpdate();
390 QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); 397 QTimer::singleShot( 0, this, SLOT ( readConfig() ) );
391} 398}
392void KOCalEditView::enableAll() 399void KOCalEditView::enableAll()
393{ 400{
394 toggleList( mEnabledB ); 401 toggleList( mEnabledB );
395} 402}
396void KOCalEditView::enableAlarm() 403void KOCalEditView::enableAlarm()
397{ 404{
398 toggleList( mAlarmB ); 405 toggleList( mAlarmB );
399} 406}
400void KOCalEditView::disableRO() 407void KOCalEditView::disableRO()
401{ 408{
402 toggleList( mROB ); 409 toggleList( mROB );
403} 410}
404void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list ) 411void KOCalEditView::toggleList ( QPtrList<KOCalCheckButton> list )
405{ 412{
406 bool dis = false; 413 bool dis = false;
407 KOCalCheckButton* it = list.first(); 414 KOCalCheckButton* it = list.first();
408 while ( it ) { 415 while ( it ) {
409 if ( !it->isChecked() ) { 416 if ( !it->isChecked() ) {
410 dis = true; 417 dis = true;
411 break; 418 break;
412 } 419 }
413 it = list.next(); 420 it = list.next();
414 } 421 }
415 it = list.first(); 422 it = list.first();
416 while ( it ) { 423 while ( it ) {
417 it->setChecked(dis); 424 it->setChecked(dis);
418 it = list.next(); 425 it = list.next();
419 } 426 }
420} 427}
421void KOCalEditView::deleteAll() 428void KOCalEditView::deleteAll()
422{ 429{
423 qDebug("delteAll"); 430 qDebug("delteAll");
424} 431}