summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-03-20 16:15:56 (UTC)
committer zautrix <zautrix>2005-03-20 16:15:56 (UTC)
commita9e08041c8978d52cfcabc84f579784af45eb8d9 (patch) (unidiff)
tree6448348326db4325938679350c58d87176d90771 /korganizer
parent69d75020eea5f95b9f5d77d97ed85ec8869d32db (diff)
downloadkdepimpi-a9e08041c8978d52cfcabc84f579784af45eb8d9.zip
kdepimpi-a9e08041c8978d52cfcabc84f579784af45eb8d9.tar.gz
kdepimpi-a9e08041c8978d52cfcabc84f579784af45eb8d9.tar.bz2
layout fix
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp121
-rw-r--r--korganizer/kodaymatrix.h2
2 files changed, 92 insertions, 31 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 9181936..15a1cb4 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -616,29 +616,35 @@ void KODayMatrix::dropEvent(QDropEvent *e)
616// ---------------------------------------------------------------------------- 616// ----------------------------------------------------------------------------
617// P A I N T E V E N T H A N D L I N G 617// P A I N T E V E N T H A N D L I N G
618// ---------------------------------------------------------------------------- 618// ----------------------------------------------------------------------------
619 619
620void KODayMatrix::paintEvent(QPaintEvent * pevent) 620void KODayMatrix::paintEvent(QPaintEvent * pevent)
621{ 621{
622 if ( width() <= 0 || height() <= 0 ) 622 QRect sz = frameRect();
623 if ( sz.width() <= 0 || sz.height() <= 0 )
623 return; 624 return;
624 if ( mPendingUpdateBeforeRepaint ) { 625 if ( mPendingUpdateBeforeRepaint ) {
625 updateViewTimed(); 626 updateViewTimed();
626 mPendingUpdateBeforeRepaint = false; 627 mPendingUpdateBeforeRepaint = false;
627 } 628 }
628 if ( myPix.width() != width() || myPix.height()!=height() ) { 629 if ( myPix.width() != sz.width() || myPix.height()!=sz.height() ) {
629 myPix.resize(size() ); 630 myPix.resize(sz.size() );
630 } 631 }
631 QPainter p(&myPix); 632 QPainter p(&myPix);
632 p.setFont(font()); 633 p.setFont(font());
633 634
634 QRect sz = frameRect(); 635
635 int dheight = daysize.height(); 636 int dheight = daysize.height();
636 int dwidth = daysize.width(); 637 int dwidth = daysize.width();
637 int row,col; 638 int row,col;
638 int selw, selh; 639 int selw, selh;
640 int xyOff = frameWidth();
641 int colModulo = sz.width() % 7;
642 int rowModulo = sz.height() % 6;
643 qDebug("off %d col %d row %d ",xyOff,colModulo,rowModulo );
644
639 bool isRTL = KOGlobals::self()->reverseLayout(); 645 bool isRTL = KOGlobals::self()->reverseLayout();
640 646
641 // draw background and topleft frame 647 // draw background and topleft frame
642 p.fillRect(pevent->rect(), mDefaultBackColor); 648 p.fillRect(pevent->rect(), mDefaultBackColor);
643 p.setPen(mDefaultTextColor); 649 p.setPen(mDefaultTextColor);
644 p.drawRect(0, 0, sz.width()+1, sz.height()+1); 650 p.drawRect(0, 0, sz.width()+1, sz.height()+1);
@@ -664,34 +670,75 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
664 int sub = days[mSelEndT].day(); 670 int sub = days[mSelEndT].day();
665 mSelEndT -= sub ; 671 mSelEndT -= sub ;
666 } 672 }
667 } 673 }
668 } 674 }
669 if ( ! skip ) { 675 if ( ! skip ) {
670 row = mSelStartT/7; 676 row = mSelStartT/7;
671 col = mSelStartT -row*7; 677 col = mSelStartT -row*7;
672 QColor selcol = KOPrefs::instance()->mHighlightColor; 678 QColor selcol = KOPrefs::instance()->mHighlightColor;
673 679
674 if (row == mSelEndT/7) { 680
675 // Single row selection 681
676 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth, 682 int addCol = 0;
677 row*dheight, (mSelEndT-mSelStartT+1)*dwidth, dheight, selcol); 683 int addRow = 0;
678 } else { 684#if 0
679 // draw first row to the right 685 if ( colModulo ) {
680 p.fillRect(isRTL ? 0 : col*dwidth, row*dheight, (7-col)*dwidth, 686 if ( col >= 7 - colModulo )
681 dheight, selcol); 687 addCol = col - 7 + colModulo;
682 // draw full block till last line 688 }
683 selh = mSelEndT/7-row; 689 if ( rowModulo ) {
684 if (selh > 1) { 690 if ( row >= 6 - rowModulo )
685 p.fillRect(0, (row+1)*dheight, 7*dwidth, (selh-1)*dheight,selcol); 691 addRow = row - 5 + rowModulo;
686 } 692 }
687 // draw last block from left to mSelEndT 693#endif
688 selw = mSelEndT-7*(mSelEndT/7)+1; 694
689 p.fillRect(isRTL ? (7-selw)*dwidth : 0, (row+selh)*dheight, 695
690 selw*dwidth, dheight, selcol); 696
691 } 697
698
699 if (row == mSelEndT/7) {
700 if ( rowModulo ) {
701 if ( row >= 6 - rowModulo )
702 addRow = row - 5 + rowModulo;
703 }
704 if ( colModulo ) {
705 if ( mSelEndT-mSelStartT+1 >= 7 - colModulo )
706 addCol = mSelEndT-mSelStartT+1 - 7 + colModulo;
707 }
708 // Single row selection
709 if ( row == 0)
710 addRow = 1;
711 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1,
712 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
713 } else {
714 // draw first row to the right
715 if ( row == 0)
716 addRow = 1;
717 p.fillRect(isRTL ? 0 : col*dwidth+1, row*dheight+addRow, (7-col)*dwidth+colModulo,
718 dheight, selcol);
719 // draw full block till last line
720 selh = mSelEndT/7-row;
721 if (selh > 1) {
722 p.fillRect(1, (row+1)*dheight, 7*dwidth+colModulo, (selh-1)*dheight,selcol);
723 }
724 // draw last block from left to mSelEndT
725 selw = mSelEndT-7*(mSelEndT/7)+1;
726 //qDebug("esl %d ",selw );
727 int add = 0;
728 if ( colModulo ) {
729 add = 7 - colModulo;
730 if ( selw > add )
731 add = selw - add;
732 else
733 add = 0;
734 }
735 //qDebug("add %d ", add);
736 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight,
737 selw*dwidth+add, dheight, selcol);
738 }
692 } 739 }
693 } 740 }
694 741
695 // iterate over all days in the matrix and draw the day label in appropriate colors 742 // iterate over all days in the matrix and draw the day label in appropriate colors
696 QColor actcol = mDefaultTextColorShaded; 743 QColor actcol = mDefaultTextColorShaded;
697 p.setPen(actcol); 744 p.setPen(actcol);
@@ -766,13 +813,25 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
766 // draw selected days with special color 813 // draw selected days with special color
767 // DO NOT specially highlight holidays in selection ! 814 // DO NOT specially highlight holidays in selection !
768 if (i >= mSelStartT && i <= mSelEndT) { 815 if (i >= mSelStartT && i <= mSelEndT) {
769 ;//p.setPen(mSelectedDaysColor); 816 ;//p.setPen(mSelectedDaysColor);
770 } 817 }
771 818
772 p.drawText(col*dwidth, row*dheight, dwidth, dheight, 819 int addCol = 0;
820 int addRow = 0;
821 if ( colModulo ) {
822 if ( col >= 7 - colModulo )
823 addCol = col - 7 + colModulo;
824 }
825 if ( rowModulo ) {
826 if ( row >= 6 - rowModulo )
827 addRow = row - 5 + rowModulo;
828 }
829 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
830 ++addCol;++addCol;
831 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
773 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 832 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
774 833
775 // reset color to actual color 834 // reset color to actual color
776 if (!mHolidays[i].isNull()) { 835 if (!mHolidays[i].isNull()) {
777 p.setPen(actcol); 836 p.setPen(actcol);
778 } 837 }
@@ -780,13 +839,15 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
780 if (events[i] > 0) { 839 if (events[i] > 0) {
781 QFont myFont = font(); 840 QFont myFont = font();
782 myFont.setBold(false); 841 myFont.setBold(false);
783 p.setFont(myFont); 842 p.setFont(myFont);
784 } 843 }
785 } 844 }
786 bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP); 845 int off = xyOff;
846 bitBlt (this, off, off, &myPix, 0 ,0,width(), height() ,CopyROP);
847 //qDebug("ffffffffff %d ", off);
787} 848}
788 849
789// ---------------------------------------------------------------------------- 850// ----------------------------------------------------------------------------
790// R E SI Z E E V E N T H A N D L I N G 851// R E SI Z E E V E N T H A N D L I N G
791// ---------------------------------------------------------------------------- 852// ----------------------------------------------------------------------------
792 853
@@ -798,12 +859,12 @@ void KODayMatrix::resizeEvent(QResizeEvent *)
798} 859}
799 860
800QSize KODayMatrix::sizeHint() const 861QSize KODayMatrix::sizeHint() const
801{ 862{
802 863
803 QFontMetrics fm ( font() ); 864 QFontMetrics fm ( font() );
804 int wid = fm.width( "30") *7+7; 865 int wid = fm.width( "30") *7+3;
805 int hei = fm.height() * 6+4; 866 int hei = fm.height() * 6+3;
806 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 867 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
807 return QSize ( wid, hei ); 868 return QSize ( wid, hei );
808 869
809} 870}
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h
index 39946de..f4016b6 100644
--- a/korganizer/kodaymatrix.h
+++ b/korganizer/kodaymatrix.h
@@ -168,13 +168,13 @@ public:
168 * top left (0) to bottom right (41). 168 * top left (0) to bottom right (41).
169 */ 169 */
170 bool isBeginningOfMonth() const { return today<=8; } ; 170 bool isBeginningOfMonth() const { return today<=8; } ;
171 bool isEndOfMonth() const { return today>=27; } ; 171 bool isEndOfMonth() const { return today>=27; } ;
172 QString getWhatsThisText( QPoint ) ; 172 QString getWhatsThisText( QPoint ) ;
173 QSize sizeHint() const; 173 QSize sizeHint() const;
174 174 QRect frameRect () const { int wid = frameWidth(); return QRect(0+wid,0+wid,width()-wid-wid,height()-wid-wid);}
175public slots: 175public slots:
176 /** Recalculates all the flags of the days in the matrix like holidays or events 176 /** Recalculates all the flags of the days in the matrix like holidays or events
177 * on a day (Actually calls above method with the actual startdate). 177 * on a day (Actually calls above method with the actual startdate).
178 */ 178 */
179 void updateView(); 179 void updateView();
180 void updateViewTimed(); 180 void updateViewTimed();