summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaview.cpp
Unidiff
Diffstat (limited to 'korganizer/koagendaview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp86
1 files changed, 77 insertions, 9 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 2b05d37..8d32152 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -110,14 +110,77 @@ void TimeLabels::setCellHeight(int height)
110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) 110void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
111{ 111{
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;
122 if ( mRedrawNeeded ) { 185 if ( mRedrawNeeded ) {
123 cx = contentsX() + frameWidth()*2; 186 cx = contentsX() + frameWidth()*2;
@@ -192,6 +255,7 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch)
192 // double buffer not yet implemented 255 // double buffer not yet implemented
193 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP); 256 //bitBlt (this, 0, 0, &myPix, 0 ,0,width(), height() ,CopyROP);
194 //mRedrawNeeded = false; 257 //mRedrawNeeded = false;
258#endif
195} 259}
196 260
197/** 261/**
@@ -218,7 +282,7 @@ void TimeLabels::updateConfig()
218 test = "pm"; 282 test = "pm";
219 else { 283 else {
220 if ( QApplication::desktop()->width() <= 320 ) 284 if ( QApplication::desktop()->width() <= 320 )
221 test = ""; 285 test = "00";
222 else 286 else
223 test = "00"; 287 test = "00";
224 } 288 }
@@ -674,6 +738,8 @@ void KOAgendaView::createDayLabels()
674 // each updateView() call) 738 // each updateView() call)
675 739
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 );
678 if ( maxWid < 0 ) 744 if ( maxWid < 0 )
679 maxWid = 20; 745 maxWid = 20;
@@ -732,9 +798,11 @@ void KOAgendaView::createDayLabels()
732 dayLabel->setFont( dlf ); 798 dayLabel->setFont( dlf );
733 dayLabel->setNum( -1 ); 799 dayLabel->setNum( -1 );
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 )
736 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ).left(2) ); 803 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ).left(2) );
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 ) );
739 dayLabel->show(); 807 dayLabel->show();
740 DateList::ConstIterator dit; 808 DateList::ConstIterator dit;