summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp86
-rw-r--r--korganizer/kodaymatrix.cpp8
2 files changed, 81 insertions, 13 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 2b05d37..8d32152 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -112,10 +112,73 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
112 112
113 // if ( globalFlagBlockAgenda ) 113 cx = contentsX() + frameWidth()*2;
114 // return; 114 cw = contentsWidth() ;
115 // bug: the parameters cx, cy, cw, ch are the areas that need to be 115 // end of workaround
116 // redrawn, not the area of the widget. unfortunately, this 116
117 // code assumes the latter... 117 int cell = ((int)(cy/mCellHeight));
118 118 int y = cell * mCellHeight;
119 // now, for a workaround... 119 QFontMetrics fm = fontMetrics();
120 // these two assignments fix the weird redraw bug 120 QString hour;
121 QString suffix = "am";
122 int timeHeight = fm.ascent();
123 QFont nFont = p->font();
124
125 if (!KGlobal::locale()->use12Clock()) {
126 if ( QApplication::desktop()->width() <= 320 )
127 suffix = "00";
128 else
129 suffix = "00";
130 }
131
132 if ( timeHeight > mCellHeight ) {
133 timeHeight = mCellHeight-1;
134 int pointS = nFont.pointSize();
135 while ( pointS > 4 ) {
136 nFont.setPointSize( pointS );
137 fm = QFontMetrics( nFont );
138 if ( fm.ascent() < mCellHeight )
139 break;
140 -- pointS;
141 }
142 fm = QFontMetrics( nFont );
143 timeHeight = fm.ascent();
144 }
145 //timeHeight -= (timeHeight/4-2);
146 QFont sFont = nFont;
147 sFont.setPointSize( sFont.pointSize()/2 );
148 QFontMetrics fmS( sFont );
149 int sHei = fmS.ascent() ;
150 //sHei -= (sHei/4-2);
151 int startW = this->width() - frameWidth()-2;
152 int tw2 = fmS.width(suffix);
153 timeHeight = (timeHeight-1) /2 -1;
154 while (y < cy + ch+mCellHeight) {
155 p->drawLine(startW-tw2+1 ,y,cw,y);
156 hour.setNum(cell);
157 // handle 24h and am/pm time formats
158 if (KGlobal::locale()->use12Clock()) {
159 if (cell > 11) suffix = "pm";
160 else
161 suffix = "am";
162 if (cell == 0) hour.setNum(12);
163 if (cell > 12) hour.setNum(cell - 12);
164 }
165
166 // center and draw the time label
167 int timeWidth = fm.width(hour);
168 int offset = startW - timeWidth - tw2 ;
169 p->setFont( nFont );
170 p->drawText( offset, y+ timeHeight, hour);
171 p->setFont( sFont );
172 offset = startW - tw2+1;
173 p->drawText( offset, y -1, suffix);
174
175 // increment indices
176 y += mCellHeight;
177 cell++;
178 }
179
180
181
182
183#if 0
121 mRedrawNeeded = true; 184 mRedrawNeeded = true;
@@ -194,2 +257,3 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
194 //mRedrawNeeded = false; 257 //mRedrawNeeded = false;
258#endif
195} 259}
@@ -220,3 +284,3 @@ void TimeLabels::updateConfig()
220 if ( QApplication::desktop()->width() <= 320 ) 284 if ( QApplication::desktop()->width() <= 320 )
221 test = ""; 285 test = "00";
222 else 286 else
@@ -676,2 +740,4 @@ void KOAgendaView::createDayLabels()
676 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2; 740 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2;
741 if ( QApplication::desktop()->width() <= 320 )
742 maxWid -= 10;
677 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 743 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
@@ -734,2 +800,3 @@ void KOAgendaView::createDayLabels()
734 //dayLabel->setAlignment(QLabel::AlignHCenter); 800 //dayLabel->setAlignment(QLabel::AlignHCenter);
801#if 0
735 if ( QApplication::desktop()->width() <= 320 ) 802 if ( QApplication::desktop()->width() <= 320 )
@@ -737,2 +804,3 @@ void KOAgendaView::createDayLabels()
737 else 804 else
805#endif
738 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 806 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index b8a0f09..8affe50 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -769,4 +769,4 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
769 // Single row selection 769 // Single row selection
770 if ( row == 0) 770 //if ( row == 0)
771 addRow = 1; 771 // addRow = 1;
772 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2, 772 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
@@ -783,4 +783,4 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
783 } 783 }
784 if ( row == 0) 784 //if ( row == 0)
785 addRow = 1; 785 // addRow = 1;
786 int drawWid = width()-(col*dwidth+1+addCol2)-1; 786 int drawWid = width()-(col*dwidth+1+addCol2)-1;