summaryrefslogtreecommitdiffabout
path: root/korganizer
Side-by-side diff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp48
1 files changed, 35 insertions, 13 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 15a1cb4..507f18e 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -635,17 +635,17 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
int dheight = daysize.height();
int dwidth = daysize.width();
int row,col;
int selw, selh;
int xyOff = frameWidth();
int colModulo = sz.width() % 7;
int rowModulo = sz.height() % 6;
- qDebug("off %d col %d row %d ",xyOff,colModulo,rowModulo );
+ //qDebug("off %d col %d row %d ",xyOff,colModulo,rowModulo );
bool isRTL = KOGlobals::self()->reverseLayout();
// draw background and topleft frame
p.fillRect(pevent->rect(), mDefaultBackColor);
p.setPen(mDefaultTextColor);
p.drawRect(0, 0, sz.width()+1, sz.height()+1);
int mSelStartT = mSelStart;
@@ -675,17 +675,19 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
if ( ! skip ) {
row = mSelStartT/7;
col = mSelStartT -row*7;
QColor selcol = KOPrefs::instance()->mHighlightColor;
int addCol = 0;
- int addRow = 0;
+ int addRow = 0;
+ int addRow2 = 0;
+ int addCol2 = 0;
#if 0
if ( colModulo ) {
if ( col >= 7 - colModulo )
addCol = col - 7 + colModulo;
}
if ( rowModulo ) {
if ( row >= 6 - rowModulo )
addRow = row - 5 + rowModulo;
@@ -697,49 +699,69 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
if (row == mSelEndT/7) {
if ( rowModulo ) {
if ( row >= 6 - rowModulo )
addRow = row - 5 + rowModulo;
}
if ( colModulo ) {
- if ( mSelEndT-mSelStartT+1 >= 7 - colModulo )
- addCol = mSelEndT-mSelStartT+1 - 7 + colModulo;
+ int colt1 = mSelEndT%7;
+ //qDebug("colt1 %d ", colt1 );
+ if ( colt1 >= 7 - colModulo )
+ addCol = colt1 - 7 + colModulo+1;
+ int colt = mSelStartT%7;
+ if ( colt >= 7 - colModulo )
+ addCol2 = colt - 7 + colModulo;
+ addCol -= addCol2;
+ //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 );
}
// Single row selection
if ( row == 0)
addRow = 1;
- p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1,
+ p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
} else {
// draw first row to the right
+ if ( colModulo ) {
+ if ( col >= 7 - colModulo )
+ addCol2 = col - 7 + colModulo;
+ }
+ if ( rowModulo ) {
+ if ( row >= 6 - rowModulo )
+ addRow = row - 5 + rowModulo;
+ }
if ( row == 0)
- addRow = 1;
- p.fillRect(isRTL ? 0 : col*dwidth+1, row*dheight+addRow, (7-col)*dwidth+colModulo,
- dheight, selcol);
+ addRow = 1;
+ p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, (7-col)*dwidth+colModulo,
+ dheight+1, selcol);
// draw full block till last line
- selh = mSelEndT/7-row;
+ selh = mSelEndT/7-row;
+ addRow = 0;
+ if ( rowModulo ) {
+ if ( mSelEndT/7 >= 6 - rowModulo )
+ addRow = mSelEndT/7 - 5 + rowModulo;
+ }
if (selh > 1) {
- p.fillRect(1, (row+1)*dheight, 7*dwidth+colModulo, (selh-1)*dheight,selcol);
+ p.fillRect(1, (row+1)*dheight, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol);
}
// draw last block from left to mSelEndT
selw = mSelEndT-7*(mSelEndT/7)+1;
//qDebug("esl %d ",selw );
int add = 0;
if ( colModulo ) {
add = 7 - colModulo;
if ( selw > add )
add = selw - add;
else
add = 0;
}
//qDebug("add %d ", add);
- p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight,
- selw*dwidth+add, dheight, selcol);
+ p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow,
+ selw*dwidth+add, dheight+1, selcol);
}
}
}
// iterate over all days in the matrix and draw the day label in appropriate colors
QColor actcol = mDefaultTextColorShaded;
p.setPen(actcol);
QPen tmppen;
@@ -822,17 +844,17 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
if ( col >= 7 - colModulo )
addCol = col - 7 + colModulo;
}
if ( rowModulo ) {
if ( row >= 6 - rowModulo )
addRow = row - 5 + rowModulo;
}
//qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
- ++addCol;++addCol;
+ ++addCol;//++addCol;
p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
// reset color to actual color
if (!mHolidays[i].isNull()) {
p.setPen(actcol);
}
// reset bold font to plain font