summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-03-20 19:52:47 (UTC)
committer zautrix <zautrix>2005-03-20 19:52:47 (UTC)
commit64068741e3b82a34c1b8a67da412ac88841b640c (patch) (unidiff)
tree70a665bab53da7aa211f523daebbdbff08136df4 /korganizer
parentd998afaaf0fe1af0b9b5e3d6f4cb504e35e35025 (diff)
downloadkdepimpi-64068741e3b82a34c1b8a67da412ac88841b640c.zip
kdepimpi-64068741e3b82a34c1b8a67da412ac88841b640c.tar.gz
kdepimpi-64068741e3b82a34c1b8a67da412ac88841b640c.tar.bz2
nf
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp42
1 files changed, 20 insertions, 22 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 507f18e..f864022 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -438,48 +438,50 @@ QString KODayMatrix::getHolidayLabel(int offset)
438 qDebug("Wrong offset1 "); 438 qDebug("Wrong offset1 ");
439 return 0; 439 return 0;
440 } 440 }
441 return mHolidays[offset]; 441 return mHolidays[offset];
442} 442}
443 443
444int KODayMatrix::getDayIndexFrom(int x, int y) 444int KODayMatrix::getDayIndexFrom(int x, int y)
445{ 445{
446 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 446 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
447 6 - x/daysize.width() : x/daysize.width()); 447 6 - x/daysize.width() : x/daysize.width());
448} 448}
449 449
450// ---------------------------------------------------------------------------- 450// ----------------------------------------------------------------------------
451// M O U S E E V E N T H A N D L I N G 451// M O U S E E V E N T H A N D L I N G
452// ---------------------------------------------------------------------------- 452// ----------------------------------------------------------------------------
453 453
454void KODayMatrix::mousePressEvent (QMouseEvent* e) 454void KODayMatrix::mousePressEvent (QMouseEvent* e)
455{ 455{
456 456
457 if ( e->button() == LeftButton ) 457 if ( e->button() == LeftButton )
458 mouseDown = true; 458 mouseDown = true;
459 mSelStart = getDayIndexFrom(e->x(), e->y()); 459 mSelStart = getDayIndexFrom(e->x(), e->y());
460 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 460 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
461 mSelInit = mSelStart; 461 mSelInit = mSelStart;
462 mSelEnd = mSelStart;
463 repaint(false);
462} 464}
463 465
464void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 466void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
465{ 467{
466 if ( e->button() == LeftButton ) 468 if ( e->button() == LeftButton )
467 if ( ! mouseDown ) { 469 if ( ! mouseDown ) {
468 return; 470 return;
469 } 471 }
470 else 472 else
471 mouseDown = false; 473 mouseDown = false;
472 int tmp = getDayIndexFrom(e->x(), e->y()); 474 int tmp = getDayIndexFrom(e->x(), e->y());
473 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 475 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
474 476
475 if (mSelInit > tmp) { 477 if (mSelInit > tmp) {
476 mSelEnd = mSelInit; 478 mSelEnd = mSelInit;
477 if (tmp != mSelStart) { 479 if (tmp != mSelStart) {
478 mSelStart = tmp; 480 mSelStart = tmp;
479 repaint(false); 481 repaint(false);
480 } 482 }
481 } else { 483 } else {
482 mSelStart = mSelInit; 484 mSelStart = mSelInit;
483 485
484 //repaint only if selection has changed 486 //repaint only if selection has changed
485 if (tmp != mSelEnd) { 487 if (tmp != mSelEnd) {
@@ -619,106 +621,88 @@ void KODayMatrix::dropEvent(QDropEvent *e)
619 621
620void KODayMatrix::paintEvent(QPaintEvent * pevent) 622void KODayMatrix::paintEvent(QPaintEvent * pevent)
621{ 623{
622 QRect sz = frameRect(); 624 QRect sz = frameRect();
623 if ( sz.width() <= 0 || sz.height() <= 0 ) 625 if ( sz.width() <= 0 || sz.height() <= 0 )
624 return; 626 return;
625 if ( mPendingUpdateBeforeRepaint ) { 627 if ( mPendingUpdateBeforeRepaint ) {
626 updateViewTimed(); 628 updateViewTimed();
627 mPendingUpdateBeforeRepaint = false; 629 mPendingUpdateBeforeRepaint = false;
628 } 630 }
629 if ( myPix.width() != sz.width() || myPix.height()!=sz.height() ) { 631 if ( myPix.width() != sz.width() || myPix.height()!=sz.height() ) {
630 myPix.resize(sz.size() ); 632 myPix.resize(sz.size() );
631 } 633 }
632 QPainter p(&myPix); 634 QPainter p(&myPix);
633 p.setFont(font()); 635 p.setFont(font());
634 636
635 637
636 int dheight = daysize.height(); 638 int dheight = daysize.height();
637 int dwidth = daysize.width(); 639 int dwidth = daysize.width();
638 int row,col; 640 int row,col;
639 int selw, selh; 641 int selw, selh;
640 int xyOff = frameWidth(); 642 int xyOff = frameWidth();
641 int colModulo = sz.width() % 7; 643 int colModulo = sz.width() % 7;
642 int rowModulo = sz.height() % 6; 644 int rowModulo = sz.height() % 6;
643 //qDebug("off %d col %d row %d ",xyOff,colModulo,rowModulo ); 645 qDebug("col %d row %d ",colModulo,rowModulo );
644 646
645 bool isRTL = KOGlobals::self()->reverseLayout(); 647 bool isRTL = KOGlobals::self()->reverseLayout();
646 648
647 // draw background and topleft frame 649 // draw background and topleft frame
648 p.fillRect(pevent->rect(), mDefaultBackColor); 650 p.fillRect(pevent->rect(), mDefaultBackColor);
649 p.setPen(mDefaultTextColor); 651 p.setPen(mDefaultTextColor);
650 p.drawRect(0, 0, sz.width()+1, sz.height()+1); 652 p.drawRect(0, 0, sz.width()+1, sz.height()+1);
651 int mSelStartT = mSelStart; 653 int mSelStartT = mSelStart;
652 int mSelEndT = mSelEnd; 654 int mSelEndT = mSelEnd;
653 if ( mSelEndT >= NUMDAYS ) 655 if ( mSelEndT >= NUMDAYS )
654 mSelEndT = NUMDAYS-1; 656 mSelEndT = NUMDAYS-1;
655 // draw selected days with highlighted background color 657 // draw selected days with highlighted background color
656 if (mSelStart != NOSELECTION) { 658 if (mSelStart != NOSELECTION) {
657 bool skip = false; 659 bool skip = false;
658 if ( ! mouseDown ) { 660 if ( ! mouseDown ) {
659 int mo = days[20].month(); 661 int mo = days[20].month();
660 //qDebug("-- %d %d ", mSelStartT, mSelEndT); 662 //qDebug("-- %d %d ", mSelStartT, mSelEndT);
661 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); 663 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
662 if ( days[mSelStartT].month() > mo || days[mSelEndT].month() < mo ) { 664 if ( days[mSelStartT].month() > mo || days[mSelEndT].month() < mo ) {
663 skip = true; 665 skip = true;
664 } else { 666 } else {
665 if ( days[mSelStartT].month() != mo ) { 667 if ( days[mSelStartT].month() != mo ) {
666 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); 668 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day();
667 mSelStartT += add +1; 669 mSelStartT += add +1;
668 } 670 }
669 if ( days[mSelEndT].month() != mo ) { 671 if ( days[mSelEndT].month() != mo ) {
670 int sub = days[mSelEndT].day(); 672 int sub = days[mSelEndT].day();
671 mSelEndT -= sub ; 673 mSelEndT -= sub ;
672 } 674 }
673 } 675 }
674 } 676 }
675 if ( ! skip ) { 677 if ( ! skip ) {
676 row = mSelStartT/7; 678 row = mSelStartT/7;
677 col = mSelStartT -row*7; 679 col = mSelStartT -row*7;
678 QColor selcol = KOPrefs::instance()->mHighlightColor; 680 QColor selcol = KOPrefs::instance()->mHighlightColor;
679
680
681
682 int addCol = 0; 681 int addCol = 0;
683 int addRow = 0; 682 int addRow = 0;
684 int addRow2 = 0; 683 int addRow2 = 0;
685 int addCol2 = 0; 684 int addCol2 = 0;
686#if 0
687 if ( colModulo ) {
688 if ( col >= 7 - colModulo )
689 addCol = col - 7 + colModulo;
690 }
691 if ( rowModulo ) {
692 if ( row >= 6 - rowModulo )
693 addRow = row - 5 + rowModulo;
694 }
695#endif
696
697
698
699
700
701 if (row == mSelEndT/7) { 685 if (row == mSelEndT/7) {
702 if ( rowModulo ) { 686 if ( rowModulo ) {
703 if ( row >= 6 - rowModulo ) 687 if ( row >= 6 - rowModulo )
704 addRow = row - 5 + rowModulo; 688 addRow = row - 5 + rowModulo;
705 } 689 }
706 if ( colModulo ) { 690 if ( colModulo ) {
707 int colt1 = mSelEndT%7; 691 int colt1 = mSelEndT%7;
708 //qDebug("colt1 %d ", colt1 ); 692 //qDebug("colt1 %d ", colt1 );
709 if ( colt1 >= 7 - colModulo ) 693 if ( colt1 >= 7 - colModulo )
710 addCol = colt1 - 7 + colModulo+1; 694 addCol = colt1 - 7 + colModulo+1;
711 int colt = mSelStartT%7; 695 int colt = mSelStartT%7;
712 if ( colt >= 7 - colModulo ) 696 if ( colt >= 7 - colModulo )
713 addCol2 = colt - 7 + colModulo; 697 addCol2 = colt - 7 + colModulo;
714 addCol -= addCol2; 698 addCol -= addCol2;
715 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 ); 699 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 );
716 } 700 }
717 // Single row selection 701 // Single row selection
718 if ( row == 0) 702 if ( row == 0)
719 addRow = 1; 703 addRow = 1;
720 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2, 704 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
721 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol); 705 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
722 } else { 706 } else {
723 // draw first row to the right 707 // draw first row to the right
724 if ( colModulo ) { 708 if ( colModulo ) {
@@ -771,65 +755,79 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
771 755
772 // if it is the first day of a month switch color from normal to shaded and vice versa 756 // if it is the first day of a month switch color from normal to shaded and vice versa
773 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) { 757 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) {
774 if (actcol == mDefaultTextColorShaded) { 758 if (actcol == mDefaultTextColorShaded) {
775 actcol = mDefaultTextColor; 759 actcol = mDefaultTextColor;
776 } else { 760 } else {
777 actcol = mDefaultTextColorShaded; 761 actcol = mDefaultTextColorShaded;
778 } 762 }
779 p.setPen(actcol); 763 p.setPen(actcol);
780 } 764 }
781 if (actcol == mDefaultTextColorShaded) { 765 if (actcol == mDefaultTextColorShaded) {
782 if ( ! mouseDown ) { 766 if ( ! mouseDown ) {
783 continue; 767 continue;
784 } 768 }
785 } 769 }
786 //Reset pen color after selected days block 770 //Reset pen color after selected days block
787 if (i == mSelEndT+1) { 771 if (i == mSelEndT+1) {
788 p.setPen(actcol); 772 p.setPen(actcol);
789 } 773 }
790 774
791 // if today then draw rectangle around day 775 // if today then draw rectangle around day
792 if (today == i) { 776 if (today == i) {
793 tmppen = p.pen(); 777 tmppen = p.pen();
794 QPen mTodayPen(p.pen()); 778 QPen mTodayPen(p.pen());
795 779 if ( daysize.width() < 20 )
796 mTodayPen.setWidth(mTodayMarginWidth); 780 mTodayPen.setWidth(1);
781 else
782 mTodayPen.setWidth(mTodayMarginWidth);
797 //draw red rectangle for holidays 783 //draw red rectangle for holidays
798 if (!mHolidays[i].isNull()) { 784 if (!mHolidays[i].isNull()) {
799 if (actcol == mDefaultTextColor) { 785 if (actcol == mDefaultTextColor) {
800 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor); 786 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor);
801 } else { 787 } else {
802 mTodayPen.setColor(mHolidayColorShaded); 788 mTodayPen.setColor(mHolidayColorShaded);
803 } 789 }
804 } 790 }
805 //draw gray rectangle for today if in selection 791 //draw gray rectangle for today if in selection
806 if (i >= mSelStartT && i <= mSelEndT) { 792 if (i >= mSelStartT && i <= mSelEndT) {
807 QColor grey("grey"); 793 QColor grey("grey");
808 mTodayPen.setColor(grey); 794 mTodayPen.setColor(grey);
809 } 795 }
810 p.setPen(mTodayPen); 796 p.setPen(mTodayPen);
811 p.drawRect(col*dwidth, row*dheight, dwidth, dheight); 797
798
799 int addCol = 0;
800 int addRow = 0;
801 if (rowModulo) {
802 if ( row >= 6 - rowModulo )
803 addRow = row - 5 + rowModulo;
804 }
805 if ( colModulo ) {
806 if ( col >= 7 - colModulo )
807 addCol = col - 6 + colModulo-1;
808 }
809 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight+1);
812 p.setPen(tmppen); 810 p.setPen(tmppen);
813 } 811 }
814 812
815 // if any events are on that day then draw it using a bold font 813 // if any events are on that day then draw it using a bold font
816 if (events[i] > 0) { 814 if (events[i] > 0) {
817 QFont myFont = font(); 815 QFont myFont = font();
818 myFont.setBold(true); 816 myFont.setBold(true);
819 p.setFont(myFont); 817 p.setFont(myFont);
820 } 818 }
821 819
822 // if it is a holiday then use the default holiday color 820 // if it is a holiday then use the default holiday color
823 if (!mHolidays[i].isNull()) { 821 if (!mHolidays[i].isNull()) {
824 if ( bDays.testBit(i) ) { 822 if ( bDays.testBit(i) ) {
825 p.setPen(Qt::green); 823 p.setPen(Qt::green);
826 } else { 824 } else {
827 if (actcol == mDefaultTextColor) { 825 if (actcol == mDefaultTextColor) {
828 p.setPen(KOPrefs::instance()->mHolidayColor); 826 p.setPen(KOPrefs::instance()->mHolidayColor);
829 } else { 827 } else {
830 p.setPen(mHolidayColorShaded); 828 p.setPen(mHolidayColorShaded);
831 } 829 }
832 } 830 }
833 } 831 }
834 832
835 // draw selected days with special color 833 // draw selected days with special color